From 54a141abdeca00005a75f4af141645520b3f6b52 Mon Sep 17 00:00:00 2001 From: Ainar Garipov Date: Mon, 23 Jan 2023 12:47:59 +0300 Subject: [PATCH] Pull request 1717: remove-client2 Merge in DNS/adguard-home from remove-client2 to master Squashed commit of the following: commit 0a0923494b0d1003e4f02f3a5f93d5248f0f2ded Author: Ainar Garipov Date: Fri Jan 20 17:14:29 2023 +0300 all: rm old experimental beta (dir client2/) This project was unfortunately abandoned. v0.108.0 will have a different front-end and new APIs. --- .gitignore | 2 - CHANGELOG.md | 10 +- Makefile | 9 - build2/gitkeep | 1 - client2/.eslintignore | 6 - client2/.eslintrc | 5 - client2/declaration.d.ts | 18 - client2/package.json | 89 - client2/postcss.config.js | 17 - .../assets/apple-touch-icon-180x180.png | Bin 2137 -> 0 bytes client2/public/assets/favicon.png | Bin 1296 -> 0 bytes client2/public/assets/safari-pinned-tab.svg | 8 - client2/public/index.html | 23 - client2/public/install.html | 22 - client2/public/login.html | 22 - client2/scripts/consts.ts | 12 - client2/scripts/generator/index.ts | 18 - client2/scripts/generator/src/generateApis.ts | 317 - .../scripts/generator/src/generateEntities.ts | 603 -- client2/scripts/generator/src/utils.ts | 83 - client2/scripts/helpers/checkTranslations.ts | 226 - client2/scripts/lint/common.js | 79 - client2/scripts/lint/dev.js | 10 - client2/scripts/lint/prod.js | 5 - client2/scripts/webpack/helpers.js | 40 - .../scripts/webpack/webpack.config.base.js | 74 - client2/scripts/webpack/webpack.config.dev.js | 114 - .../scripts/webpack/webpack.config.prod.js | 89 - client2/src/App.tsx | 18 - client2/src/Install.tsx | 18 - client2/src/assets/img/install.png | Bin 24402 -> 0 bytes client2/src/components/App/App.tsx | 20 - .../components/App/Dashboard/Dashboard.tsx | 136 - .../BlockCard/BlockCard.module.pcss | 20 - .../components/BlockCard/BlockCard.tsx | 35 - .../Dashboard/components/BlockCard/index.ts | 1 - .../BlockedQueries/BlockedQueries.module.pcss | 16 - .../BlockedQueries/BlockedQueries.tsx | 76 - .../components/BlockedQueries/index.ts | 1 - .../ServerStatistics.module.pcss | 46 - .../ServerStatistics/ServerStatistics.tsx | 89 - .../components/ServerStatistics/index.ts | 1 - .../TopClients/TopClients.module.pcss | 43 - .../components/TopClients/TopClients.tsx | 71 - .../Dashboard/components/TopClients/index.ts | 1 - .../TopDomains/TopDomains.module.pcss | 62 - .../components/TopDomains/TopDomains.tsx | 73 - .../Dashboard/components/TopDomains/index.ts | 1 - .../App/Dashboard/components/index.ts | 5 - client2/src/components/App/Dashboard/index.ts | 1 - .../components/App/Errors/ErrorBoundary.tsx | 31 - .../components/App/Errors/Errors.module.pcss | 79 - client2/src/components/App/Errors/index.ts | 1 - .../components/App/Header/Header.module.pcss | 81 - client2/src/components/App/Header/Header.tsx | 60 - client2/src/components/App/Header/index.ts | 1 - .../components/App/Login/ForgotPassword.tsx | 65 - .../components/App/Login/Login.module.pcss | 34 - client2/src/components/App/Login/Login.tsx | 102 - client2/src/components/App/Login/index.ts | 2 - client2/src/components/App/Routes/Paths.ts | 63 - .../components/App/Routes/Routes.module.pcss | 3 - client2/src/components/App/Routes/Routes.tsx | 76 - client2/src/components/App/Routes/index.ts | 1 - .../GeneralSettings/GeneralSettings.tsx | 52 - .../components/Common.module.pcss | 45 - .../GeneralSettings/components/General.tsx | 169 - .../GeneralSettings/components/QueryLog.tsx | 124 - .../GeneralSettings/components/Statistics.tsx | 105 - .../GeneralSettings/components/index.ts | 9 - .../App/Settings/GeneralSettings/index.ts | 1 - client2/src/components/App/Settings/index.ts | 1 - .../App/SetupGuide/SetupGuide.module.pcss | 31 - .../components/App/SetupGuide/SetupGuide.tsx | 92 - .../src/components/App/SetupGuide/index.tsx | 1 - .../App/Sidebar/Sidebar.module.pcss | 23 - .../src/components/App/Sidebar/Sidebar.tsx | 116 - client2/src/components/App/Sidebar/index.ts | 1 - client2/src/components/App/index.ts | 1 - client2/src/components/Install/Install.tsx | 122 - .../AdminInterface/AdminInterface.tsx | 142 - .../components/AdminInterface/index.ts | 1 - .../Install/components/Auth/Auth.tsx | 55 - .../Install/components/Auth/index.ts | 1 - .../ConfigureDevices/ConfigureDevices.tsx | 142 - .../components/ConfigureDevices/index.ts | 1 - .../components/DnsServer/DnsServer.tsx | 142 - .../Install/components/DnsServer/index.ts | 1 - .../components/StepButtons/StepButtons.tsx | 44 - .../Install/components/StepButtons/index.ts | 1 - .../components/Stepper/Stepper.module.pcss | 66 - .../Install/components/Stepper/Stepper.tsx | 35 - .../Install/components/Stepper/index.ts | 1 - .../Install/components/Welcome/Welcome.tsx | 38 - .../Install/components/Welcome/index.ts | 1 - client2/src/components/Install/index.ts | 1 - .../common/controls/Button/Button.tsx | 67 - .../common/controls/Button/index.ts | 1 - .../common/controls/Input/Input.tsx | 146 - .../components/common/controls/Input/index.ts | 1 - .../common/controls/Radio/Radio.module.pcss | 20 - .../common/controls/Radio/Radio.tsx | 55 - .../components/common/controls/Radio/index.ts | 1 - .../common/controls/Switch/Switch.tsx | 3 - .../common/controls/Switch/index.ts | 1 - .../src/components/common/controls/index.ts | 4 - .../src/components/common/formating/code.tsx | 12 - .../components/common/formating/danger.tsx | 12 - .../common/formating/externalLink.tsx | 13 - .../src/components/common/formating/index.ts | 4 - client2/src/components/common/formating/p.tsx | 11 - client2/src/components/common/index.ts | 0 .../common/ui/Icon/Icon.module.pcss | 7 - .../src/components/common/ui/Icon/Icon.tsx | 25 - .../src/components/common/ui/Icon/index.ts | 1 - .../src/components/common/ui/Icons/Icon.pcss | 3 - .../src/components/common/ui/Icons/index.tsx | 84 - .../ui/LangSelect/LangSelect.module.pcss | 10 - .../common/ui/LangSelect/LangSelect.tsx | 23 - .../components/common/ui/LangSelect/index.tsx | 1 - client2/src/components/common/ui/Link.tsx | 63 - .../common/ui/Mask/Mask.module.pcss | 26 - .../src/components/common/ui/Mask/Mask.tsx | 23 - .../src/components/common/ui/Mask/index.ts | 1 - .../common/ui/Notifications/index.ts | 1 - .../common/ui/Notifications/notifications.tsx | 42 - client2/src/components/common/ui/index.ts | 6 - .../common/ui/layouts/CommonLayout.tsx | 16 - .../common/ui/layouts/CommonModalLayout.tsx | 87 - .../common/ui/layouts/ConfirmModalLayout.tsx | 34 - .../common/ui/layouts/InnerLayout.tsx | 41 - .../src/components/common/ui/layouts/index.ts | 4 - client2/src/lib/ant/Modal.pcss | 47 - client2/src/lib/ant/Radio.pcss | 15 - client2/src/lib/ant/Sidebar.pcss | 26 - client2/src/lib/ant/Tabs.pcss | 45 - client2/src/lib/ant/ant-overrides.less | 12 - client2/src/lib/ant/ant.less | 6 - client2/src/lib/ant/index.ts | 7 - client2/src/lib/apis/blockedServices.ts | 43 - client2/src/lib/apis/clients.ts | 139 - client2/src/lib/apis/dhcp.ts | 123 - client2/src/lib/apis/filtering.ts | 167 - client2/src/lib/apis/global.ts | 160 - client2/src/lib/apis/i18n.ts | 32 - client2/src/lib/apis/install.ts | 123 - client2/src/lib/apis/log.ts | 72 - client2/src/lib/apis/mobileconfig.ts | 37 - client2/src/lib/apis/parental.ts | 44 - client2/src/lib/apis/rewrite.ts | 61 - client2/src/lib/apis/safebrowsing.ts | 39 - client2/src/lib/apis/safesearch.ts | 39 - client2/src/lib/apis/stats.ts | 64 - client2/src/lib/apis/tls.ts | 61 - client2/src/lib/consts/common.ts | 3 - client2/src/lib/consts/forms.ts | 1 - client2/src/lib/consts/install.ts | 7 - client2/src/lib/entities/AccessList.ts | 76 - .../src/lib/entities/AccessListResponse.ts | 6 - client2/src/lib/entities/AccessSetRequest.ts | 6 - client2/src/lib/entities/AddUrlRequest.ts | 78 - client2/src/lib/entities/AddressInfo.ts | 67 - client2/src/lib/entities/AddressInfoBeta.ts | 71 - client2/src/lib/entities/AddressesInfo.ts | 79 - client2/src/lib/entities/AddressesInfoBeta.ts | 80 - .../src/lib/entities/BlockedServicesArray.ts | 31 - .../src/lib/entities/CheckConfigRequest.ts | 75 - .../lib/entities/CheckConfigRequestBeta.ts | 75 - .../lib/entities/CheckConfigRequestInfo.ts | 81 - .../entities/CheckConfigRequestInfoBeta.ts | 85 - .../src/lib/entities/CheckConfigResponse.ts | 64 - .../lib/entities/CheckConfigResponseInfo.ts | 59 - .../lib/entities/CheckConfigStaticIpInfo.ts | 79 - .../entities/CheckConfigStaticIpInfoStatic.ts | 7 - client2/src/lib/entities/Client.ts | 176 - client2/src/lib/entities/ClientAuto.ts | 85 - client2/src/lib/entities/ClientDelete.ts | 45 - .../src/lib/entities/ClientFindSubEntry.ts | 222 - client2/src/lib/entities/ClientUpdate.ts | 61 - client2/src/lib/entities/Clients.ts | 62 - client2/src/lib/entities/ClientsArray.ts | 31 - client2/src/lib/entities/ClientsAutoArray.ts | 31 - client2/src/lib/entities/ClientsFindEntry.ts | 33 - .../src/lib/entities/ClientsFindResponse.ts | 31 - client2/src/lib/entities/DNSConfig.ts | 250 - client2/src/lib/entities/DhcpConfig.ts | 90 - client2/src/lib/entities/DhcpConfigV4.ts | 117 - client2/src/lib/entities/DhcpConfigV6.ts | 59 - client2/src/lib/entities/DhcpLease.ts | 103 - client2/src/lib/entities/DhcpSearchResult.ts | 62 - .../entities/DhcpSearchResultOtherServer.ts | 65 - .../lib/entities/DhcpSearchResultStaticIP.ts | 65 - client2/src/lib/entities/DhcpSearchV4.ts | 62 - client2/src/lib/entities/DhcpSearchV6.ts | 47 - client2/src/lib/entities/DhcpStaticLease.ts | 85 - client2/src/lib/entities/DhcpStatus.ts | 116 - client2/src/lib/entities/DnsAnswer.ts | 85 - client2/src/lib/entities/DnsQuestion.ts | 85 - client2/src/lib/entities/Error.ts | 46 - client2/src/lib/entities/Filter.ts | 136 - .../lib/entities/FilterCheckHostResponse.ts | 143 - client2/src/lib/entities/FilterConfig.ts | 59 - .../src/lib/entities/FilterRefreshRequest.ts | 45 - .../src/lib/entities/FilterRefreshResponse.ts | 45 - client2/src/lib/entities/FilterSetUrl.ts | 72 - client2/src/lib/entities/FilterStatus.ts | 89 - client2/src/lib/entities/GetVersionRequest.ts | 46 - .../src/lib/entities/InitialConfiguration.ts | 89 - .../lib/entities/InitialConfigurationBeta.ts | 89 - client2/src/lib/entities/Login.ts | 61 - client2/src/lib/entities/NetInterface.ts | 114 - client2/src/lib/entities/NetInterfaces.ts | 33 - client2/src/lib/entities/ProfileInfo.ts | 45 - client2/src/lib/entities/QueryLog.ts | 65 - client2/src/lib/entities/QueryLogConfig.ts | 76 - client2/src/lib/entities/QueryLogItem.ts | 297 - client2/src/lib/entities/RemoveUrlRequest.ts | 49 - client2/src/lib/entities/ResultRule.ts | 69 - client2/src/lib/entities/RewriteEntry.ts | 67 - client2/src/lib/entities/RewriteList.ts | 31 - client2/src/lib/entities/ServerStatus.ts | 179 - client2/src/lib/entities/Stats.ts | 257 - client2/src/lib/entities/StatsConfig.ts | 46 - client2/src/lib/entities/TlsConfig.ts | 404 - client2/src/lib/entities/TopArrayEntry.ts | 47 - client2/src/lib/entities/UpstreamsConfig.ts | 69 - .../lib/entities/UpstreamsConfigResponse.ts | 31 - client2/src/lib/entities/VersionInfo.ts | 115 - client2/src/lib/entities/WhoisInfo.ts | 31 - client2/src/lib/helpers/apiErrors.ts | 14 - client2/src/lib/helpers/installHelpers.ts | 17 - client2/src/lib/theme/Content.module.pcss | 51 - client2/src/lib/theme/Form.module.pcss | 78 - client2/src/lib/theme/Install.module.pcss | 130 - client2/src/lib/theme/Link.module.pcss | 27 - client2/src/lib/theme/Text.module.pcss | 41 - client2/src/lib/theme/colors.ts | 8 - client2/src/lib/theme/index.ts | 18 - client2/src/localization/index.ts | 9 - client2/src/localization/locales/en.json | 137 - client2/src/localization/locales/index.ts | 36 - client2/src/localization/locales/ru.json | 4 - client2/src/main.pcss | 31 - client2/src/store/index.ts | 1 - client2/src/store/installStore.ts | 19 - client2/src/store/store.ts | 36 - client2/src/store/stores/Dasnboard.ts | 120 - client2/src/store/stores/GeneralSettings.ts | 218 - client2/src/store/stores/Install.ts | 50 - client2/src/store/stores/Login.ts | 45 - client2/src/store/stores/System.ts | 75 - client2/src/store/stores/ui.ts | 36 - client2/src/store/stores/utils.ts | 38 - client2/tsconfig.json | 40 - client2/yarn.lock | 8554 ----------------- internal/home/config.go | 6 +- internal/home/controlinstall.go | 193 +- internal/home/home.go | 56 +- internal/home/middlewares.go | 15 - internal/home/tls.go | 5 +- internal/home/web.go | 57 +- main.go | 2 +- main_next.go | 2 +- openapi/CHANGELOG.md | 15 + openapi/openapi.yaml | 151 - scripts/hooks/pre-commit | 5 - scripts/make/build-release.sh | 2 +- scripts/make/clean.sh | 2 - 268 files changed, 49 insertions(+), 23349 deletions(-) delete mode 100644 build2/gitkeep delete mode 100644 client2/.eslintignore delete mode 100644 client2/.eslintrc delete mode 100644 client2/declaration.d.ts delete mode 100644 client2/package.json delete mode 100644 client2/postcss.config.js delete mode 100644 client2/public/assets/apple-touch-icon-180x180.png delete mode 100644 client2/public/assets/favicon.png delete mode 100644 client2/public/assets/safari-pinned-tab.svg delete mode 100644 client2/public/index.html delete mode 100644 client2/public/install.html delete mode 100644 client2/public/login.html delete mode 100644 client2/scripts/consts.ts delete mode 100644 client2/scripts/generator/index.ts delete mode 100644 client2/scripts/generator/src/generateApis.ts delete mode 100644 client2/scripts/generator/src/generateEntities.ts delete mode 100644 client2/scripts/generator/src/utils.ts delete mode 100644 client2/scripts/helpers/checkTranslations.ts delete mode 100644 client2/scripts/lint/common.js delete mode 100644 client2/scripts/lint/dev.js delete mode 100644 client2/scripts/lint/prod.js delete mode 100644 client2/scripts/webpack/helpers.js delete mode 100644 client2/scripts/webpack/webpack.config.base.js delete mode 100644 client2/scripts/webpack/webpack.config.dev.js delete mode 100644 client2/scripts/webpack/webpack.config.prod.js delete mode 100644 client2/src/App.tsx delete mode 100644 client2/src/Install.tsx delete mode 100644 client2/src/assets/img/install.png delete mode 100644 client2/src/components/App/App.tsx delete mode 100644 client2/src/components/App/Dashboard/Dashboard.tsx delete mode 100644 client2/src/components/App/Dashboard/components/BlockCard/BlockCard.module.pcss delete mode 100644 client2/src/components/App/Dashboard/components/BlockCard/BlockCard.tsx delete mode 100644 client2/src/components/App/Dashboard/components/BlockCard/index.ts delete mode 100644 client2/src/components/App/Dashboard/components/BlockedQueries/BlockedQueries.module.pcss delete mode 100644 client2/src/components/App/Dashboard/components/BlockedQueries/BlockedQueries.tsx delete mode 100644 client2/src/components/App/Dashboard/components/BlockedQueries/index.ts delete mode 100644 client2/src/components/App/Dashboard/components/ServerStatistics/ServerStatistics.module.pcss delete mode 100644 client2/src/components/App/Dashboard/components/ServerStatistics/ServerStatistics.tsx delete mode 100644 client2/src/components/App/Dashboard/components/ServerStatistics/index.ts delete mode 100644 client2/src/components/App/Dashboard/components/TopClients/TopClients.module.pcss delete mode 100644 client2/src/components/App/Dashboard/components/TopClients/TopClients.tsx delete mode 100644 client2/src/components/App/Dashboard/components/TopClients/index.ts delete mode 100644 client2/src/components/App/Dashboard/components/TopDomains/TopDomains.module.pcss delete mode 100644 client2/src/components/App/Dashboard/components/TopDomains/TopDomains.tsx delete mode 100644 client2/src/components/App/Dashboard/components/TopDomains/index.ts delete mode 100644 client2/src/components/App/Dashboard/components/index.ts delete mode 100644 client2/src/components/App/Dashboard/index.ts delete mode 100644 client2/src/components/App/Errors/ErrorBoundary.tsx delete mode 100644 client2/src/components/App/Errors/Errors.module.pcss delete mode 100644 client2/src/components/App/Errors/index.ts delete mode 100644 client2/src/components/App/Header/Header.module.pcss delete mode 100644 client2/src/components/App/Header/Header.tsx delete mode 100644 client2/src/components/App/Header/index.ts delete mode 100644 client2/src/components/App/Login/ForgotPassword.tsx delete mode 100644 client2/src/components/App/Login/Login.module.pcss delete mode 100644 client2/src/components/App/Login/Login.tsx delete mode 100644 client2/src/components/App/Login/index.ts delete mode 100644 client2/src/components/App/Routes/Paths.ts delete mode 100644 client2/src/components/App/Routes/Routes.module.pcss delete mode 100644 client2/src/components/App/Routes/Routes.tsx delete mode 100644 client2/src/components/App/Routes/index.ts delete mode 100644 client2/src/components/App/Settings/GeneralSettings/GeneralSettings.tsx delete mode 100644 client2/src/components/App/Settings/GeneralSettings/components/Common.module.pcss delete mode 100644 client2/src/components/App/Settings/GeneralSettings/components/General.tsx delete mode 100644 client2/src/components/App/Settings/GeneralSettings/components/QueryLog.tsx delete mode 100644 client2/src/components/App/Settings/GeneralSettings/components/Statistics.tsx delete mode 100644 client2/src/components/App/Settings/GeneralSettings/components/index.ts delete mode 100644 client2/src/components/App/Settings/GeneralSettings/index.ts delete mode 100644 client2/src/components/App/Settings/index.ts delete mode 100644 client2/src/components/App/SetupGuide/SetupGuide.module.pcss delete mode 100644 client2/src/components/App/SetupGuide/SetupGuide.tsx delete mode 100644 client2/src/components/App/SetupGuide/index.tsx delete mode 100644 client2/src/components/App/Sidebar/Sidebar.module.pcss delete mode 100644 client2/src/components/App/Sidebar/Sidebar.tsx delete mode 100644 client2/src/components/App/Sidebar/index.ts delete mode 100644 client2/src/components/App/index.ts delete mode 100644 client2/src/components/Install/Install.tsx delete mode 100644 client2/src/components/Install/components/AdminInterface/AdminInterface.tsx delete mode 100644 client2/src/components/Install/components/AdminInterface/index.ts delete mode 100644 client2/src/components/Install/components/Auth/Auth.tsx delete mode 100644 client2/src/components/Install/components/Auth/index.ts delete mode 100644 client2/src/components/Install/components/ConfigureDevices/ConfigureDevices.tsx delete mode 100644 client2/src/components/Install/components/ConfigureDevices/index.ts delete mode 100644 client2/src/components/Install/components/DnsServer/DnsServer.tsx delete mode 100644 client2/src/components/Install/components/DnsServer/index.ts delete mode 100644 client2/src/components/Install/components/StepButtons/StepButtons.tsx delete mode 100644 client2/src/components/Install/components/StepButtons/index.ts delete mode 100644 client2/src/components/Install/components/Stepper/Stepper.module.pcss delete mode 100644 client2/src/components/Install/components/Stepper/Stepper.tsx delete mode 100644 client2/src/components/Install/components/Stepper/index.ts delete mode 100644 client2/src/components/Install/components/Welcome/Welcome.tsx delete mode 100644 client2/src/components/Install/components/Welcome/index.ts delete mode 100644 client2/src/components/Install/index.ts delete mode 100644 client2/src/components/common/controls/Button/Button.tsx delete mode 100644 client2/src/components/common/controls/Button/index.ts delete mode 100644 client2/src/components/common/controls/Input/Input.tsx delete mode 100644 client2/src/components/common/controls/Input/index.ts delete mode 100644 client2/src/components/common/controls/Radio/Radio.module.pcss delete mode 100644 client2/src/components/common/controls/Radio/Radio.tsx delete mode 100644 client2/src/components/common/controls/Radio/index.ts delete mode 100644 client2/src/components/common/controls/Switch/Switch.tsx delete mode 100644 client2/src/components/common/controls/Switch/index.ts delete mode 100644 client2/src/components/common/controls/index.ts delete mode 100644 client2/src/components/common/formating/code.tsx delete mode 100644 client2/src/components/common/formating/danger.tsx delete mode 100644 client2/src/components/common/formating/externalLink.tsx delete mode 100644 client2/src/components/common/formating/index.ts delete mode 100644 client2/src/components/common/formating/p.tsx delete mode 100644 client2/src/components/common/index.ts delete mode 100644 client2/src/components/common/ui/Icon/Icon.module.pcss delete mode 100644 client2/src/components/common/ui/Icon/Icon.tsx delete mode 100644 client2/src/components/common/ui/Icon/index.ts delete mode 100644 client2/src/components/common/ui/Icons/Icon.pcss delete mode 100644 client2/src/components/common/ui/Icons/index.tsx delete mode 100644 client2/src/components/common/ui/LangSelect/LangSelect.module.pcss delete mode 100644 client2/src/components/common/ui/LangSelect/LangSelect.tsx delete mode 100644 client2/src/components/common/ui/LangSelect/index.tsx delete mode 100644 client2/src/components/common/ui/Link.tsx delete mode 100644 client2/src/components/common/ui/Mask/Mask.module.pcss delete mode 100644 client2/src/components/common/ui/Mask/Mask.tsx delete mode 100644 client2/src/components/common/ui/Mask/index.ts delete mode 100644 client2/src/components/common/ui/Notifications/index.ts delete mode 100644 client2/src/components/common/ui/Notifications/notifications.tsx delete mode 100644 client2/src/components/common/ui/index.ts delete mode 100644 client2/src/components/common/ui/layouts/CommonLayout.tsx delete mode 100644 client2/src/components/common/ui/layouts/CommonModalLayout.tsx delete mode 100644 client2/src/components/common/ui/layouts/ConfirmModalLayout.tsx delete mode 100644 client2/src/components/common/ui/layouts/InnerLayout.tsx delete mode 100644 client2/src/components/common/ui/layouts/index.ts delete mode 100644 client2/src/lib/ant/Modal.pcss delete mode 100644 client2/src/lib/ant/Radio.pcss delete mode 100644 client2/src/lib/ant/Sidebar.pcss delete mode 100644 client2/src/lib/ant/Tabs.pcss delete mode 100644 client2/src/lib/ant/ant-overrides.less delete mode 100644 client2/src/lib/ant/ant.less delete mode 100644 client2/src/lib/ant/index.ts delete mode 100644 client2/src/lib/apis/blockedServices.ts delete mode 100644 client2/src/lib/apis/clients.ts delete mode 100644 client2/src/lib/apis/dhcp.ts delete mode 100644 client2/src/lib/apis/filtering.ts delete mode 100644 client2/src/lib/apis/global.ts delete mode 100644 client2/src/lib/apis/i18n.ts delete mode 100644 client2/src/lib/apis/install.ts delete mode 100644 client2/src/lib/apis/log.ts delete mode 100644 client2/src/lib/apis/mobileconfig.ts delete mode 100644 client2/src/lib/apis/parental.ts delete mode 100644 client2/src/lib/apis/rewrite.ts delete mode 100644 client2/src/lib/apis/safebrowsing.ts delete mode 100644 client2/src/lib/apis/safesearch.ts delete mode 100644 client2/src/lib/apis/stats.ts delete mode 100644 client2/src/lib/apis/tls.ts delete mode 100644 client2/src/lib/consts/common.ts delete mode 100644 client2/src/lib/consts/forms.ts delete mode 100644 client2/src/lib/consts/install.ts delete mode 100644 client2/src/lib/entities/AccessList.ts delete mode 100644 client2/src/lib/entities/AccessListResponse.ts delete mode 100644 client2/src/lib/entities/AccessSetRequest.ts delete mode 100644 client2/src/lib/entities/AddUrlRequest.ts delete mode 100644 client2/src/lib/entities/AddressInfo.ts delete mode 100644 client2/src/lib/entities/AddressInfoBeta.ts delete mode 100644 client2/src/lib/entities/AddressesInfo.ts delete mode 100644 client2/src/lib/entities/AddressesInfoBeta.ts delete mode 100644 client2/src/lib/entities/BlockedServicesArray.ts delete mode 100644 client2/src/lib/entities/CheckConfigRequest.ts delete mode 100644 client2/src/lib/entities/CheckConfigRequestBeta.ts delete mode 100644 client2/src/lib/entities/CheckConfigRequestInfo.ts delete mode 100644 client2/src/lib/entities/CheckConfigRequestInfoBeta.ts delete mode 100644 client2/src/lib/entities/CheckConfigResponse.ts delete mode 100644 client2/src/lib/entities/CheckConfigResponseInfo.ts delete mode 100644 client2/src/lib/entities/CheckConfigStaticIpInfo.ts delete mode 100644 client2/src/lib/entities/CheckConfigStaticIpInfoStatic.ts delete mode 100644 client2/src/lib/entities/Client.ts delete mode 100644 client2/src/lib/entities/ClientAuto.ts delete mode 100644 client2/src/lib/entities/ClientDelete.ts delete mode 100644 client2/src/lib/entities/ClientFindSubEntry.ts delete mode 100644 client2/src/lib/entities/ClientUpdate.ts delete mode 100644 client2/src/lib/entities/Clients.ts delete mode 100644 client2/src/lib/entities/ClientsArray.ts delete mode 100644 client2/src/lib/entities/ClientsAutoArray.ts delete mode 100644 client2/src/lib/entities/ClientsFindEntry.ts delete mode 100644 client2/src/lib/entities/ClientsFindResponse.ts delete mode 100644 client2/src/lib/entities/DNSConfig.ts delete mode 100644 client2/src/lib/entities/DhcpConfig.ts delete mode 100644 client2/src/lib/entities/DhcpConfigV4.ts delete mode 100644 client2/src/lib/entities/DhcpConfigV6.ts delete mode 100644 client2/src/lib/entities/DhcpLease.ts delete mode 100644 client2/src/lib/entities/DhcpSearchResult.ts delete mode 100644 client2/src/lib/entities/DhcpSearchResultOtherServer.ts delete mode 100644 client2/src/lib/entities/DhcpSearchResultStaticIP.ts delete mode 100644 client2/src/lib/entities/DhcpSearchV4.ts delete mode 100644 client2/src/lib/entities/DhcpSearchV6.ts delete mode 100644 client2/src/lib/entities/DhcpStaticLease.ts delete mode 100644 client2/src/lib/entities/DhcpStatus.ts delete mode 100644 client2/src/lib/entities/DnsAnswer.ts delete mode 100644 client2/src/lib/entities/DnsQuestion.ts delete mode 100644 client2/src/lib/entities/Error.ts delete mode 100644 client2/src/lib/entities/Filter.ts delete mode 100644 client2/src/lib/entities/FilterCheckHostResponse.ts delete mode 100644 client2/src/lib/entities/FilterConfig.ts delete mode 100644 client2/src/lib/entities/FilterRefreshRequest.ts delete mode 100644 client2/src/lib/entities/FilterRefreshResponse.ts delete mode 100644 client2/src/lib/entities/FilterSetUrl.ts delete mode 100644 client2/src/lib/entities/FilterStatus.ts delete mode 100644 client2/src/lib/entities/GetVersionRequest.ts delete mode 100644 client2/src/lib/entities/InitialConfiguration.ts delete mode 100644 client2/src/lib/entities/InitialConfigurationBeta.ts delete mode 100644 client2/src/lib/entities/Login.ts delete mode 100644 client2/src/lib/entities/NetInterface.ts delete mode 100644 client2/src/lib/entities/NetInterfaces.ts delete mode 100644 client2/src/lib/entities/ProfileInfo.ts delete mode 100644 client2/src/lib/entities/QueryLog.ts delete mode 100644 client2/src/lib/entities/QueryLogConfig.ts delete mode 100644 client2/src/lib/entities/QueryLogItem.ts delete mode 100644 client2/src/lib/entities/RemoveUrlRequest.ts delete mode 100644 client2/src/lib/entities/ResultRule.ts delete mode 100644 client2/src/lib/entities/RewriteEntry.ts delete mode 100644 client2/src/lib/entities/RewriteList.ts delete mode 100644 client2/src/lib/entities/ServerStatus.ts delete mode 100644 client2/src/lib/entities/Stats.ts delete mode 100644 client2/src/lib/entities/StatsConfig.ts delete mode 100644 client2/src/lib/entities/TlsConfig.ts delete mode 100644 client2/src/lib/entities/TopArrayEntry.ts delete mode 100644 client2/src/lib/entities/UpstreamsConfig.ts delete mode 100644 client2/src/lib/entities/UpstreamsConfigResponse.ts delete mode 100644 client2/src/lib/entities/VersionInfo.ts delete mode 100644 client2/src/lib/entities/WhoisInfo.ts delete mode 100644 client2/src/lib/helpers/apiErrors.ts delete mode 100644 client2/src/lib/helpers/installHelpers.ts delete mode 100644 client2/src/lib/theme/Content.module.pcss delete mode 100644 client2/src/lib/theme/Form.module.pcss delete mode 100644 client2/src/lib/theme/Install.module.pcss delete mode 100644 client2/src/lib/theme/Link.module.pcss delete mode 100644 client2/src/lib/theme/Text.module.pcss delete mode 100644 client2/src/lib/theme/colors.ts delete mode 100644 client2/src/lib/theme/index.ts delete mode 100644 client2/src/localization/index.ts delete mode 100644 client2/src/localization/locales/en.json delete mode 100644 client2/src/localization/locales/index.ts delete mode 100644 client2/src/localization/locales/ru.json delete mode 100644 client2/src/main.pcss delete mode 100644 client2/src/store/index.ts delete mode 100644 client2/src/store/installStore.ts delete mode 100644 client2/src/store/store.ts delete mode 100644 client2/src/store/stores/Dasnboard.ts delete mode 100644 client2/src/store/stores/GeneralSettings.ts delete mode 100644 client2/src/store/stores/Install.ts delete mode 100644 client2/src/store/stores/Login.ts delete mode 100644 client2/src/store/stores/System.ts delete mode 100644 client2/src/store/stores/ui.ts delete mode 100644 client2/src/store/stores/utils.ts delete mode 100644 client2/tsconfig.json delete mode 100644 client2/yarn.lock diff --git a/.gitignore b/.gitignore index 2d3d46fc73f..3873fd3d7c1 100644 --- a/.gitignore +++ b/.gitignore @@ -12,7 +12,6 @@ /agh-backup/ /bin/ /build/* -/build2/* /data/ /dist/ /filtering/tests/filtering.TestLotsOfRules*.pprof @@ -26,4 +25,3 @@ leases.db node_modules/ !/build/gitkeep -!/build2/gitkeep diff --git a/CHANGELOG.md b/CHANGELOG.md index 225bb68ba8e..add4b3e986b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,15 @@ See also the [v0.107.23 GitHub milestone][ms-v0.107.23]. NOTE: Add new changes BELOW THIS COMMENT. --> +### Removed + + * The “beta frontend” and the corresponding APIs. They never quite worked + properly, and the future new version of AdGuard Home API will probably be + different. + + Correspondingly, the configuration parameter `beta_bind_port` has been + removed as well. + ## [v0.107.22] - 2023-01-19 @@ -61,7 +70,6 @@ See also the [v0.107.22 GitHub milestone][ms-v0.107.22]. - ## [v0.107.21] - 2022-12-15 See also the [v0.107.21 GitHub milestone][ms-v0.107.21]. diff --git a/Makefile b/Makefile index cca890174ad..ad895f1641b 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,6 @@ .POSIX: CHANNEL = development -CLIENT_BETA_DIR = client2 CLIENT_DIR = client COMMIT = $$( git rev-parse --short HEAD ) DIST_DIR = dist @@ -29,10 +28,6 @@ SIGN = 1 VERBOSE = 0 VERSION = v0.0.0 YARN = yarn -YARN_FLAGS = --cwd $(CLIENT_BETA_DIR) -YARN_INSTALL_FLAGS = $(YARN_FLAGS) --network-timeout 120000 --silent\ - --ignore-engines --ignore-optional --ignore-platform\ - --ignore-scripts NEXTAPI = 0 @@ -93,17 +88,13 @@ init: ; git config core.hooksPath ./scripts/hooks js-build: $(NPM) $(NPM_FLAGS) run build-prod - $(YARN) $(YARN_FLAGS) build js-deps: $(NPM) $(NPM_INSTALL_FLAGS) ci - $(YARN) $(YARN_INSTALL_FLAGS) install # TODO(a.garipov): Remove the legacy client tasks support once the new # client is done and the old one is removed. js-lint: ; $(NPM) $(NPM_FLAGS) run lint js-test: ; $(NPM) $(NPM_FLAGS) run test -js-beta-lint: ; $(YARN) $(YARN_FLAGS) lint -js-beta-test: ; # TODO(v.abdulmyanov): Add tests for the new client. go-build: ; $(ENV) "$(SHELL)" ./scripts/make/go-build.sh go-deps: ; $(ENV) "$(SHELL)" ./scripts/make/go-deps.sh diff --git a/build2/gitkeep b/build2/gitkeep deleted file mode 100644 index e67b104b213..00000000000 --- a/build2/gitkeep +++ /dev/null @@ -1 +0,0 @@ -Keep this file non-hidden for Go's embedding to work. diff --git a/client2/.eslintignore b/client2/.eslintignore deleted file mode 100644 index d30c2950a46..00000000000 --- a/client2/.eslintignore +++ /dev/null @@ -1,6 +0,0 @@ -scripts -node_modules -postcss.config.js -src/lib/entities -src/lib/apis -openApi \ No newline at end of file diff --git a/client2/.eslintrc b/client2/.eslintrc deleted file mode 100644 index 86f6ae47f11..00000000000 --- a/client2/.eslintrc +++ /dev/null @@ -1,5 +0,0 @@ -{ - "extends": [ - "./scripts/lint/dev.js" - ] -} \ No newline at end of file diff --git a/client2/declaration.d.ts b/client2/declaration.d.ts deleted file mode 100644 index 87c531507d9..00000000000 --- a/client2/declaration.d.ts +++ /dev/null @@ -1,18 +0,0 @@ -declare module '*.pcss' { - const content: {[className: string]: string}; - export default content; -} -declare module '*.css' { - const content: {[className: string]: string}; - export default content; -} -declare module '*.png' -declare module '*.jpg' -declare let AUTH_TOKEN: string; -declare let MAIN_TOKEN: string | undefined; -declare let NO_CAPTCHA: boolean | undefined; -declare module 'dygraphs'; -declare module '@novnc/novnc/core/rfb'; -// cp - CloudPayments script -declare let cp: any; -declare const DEV: any; diff --git a/client2/package.json b/client2/package.json deleted file mode 100644 index a28282e3161..00000000000 --- a/client2/package.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "author": "Performix", - "private": true, - "name": "adguard-home", - "version": "0.1.0", - "scripts": { - "build": "webpack --config ./scripts/webpack/webpack.config.prod.js", - "start": "webpack serve --config ./scripts/webpack/webpack.config.dev.js", - "generate": "rm -rf ./src/lib/entities ./src/lib/apis && ts-node --compiler-options '{ \"module\": \"CommonJS\" }' ./scripts/generator/index.ts", - "translations:check": "ts-node --compiler-options '{ \"module\": \"CommonJS\" }' ./scripts/plugins/checkTranslations.ts", - "lint": "eslint -c ./scripts/lint/prod.js --ext .tsx --ext .ts ./", - "go:build": "cd .. && make REBUILD_CLIENT=0 build", - "go:run": "sudo ../AdguardHome" - }, - "license": "ISC", - "dependencies": { - "@adguard/translate": "^0.2.0", - "@ant-design/icons": "^4.4.0", - "@sentry/react": "^5.27.0", - "antd": "^4.7.2", - "classnames": "^2.2.6", - "dayjs": "^1.9.3", - "formik": "^2.2.0", - "mobx": "^6.0.1", - "mobx-react-lite": "^3.0.1", - "qs": "^6.9.4", - "react": "^17.0.0", - "react-dom": "^17.0.0", - "react-router-dom": "^5.2.0", - "recharts": "^2.0.3" - }, - "devDependencies": { - "@types/classnames": "^2.2.10", - "@types/qs": "^6.9.5", - "@types/react": "^16.9.53", - "@types/react-dom": "^16.9.8", - "@types/react-redux": "^7.1.9", - "@types/react-router-dom": "^5.1.6", - "@typescript-eslint/eslint-plugin": "^4.5.0", - "@typescript-eslint/parser": "^4.5.0", - "antd-dayjs-webpack-plugin": "^1.0.1", - "autoprefixer": "^10.0.1", - "connect-history-api-fallback": "^1.6.0", - "copy-webpack-plugin": "^6.2.1", - "css-loader": "^5.0.0", - "eslint": "^7.11.0", - "eslint-config-airbnb-base": "^14.2.0", - "eslint-config-airbnb-typescript": "^12.0.0", - "eslint-import-resolver-typescript": "^2.3.0", - "eslint-loader": "^4.0.2", - "eslint-plugin-import": "^2.22.1", - "eslint-plugin-react": "^7.21.5", - "eslint-plugin-react-hooks": "^4.2.0", - "file-loader": "^6.1.1", - "html-webpack-plugin": "^4.5.0", - "http-proxy-middleware": "^1.0.6", - "less": "^3.12.2", - "less-loader": "^5.0.0", - "mini-css-extract-plugin": "^1.1.1", - "optimize-css-assets-webpack-plugin": "^5.0.4", - "postcss": "^8.1.2", - "postcss-calc": "^7.0.5", - "postcss-css-variables": "^0.17.0", - "postcss-custom-media": "^7.0.8", - "postcss-import": "^13.0.0", - "postcss-inline-svg": "^4.1.0", - "postcss-loader": "^4.0.4", - "postcss-mixins": "^7.0.1", - "postcss-modules": "^3.2.2", - "postcss-nested": "^5.0.1", - "postcss-preset-env": "^6.7.0", - "postcss-reporter": "^7.0.1", - "postcss-variables": "^1.1.1", - "style-loader": "^2.0.0", - "stylelint": "^13.7.2", - "stylelint-webpack-plugin": "^2.1.1", - "terser-webpack-plugin": "^5.0.0", - "ts-loader": "^8.0.6", - "ts-morph": "^8.1.2", - "ts-node": "^9.0.0", - "typescript": "^4.0.3", - "url-loader": "^4.1.1", - "webpack": "^5.10.0", - "webpack-cli": "^4.2.0", - "webpack-dev-server": "^3.11.0", - "webpack-merge": "^5.2.0", - "yaml": "^1.10.0" - } -} diff --git a/client2/postcss.config.js b/client2/postcss.config.js deleted file mode 100644 index ee95a23491c..00000000000 --- a/client2/postcss.config.js +++ /dev/null @@ -1,17 +0,0 @@ -module.exports = { - plugins: [ - ['postcss-import', {}], - ['postcss-nested', {}], - ['postcss-custom-media', {}], - ['postcss-variables', {}], - ['postcss-calc', {}], - ['postcss-mixins', {}], - ['postcss-preset-env', { stage: 3, features: { 'nesting-rules': true } }], - ['postcss-reporter', { clearMessages: true }], - ['postcss-inline-svg', { - paths: ['frontend/icons', 'vendor/adguard/utils-bundle/src/Resources/frontend/icons'], - svgo: { plugins: [{ cleanupAttrs: true }] } - }], - ['autoprefixer'], - ] -}; diff --git a/client2/public/assets/apple-touch-icon-180x180.png b/client2/public/assets/apple-touch-icon-180x180.png deleted file mode 100644 index ebc0be5067efcf4d8366a70cb7a4777327d9cfc4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2137 zcmV-f2&VUmP)crq!>P&7z9NmVd#Fb-aXcxPNW8d~3CPYP5Q2w0dZ>d1tbDYQ1xAzjt%N ze0Rftd&Pr*$B2Z<@WpcUc-0}JI{r~-|*0OWDf_1`ulh2vW>Cox+>i+-!vf8eHpys`dN!X}ogi_33W6e#hp^`TY5V$cuZwiN)o~qSmLO)uxZh zn!@D8w%@y{*0I0h!shho;qv3T;Jvioxw720n9ibgxrLw3s=VFA%;nO_eqR=-A=#DjK%w$)VEh)xzM(gTRt$ zvwLo}f8+7y-|ymVw0(EFhwu0B`~Lg2*}jp^my*ezkIt5_*|(+Au#3c*^ZN67!-3T7 z*Sg%o^Z4|N%aMM-i{|p_Z?=HB-oV}M;nnKe*X`MIxPknBVc?cf5ql=+5f_h~xkO1(HcbK~#7F?b!pDTTL9t@n7vs*7nry+TNr#*L=*{ zwr$(CZMUzdSl&f)Cz-jq$vN|R1>b|=AKH*4Ns=To#rM zweQfelfgiYZtfnQUfw>we*OW0LBSz#DxqQFts~kSNCUKi&Rx28>)xX$^wuk=ck4bi zwJOmy`u6khKOhqNXciUS&Oof7R>b(k#)ZJK;u8{+h#IQGm>e6I0tZQL-JY}M`ei#r#Ef@kGziJYl8;2i$ z`<+_y2YCFcMYQoR{PZ`qXaIQpqd~N>KYj|NmSuoTC*jfm2I8mx+^9t!;Pb!e=zk~U zrzumZWj^3DO?32hRGLApmTu{Dubz2xxax^2XWDhP-Qx`ZYp?96BfM~Rf5M->t=%25>e6Rs1lM-Rg40! z(L~+SWy@ErT(#P2bS$cMrE125*FQwfnzfOrv~IoS=;5d~o2oII!A)hXwP7P_MQ*Yb z{Wq$O7)#Ym1;5S2sx6UF*xGdTj7U@o*+x~xg5P#x-6kmP*x6L{;2o$|Le=d8zh*?m zZYYH8X&l|Pws{^^murTCR=3l=8==r_X~XCe6RM@>vJ4U-LJ?81Z$A_c9IPK*Slj%M zC;Rt-_B-{V!%$dJFS_4vsNqXl^neIQIuSK{LZEO|5q+$#Ie@YlWP%XWh^pf|ps=hq z`ot8}7;mI3W5ve?mHmJ zCBk3@6fR#Ogm$TG#zM-*529Qp3=Up{!u7o*`5)9OHBvS=Ac`rEFt~XO3cL55L9H_r zDVx4KAWR}*ar*)k?x0p=Kla~raqbc(r+-6}=1^AiAy7NQ_zpOecMQ>P@8M*Ic2tY@908{j-^Y6NrxZA$UdOFO z=PrzdbDG}KQuMaZa9U;4nvNc9hBIqvXdLYx2qzc%rD1eQPdLB124%GSSGa^HW9p*E zoq?-()3GW#KL{?wJc|(OHpc|l@<&_WW{@OFk|arzBuSDaNs=T%*+g7R25BU$p?<* zENJFmG`ug8-g|n_^zpx6=u(U_;VCkOizP*NE0N4yB1Eo%5czgO;GBe&_x)q#gM`%* zA|=`b)eKci%Jc>JU4c4CNz9@ci6%%X>Al!9{JnbZ&~(wflk@JNQn*BD}wuGR79zmm^Xg#t+ zs6(X8P}DL02~7a-!n@&eSWm)bpw&S98PGgK7a`0a^hx>-6+oP1d5;j;v#O)*~q`)>}ED;S$h>n(ma8|4)9OLl!0KQBZpFaK`z*o>jSfdRP)fwl!v$d4>A9e^qa4`1b};t%6fMCm)kKI~ z`Eb|+^Uf~?ZoeCZhftoT6?&_QNM_}s23T@wHSh+!$oR|6Igz9n6hZ10Q_C^p0 z29WV}_6Crs@Y4^V-El$^3O!F5BT(%pv~E# zg6MR2!R0hd1wcs*I8}eH-?bg?4!|BAuR9B66z0BuM@m#th+uP$ljnjik6i`PXm1J6 zQqOgl-2JVU%&@uoSBc4LMW;;F*?9U=wYVV7NMmxa8!2Gf&_5_h!e+y+|~ls z|JUbk#mj+YhEf3#lH~^aiX|=eD7MbhXjwYyz|mWv93RZ(p;p z1xqUqy%3u&?M2ab;Bfg}V8Y26M&$qJu3MQSMRpuc>aaUk=x02f6_jlnU_6LX=ub42 z7D<8c#DNfs zV+{geR!3Z&PB=E<5yEN-41=;teWEhqE?xZrN@Qmabyb3rm~XHe9H{#;L;&F~4sM4A zb!P~H>mGt7bP{!GjA$`Yg85BC-~)pQ&_GM{gGTkpkjPZ-dsIh_es#Kol19B^WRtH) zR7w*052|KI4Zsh3}-0D=pcmSkue;6$%;{ZCs{bId+VqK!r z+3z4kzyLQ|7i*(mHonoVZ8^OSAzZq>kW6PK9OE9ru>lL9r?)Kfg^_MzN~YILP$t}t zo`Vm7FH+=I5{LPahCSdQW%JMY?=%(wiOS$UCk4J=)E`0*xE zOxlHJqZgnH&P414FyTgY-4Fw4Pd`MyE+*4_K$R94sQ& - - - - - diff --git a/client2/public/index.html b/client2/public/index.html deleted file mode 100644 index 2e2d1e33291..00000000000 --- a/client2/public/index.html +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - AdGuard Home - - - -
- - diff --git a/client2/public/install.html b/client2/public/install.html deleted file mode 100644 index e0b70d14a32..00000000000 --- a/client2/public/install.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - Setup AdGuard Home - - - -
- - diff --git a/client2/public/login.html b/client2/public/login.html deleted file mode 100644 index 38145e1582a..00000000000 --- a/client2/public/login.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - Login - - - -
- - diff --git a/client2/scripts/consts.ts b/client2/scripts/consts.ts deleted file mode 100644 index bbec9361109..00000000000 --- a/client2/scripts/consts.ts +++ /dev/null @@ -1,12 +0,0 @@ -export const OPEN_API_PATH = '../openapi/openapi.yaml'; -export const ENT_DIR = './src/lib/entities'; -export const API_DIR = './src/lib/apis'; -export const LOCALE_FOLDER_PATH = './src/lib/intl/__locales'; -export const TRANSLATOR_CLASS_NAME = 'Translator'; -export const USE_INTL_NAME = 'useIntl'; - -export const trimQuotes = (str: string) => { - return str.replace(/\'|\"/g, ''); -}; - -export const GENERATOR_ENTITY_ALLIAS = 'Entities/'; \ No newline at end of file diff --git a/client2/scripts/generator/index.ts b/client2/scripts/generator/index.ts deleted file mode 100644 index 19ac2256d3b..00000000000 --- a/client2/scripts/generator/index.ts +++ /dev/null @@ -1,18 +0,0 @@ -import * as fs from 'fs'; -import * as YAML from 'yaml'; -import { OPEN_API_PATH } from '../consts'; - -import EntitiesGenerator from './src/generateEntities'; -import ApisGenerator from './src/generateApis'; - - -const generateApi = (openApi: Record) => { - const ent = new EntitiesGenerator(openApi); - ent.save(); - - const api = new ApisGenerator(openApi); - api.save(); -} - -const openApiFile = fs.readFileSync(OPEN_API_PATH, 'utf8'); -generateApi(YAML.parse(openApiFile)); diff --git a/client2/scripts/generator/src/generateApis.ts b/client2/scripts/generator/src/generateApis.ts deleted file mode 100644 index 4201da2bff6..00000000000 --- a/client2/scripts/generator/src/generateApis.ts +++ /dev/null @@ -1,317 +0,0 @@ -/* eslint-disable no-template-curly-in-string */ -/* eslint-disable @typescript-eslint/no-unused-expressions */ -import * as fs from 'fs'; -import * as path from 'path'; -import { stringify } from 'qs'; -// eslint-disable-next-line import/no-extraneous-dependencies -import * as morph from 'ts-morph'; - -import { - API_DIR as API_DIR_CONST, - GENERATOR_ENTITY_ALLIAS, -} from '../../consts'; -import { toCamel, capitalize, schemaParamParser } from './utils'; - - -const API_DIR = path.resolve(API_DIR_CONST); -if (!fs.existsSync(API_DIR)) { - fs.mkdirSync(API_DIR); -} - -const { Project, QuoteKind } = morph; - - -class ApiGenerator { - project = new Project({ - tsConfigFilePath: './tsconfig.json', - addFilesFromTsConfig: false, - manipulationSettings: { - quoteKind: QuoteKind.Single, - usePrefixAndSuffixTextForRename: false, - useTrailingCommas: true, - }, - }); - - openapi: Record; - - serverUrl: string; - - paths: any; - - /* interface Controllers { - [controller: string]: { - [operationId: string]: { parameters - from opneApi, responses - from opneApi, method } - } - } */ - controllers: Record = {}; - - apis: morph.SourceFile[] = []; - - constructor(openapi: Record) { - this.openapi = openapi; - this.paths = openapi.paths; - this.serverUrl = openapi.servers[0].url; - - Object.keys(this.paths).forEach((pathKey) => { - Object.keys(this.paths[pathKey]).forEach((method) => { - const { - tags, operationId, parameters, responses, requestBody, security, - } = this.paths[pathKey][method]; - const controller = toCamel((tags ? tags[0] : pathKey.split('/')[1]).replace('-controller', '')); - - if (this.controllers[controller]) { - this.controllers[controller][operationId] = { - parameters, - responses, - method, - requestBody, - security, - pathKey: pathKey.replace(/{/g, '${'), - }; - } else { - this.controllers[controller] = { [operationId]: { - parameters, - responses, - method, - requestBody, - security, - pathKey: pathKey.replace(/{/g, '${'), - } }; - } - }); - }); - - this.generateApiFiles(); - } - - generateApiFiles = () => { - Object.keys(this.controllers).forEach(this.generateApiFile); - }; - - generateApiFile = (cName: string) => { - const apiFile = this.project.createSourceFile(`${API_DIR}/${cName}.ts`); - apiFile.addStatements([ - '// This file was autogenerated. Please do not change.', - '// All changes will be overwrited on commit.', - '', - ]); - - // const schemaProperties = schemas[schemaName].properties; - const importEntities: any[] = []; - - // add api class to file - const apiClass = apiFile.addClass({ - name: `${capitalize(cName)}Api`, - isDefaultExport: true, - }); - - // get operations of controller - const controllerOperations = this.controllers[cName]; - const operationList = Object.keys(controllerOperations).sort(); - // for each operation add fetcher - operationList.forEach((operation) => { - const { - requestBody, responses, parameters, method, pathKey, security, - } = controllerOperations[operation]; - - const queryParams: any[] = []; // { name, type } - const bodyParam: any[] = []; // { name, type } - - let hasResponseBodyType: /* boolean | ReturnType */ false | [string, boolean, boolean, boolean, boolean] = false; - let contentType = ''; - if (parameters) { - parameters.forEach((p: any) => { - const [ - pType, isArray, isClass, isImport, - ] = schemaParamParser(p.schema, this.openapi); - - if (isImport) { - importEntities.push({ type: pType, isClass }); - } - if (p.in === 'query') { - queryParams.push({ - name: p.name, type: `${pType}${isArray ? '[]' : ''}`, hasQuestionToken: !p.required }); - } - }); - } - if (queryParams.length > 0) { - const imp = apiFile.getImportDeclaration((i) => { - return i.getModuleSpecifierValue() === 'qs'; - }); if (!imp) { - apiFile.addImportDeclaration({ - moduleSpecifier: 'qs', - defaultImport: 'qs', - }); - } - } - if (requestBody) { - let content = requestBody.content; - const { $ref }: { $ref: string } = requestBody; - - if (!content && $ref) { - const name = $ref.split('/').pop() as string; - content = this.openapi.components.requestBodies[name].content; - } - - [contentType] = Object.keys(content); - const data = content[contentType]; - - const [ - pType, isArray, isClass, isImport, - ] = schemaParamParser(data.schema, this.openapi); - - if (isImport) { - importEntities.push({ type: pType, isClass }); - bodyParam.push({ name: pType.toLowerCase(), type: `${isClass ? 'I' : ''}${pType}${isArray ? '[]' : ''}`, isClass, pType }); - } else { - bodyParam.push({ name: 'data', type: `${pType}${isArray ? '[]' : ''}` }); - - } - } - if (responses['200']) { - const { content, headers } = responses['200']; - if (content && (content['*/*'] || content['application/json'])) { - const { schema, examples } = content['*/*'] || content['application/json']; - - if (!schema) { - process.exit(0); - } - - const propType = schemaParamParser(schema, this.openapi); - const [pType, , isClass, isImport] = propType; - - if (isImport) { - importEntities.push({ type: pType, isClass }); - } - hasResponseBodyType = propType; - } - } - let returnType = ''; - if (hasResponseBodyType) { - const [pType, isArray, isClass] = hasResponseBodyType as any; - let data = `Promise<${isClass ? 'I' : ''}${pType}${isArray ? '[]' : ''}`; - returnType = data; - } else { - returnType = 'Promise b.isClass); - if (shouldValidate.length > 0) { - returnType += ' | string[]'; - } - // append Error to default type return; - returnType += ' | Error>'; - - const fetcher = apiClass.addMethod({ - isAsync: true, - isStatic: true, - name: operation, - returnType, - }); - const params = [...queryParams, ...bodyParam].sort((a, b) => (Number(!!a.hasQuestionToken) - Number(!!b.hasQuestionToken))); - fetcher.addParameters(params); - - fetcher.setBodyText((w) => { - // Add data to URLSearchParams - if (contentType === 'text/plain') { - bodyParam.forEach((b) => { - w.writeLine(`const params = String(${b.name});`); - }); - } else { - if (shouldValidate.length > 0) { - w.writeLine(`const haveError: string[] = [];`); - shouldValidate.forEach((b) => { - w.writeLine(`const ${b.name}Valid = new ${b.pType}(${b.name});`); - w.writeLine(`haveError.push(...${b.name}Valid.validate());`); - }); - w.writeLine(`if (haveError.length > 0) {`); - w.writeLine(` return Promise.resolve(haveError);`) - w.writeLine(`}`); - } - } - // Switch return of fetch in case on queryParams - if (queryParams.length > 0) { - w.writeLine('const queryParams = {'); - queryParams.forEach((q) => { - w.writeLine(` ${q.name}: ${q.name},`); - }); - w.writeLine('}'); - w.writeLine(`return await fetch(\`${this.serverUrl}${pathKey}?\${qs.stringify(queryParams, { arrayFormat: 'comma' })}\`, {`); - } else { - w.writeLine(`return await fetch(\`${this.serverUrl}${pathKey}\`, {`); - } - // Add method - w.writeLine(` method: '${method.toUpperCase()}',`); - - // add Fetch options - if (contentType && contentType !== 'multipart/form-data') { - w.writeLine(' headers: {'); - w.writeLine(` 'Content-Type': '${contentType}',`); - w.writeLine(' },'); - } - if (contentType) { - switch (contentType) { - case 'text/plain': - w.writeLine(' body: params,'); - break; - default: - w.writeLine(` body: JSON.stringify(${bodyParam.map((b) => b.isClass ? `${b.name}Valid.serialize()` : b.name).join(', ')}),`); - break; - } - } - - // Handle response - if (hasResponseBodyType) { - w.writeLine('}).then(async (res) => {'); - w.writeLine(' if (res.status === 200) {'); - w.writeLine(' return res.json();'); - } else { - w.writeLine('}).then(async (res) => {'); - w.writeLine(' if (res.status === 200) {'); - w.writeLine(' return res.status;'); - } - - // Handle Error - w.writeLine(' } else {'); - w.writeLine(' return new Error(String(res.status));'); - w.writeLine(' }'); - w.writeLine('})'); - }); - }); - - const imports: any[] = []; - const types: string[] = []; - importEntities.forEach((i) => { - const { type } = i; - if (!types.includes(type)) { - imports.push(i); - types.push(type); - } - }); - imports.sort((a,b) => a.type > b.type ? 1 : -1).forEach((ie) => { - const { type: pType, isClass } = ie; - if (isClass) { - apiFile.addImportDeclaration({ - moduleSpecifier: `${GENERATOR_ENTITY_ALLIAS}${pType}`, - defaultImport: pType, - namedImports: [`I${pType}`], - }); - } else { - apiFile.addImportDeclaration({ - moduleSpecifier: `${GENERATOR_ENTITY_ALLIAS}${pType}`, - namedImports: [pType], - }); - } - }); - - this.apis.push(apiFile); - }; - - save = () => { - this.apis.forEach(async (e) => { - await e.saveSync(); - }); - }; -} - - -export default ApiGenerator; diff --git a/client2/scripts/generator/src/generateEntities.ts b/client2/scripts/generator/src/generateEntities.ts deleted file mode 100644 index 7ace9fa1d6a..00000000000 --- a/client2/scripts/generator/src/generateEntities.ts +++ /dev/null @@ -1,603 +0,0 @@ -import * as fs from 'fs'; -import * as path from 'path'; -// eslint-disable-next-line import/no-extraneous-dependencies -import * as morph from 'ts-morph'; - -import { ENT_DIR } from '../../consts'; -import { TYPES, toCamel, schemaParamParser, uncapitalize } from './utils'; - -const { Project, QuoteKind } = morph; - - -const EntDir = path.resolve(ENT_DIR); -if (!fs.existsSync(EntDir)) { - fs.mkdirSync(EntDir); -} - -class EntitiesGenerator { - project = new Project({ - tsConfigFilePath: './tsconfig.json', - addFilesFromTsConfig: false, - manipulationSettings: { - quoteKind: QuoteKind.Single, - usePrefixAndSuffixTextForRename: false, - useTrailingCommas: true, - }, - }); - - openapi: Record; - - schemas: Record; - - schemaNames: string[]; - - entities: morph.SourceFile[] = []; - - constructor(openapi: Record) { - this.openapi = openapi; - this.schemas = openapi.components.schemas; - this.schemaNames = Object.keys(this.schemas); - this.generateEntities(); - } - - generateEntities = () => { - this.schemaNames.forEach(this.generateEntity); - }; - - generateEntity = (sName: string) => { - const { properties, type, oneOf } = this.schemas[sName]; - const notAClass = !properties && TYPES[type as keyof typeof TYPES]; - - if (oneOf) { - this.generateOneOf(sName); - return; - } - - if (notAClass) { - this.generateEnum(sName); - } else { - this.generateClass(sName); - } - }; - - generateEnum = (sName: string) => { - const entityFile = this.project.createSourceFile(`${EntDir}/${sName}.ts`); - entityFile.addStatements([ - '// This file was autogenerated. Please do not change.', - '// All changes will be overwrited on commit.', - '', - ]); - - const { enum: enumMembers } = this.schemas[sName]; - entityFile.addEnum({ - name: sName, - members: enumMembers.map((e: string) => ({ name: e.toUpperCase(), value: e })), - isExported: true, - }); - - this.entities.push(entityFile); - }; - - generateOneOf = (sName: string) => { - const entityFile = this.project.createSourceFile(`${EntDir}/${sName}.ts`); - entityFile.addStatements([ - '// This file was autogenerated. Please do not change.', - '// All changes will be overwrited on commit.', - '', - ]); - const importEntities: { type: string, isClass: boolean }[] = []; - const entities = this.schemas[sName].oneOf.map((elem: any) => { - const [ - pType, isArray, isClass, isImport, - ] = schemaParamParser(elem, this.openapi); - importEntities.push({ type: pType, isClass }); - return { type: pType, isArray }; - }); - entityFile.addTypeAlias({ - name: sName, - isExported: true, - type: entities.map((e: any) => e.isArray ? `I${e.type}[]` : `I${e.type}`).join(' | '), - }) - - // add import - importEntities.sort((a, b) => a.type > b.type ? 1 : -1).forEach((ie) => { - const { type: pType, isClass } = ie; - if (isClass) { - entityFile.addImportDeclaration({ - moduleSpecifier: `./${pType}`, - namedImports: [`I${pType}`], - }); - } else { - entityFile.addImportDeclaration({ - moduleSpecifier: `./${pType}`, - namedImports: [pType], - }); - } - }); - this.entities.push(entityFile); - } - - generateClass = (sName: string) => { - const entityFile = this.project.createSourceFile(`${EntDir}/${sName}.ts`); - entityFile.addStatements([ - '// This file was autogenerated. Please do not change.', - '// All changes will be overwrited on commit.', - '', - ]); - - - const { properties: sProps, required, $ref, additionalProperties } = this.schemas[sName]; - if ($ref) { - const temp = $ref.split('/'); - const importSchemaName = `${temp[temp.length - 1]}`; - entityFile.addImportDeclaration({ - defaultImport: importSchemaName, - moduleSpecifier: `./${importSchemaName}`, - namedImports: [`I${importSchemaName}`], - }); - - entityFile.addTypeAlias({ - name: `I${sName}`, - type: `I${importSchemaName}`, - isExported: true, - }) - - entityFile.addStatements(`export default ${importSchemaName};`); - this.entities.push(entityFile); - return; - } - - const importEntities: { type: string, isClass: boolean }[] = []; - const entityInterface = entityFile.addInterface({ - name: `I${sName}`, - isExported: true, - }); - - const sortedSProps = Object.keys(sProps || {}).sort(); - const additionalPropsOnly = additionalProperties && sortedSProps.length === 0; - - // add server response interface to entityFile - sortedSProps.forEach((sPropName) => { - const [ - pType, isArray, isClass, isImport, isAdditional - ] = schemaParamParser(sProps[sPropName], this.openapi); - - if (isImport) { - importEntities.push({ type: pType, isClass }); - } - const propertyType = isAdditional - ? `{ [key: string]: ${isClass ? 'I' : ''}${pType}${isArray ? '[]' : ''} }` - : `${isClass ? 'I' : ''}${pType}${isArray ? '[]' : ''}`; - entityInterface.addProperty({ - name: sPropName, - type: propertyType, - hasQuestionToken: !( - (required && required.includes(sPropName)) || sProps[sPropName].required - ), - }); - }); - if (additionalProperties) { - const [ - pType, isArray, isClass, isImport, isAdditional - ] = schemaParamParser(additionalProperties, this.openapi); - - if (isImport) { - importEntities.push({ type: pType, isClass }); - } - const type = isAdditional - ? `{ [key: string]: ${isClass ? 'I' : ''}${pType}${isArray ? '[]' : ''} }` - : `${isClass ? 'I' : ''}${pType}${isArray ? '[]' : ''}`; - entityInterface.addIndexSignature({ - keyName: 'key', - keyType: 'string', - returnType: additionalPropsOnly ? type : `${type} | undefined`, - }); - } - - // add import - const imports: { type: string, isClass: boolean }[] = []; - const types: string[] = []; - importEntities.forEach((i) => { - const { type } = i; - if (!types.includes(type)) { - imports.push(i); - types.push(type); - } - }); - imports.sort((a, b) => a.type > b.type ? 1 : -1).forEach((ie) => { - const { type: pType, isClass } = ie; - if (isClass) { - entityFile.addImportDeclaration({ - defaultImport: pType, - moduleSpecifier: `./${pType}`, - namedImports: [`I${pType}`], - }); - } else { - entityFile.addImportDeclaration({ - moduleSpecifier: `./${pType}`, - namedImports: [pType], - }); - } - }); - - const entityClass = entityFile.addClass({ - name: sName, - isDefaultExport: true, - }); - - // addProperties to class; - sortedSProps.forEach((sPropName) => { - const [pType, isArray, isClass, isImport, isAdditional] = schemaParamParser(sProps[sPropName], this.openapi); - - const isRequred = (required && required.includes(sPropName)) - || sProps[sPropName].required; - - const propertyType = isAdditional - ? `{ [key: string]: ${pType}${isArray ? '[]' : ''}${isRequred ? '' : ' | undefined'} }` - : `${pType}${isArray ? '[]' : ''}${isRequred ? '' : ' | undefined'}`; - - entityClass.addProperty({ - name: `_${sPropName}`, - isReadonly: true, - type: propertyType, - }); - const getter = entityClass.addGetAccessor({ - name: toCamel(sPropName), - returnType: propertyType, - statements: [`return this._${sPropName};`], - }); - const { description, example, minItems, maxItems, maxLength, minLength, maximum, minimum } = sProps[sPropName]; - if (description || example) { - getter.addJsDoc(`${example ? `Description: ${description}` : ''}${example ? `\nExample: ${example}` : ''}`); - } - if (minItems) { - entityClass.addGetAccessor({ - isStatic: true, - name: `${toCamel(sPropName)}MinItems`, - statements: [`return ${minItems};`], - }); - } - if (maxItems) { - entityClass.addGetAccessor({ - isStatic: true, - name: `${toCamel(sPropName)}MaxItems`, - statements: [`return ${maxItems};`], - }); - } - if (typeof minLength === 'number') { - entityClass.addGetAccessor({ - isStatic: true, - name: `${toCamel(sPropName)}MinLength`, - statements: [`return ${minLength};`], - }); - } - if (maxLength) { - entityClass.addGetAccessor({ - isStatic: true, - name: `${toCamel(sPropName)}MaxLength`, - statements: [`return ${maxLength};`], - }); - } - if (typeof minimum === 'number') { - entityClass.addGetAccessor({ - isStatic: true, - name: `${toCamel(sPropName)}MinValue`, - statements: [`return ${minimum};`], - }); - } - if (maximum) { - entityClass.addGetAccessor({ - isStatic: true, - name: `${toCamel(sPropName)}MaxValue`, - statements: [`return ${maximum};`], - }); - } - - if (!(isArray && isClass) && !isClass) { - const isEnum = !isClass && isImport; - const isRequired = (required && required.includes(sPropName)) || sProps[sPropName].required; - const { maxLength, minLength, maximum, minimum } = sProps[sPropName]; - const haveValidationFields = maxLength || typeof minLength === 'number' || maximum || typeof minimum === 'number'; - if (isRequired || haveValidationFields) { - const prop = toCamel(sPropName); - const validateField = entityClass.addMethod({ - isStatic: true, - name: `${prop}Validate`, - returnType: `boolean`, - parameters: [{ - name: prop, - type: `${pType}${isArray ? '[]' : ''}${isRequred ? '' : ' | undefined'}`, - }], - }) - - validateField.setBodyText((w) => { - w.write('return '); - const nonRequiredCall = isRequired ? prop : `!${prop} ? true : ${prop}`; - if (pType === 'string') { - if (isArray) { - w.write(`${nonRequiredCall}.reduce((result, p) => result && (typeof p === 'string' && !!p.trim()), true)`); - } else { - if (typeof minLength === 'number' && maxLength) { - w.write(`(${nonRequiredCall}.length >${minLength > 0 ? '=' : ''} ${minLength}) && (${nonRequiredCall}.length <= ${maxLength})`); - } - if (typeof minLength !== 'number' || !maxLength) { - w.write(`${isRequired ? `typeof ${prop} === 'string'` : `!${prop} ? true : typeof ${prop} === 'string'`} && !!${nonRequiredCall}.trim()`); - } - } - } else if (pType === 'number') { - if (isArray) { - w.write(`${nonRequiredCall}.reduce((result, p) => result && typeof p === 'number', true)`); - } else { - if (typeof minimum === 'number' && maximum) { - w.write(`${isRequired ? `${prop} >= ${minimum} && ${prop} <= ${maximum}` : `!${prop} ? true : ((${prop} >= ${minimum}) && (${prop} <= ${maximum}))`}`); - } - if (typeof minimum !== 'number' || !maximum) { - w.write(`${isRequired ? `typeof ${prop} === 'number'` : `!${prop} ? true : typeof ${prop} === 'number'`}`); - } - } - } else if (pType === 'boolean') { - w.write(`${isRequired ? `typeof ${prop} === 'boolean'` : `!${prop} ? true : typeof ${prop} === 'boolean'`}`); - } else if (isEnum) { - if (isArray){ - w.write(`${nonRequiredCall}.reduce((result, p) => result && Object.keys(${pType}).includes(${prop}), true)`); - } else { - w.write(`${isRequired ? `Object.keys(${pType}).includes(${prop})` : `!${prop} ? true : typeof ${prop} === 'boolean'`}`); - } - } - - w.write(';'); - }); - } - } - }); - if (additionalProperties) { - const [ - pType, isArray, isClass, isImport, isAdditional - ] = schemaParamParser(additionalProperties, this.openapi); - const type = `Record`; - - entityClass.addProperty({ - name: additionalPropsOnly ? 'data' : `${uncapitalize(pType)}Data`, - isReadonly: true, - type: type, - }); - } - // add constructor; - const ctor = entityClass.addConstructor({ - parameters: [{ - name: 'props', - type: `I${sName}`, - }], - }); - ctor.setBodyText((w) => { - if (additionalProperties) { - const [ - pType, isArray, isClass, isImport, isAdditional - ] = schemaParamParser(additionalProperties, this.openapi); - w.writeLine(`this.${additionalPropsOnly ? 'data' : `${uncapitalize(pType)}Data`} = Object.entries(props).reduce>((prev, [key, value]) => {`); - if (isClass) { - w.writeLine(` prev[key] = new ${pType}(value!);`); - } else { - w.writeLine(' prev[key] = value!;') - } - w.writeLine(' return prev;'); - w.writeLine('}, {})'); - return; - } - sortedSProps.forEach((sPropName) => { - const [ - pType, isArray, isClass, , isAdditional - ] = schemaParamParser(sProps[sPropName], this.openapi); - const req = (required && required.includes(sPropName)) - || sProps[sPropName].required; - if (!req) { - if ((pType === 'boolean' || pType === 'number' || pType ==='string') && !isClass && !isArray) { - w.writeLine(`if (typeof props.${sPropName} === '${pType}') {`); - } else { - w.writeLine(`if (props.${sPropName}) {`); - } - } - if (isAdditional) { - if (isArray && isClass) { - w.writeLine(`${!req ? ' ' : ''}this._${sPropName} = props.${sPropName}.map((p) => Object.keys(p).reduce((prev, key) => { - return { ...prev, [key]: new ${pType}(p[key])}; - },{}))`); - } else if (isClass) { - w.writeLine(`${!req ? ' ' : ''}this._${sPropName} = Object.keys(props.${sPropName}).reduce((prev, key) => { - return { ...prev, [key]: new ${pType}(props.${sPropName}[key])}; - },{})`); - } else { - if (pType === 'string' && !isArray) { - w.writeLine(`${!req ? ' ' : ''}this._${sPropName} = Object.keys(props.${sPropName}).reduce((prev, key) => { - return { ...prev, [key]: props.${sPropName}[key].trim()}; - },{})`); - } else { - w.writeLine(`${!req ? ' ' : ''}this._${sPropName} = Object.keys(props.${sPropName}).reduce((prev, key) => { - return { ...prev, [key]: props.${sPropName}[key]}; - },{})`); - } - } - } else { - if (isArray && isClass) { - w.writeLine(`${!req ? ' ' : ''}this._${sPropName} = props.${sPropName}.map((p) => new ${pType}(p));`); - } else if (isClass) { - w.writeLine(`${!req ? ' ' : ''}this._${sPropName} = new ${pType}(props.${sPropName});`); - } else { - if (pType === 'string' && !isArray) { - w.writeLine(`${!req ? ' ' : ''}this._${sPropName} = props.${sPropName}.trim();`); - } else { - w.writeLine(`${!req ? ' ' : ''}this._${sPropName} = props.${sPropName};`); - } - } - } - if (!req) { - w.writeLine('}'); - } - }); - - }); - - // add serialize method; - const serialize = entityClass.addMethod({ - isStatic: false, - name: 'serialize', - returnType: `I${sName}`, - }); - serialize.setBodyText((w) => { - if (additionalProperties) { - const [ - pType, isArray, isClass, isImport, isAdditional - ] = schemaParamParser(additionalProperties, this.openapi); - w.writeLine(`return Object.entries(this.${additionalPropsOnly ? 'data' : `${uncapitalize(pType)}Data`}).reduce>((prev, [key, value]) => {`); - if (isClass) { - w.writeLine(` prev[key] = value.serialize();`); - } else { - w.writeLine(' prev[key] = value;') - } - w.writeLine(' return prev;'); - w.writeLine('}, {})'); - return; - } - w.writeLine(`const data: I${sName} = {`); - const unReqFields: string[] = []; - sortedSProps.forEach((sPropName) => { - const req = (required && required.includes(sPropName)) - || sProps[sPropName].required; - const [, isArray, isClass, , isAdditional] = schemaParamParser(sProps[sPropName], this.openapi); - if (!req) { - unReqFields.push(sPropName); - return; - } - if (isAdditional) { - if (isArray && isClass) { - w.writeLine(` ${sPropName}: this._${sPropName}.map((p) => Object.keys(p).reduce((prev, key) => ({ ...prev, [key]: p[key].serialize() }))),`); - } else if (isClass) { - w.writeLine(` ${sPropName}: Object.keys(this._${sPropName}).reduce>((prev, key) => ({ ...prev, [key]: this._${sPropName}[key].serialize() }), {}),`); - } else { - w.writeLine(` ${sPropName}: Object.keys(this._${sPropName}).reduce((prev, key) => ({ ...prev, [key]: this._${sPropName}[key] })),`); - } - } else { - if (isArray && isClass) { - w.writeLine(` ${sPropName}: this._${sPropName}.map((p) => p.serialize()),`); - } else if (isClass) { - w.writeLine(` ${sPropName}: this._${sPropName}.serialize(),`); - } else { - w.writeLine(` ${sPropName}: this._${sPropName},`); - } - } - - }); - w.writeLine('};'); - unReqFields.forEach((sPropName) => { - const [, isArray, isClass, , isAdditional] = schemaParamParser(sProps[sPropName], this.openapi); - w.writeLine(`if (typeof this._${sPropName} !== 'undefined') {`); - if (isAdditional) { - if (isArray && isClass) { - w.writeLine(` data.${sPropName} = this._${sPropName}.map((p) => Object.keys(p).reduce((prev, key) => ({ ...prev, [key]: p[key].serialize() }), {}));`); - } else if (isClass) { - w.writeLine(` data.${sPropName} = Object.keys(this._${sPropName}).reduce((prev, key) => ({ ...prev, [key]: this._${sPropName}[key].serialize() }), {});`); - } else { - w.writeLine(` data.${sPropName} = Object.keys(this._${sPropName}).reduce((prev, key) => ({ ...prev, [key]: this._${sPropName}[key] }), {});`); - } - } else { - if (isArray && isClass) { - w.writeLine(` data.${sPropName} = this._${sPropName}.map((p) => p.serialize());`); - } else if (isClass) { - w.writeLine(` data.${sPropName} = this._${sPropName}.serialize();`); - } else { - w.writeLine(` data.${sPropName} = this._${sPropName};`); - - } - } - - w.writeLine(`}`); - }); - w.writeLine('return data;'); - }); - - // add validate method - const validate = entityClass.addMethod({ - isStatic: false, - name: 'validate', - returnType: `string[]`, - }) - validate.setBodyText((w) => { - if (additionalPropsOnly) { - w.writeLine('return []') - return; - } - w.writeLine('const validate = {'); - Object.keys(sProps || {}).forEach((sPropName) => { - const [pType, isArray, isClass, , isAdditional] = schemaParamParser(sProps[sPropName], this.openapi); - - const { maxLength, minLength, maximum, minimum } = sProps[sPropName]; - - const isRequired = (required && required.includes(sPropName)) || sProps[sPropName].required; - const nonRequiredCall = isRequired ? `this._${sPropName}` : `!this._${sPropName} ? true : this._${sPropName}`; - - if (isArray && isClass) { - w.writeLine(` ${sPropName}: ${nonRequiredCall}.reduce((result, p) => result && p.validate().length === 0, true),`); - } else if (isClass && !isAdditional) { - w.writeLine(` ${sPropName}: ${nonRequiredCall}.validate().length === 0,`); - } else { - if (pType === 'string') { - if (isArray) { - w.writeLine(` ${sPropName}: ${nonRequiredCall}.reduce((result, p) => result && typeof p === 'string', true),`); - } else { - if (typeof minLength === 'number' && maxLength) { - w.writeLine(` ${sPropName}: (${nonRequiredCall}.length >${minLength > 0 ? '=' : ''} ${minLength}) && (${nonRequiredCall}.length <= ${maxLength}),`); - } - if (typeof minLength !== 'number' || !maxLength) { - w.writeLine(` ${sPropName}: ${isRequired ? `typeof this._${sPropName} === 'string'` : `!this._${sPropName} ? true : typeof this._${sPropName} === 'string'`} && !this._${sPropName} ? true : this._${sPropName},`); - } - } - } else if (pType === 'number') { - if (isArray) { - w.writeLine(` ${sPropName}: ${nonRequiredCall}.reduce((result, p) => result && typeof p === 'number', true),`); - } else { - if (typeof minimum === 'number' && maximum) { - w.writeLine(` ${sPropName}: ${isRequired ? `this._${sPropName} >= ${minimum} && this._${sPropName} <= ${maximum}` : `!this._${sPropName} ? true : ((this._${sPropName} >= ${minimum}) && (this._${sPropName} <= ${maximum}))`},`); - } - if (typeof minimum !== 'number' || !maximum) { - w.writeLine(` ${sPropName}: ${isRequired ? `typeof this._${sPropName} === 'number'` : `!this._${sPropName} ? true : typeof this._${sPropName} === 'number'`},`); - } - } - } else if (pType === 'boolean') { - w.writeLine(` ${sPropName}: ${isRequired ? `typeof this._${sPropName} === 'boolean'` : `!this._${sPropName} ? true : typeof this._${sPropName} === 'boolean'`},`); - } - } - }); - w.writeLine('};'); - w.writeLine('const isError: string[] = [];') - w.writeLine('Object.keys(validate).forEach((key) => {'); - w.writeLine(' if (!(validate as any)[key]) {'); - w.writeLine(' isError.push(key);'); - w.writeLine(' }'); - w.writeLine('});'); - w.writeLine('return isError;'); - - }); - - // add update method; - const update = entityClass.addMethod({ - isStatic: false, - name: 'update', - returnType: `${sName}`, - }); - update.addParameter({ - name: 'props', - type: additionalPropsOnly ? `I${sName}` : `Partial`, - }); - update.setBodyText((w) => { w.writeLine(`return new ${sName}({ ...this.serialize(), ...props });`); }); - - this.entities.push(entityFile); - }; - - save = () => { - this.entities.forEach(async (e) => { - await e.saveSync(); - }); - }; -} - -export default EntitiesGenerator; diff --git a/client2/scripts/generator/src/utils.ts b/client2/scripts/generator/src/utils.ts deleted file mode 100644 index 5183b6c5373..00000000000 --- a/client2/scripts/generator/src/utils.ts +++ /dev/null @@ -1,83 +0,0 @@ -const toCamel = (s: string) => { - return s.replace(/([-_][a-z])/ig, ($1) => { - return $1.toUpperCase() - .replace('-', '') - .replace('_', ''); - }); -}; -const capitalize = (s: string) => { - return s[0].toUpperCase() + s.slice(1); -}; -const uncapitalize = (s: string) => { - return s[0].toLowerCase() + s.slice(1); -}; -const TYPES = { - integer: 'number', - float: 'number', - number: 'number', - string: 'string', - boolean: 'boolean', -}; - -/** - * @param schemaProp: valueof shema.properties[key] - * @param openApi: openapi object - * @returns [propType - basicType or import one, isArray, isClass, isImport] - */ -const schemaParamParser = (schemaProp: any, openApi: any): [string, boolean, boolean, boolean, boolean] => { - let type = ''; - let isImport = false; - let isClass = false; - let isArray = false; - let isAdditional = false; - - if (schemaProp.$ref || schemaProp.additionalProperties?.$ref) { - const temp = (schemaProp.$ref || schemaProp.additionalProperties?.$ref).split('/'); - - if (schemaProp.additionalProperties) { - isAdditional = true; - } - - type = `${temp[temp.length - 1]}`; - - const cl = openApi ? openApi.components.schemas[type] : {}; - - if (cl.$ref) { - const link = schemaParamParser(cl, openApi); - link.shift(); - return [type, ...link] as any; - } - - if (cl.type === 'string' && cl.enum) { - isImport = true; - } - - if (cl.type === 'object' && !cl.oneOf) { - isClass = true; - isImport = true; - } else if (cl.type === 'array') { - const temp: any = schemaParamParser(cl.items, openApi); - type = `${temp[0]}`; - isArray = true; - isClass = isClass || temp[2]; - isImport = isImport || temp[3]; - } - } else if (schemaProp.type === 'array') { - const temp: any = schemaParamParser(schemaProp.items, openApi); - type = `${temp[0]}`; - isArray = true; - isClass = isClass || temp[2]; - isImport = isImport || temp[3]; - } else { - type = (TYPES as Record)[schemaProp.type]; - } - if (!type) { - // TODO: Fix bug with Error fields. - type = 'any'; - // throw new Error('Failed to find entity type'); - } - - return [type, isArray, isClass, isImport, isAdditional]; -}; - -export { TYPES, toCamel, capitalize, uncapitalize, schemaParamParser }; diff --git a/client2/scripts/helpers/checkTranslations.ts b/client2/scripts/helpers/checkTranslations.ts deleted file mode 100644 index 6634f65b5af..00000000000 --- a/client2/scripts/helpers/checkTranslations.ts +++ /dev/null @@ -1,226 +0,0 @@ -import * as fs from 'fs'; -import { - Project, - VariableStatement, - SyntaxKind, - Node, - Statement, - ts, - Identifier, - SourceFile, -} from 'ts-morph'; -import { - LOCALE_FOLDER_PATH, - TRANSLATOR_CLASS_NAME, - USE_INTL_NAME, - trimQuotes, -} from '../consts'; -import { checkForms, AvailableLocales } from '../../src/localization/Translator'; - -const project = new Project({ - tsConfigFilePath: './tsconfig.json', -}); - -let lang = 'ru'; -let option = ''; - -if (process.argv.length > 2) { - lang = process.argv[2]; - option = process.argv[3]; -} - -const usedTranslations: string[] = []; -const usedPluralTranslations: string[] = []; - -const problemFiles: string[] = []; -const sourceFiles = project.getSourceFiles(); -const sourceFilesWithIntl = sourceFiles.filter((sf) => { - return !!sf.getImportDeclarations().find((id) => { - return !!id.getNamedImports().find((ni) => ni.getName() === USE_INTL_NAME) - }) -}); -const getFileUsedIntl = (statements: Statement[]) => { - statements.forEach((s) => { - if (s instanceof VariableStatement) { - s.forEachDescendant((node) => { - let intVariableDeclaration: Identifier = null; - switch (node.getKind()) { - case SyntaxKind.VariableDeclaration: - if (node.getSymbol()) { - const name = node.getSymbol().getName(); - const callExp = node.getChildren().find((n) => n.getKind() === SyntaxKind.CallExpression); - if (callExp) { - const callExpIden = callExp.getChildren().find(n => n.getKind() === SyntaxKind.Identifier); - if (callExpIden && callExpIden.getSymbol().getName() === USE_INTL_NAME) { - intVariableDeclaration = node as Identifier; - } - } - } - break; - default: - break; - } - if (intVariableDeclaration) { - intVariableDeclaration.findReferencesAsNodes().forEach((fr) => { - if (fr instanceof Node) { - const parent = fr.getParentIfKind(SyntaxKind.PropertyAccessExpression); - if (parent && (parent.getName() === 'getMessage' || parent.getName() === 'getPlural')) { - const syntaxList = parent.getNextSiblings().find((n) => n.getKind() === SyntaxKind.SyntaxList); - if (syntaxList) { - const id = syntaxList.getChildren()[0]; - if (id && id.getKind() !== SyntaxKind.StringLiteral) { - problemFiles.push(fr.getSourceFile().getFilePath()); - } - if (id) { - usedTranslations.push(trimQuotes(id.getText())); - if (parent.getName() === 'getPlural') { - usedPluralTranslations.push(trimQuotes(id.getText())); - } - } - } - } - } - }) - } - }); - } - }) -} - -const getFileUsedTranslations = (file: SourceFile) => { - const namedImport = file.getImportDeclarations().find((id) => !!id.getNamedImports().find((ni) => ni.getName() === TRANSLATOR_CLASS_NAME)); - if (namedImport) { - const identifier = namedImport.getImportClause().getNamedImports().find((iden) => iden.getName() === TRANSLATOR_CLASS_NAME); - const translateReferences = identifier.getNodeProperty('name').findReferencesAsNodes(); - if (translateReferences.length > 0) { - translateReferences.forEach((identifierNode) => { - if (identifierNode.getParentIfKind(SyntaxKind.TypeReference)) { - const translatorVariable = identifierNode.getParent().getPreviousSibling().getPreviousSiblingIfKind(SyntaxKind.Identifier); - if (translatorVariable) { - translatorVariable.findReferencesAsNodes().forEach((node) => { - const parent = node.getParentIfKind(SyntaxKind.PropertyAccessExpression); - if (parent && (parent.getName() === 'getMessage' || parent.getName() === 'getPlural')) { - - const syntaxList = parent.getNextSiblings().find((n) => n.getKind() === SyntaxKind.SyntaxList); - if (syntaxList) { - const id = syntaxList.getChildren()[0]; - if (id && id.getKind() !== SyntaxKind.StringLiteral) { - problemFiles.push(parent.getSourceFile().getFilePath()); - } - if (id) { - usedTranslations.push(trimQuotes(id.getText())); - if (parent.getName() === 'getPlural') { - usedPluralTranslations.push(trimQuotes(id.getText())); - } - } - } - } - }) - } - } - }) - } - - } -} -sourceFilesWithIntl.forEach((file) => { - getFileUsedIntl(file.getStatements()); -}) - -const sourceFilesWithTranslator = project.getSourceFiles().filter((sf) => { - return !!sf.getImportDeclarations().find((id) => { - return !!id.getNamedImports().find((ni) => ni.getName() === TRANSLATOR_CLASS_NAME) - }) -}); -sourceFilesWithTranslator.forEach((file) => { - getFileUsedTranslations(file); -}) -const filteredUsedTranslations = Array.from(new Set(usedTranslations)); -const filteredUsedPluralTranslations = Array.from(new Set(usedPluralTranslations)); - -if (problemFiles.length) { - console.warn(`\n============== Files where translation id provided not as string ==============\n`); - console.log(problemFiles.join('\n')); - process.exit(255); -} - -const allFiles = fs.readdirSync(LOCALE_FOLDER_PATH); -// Use ru or needed language -const translationFile = allFiles.find((file) => file.includes(`${lang}.json`)); - -if (!translationFile) { - console.error('File not found'); - process.exit(255); -} - -const translationsObject = JSON.parse(fs.readFileSync(`./src/lib/intl/__locales/${translationFile}`, { flag: 'r+' }) as unknown as string); -const translations = { - locale: translationFile, - messages: Object.keys(translationsObject), -}; - -const someMessagesNotFound: string[] = []; -const notUsed: string[] = []; -const notFound: string[] = []; -const checkLocaleMessages = (locale: string, messages: string[]) => { - filteredUsedTranslations.forEach(f => { - if (!messages.includes(f)) { - notFound.push(f); - } - }); - messages.forEach(t => { - if (!filteredUsedTranslations.includes(t)) { - notUsed.push(t); - } - }); - if (notFound.length > 0) { - someMessagesNotFound.push(locale); - } -} - -const render = (data: string[], title: string) => { - console.log(`============ ${title} ============`); - console.table(data); - console.log(`============ ${title} ============`); -} - -checkLocaleMessages(translations.locale, translations.messages); - -const checkPluralForm = () => { - const pluralFormWrong: string[] = []; - filteredUsedPluralTranslations.forEach((id) => { - const message = translationsObject[id]; - if (!checkForms(message, lang as AvailableLocales, id)) { - pluralFormWrong.push(id) - } - }); - return pluralFormWrong; -} - -const plural = checkPluralForm(); -if (!option && (someMessagesNotFound.length || plural.length > 0 )) { - someMessagesNotFound.forEach(locale => console.error(`\nSome translatins for ${locale} was not found!\n`)); - plural.forEach(id => console.error(`\nTranslation with id: "${id}" - have wrong number of plural forms!\n`)); - process.exit(255); -} -if (option) { - switch (option) { - case '--show-missing': { - render(notFound, 'NotFound') - break; - } - case '--show-unused': { - render(notUsed, 'notUsed') - break; - } - case '--check-plurals': { - render(plural, 'Wrong Plural Form') - } - default: { - if (someMessagesNotFound.length) { - someMessagesNotFound.forEach(locale => console.error(`\nSome translatins for ${locale} was not found!\n\n`)); - process.exit(255); - } - } - } -} diff --git a/client2/scripts/lint/common.js b/client2/scripts/lint/common.js deleted file mode 100644 index 759fa44f872..00000000000 --- a/client2/scripts/lint/common.js +++ /dev/null @@ -1,79 +0,0 @@ -module.exports = { - parser: '@typescript-eslint/parser', - parserOptions: { - project: './tsconfig.json', - ecmaFeatures: { - jsx: true - }, - extraFileExtensions: ['mjs', 'tsx', 'ts'], - ecmaVersion: 2020, - sourceType: 'module' - }, - plugins: ['react', '@typescript-eslint', 'import'], - env: { - browser: true, - commonjs: true, - es6: true, - es2020: true, - jest: true, - }, - settings: { - react: { - pragma: 'React', - version: 'detect', - }, - 'import/resolver': { - typescript: { - alwaysTryTypes: true - } - }, - 'import/parsers': { - '@typescript-eslint/parser': ['.ts', '.tsx'], - }, - }, - rules: { - '@typescript-eslint/explicit-module-boundary-types': 0, - '@typescript-eslint/explicit-function-return-type': [0, { allowExpressions: true }], - '@typescript-eslint/indent': ['error', 4], - '@typescript-eslint/interface-name-prefix': [0, { prefixWithI: 'never' }], - '@typescript-eslint/no-explicit-any': [0], - '@typescript-eslint/naming-convention': [2, { - selector: 'enum', format: ['UPPER_CASE', 'PascalCase'], - }], - '@typescript-eslint/no-non-null-assertion': 0, - 'arrow-body-style': 'off', - 'consistent-return': 0, - curly: [2, 'all'], - 'default-case': 0, - 'import/no-cycle': 0, - 'import/prefer-default-export': 'off', - 'import/no-named-as-default': 0, - indent: [0, 4], - 'no-alert': 2, - 'no-console': 2, - 'no-debugger': 2, - 'no-underscore-dangle': 'off', - 'no-useless-escape': 'off', - 'object-curly-newline': 'off', - 'react-hooks/exhaustive-deps': 0, - 'react/display-name': 0, - 'react/jsx-indent-props': ['error', 4], - 'react/jsx-indent': ['error', 4], - 'react/jsx-one-expression-per-line': 'off', - 'react/jsx-props-no-spreading': 0, - 'react/prop-types': 'off', - 'react/state-in-constructor': 'off', - }, - extends: [ - 'airbnb-base', - 'airbnb-typescript/base', - 'airbnb/hooks', - 'plugin:react/recommended', - 'plugin:@typescript-eslint/eslint-recommended', - 'plugin:@typescript-eslint/recommended', - 'plugin:import/errors', - 'plugin:import/warnings', - 'plugin:import/typescript', - ], - globals: {}, -}; diff --git a/client2/scripts/lint/dev.js b/client2/scripts/lint/dev.js deleted file mode 100644 index 3378429887a..00000000000 --- a/client2/scripts/lint/dev.js +++ /dev/null @@ -1,10 +0,0 @@ -module.exports = { - rules: { - 'no-alert': 0, - 'no-debugger': 0, - 'no-console': 0, - }, - extends: [ - './common', - ], -}; diff --git a/client2/scripts/lint/prod.js b/client2/scripts/lint/prod.js deleted file mode 100644 index f31bae1fe92..00000000000 --- a/client2/scripts/lint/prod.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - extends: [ - './common.js', - ], -}; diff --git a/client2/scripts/webpack/helpers.js b/client2/scripts/webpack/helpers.js deleted file mode 100644 index 2a72e0b64de..00000000000 --- a/client2/scripts/webpack/helpers.js +++ /dev/null @@ -1,40 +0,0 @@ -const yaml = require('yaml'); -const fs = require('fs'); - -const ZERO_HOST = '0.0.0.0'; -const LOCALHOST = '127.0.0.1'; -const DEFAULT_PORT = 80; - -const importConfig = () => { - try { - const doc = yaml.parse(fs.readFileSync('../AdguardHome.yaml', 'utf8')); - const { bind_host, bind_port } = doc; - return { - bind_host, - bind_port, - }; - } catch (e) { - return { - bind_host: ZERO_HOST, - bind_port: DEFAULT_PORT, - }; - } -}; - -const getDevServerConfig = () => { - const { bind_host: host, bind_port: port } = importConfig(); - const { DEV_SERVER_PORT } = process.env; - - const devServerHost = host === ZERO_HOST ? LOCALHOST : host; - const devServerPort = 3000 || port + 8000; - - return { - host: devServerHost, - port: devServerPort - }; -}; - -module.exports = { - importConfig, - getDevServerConfig -}; diff --git a/client2/scripts/webpack/webpack.config.base.js b/client2/scripts/webpack/webpack.config.base.js deleted file mode 100644 index babb4f54d5c..00000000000 --- a/client2/scripts/webpack/webpack.config.base.js +++ /dev/null @@ -1,74 +0,0 @@ -const path = require('path'); -const AntdDayjsWebpackPlugin = require('antd-dayjs-webpack-plugin'); -const HtmlWebpackPlugin = require('html-webpack-plugin'); -const tsconfig = require('../../tsconfig.json'); - -const RESOURCES_PATH = path.resolve(__dirname, '../../'); -const HTML_PATH = path.resolve(RESOURCES_PATH, 'public/index.html'); -const HTML_INSTALL_PATH = path.resolve(RESOURCES_PATH, 'public/install.html'); - -module.exports = { - entry: { - install: './src/Install.tsx', - main: './src/App.tsx' - }, - resolve: { - extensions: ['.tsx', '.ts', '.js', '.pcss'], - alias: Object.keys(tsconfig.compilerOptions.paths).reduce((aliases, key) => { - // Reduce to load aliases from ./tsconfig.json in appropriate for webpack form - const paths = tsconfig.compilerOptions.paths[key].map(p => p.replace('/*', '')); - aliases[key.replace('/*', '')] = path.resolve( - __dirname, - '../../', - tsconfig.compilerOptions.baseUrl, - ...paths, - ); - return aliases; - }, {}), - }, - module: { - rules: [ - { - test: /\.tsx?$/, - use: 'ts-loader', - exclude: /node_modules/, - }, - { - test: /\.(woff|woff2)$/, - use: [{ - loader: 'file-loader', - options:{ - outputPath:'./', - } - }], - }, - { - test:/\.(png|jpe?g|gif)$/, - exclude: /(node_modules)/, - use:[{ - loader:'file-loader', - options:{ - outputPath:'./images', - } - }] - } - ], - }, - - plugins: [ - // new AntdDayjsWebpackPlugin() - new HtmlWebpackPlugin({ - inject: true, - cache: false, - chunks: ['main'], - template: HTML_PATH, - }), - new HtmlWebpackPlugin({ - inject: true, - cache: false, - chunks: ['install'], - filename: 'install.html', - template: HTML_INSTALL_PATH, - }), - ], -}; diff --git a/client2/scripts/webpack/webpack.config.dev.js b/client2/scripts/webpack/webpack.config.dev.js deleted file mode 100644 index 2d5c1c8a4c7..00000000000 --- a/client2/scripts/webpack/webpack.config.dev.js +++ /dev/null @@ -1,114 +0,0 @@ -const history = require('connect-history-api-fallback'); -const { merge } = require('webpack-merge'); -const path = require('path'); -const proxy = require('http-proxy-middleware'); -const Webpack = require('webpack'); - -const { getDevServerConfig } = require('./helpers'); -const baseConfig = require('./webpack.config.base'); - -const devHost = process.env.DEV_HOST -const target = getDevServerConfig(); - -const options = { - target: devHost || `http://${target.host}:${target.port}`, // target host - changeOrigin: true, // needed for virtual hosted sites -}; -const apiProxy = proxy.createProxyMiddleware(options); - -module.exports = merge(baseConfig, { - mode: 'development', - output: { - path: path.resolve(__dirname, '../../build2'), - filename: '[name].bundle.js', - }, - optimization: { - noEmitOnErrors: true, - }, - devServer: { - port: 4000, - historyApiFallback: true, - before: (app) => { - app.use('/control', apiProxy); - app.use(history({ - rewrites: [ - { - from: /\.(png|jpe?g|gif)$/, - to: (context) => { - const name = context.parsedUrl.pathname.split('/'); - return `/images/${name[name.length - 1]}` - } - }, { - from: /\.(woff|woff2)$/, - to: (context) => { - const name = context.parsedUrl.pathname.split('/'); - return `/${name[name.length - 1]}` - } - }, { - from: /\.(js|css)$/, - to: (context) => { - const name = context.parsedUrl.pathname.split('/'); - return `/${name[name.length - 1]}` - } - } - ], - })); - } - }, - devtool: 'eval-source-map', - module: { - rules: [ - { - enforce: 'pre', - test: /\.tsx?$/, - exclude: /node_modules/, - loader: 'eslint-loader', - options: { - configFile: path.resolve(__dirname, '../lint/dev.js'), - } - }, - { - test: (resource) => { - return ( - resource.indexOf('.pcss')+1 - || resource.indexOf('.css')+1 - || resource.indexOf('.less')+1 - ) && !(resource.indexOf('.module.')+1); - }, - use: ['style-loader', 'css-loader', 'postcss-loader', { - loader: 'less-loader', - options: { - javascriptEnabled: true, - }, - }], - }, - { - test: /\.module\.p?css$/, - use: [ - 'style-loader', - { - loader: 'css-loader', - options: { - modules: true, - sourceMap: true, - importLoaders: 1, - modules: { - localIdentName: "[name]__[local]___[hash:base64:5]", - } - }, - }, - 'postcss-loader', - ], - exclude: /node_modules/, - }, - ] - }, - plugins: [ - new Webpack.DefinePlugin({ - DEV: true, - 'process.env.DEV_SERVER_PORT': JSON.stringify(3000), - }), - new Webpack.HotModuleReplacementPlugin(), - new Webpack.ProgressPlugin(), - ], -}); diff --git a/client2/scripts/webpack/webpack.config.prod.js b/client2/scripts/webpack/webpack.config.prod.js deleted file mode 100644 index d9057ef1cbe..00000000000 --- a/client2/scripts/webpack/webpack.config.prod.js +++ /dev/null @@ -1,89 +0,0 @@ -const path = require('path'); -const { merge } = require('webpack-merge'); -const baseConfig = require('./webpack.config.base'); -const MiniCssExtractPlugin = require("mini-css-extract-plugin"); -const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin'); -const TerserJSPlugin = require('terser-webpack-plugin'); -const Webpack = require('webpack'); -const CopyPlugin = require('copy-webpack-plugin'); - -module.exports = merge(baseConfig, { - mode: 'production', - devtool: 'source-map', - stats: 'minimal', - performance : { - hints : false - }, - output: { - path: path.resolve(__dirname, '../../../build2/static'), - filename: '[name].bundle.[hash:5].js', - publicPath: '/' - }, - optimization: { - minimizer: [new TerserJSPlugin({terserOptions: { - output: { - comments: false, - }, - }, - extractComments: false, - }), new OptimizeCSSAssetsPlugin({})], - splitChunks: { - cacheGroups: { - styles: { - name: 'styles', - test: /\.css$/, - chunks: 'all', - enforce: true, - }, - }, - }, - }, - module: { - rules: [ - { - test: (resource) => { - return ( - resource.indexOf('.pcss')+1 - || resource.indexOf('.css')+1 - || resource.indexOf('.less')+1 - ) && !(resource.indexOf('.module.')+1); - }, - use: [{ - loader: MiniCssExtractPlugin.loader, - }, 'css-loader', 'postcss-loader', { - loader: 'less-loader', - options: { - javascriptEnabled: true, - }, - }], - exclude: /node_modules/, - }, - { - test: /\.module\.p?css$/, - use: [ - { - loader: MiniCssExtractPlugin.loader, - }, - { - loader: 'css-loader', - options: { - modules: true, - sourceMap: true, - importLoaders: 1, - }, - }, - 'postcss-loader', - ], - exclude: /node_modules/, - } - ] - }, - plugins: [ - new Webpack.DefinePlugin({ - DEV: false, - }), - new MiniCssExtractPlugin({ - filename: '[name].[hash:5].css', - }), - ] -}); diff --git a/client2/src/App.tsx b/client2/src/App.tsx deleted file mode 100644 index f01e325320d..00000000000 --- a/client2/src/App.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import './main.pcss'; -import './lib/ant/ant.less'; -import React from 'react'; -import ReactDOM from 'react-dom'; -import Store, { storeValue } from 'Store'; -import './lib/ant'; - -import App from './components/App'; - -const Container = () => { - return ( - - - - ); -}; - -ReactDOM.render(, document.getElementById('app')); diff --git a/client2/src/Install.tsx b/client2/src/Install.tsx deleted file mode 100644 index ccc613150e4..00000000000 --- a/client2/src/Install.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import './main.pcss'; -import './lib/ant/ant.less'; -import React from 'react'; -import ReactDOM from 'react-dom'; -import Store, { storeValue } from 'Store/installStore'; -import './lib/ant'; - -import Install from './components/Install'; - -const Container = () => { - return ( - - - - ); -}; - -ReactDOM.render(, document.getElementById('app')); diff --git a/client2/src/assets/img/install.png b/client2/src/assets/img/install.png deleted file mode 100644 index 68dbd78045cbd659be366bf95eb5ecb0c85a2491..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24402 zcmeEtWmHvBx9A2Gkw!r}R8YFR5di_|ZjlB7X=yA(5RmTfmhKV(>CQt)A6mNMt?f6) z`}y7*_x-s)?imi;XRf(suQ}&hd!4V!iZVEuWS9^H;mE#tt_nd|;t+Iu1_KR1{4sC% zAPDtD`K7uP_}V|YI)GRjm|7l0tT*%^h7fB%hZY7AtHU#!4PCR%{WEnv(+%B-f$7zS zs@lQn)tj3eFbW>l(z937b8fC~MrV+nGwWSTTWyGi(LWmllgQCOTZaTWtPCMmPZx>@5Nit+we2HIU}$J|{pRNCKlB$XtNRgaQ&aGi zzRA_o#bWRPD2&c+O#Inx>7VOr92uG2XzHIC1jG@mfacKb#_GU8+wdP4GQIYvvSt9l z5o?1pYeO^O0a@2QH3+!OtPRd>fCn(z(1&OqoNw-*1r&hdgR`r9`^R9YzGu3BdZn>< z20SL5^L1}Fl!uK_N=IRBnuI%!M5K5M{e{fL$N-kGsE z6;p4*)nYwE{Q-_5V=-EdB`t{`Styt!yn;*8K+#EVfu(yHHWx zkeLIfz)S&sKn<}r0-F@5hU}kQ0g?kFFO^pVrJ4t3M`kzS>C>xVO8*R)vewi$vrF$g=9y;_|*pm`>}^0{GiKwy;oDvj`lGKz0nzFI3b32LZ9$hvvaVAbjhUUL0r+BIHG4O8@6SwJ!bKJS#+0CIQz|X_1{PG2T zps)btBWE6#DF+1^vV1vh3G_Kgy$&u0;S{C{-zeQj_3m#JuI7~|pIg6a5O8j(x^B|necl-@ zh6{jyy)`Q$k3hk1S+M!ysFoLWyRymkZEkitD3Fb3|>D#v$&+2K%A4(1}P^xp% zsYHJ4hqy=% zD1{{3%+;^|xHVw_Xoa;8wR4_6!)+kfw1?)+`WABu{M>z@xw0aum}Jg(uvC>Z2Oz@; z=9`Vqmrp$-D$UK$Uhx2}7OJ?ETpzgM=}t`r1k@txn?GIwHToi2i9qX5F}1e&Xf~3yL1NTVNQwF4%Fua!Sl+_ zYZIpm6+rka|2nLeUY$4!rni2*Idsu?l*D#WWd|%RZ_{HDw-%$P($c%{B1FCAQkC>` z3D5JS{GJPmw8LcuM)Kl`v|R-!&m%h85vf~YSS+y*^&->NN#eP&4hFtq$f|wN)vbD~ z5|;LY9jmoZ-w(^>?Sgaz7F(tpp^Hz%(Cvo#0SyW&D%iys!@u-@hC8txQd{`nH~;F^ zCZ8gc?82fLH?=5U1Vs1yJ8Ej)SN5^*yxPBFYIL}-K#(&mj+dMas0iVwUWA_asm>QT z*KMq5P)9QnO@#C6ZT=fd4>2yU8uApB@@`h>M3X3fzSR;%7=I&vZAJvi$t!kNgIZ0@iPxdpuCr_3W} zz?INFiky7TI+cm0RbQQi2*zE(+I2~_`^^dG$PX?VOjcjB6e;VX%20?JeRcvdhe{hc zh-Rtyu2X@^_+|BtOXdf7jC5n>wmMQpMlkulrp)|aG(nidH5aDcq-!#AJXE~v09BM*}; z!19IyfL-o9`Z*Z*gVth{^)3vl5U`1=K;FK@@RZ_z;|^Ot?6^akmdDdK7XxqEtK9G( z$aO-rhx7pT`1RA7h~;_1B4U`ORbG*-KzSw8PgR$3kn*5Mc5`*K?Ll+0E0YdFj{dd^ z04Dy6W%66%lrGW2+^5XdHxC&AjAqe;uiQ#Dn9W-Klav7Yu@sEA+*oNPfYz?Y^s_9{ z*)@V34j{kFXT=KrS0ju+uf8Q(k;C4BM9SSr1%eic7JPL3+x1&vK_HibDKrgXW`Ffh z^$r4!1+E$}Fwv%@P>tx?WVc#d%1VZ4FLcHa7Bb&%#nDC3`Cw=-@a+XnTHx}JB2(CR ze_rI+vLIh9o;eN`OtOTwyU>f+E2+Wj;IF*3h|Q*~hM9-Q;!*xae1-d}#h+eFOEOEF zffRBwee!i=4cFnrn|&{Nr;iZSBK9H}(UHk=#Ps~N`H1M=2Yi0=C%V&LHhvx&`3_Ih z0)lRr0ts^2IlY?um@keStKOtQmp2>sH4C-bt;f+ls6J(GzHADg9Vj}Rh3_nT(s`H^ ztb`V=-z89+&ZLWa%@CJrOMLI~^S9*LIq#j*Xe=|^f*Rib{Dl6V_$tL%?B#M|<+|N* z;>l*{yHnwTn6(QO=u)d9zmtF&dD0*>OB0e1Q9CwD(`Q?Q|JkC1^BOxYRtq zpc%a0$u7@k*in8C{OH$ZQY5{SANK3~&~eRCYm2fV1qJK*VzE`c5HFbBqBQSschHSJ zxoOI7WA}@45fcaU3vCLm`x*MM#Sjf^wWHq-vx)a-ulq7F@3{o*NVQ$c}RJ}2&|4C72%{~Xl_XiT0fit1j`uT}5S z5`2J_T@0E6zi=w-yO2 z(LX44j~k*{=5;BchqkzlQ5#B_gkBDR-1t zImx6;k2PK6!{te-rviX9(xuepMz{R37CSmE2COvOPhb29L~Btx-pQfcpuzrgI>LpI zMxI6-)vL}KCC-(bOUuFanVC>z%b4KqWx09+t^DXiImUHmDonvbf?F<=l1O8TAv*&R z=S`_Y+~Y`9buL74S$)o#x0wCwCShSNwC5_0@7{@nawCh?Hy+E`tK=Al5BV7+wYABj z;ODm9W%;hpY4$azvPHZRNXMb{MYIyrPr1+P{rD#awS0N3Z=)aqg*n>(cD?JTY%qqJ z;hhkDKN>uM((3rqn@Vf)e(4;!9D)!Sa>$yWBZOM5HH|op8N=lYcKrci zQroNJU1L%1cH=g~YiJnJ39m@QYh< zkG%La*xNA3AbgeWfvpAzL%ZH%IGYhSKL;eO0Ke5v-iHvXW(`UbyGB^NI$m=g$Zmgr z$|u}|9@=OQn5oe*3I9TY0+R2K92*pY+1mki9jfMRHbR`FR-n88>FPCYj;4d8A457%cG|HTGL<_$TN6uH?`)1N@IC4#$zq_`;G0Yo0&M(zvw=t8%)RXeZm41U2YTJ=36yI7LnNnl`1OU?i^YIL)=P8m?}tDH8h zd8Af&58TC4-E2$Z(xb=5m_g;*T#Rh=dp*BP{RFvp@gFq4kL- z^LxPO*F?8D9^^g4B>0eCh54YAfINYOx#~x0UDO`5gY4i(Y|;WWGtlVp-59du^fBZ*SU0r) z7bT!YWSjr>^Q_97J4nT@fCnUxZvphbD*IbCsQB;i`%qHUZfhuDG5Uy5Sb%A1q+a2@ ziu4c%$#AjNW1Xto?z$Cko@W%gqd};AyivWl43G+c2_=_w804hX7xFocF zJXhMI)+Ow#{a*W{Tq_ysQOJ?g%m&faq zO(@eA-~XcMeS-YhdCI(vRtFfM(wgl9|F^Rbin2c_lxTfI!-V|sz3j|P4!ST|*+ur~ z@svCWQPBm99m2;*p|UJDy}dbRUfU3s6A~WAo(bx%pYluVPL;lk8Rn|-Z8^_%25!q*j9s*Z49R30Z=$O`J5~6?iKiXp zK?`$fx{Iru9{7|0Tgn`9IzBB?I86mJ$ydu5WdhEid)@7S%mXYRu0QXXG=ISIiSU{J zXa}#uZQ_$+eE}?E^thxNeDehvWQMw+LSrY_M|QjZzn7xzDLqaDSid&HNQiLqT_^^# zmn^Ale#euPz^w~@ffa|G8IF}}!^-Rie~3@K%vNC_$$hv#4;ahUrsi4ZKg8`6m#<&4 zq$N{j{mQWdM*Orzh-}n8ZW!3PR||#Iq1%4t*?_^82KSbd(WCGLagnZ_4v|H;)-A#% zlR&Ff-|{n|%vaeKM89hO&3ZRWY$Mf%>sF74l-7tTF`YUPI4TU{ z*?}p(3;wDxbij&4vlqKLw&L&6tRB<8zgY_R*pGOb#y6c6PdEvV=~Cn5giBJOugqII2BsCh+HR{fOqFgwUnz9ImP& z{8hIEv&-!ZJTed}*x5R-ZXiE;jx*w*f1k;%4Q?$}JZZ*FRq9`$AKx^u%nHwF_PA11 zw|lI?(`rNr1{z#rM%}C{r+tc=v=m17g+iqEW*lKrmUjXz3_N4Ju0|Xhh&S86|C9aX zr7%$=hSTGzzpBYhi~tQO6!WV*o%pp0?NzD%cV9=7e;$~tcqg~%ff8tsNp2;m7Fl)o z4nX~7kIZ_9X|_EpNzlcXx&F*hab->rz*F&Fe%&oQexs&{-JiMs1(h1!{0z$Yo43bI zP}$1%SanLE!2Pz-)~u1d8tB^gO6JjqHR#0#&ziZSa9Xd$B@`Oz>Gv{gCfmO+d^W`z zq5FjWxr^i%GW|C0*Hu&W0V>q1A+_e9ijiu4*{jzhk2q5hyizeCupQIB z4?=tKBRORSDA6k^mhG_xZt%MM)Dn))kaZECQlNwLJ?7?klTs%BAO1u3+8l{R3&jCz zS)8(ZI)(CezU&&MPMFEX?2I){^|(o+L(%(&;PI^b*S#qX01j0pOpU$T`7|ylkkcFMqfwjQ__Qzl;Kjt{f+9Gp#^rn!EXdqLi1V&a$pi>|$W73)giHsK~GleL$` z!&hMN&S`jj1e+4}{8n{k`s4EYhe-|mJgaNT00QwQ1a1V(u*wmC>Fl^v1Vs&cRsK0L zz%z8Q=eaRy&+A z<~|%gRNduo(jWLotfXrt5|{pg_oFKv5uQ~?slPD>LYh`g-`e;u?fv_4s7GJDRK2H0 zoEQB}Sq?8cJLs!CmkTCk-K45j35`?(>QkcUtynz$k9?k*3+xMP?d|WQL8(8T<*`QG!j0$=Niqr`7IF4zN+# z;dLgrH`uj`CwDPtm1_c!&UDEtWhWl&jmUNW4j{$y)C33y@u`rdgMSEt^&uutfqjKD zbmX2&{hK1@0y3@gvptrqDNtnmgoV`L`OAoNkzIa81fXGRHS0ogfihF(cEWh~jxxy? zB?F1K;?@`+0;6;3$S}V&C0gfUeQ$YybteZsCf80}LYcTx?P|W&!8dvHbgv15cm@gTM6eZAc6`g%JJ#s~bfHsH=-eX*NPS=7^;EURFX$-< z=+Fzsn;j2;_|0{rNFn~mZ0@G4yauG3)ES3ESAd)A9tZm;wfJbnnL-Ojnd#;7JV9xR zHxQDxqQOLk1f#NkVAs4t4JVYi^^nH(xcQqV!!Jc;tWw3wq)csl8qEh(osZ)hTPK^{ zLhe93N+V1BSb*U2GV(9~oG>g!-I?{-J1SVb6Q$KJu+mbqV{hM4J6SqofDYC> z*`1}p^{JWlRAr3=Ks5SwU%ik4fHPX?7UvlXAc1v3>khp@ANqAMy%4;ALtqvNL@F(Qy6`wo2%eVDYf@!P4cqVy!cqGjj8u_G)d`ZbU;JlSoE!EOs?Lrj z$WP35+kmH=9<%LlK68|DD{c1IfOL||)3KkDWOwhAOW2g+qmPo(ewSk+_@IC-OZV=% z1beLYEhoz8+C=s^@<}V#$-iJV?d_ow3N}Zbt-|TZjLQ4>n3j{nGv3*G2;w$h=%Sf7 z+?4Weypo-`LI6uyb}wqK?v&)(6#n*FbBM0Io@Nux-O(5W50HCYz~alwo{DbxFjtGSUsBPj4NRSM3qI9!6nl-ir6vYJx>OiHK| z=SndU4f2TO@lJAO9)#KQcYXNmlONCYjP5gA0xM_y*UvdNObNvV1-?rD634&g5U3nh zOc{O+eYsY)XSR!;%T$b6o9cgi%+>HVHN1b#{NQQ?NRfY5i{zgM9Mn~pmsXeF!`!3S z`N!cXU;XoAN_ZF+O{(2;$iW#5{`N8fzlQ6?ez!2VR?6?!l${Ig(c@GWtLI(Pi6uj4{9P0chbLhFE4bch&pXdLl zsrRfNo67(PLm&2E z%{Xik9#-p5qib=8NtU~SK!7A_jSx=rTWS4Y*I1H9J{iXLfw+e-J5x5mfKa1k`I?NT4WgAO3)=rFMo8`KTX$R~ z>>*mg@J}bk>C1DOwPcpxDfQzP*zk$HM4*hO>gqB1#AM@RdpjK!0224(eIskaG}2$$ zv!C_+Hrz(iNb%?m+9zc$#fCkV^!z6_|Lp=P!RRS!Hwt^Uo*)6lKb;db5{AES9md;; zMd1Z`>k$BI__2M-W-i@Bcx!V5zduGAfW0k%<%(9>*!&ov< z=ui>4-$_0_zyIRXLdB+h4J9#}51PfSBX6IBC55BnZjGfw$L0wGtKp6lC>VZqs)aM; zg66^+GY-z1Y?~6INrnU5V@(UO@F~5r7Wx}?4O;a1#Ad#c;>U4b{U_xTmO>fvhtmyU z*spHbBt~81;F&|`p0@AS%4NE~a+$Y0k7ZTxCwSO{)4nnAJM#{|vU}HD2aj4 zmIn^-fZz*Wx|lcW;=8}i+Wd*Ow>m4?;MM~A)fr2-^0qS+6Ir1zU8DdY;#aZNiUM1w zL}jgCr3cGh)&9Ydf^KDgcFWNqOvSeM@}w1C zP{&tjIqostCK{g-2dQGTd52&CF@MrPXh!VuO2n~C`nIz)Ymh4(lL6($X7*-vmhGM_ zqsP?92BU}66jtGq5&srtsVnQ&nyN%-URF`TQe^Y@C);uQoCGLI(LJ{j;Lr0YT~ffaWcClwWs*|Jwm)QgQfJKVnrSaa9A zAL{RdS&6tKVCFc6>S3U`#QOv~?VD>ntRe9?rfAm2sLvTlFH*}BlwxO|R^|?zBq3nF zg=J;>C>;Zf^sWR+T!Z3QIkhhV+;Qq1WkzXOdVSxKzq&v4juU^!=;A-NJ#gK7cipVy zu+r~6PYkt~F`3^+o}EABShK1$e@ayn>D#@US!aEd7WjhzOO5dQ8Ibd>_LlS2Rq5`Q zNMDs@+e%%LU6}n&LSmiG&4W~ggG&sr9_%f*Z82k;^s z%wOqCO$HRyPfA9>rqPcgDc~Ehe>2|f6THd3eKuQ~5Ckn;%gtkzN~J}{N?mHz4ORj3&MS9J1NQb<^w*U- zpa+L)EW2DT)bpw(*1~@Zyq39&ONxG}i006u4=+86NH41(xtDiBzYvZGP@b3vnM@WA z(J=F_WP-sz$&;j>hM(h73#lloP4=J9=}%>##F~u52^*L5xb|MsxYg0}cb1;}RtGPJ z^t3rhK`w0(X*(K9vmI$gIeOxfUS;I-JGT3olwETdJZndGYesLdGd10?D88oZxzF!- zwZQ3+ba+Pq)vVPT6sZ1v*(mfXr3OHdU@NgRpp;VURccJng0t)A(MhzWviI`)%<72X_76 zmf;vU`KCy#%B3cIWZ{0WGGxrwEnX$Uoj{n>$JdMcPXnhdhp3N*=aKa`MM>{=BtIG2 zcAwGTndajK4J5QfT0p$0mK1v)(QMvKdh}3Ym-E1t{t;8}Zx0mcZ&ahFjxA?kI)9V2 z)KjxH?C>g%)#24g+=hd^)>|}{Nb#VUkjxi%W5?wS=^tSbU^52feq^lp5b)uHlaT}x zEtf47?aLzhJ1ktntiJW-p0k_e*X25%Y|s$b;cD@d-LbJOsfp6eIljrNbl#5ZXoLGe zqDQ$~W#@;yc{{XP`kh3#UsV`Cp2irf>Vu_Ksi;wF^P`9GSl|PFNvf&_M@lEmHbWb`n3UFXO?l9B zLSgD|cUG3dH|d$MOVfEU_c`A7M#FEQ#kr5_GrhLl|M+ZZv4_Mf6nN^L7j|5N0L9lS zDfz9`;67KYKzG~pS0R5IYw&ns5?t@nH;!H03zD1jQVGe9+0%+&@)c4%TLW{%2RzE@ zeTi|Im@{l`Rw{hPM$EYg-+^5CeA3VJiLaX`VQkS_Z^+XM#oBn5EZ|f>4Eb7}Gtb3E z%)ZKK9+^emFTEP&oO>2v#IonjZ|G`NgD5dAT*uo&-zGAVLvNb&pXFHAS-Xvz5gE`5 z!u;sILy?4elW|q=5e<-F8K=hQOo&t;{XC}UbJbMFW74bn=jSy#Cdq39K=j5}E18$G z-f80Pj^5_HRo@4je;q`yl&@mX&cdS$*E2%y2|^ifvjSPT3W!F&#$K~?c(Eh6%S+YZ zswU1hdE}y(wQt75DptZuZ+gFW`0+)tyUG4ukG^OW*}!g3@J#pk_Lru<3s^gK-Gf*GhL*~;{m0<~$ z;Io)Y7@;>&>C!>;{>nEh*Cii85NW@E_I72=pPlJNjxwOX7SjOE=Txb$nX$!uKIjmtQ%%^2iJ1O@AfnU2B$lLqeL zO{89t!B%@8+_8U;>z*#UGgPAKK=!zA06yTXb=OWQk@8gx(iAqZ1p8}f*@C0*7y-=| z&*~@&!5pTM1wD2@G@PGigdGEk%G42ZK@J)jv*|~)yd(RsfM&@%#hH8#JR>qvPtomj zH12@*XW7P4$X1_@pxKg0#*?EVF?t!qrK4to!lua{wPaFTy2jTqygXxHuz%}S7_%1% z@y-7>pX-VnbX*XSWbVxf6m@g5u{v_U)L60Q$~s(n$CiH1!-DihhYvC*o8|OSNIDkm z85J3>(DmpUvLvfj$@D)|1ih{&Y;AuiiC-2_A1m7`R+C#pDRIYuFbVq?xx=0#_dT?Y z?_8eA7G5QPR){$&wFx_q-fgc*iEfN;R;Ftw;&#+*om}^U5VM~>v3pQy-cS)Cne^x+ zzLmc^_>NmMke1IrJE6Afh9g;L;AuTq>$}E|775TQq7+m%yN}!1UX!vIIW6lc|8z0= z^91Y;KPmOd=*0;P&FS$MQ`(j|J1+YwKWpZA3o4Piv{O^%umB5Zc`PFKcUrBH#9ggj z>T9Q6NkETBZ6tzV@9`I13DPg+d{+l;U>lbHr20Tb%MVz9bFPxBI=Tt$H>PuBTwca76^a}eE_1`|TMiM1N1J%059VzqCqX+I9IRC$d!WCscSBUj0@CUIns(k}VUT3s7b0N3 z-KwBnkDg#fIMeOSU?JP3NhoUcRBBb>+$q|jb_UDBE~mkA4kXd>9`Slu8oCp>(fJFj=QUg8eX-F*AsJ_m&zAFrIujh%{$!Sxb(u(sk#}6w}ZVo zljZ_va>W~j*V-vyBVOIgF`p{~q!Q*mwcVFey8^lG@2_{9^DL_wC18%6`iKtr?{ihx zF%397v4kN0``{exubhT1Fdt1S3V7G}MIAgUQw&}JL`>UTFiS)xNWu{O`s)gjr2!sM z!9mCQNpv*IQ`a5*>R>1^9r-jgGVZx8cqzU+sdbD8MlhFggOA>YnQiKlP^i~fmkR@+@? z20|f!tPYIUO9O)r8snjOzw7IPr@Gu(+KCqik;Xk4-sUVcvo8$fHkQ9usOHfD5ykkX zD|Fqp#|-$jE!->4TCWVq@2nj@ueKe217d+Ldij7`4;!dY=x&LJl(*Zqe+EIP;#3hO zYHwu6flv>&QLYlT(0~O*Lb|Hgk7D(KWvnS8F4m9255OU(c<_#&C>boDV+uvicuC?e z`k&xNA?dG7e(CI92_r9Ko_vdFCCVgV#>pFQ>i$g_N>hWf@Q~q?RZdmxRb4Qe&pe|K zE-@=~$j^J{P;wtIQqB}ir7n-YA-x0rDG;Fb%^nRk1zY^V^O{~*& zh}n+piL@Q)x3698J3`j^#Dg)gz#Db_11jA^GcYHEO>30KUJ9Twp$1E;=fMmJcJ<0W zYLza|11aDgjds+!>V6Qe;yOW>WS{j-lfgQT)L=^W+|&oCEJqpO#!jmqZYxdN)v(P*e5WsM83$iCA2F=8m#DgRBCeZ?*OVwQuts`&3`PgjB zc>D0tgdte)MP8)N)l(w4f#`=itAPEW^lnA{EYj+4XQr}v$^JBuc(A)?hc#pAm3?>w z{p&ZN1F_7RpWXgwLP3Y-5#a=!ApTfMdKTqrtNjQkib%gc2x438x{qFqlL@O&tS6T* z>A`z}*OQd4Wa?N*zBu4uaq@vW&jzf(+lRDbJ|O)}znh=UpuTjBD#-m~y!sJ@bJyH# zVK#xZ1BqBd`McR#*-PtN@~&A$G|yfln9aBS{$Qg&|1jsrsr~Q+7T-sC;^K0K#(u?u zgj-9$#^TJA=QV^c1sd4is3$J@FNt9x-{by!%?j=bl7*fOf~LRPAzhjUY9&rR|gocvKCY|Zj)jnv(B|Zj}0;L-8v*iX?);B z1UnW|n_wmKTx;dVLTOZQrUd}@kyWA)F4XgCZKn1*c+WMNSI2F@pmFPKlxRR@Z3nz^ zq3FP5c?T9X17hnB*teX!CTan!MYSy}w@dr}68i~`!4EuSQU?pjh<;fiLfeL>b(TRa$WhsFi`=99 zw~geNji9`;68KjXewF@03;Q}PpF_j)r4!npJN_0<)goKD#s{gI2CduRB)_VGU4YwJ zj9z|@`5W5##dokwAe#GjA}4|50_lVyJOpdSX~bkfSsxhZ^TBE{eYQDAslnFmkoB`E z?M_DavP^0i$uw>yyzTn^sUTTsv9k+lC}Q=K`dd}_{rCAKm>SLSDO;KG`0)%@V}54t z%ZUsBruy%~80tZZo9)HFX)nCLM@tzmNv7g0S zg@a(J@7Nq}94&3pXcZQY49xXC$F>Xw~4NN=~)~#L2eD>YV#usqo#WG?UDCT1>f+5 z7V++|gEbB1Mi!>+($3nNKX%eC_~Undx+nvFWHn)L^cfqJ3Mk*)S!kZ`P=SwIizo9J z=KV&z>rNVqab1+bwfm&e=;G_px8$d(M9;!wxWXIvjd5*9{-&U)&!2yymxnP_oUmgbi*-u zQB15Xtsb$y#vt&R%6frK5-(MUPcU7BVL((*e@uROaD@D1xkM|K@J;5OPtYxM*K&^s z7T3Tr5ZhN(L((&8b>C3;*JkJ>buqEy}ohLcjbcx?}p@xykJC~^Kb&j{j1F`27Ic7jl==$Do+w4e{0^O-Wh7?qfQc3Yp z#7#OK7`a^KCa+_EWh9w1>VIl{9C7^DN5h`wKmhatkiKK2JRiBoi^A}u$EiskvlrN% z5uK|RhsH0!pr32nOAjMbPjZRUFL)^1qrOVTl<35Vbb2Aeo~GA1^HYZ~)~nzH|BxWM zGHdbkjo-@$%gZG-y-3$C1`g@*wF<*it zodxfQC%B{s4nI}&?(18N4y&#+yK2(szVw*Z*EcX71FbHUL{^vj?aKMd6D-sP3lC=a?VV(#M#E;6tmyw?x{ zWSn`_MKqIM=jQnz&b(ntDY4!w9{2E=h!2D7!sJu^qFS8BeU(eMEp+FB1NUvg zGp{CV;?gZoE-?H|F#DX`-ON<}E;YG_lE#~!H8sRe{w#liDu;;dwKH1t z^b9boBJR;sS;{-eJ@dz>ZG2D2^!^rwKCNjkZb*C9ySt5HbINT3);v{D$W%ku5A<8a zn!PT)s3G=`rj7HxWOWC4WFGiDfpG(IeD*STuU0M`LCDn8Mm4122^B14KSMwKG(cYd zLhReUbI_gneZ`rb>>@i)rC7}s^c0U-jT)$3qn;N7y$1V~Dw933T!8n`g9V3+)cowy zmSojp3A7k~4CHn3JkCO_t5!_~USK2efqpDsMn`gj?^)|_3(&n=ZKkJr9zEL5_&xxd zB&|H5$)I%0k_na=K-AwV+N4&jw4o zo{X^TkQt2x+2u!H#}2S5q@Y0B%szvT;B zC}gj5H5r-U+IGqXg`V_+1voal7B1Absx};AmcMj-YPXle~gsYB6aCZ}Unx`tS2<*-WKTa{*-O7fA`=tlJS%Nb*fKs9ilVUN*2Zv`of?n-~Zh>-+{?>t9OoT$O40GiFo z0;g7qv11c4uxPaVZg*-RtboI-Bl9i`bo)KQEd8m3Rq|`#=KG&uV!FLYn`Q=ccQODz zE5iN8gKw30V`g8^2Q0GBM{SW!%pp%lW)4fkQmBDxohLiMtGN0I?NiZioF!{xP7GkE z9~acBg8HG^5=kWjMXTllz_M-V_NwRQjrVPd+iVEV9jQ_}lR=;&%jQ-yBB?~#=8L?o zUENbsjzAF<+}i1hOr|_q_ZC`>v5-`6p4T|;VttAcBb$j>ub}9A zck!Rxd2;{zY>fj}VKJ^@ZcOUB@!7d>%-(8WsIT5x__8W+FLd3xzbO-{*G_1kFLM9dI^ZSG7r zzrd71(UgJt4?}pTnewHp$GlJSgyjUx#TgfQVdz_BBicbqMGTNNY>* zNhTddw7M3ot_kXGqe6a91e@IDeTv3}ZJ&_Cb4Tmt?M|%waUCZ>2C*HQC))Km7#N+1uGU z*u!$aJ^2*eHTxCo?cZmViIj-y68Gc+et{l5$nWOosx9YSZmpo4D6mDv{GT&gfz1go zmoK%QvZo;M#zl3ugr0x$HW65bJfP1Mp;GAO7>G@bI+|uqE!d-2MqC?np7G>LC$8Cn zUS*I>cd^c~IDk;N>E1gp_#w$IqHZm>H}XkZO2 z#7c@nIvet$^djsva!`o(_t;5A8?5MDb{*k_8`4<6oGmA~lGpPs$bc6W`WwzN|8!}y zR&)HskP4*h$ib;;CF#nTZ_TETp!rYrJ4?!}He^iNAN@(20McN#-Hu11Fl*I@PtHjl zFks}iA>CD@=KLbR7~u9&<3uvN{KI;rMT1;3GC~A`37 zwyJa-Vh^Zca?80XGsRU?4vB@J2*n0wZJTn^Cn~ykOceHww}7m|Ciqd7Q`fqDMa^*( zbet(dbFv;x?IR2Wll@~`I5>a5G+t=ga$oi-qsOgdhS#?oypY?uDZ5t6>Wt?jEo0sUj9A>Yqh1Y2q*li zC_6{(+Eus@`~aZkjdxT0lM+35mWIRya4DdL*@Z1)L9udpRs|R6W^Qp{6;7NmrW%1A z3eu~2mT%Z$vbs$X9ehFM#;)<^;;LlVe$F+2WADJUVs?XVy8LjuvhNP$J6Z3WoV`f@ zZRyL(S)T!8;{)C6uU5mE3btxI&(a;lXTy*tq1GgF4#c74C2}IulP?5y_ZZ$mf$Q7RPUU$mcdI;1_AqeFxVn_N`y(fYUHjU z1|k;<;Kse({|2Q{K1g{I)MdYmBRWED8y0c&*(PPMN+Cb~&NRQ#sd z>}_-Sceh$!y7fU%Yy&Inu77AoZG~?vEs7q?CgF)pa2(bi8-lyt5I$Yk&u{Oqj+*A9 zoKG9A?O5C@tpHd&ah831*iIuk>BaDx;Z)+Zy4%!0Dvd*<|oqV#Q+k;V-kDS#6>1JIB79xaiV-fxtU%EN8C;G%X?_r+%pSP}==aMP# zq*%$UI^D7x%ZX(9;bToi;`(Mfd}wgmHkVZJi?rRCLR5C|nH+gc?$A&TJHK=+J?kq1 z+nLx~Ojt~c@HL!@BR%-oL|&i%Se$s|{=m7291%Nf6wiUH7t^HSg8?`z_O&tK;De;Bw!koaJEL8-G07Ah)3tn8 zC@ge|m|@dMNt-AK1@zTvlVL^p;k-t2npSulXxbjLmtI~nbsY^m! zW_ZLwuxe4GX%nCk@RHdmnbxXEF-B0KYQG*pkS}j8lb221n))SbvN9hQfCQ^WW$S400tU!i*Xdsf2vGxHNYqFSgayK*kF{M;N(kVy_S^_oF&H>=E_OL?wMR- zNCXsp3ebJ4Ec6TSHFC5yPkBrGyPe`raWSRv;Ir-F$EVF{6E3#~F3ERtxcY2>5ayJJ z{`REjsiQlB8Dqd?3N|UB;on@X2L`tt(1EMs-3BkBX)P{Xi02A=eLzOamAIIY3~$Wm zI+QH~il^fCbXv%A3i}vYABA7PX7&f?TE5!zq;zqKDUpIM5levPk@lRCT=;Hduxduu zOeM%WqnQV0(Wd)$<)drdQ!Jns#*FWb@ONEldZ*m@lRf}U`ll7dx|WV|RAaW6e}Dzz zt&2!WiI}l9hzzXQanb~QZ6+e^>G3oJ&h%uDJ22qqAA5X~_G~d7Gs}A> z;QQ@TcM)06Ivq9~ojB8+7W?C!wXAjikfl?-)4#9h&J7crR}<~*u=)71O~_sZ(_j9t zX0G$0iKdB18dj|m{Jv3?3BT5wkB?vr7?}Xk%k*=WhCcTQ% zr5BO*?)e`)-`@Ljw|jH5GqZEMznR;;5Z|k>Svb{uP02EXv=j^};n6E5FJdn=*dK&A zdyMBc`N^C|a&L(NfE1``>Aa?dtw{9i8nEY=`qvt`8EoF-4*Ak8gxB}yl#dKOo`9N` ztb5oVWt|$MnkFVKR3E4bROG^FztdCdEbi~PeVbvLsk>)`jF~fm8w?9AZ+4%WVb{+3 z1`vpDqA?r6s|y`_)9vFiVDwvw@UG|OotqpK|~;vGi1S2#BKsV)TR9 zSM_YfrujeL5&_O)?Qg3))Ha`eAorl_hSY}{@?RqM0Hw7g^28P^NhJF^NFQk^5`}f} zWi%Fn!PZ;2J_hSiFXJF>5SL57sbHEx%f$oCEUvqt2F&B&So+j3#g z?DiE^hE(`b(t7V{h-|x#2POc(fz@8qH|4|D*n}1vX7UFJA&18)Q_P|O)(O;YpBiKE z<)=1w;mlDE5==A4_|r;E-UU{~Xa1~SCu=+#@kR0E=m+tAODi|pIK%G^n74zwQcMB} z&Xi(FvV)zl~cU``2MihoKbJ;8|I?mDLk6(Uq{MpeskJOuA-@&wY-{XhL=Qo!Ux@ z^+1(%t_i1?u*zo{xl`_*uAhttLww`XRw zO`~5OanVeS^6T9AS0@mHP%zQu4P|AhFv-cz&Y-q3kE)NW0v>UHR}j+xz1y zmFiv=3EU7Sd6Ar~u4fv^rwNMHNg`d`<#UN*e_1+9Sy zWcfJyRT!H)Nn?;A?pl3E4>OCiTOE=lm2>x<;Q!#WWVmvZS>vw&!za@G_KxgjXsetS zs`%WG?mT!2=|bJLg;3M|9pAolpPk+rhtL2B^!)TbTeQTMEYs>s3Fi!lKI5EBmN!LL z_;QM=2JPB$ST_6ri=ak zg$BzB`gps>6vpR(W}EObA9hH! z(LlRDljzP>n$|jw{^-yIPc&8*rC+ym>}FrMSI9&Jen3!{5YN+oH*#@I_t{>JPu@fi z5*^zc8T)UTquvn3dlh2Jf2-d;8-(xaaYZP|X$!4(sNK2}aW&|{K-}f}G(jpkrt1O0 zj<>3v{D(gTaqnyAC9LCp=8p-*#9lbV;X_?a8&oj^h-O+QqyWc>VMXFXkd0a;pE39pqb{X|FgAM;#2Tq;@@HI$Mfoaqz6@snCT zbyvyhE|a2W{l*T5!zX#oE%L&H+c4KhT{Q)4+xnz5dyz9TEBe#fH5^(I>PX3PTcgl+ z4JvAC>OqPwZEN_@+`ABjPq!6;=qS@Y+Ktjc4NG;jDFMT{(n-rh%dcT#QU!7f3JO(w zQcY5?#XqdKF%sy+UpmpT!M5tGEbil+>M^wIykGsE7_qYTTmo#Ve?@ey`BSepZ*~-D zNMnh{4QwhC?@<2vQQ#yg6N<1-aY5WU+G~WQ%`{sSPv#aniSR9ta4p~QFtE+F>kAb4 zMEXrIWgx^V0{SRa8BWuNz_GIC ziTf;A_Knr5x`+oW3x*#EW4@ei*P(novv2$*OYnVDz{#~$M(m2t8T`l8Eoq0Io<2VH zo?VRV{Z(ubGHmW#IZe>KnCP$S(q1hl@`lUvr7F~OE7OjgZjM$YHEvyzNA9k!LWd#` zNYjS6v|iD1Z!yNZ_hO)4(Dr@ylU3bBKJ10K!Q+ZCk{Qbmzvik}n7utk5BjMk1ID=a z@BAN8M)iHRFM&6N4=FvD&kBFfkH3td?vxd_K;2aA(d%5w(ta{2BkGd*Zlko=ayFcuCA^CY4<7VBnD|Cs> zQjv1kCCaZZTisa+haq&wli@k)%lFez3^HqkkTG)_wG|62%VOm5-~U9FkviO9OeA71 zPq)0ru5?05c@QzHIFeCB$XPo#YK;)-=Hc%K(JC@Srj~4XH#~>Ybd2 zXT>L>Ia{7|{W7$G@fo)bOW}5lL2_L|R#pKoX_5#Nsl=l|9FBz_**4Qpu4<@StiuL$ z+fQmdv30tA_43{GCJHy=9SPjEOnoZCi!c)VRvko?4xb%;jE;f_kG=^H#dEYOABnzN z{*8#56?WVe3Nflyx$Me!pXI{*gTLDjm=B{rB<*wBhxzTD*6fi}ge`v*gjsxFND_~R#(&)`^bNk1wK1ZKO0lI`uYAHoMTy*Vb zv_O_1%DbVNPi_pi)D&=oL2X^u9}X;ke@Z;P1GAB6pxX)c14$+Y;_zo7<2p4cu!nEr z$}>0)KHYW!rK*_jdRjOn9pR8MVx*KD$qlaWvwPwa``NP48}*=cYO_V*`aObxhionj zO(ayH&U?k_!>EXex{|QEJUI?-)8^Mq>3vKm|n(QBn0y&*3v~;xx z30QY`DyfEFb*A600Wwu$vWL6o*)=wRQ?xdC)Hn4IU_dg;Zd_R+QX>!NRSSh~sODj7 zYpVy~TZ3k(pK-1j6ztn(m$Y z;wWY)i938@1lah@btJAH3Vf>(1JdlbtoLMR0GfXPej0xe!Vb`~?PktQ>76XT1S!$k z@yTvg0Ri3htYFY#(z{;C%Q9&iy7qq6pj)N=j!K6NV4q!2lLd5EusLI|GKP{ous1T^ z51}Qk_>keTL2qP&litK;u_J4L6C7Qt$Vb+OBmWS{ga@_0;8>z?KHBq%XkQ?nBTAh4 zBGmaUtjJai^r=XfBe#WVnyV~G_7YB6s=J&3pz^Qds$WxC!a>pb6=0Wi1F^J;BAbe6 z7d`+5d-Xha2hBX+4+o5}5yH}2>6@3nlolo>m$*P5q$=sMa=R|}dXsGioPo(iObche znh@pqiUADCTxIB9&|b0!Vjd+lcQ4kZ1cx=AY~36^{=o z_d;SZF0;^{T=Tl7*D;^#j?=91_+h>afooIHQ&YwuL;#1kSK1qJT4RJ3plJ;!40nSP zdh*X-fU17NI`G$eUTQ&iuZ3#w({3AGAtY5|Z&fB9Xi;cWxeXIyxrzvkTFVc4VK?-X znd1oZVOUvlyJIG}vfg?Q?4czBE$4`+9|eJ5{vYT~0E?Hr>OqNT@&ZKlu!jMDpq7U* z4_xb4hC*M$p`)cHwE>*;FNA>G4HiNp!8P(ZOMt>MRiOYCpN65y=Q9Q~R$Q>COVw7tb_$PDEBQ%{9>6@a^O4E!X_D*#N%Q16O@e)9; zYmELtlClSj+fPepW)lgcOQ8`leq7d$h1|X9FYoo%|2kWeV3EQFp9e#ZfY%dSwdw{)?zrS^Bd zLPO?=O~Lg0M3_F7fpKlY$AZDzoBl(lun7pswIx+Z4>-n(br)Cz<$fFpFoOZlv(tE= z3baQ720MirxWgn6?K`gn20Rho)Qj~2Me6P%I}ND3GOG_luJlcz&gx1~KUy!UI0H=y zwyBn>zyrsTUF}VR(8Y@E?z_V~fa{AivAVf6NFS#>!8%P#=mlyyxb5ZJ2pKiquRG&W zGX)GY(IC$RLxD}(!5&u>=q|}I8U>cYP=th`(&Nn9`hy-X8-!-1?mv`B)2cPR3K0eVXLp@u@qgD0>42M(jWUH||9 diff --git a/client2/src/components/App/App.tsx b/client2/src/components/App/App.tsx deleted file mode 100644 index cddb50c6e7b..00000000000 --- a/client2/src/components/App/App.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import React, { FC } from 'react'; -import { BrowserRouter } from 'react-router-dom'; - -import Icons from 'Common/ui/Icons'; -import Routes from './Routes'; - -import { ErrorBoundary } from './Errors'; - -const App: FC = () => { - return ( - - - - - - - ); -}; - -export default App; diff --git a/client2/src/components/App/Dashboard/Dashboard.tsx b/client2/src/components/App/Dashboard/Dashboard.tsx deleted file mode 100644 index 02846ca179f..00000000000 --- a/client2/src/components/App/Dashboard/Dashboard.tsx +++ /dev/null @@ -1,136 +0,0 @@ -import React, { FC, useContext } from 'react'; -import { Row, Col } from 'antd'; -import { observer } from 'mobx-react-lite'; - -import Store from 'Store'; -import { InnerLayout } from 'Common/ui/layouts'; -import theme from 'Lib/theme'; -import { BlockCard, TopDomains, BlockedQueries, TopClients, ServerStatistics } from './components'; - -const Dashboard:FC = observer(() => { - const store = useContext(Store); - const { - dashboard: { stats, filteringConfig }, - system: { status }, - ui: { intl }, - } = store; - - if (!stats || !filteringConfig) { - return null; - } - - const { - numBlockedFiltering, - numReplacedParental, - numReplacedSafebrowsing, - replacedParental, - replacedSafebrowsing, - avgProcessingTime, - blockedFiltering, - - topBlockedDomains, - topQueriedDomains, - dnsQueries, - numDnsQueries, - - } = stats; - - const { filters } = filteringConfig!; - const allFilters = filters?.length; - const allRules = filters?.reduce((prev, e) => prev + (e.rulesCount || 0), 0); - const enabled = filters?.filter((e) => e.enabled).length; - - return ( - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {/* TODO: fix chart */} - - - - - -
-
- ); -}); - -export default Dashboard; diff --git a/client2/src/components/App/Dashboard/components/BlockCard/BlockCard.module.pcss b/client2/src/components/App/Dashboard/components/BlockCard/BlockCard.module.pcss deleted file mode 100644 index 62eb6b4f240..00000000000 --- a/client2/src/components/App/Dashboard/components/BlockCard/BlockCard.module.pcss +++ /dev/null @@ -1,20 +0,0 @@ -.container { - display: flex; - flex-flow: column; - padding: 24px; - background-color: var(--white); -} - -.title { - font-size: 14px; - line-height: 22px; - margin-bottom: 4px; - color: var(--gray700); -} - -.overal { - font-size: 30px; - line-height: 38px; - margin-bottom: 18px; - color: var(--gray900); -} \ No newline at end of file diff --git a/client2/src/components/App/Dashboard/components/BlockCard/BlockCard.tsx b/client2/src/components/App/Dashboard/components/BlockCard/BlockCard.tsx deleted file mode 100644 index b962db01ab9..00000000000 --- a/client2/src/components/App/Dashboard/components/BlockCard/BlockCard.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import React, { FC } from 'react'; -import { AreaChart, Area, ResponsiveContainer } from 'recharts'; - -import s from './BlockCard.module.pcss'; - -interface BlockCardProps { - overal: number | string; - data?: number[]; - text?: string; - color?: string; - title: string; -} - -const BlockCard: FC = ({ overal, data, color, title, text }) => { - return ( -
-
{title}
-
{overal}
- {data && ( - - ({ name: 'data', value: n }))}> - - - - )} - {text && ( -
- {text} -
- )} -
- ); -}; - -export default BlockCard; diff --git a/client2/src/components/App/Dashboard/components/BlockCard/index.ts b/client2/src/components/App/Dashboard/components/BlockCard/index.ts deleted file mode 100644 index 085552ae72c..00000000000 --- a/client2/src/components/App/Dashboard/components/BlockCard/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as BlockCard } from './BlockCard'; diff --git a/client2/src/components/App/Dashboard/components/BlockedQueries/BlockedQueries.module.pcss b/client2/src/components/App/Dashboard/components/BlockedQueries/BlockedQueries.module.pcss deleted file mode 100644 index 7520f474ae1..00000000000 --- a/client2/src/components/App/Dashboard/components/BlockedQueries/BlockedQueries.module.pcss +++ /dev/null @@ -1,16 +0,0 @@ -.container { - display: flex; - flex-flow: column; - padding: 24px; - background-color: var(--white); -} - -.title { - font-size: 14px; - line-height: 22px; - margin-bottom: 4px; - color: var(--gray700); -} -.pie { - padding: 34px 0px; -} \ No newline at end of file diff --git a/client2/src/components/App/Dashboard/components/BlockedQueries/BlockedQueries.tsx b/client2/src/components/App/Dashboard/components/BlockedQueries/BlockedQueries.tsx deleted file mode 100644 index 7b8eec9d3b7..00000000000 --- a/client2/src/components/App/Dashboard/components/BlockedQueries/BlockedQueries.tsx +++ /dev/null @@ -1,76 +0,0 @@ -import theme from 'Lib/theme'; -import React, { FC, useContext, useState } from 'react'; -import { PieChart, Pie, ResponsiveContainer, Sector, Cell } from 'recharts'; - -import Store from 'Store'; - -import s from './BlockedQueries.module.pcss'; - -interface BlockCardProps { - ads: number; - trackers: number; - other: number; -} - -const renderActiveShape = (props: any): any => { - const { - cx, cy, innerRadius, outerRadius, startAngle, endAngle, - fill, payload, percent, - } = props; - return ( - - {payload.name} - {Math.round(percent * 100)}% - - - ); -}; - -const BlockedQueries: FC = ({ ads, trackers, other }) => { - const store = useContext(Store); - const [activeIndex, setActiveIndex] = useState(0); - const { ui: { intl } } = store; - const data = [ - { name: intl.getMessage('other'), value: other, color: theme.chartColors.gray700 }, - { name: intl.getMessage('ads'), value: ads, color: theme.chartColors.red }, - { name: intl.getMessage('trackers'), value: trackers, color: theme.chartColors.orange }, - ]; - const onChart: any = (_: any, index: number) => { - setActiveIndex(index); - }; - return ( -
-
{intl.getMessage('dashboard_blocked_queries')}
-
- - - - {data.map((entry, index) => ( - - ))} - - - -
-
- ); -}; - -export default BlockedQueries; diff --git a/client2/src/components/App/Dashboard/components/BlockedQueries/index.ts b/client2/src/components/App/Dashboard/components/BlockedQueries/index.ts deleted file mode 100644 index 019ab9c9115..00000000000 --- a/client2/src/components/App/Dashboard/components/BlockedQueries/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as BlockedQueries } from './BlockedQueries'; diff --git a/client2/src/components/App/Dashboard/components/ServerStatistics/ServerStatistics.module.pcss b/client2/src/components/App/Dashboard/components/ServerStatistics/ServerStatistics.module.pcss deleted file mode 100644 index cc8003da94e..00000000000 --- a/client2/src/components/App/Dashboard/components/ServerStatistics/ServerStatistics.module.pcss +++ /dev/null @@ -1,46 +0,0 @@ -.container { - display: flex; - flex-flow: column; - background-color: var(--white); - margin-top: 24px; -} - -.title { - padding: 24px; - font-size: 16px; - font-weight: 500; - line-height: 22px; - border-bottom: 1px solid var(--gray300); - color: var(--gray900); -} - -.card { - padding: 24px; - height: 100%; -} - -.cardBorder { - border-right: 1px solid var(--gray300); - - &:last-of-type { - border-right: 0; - } -} - -.cardTitle { - font-weight: 500; - margin-bottom: 12px; -} - -.cardDesc { - color: var(--gray700); -} - -.cardValue { - color: var(--gray900); - font-size: 30px; -} - -.chart { - margin-top: 24px; -} \ No newline at end of file diff --git a/client2/src/components/App/Dashboard/components/ServerStatistics/ServerStatistics.tsx b/client2/src/components/App/Dashboard/components/ServerStatistics/ServerStatistics.tsx deleted file mode 100644 index 1ec98476dae..00000000000 --- a/client2/src/components/App/Dashboard/components/ServerStatistics/ServerStatistics.tsx +++ /dev/null @@ -1,89 +0,0 @@ -import React, { FC, useContext } from 'react'; -import { Row, Col } from 'antd'; -import { AreaChart, Area, ResponsiveContainer } from 'recharts'; - -import Store from 'Store'; -import theme from 'Lib/theme'; - -import s from './ServerStatistics.module.pcss'; - -const ServerStatistics: FC = () => { - const store = useContext(Store); - const { ui: { intl } } = store; - - const data = [0, 10, 2, 14, 12, 24, 5, 8, 10, 0, 3, 5, 7, 8, 3]; - return ( -
-
{intl.getMessage('dashboard_server_statistics')}
- - -
-
- Average server load -
-
-
- Processes: 213 -
-
- Cores: 2 -
-
- - ({ name: 'data', value: n }))}> - - - -
- - -
-
- Memory usage -
-
- 236 Mb -
- - ({ name: 'data', value: n }))}> - - - -
- - -
-
- DNS cashe size -
-
- 2 363 records -
-
-
- 32 Mb -
-
-
- - -
-
- Upstream servers data -
-
-
- Processes: 213 -
-
- Cores: 2 -
-
-
- -
-
- ); -}; - -export default ServerStatistics; diff --git a/client2/src/components/App/Dashboard/components/ServerStatistics/index.ts b/client2/src/components/App/Dashboard/components/ServerStatistics/index.ts deleted file mode 100644 index 982285990bc..00000000000 --- a/client2/src/components/App/Dashboard/components/ServerStatistics/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as ServerStatistics } from './ServerStatistics'; diff --git a/client2/src/components/App/Dashboard/components/TopClients/TopClients.module.pcss b/client2/src/components/App/Dashboard/components/TopClients/TopClients.module.pcss deleted file mode 100644 index d4b4b01a9bd..00000000000 --- a/client2/src/components/App/Dashboard/components/TopClients/TopClients.module.pcss +++ /dev/null @@ -1,43 +0,0 @@ -.container { - display: flex; - flex-flow: column; - background-color: var(--white); -} - -.title { - font-size: 16px; - line-height: 22px; - margin-bottom: 4px; - padding: 24px; - color: var(--gray900); -} - -.table { - position: relative; -} - -.tableTitle { - color: var(--gray700); - background-color: #fafafa; - padding: 24px; - position: sticky; - top: 0; -} - -.tableGrid { - display: grid; - grid-template-columns: 4fr 1fr 1fr 1.5fr 1fr .5fr; - padding: 16px 24px; - border-bottom: 1px solid var(--gray300); - - &:last-of-type { - border-bottom: 0; - } - - > div { - align-self: center; - } -} -.ids { - color: var(--gray700) -} \ No newline at end of file diff --git a/client2/src/components/App/Dashboard/components/TopClients/TopClients.tsx b/client2/src/components/App/Dashboard/components/TopClients/TopClients.tsx deleted file mode 100644 index 9e743964984..00000000000 --- a/client2/src/components/App/Dashboard/components/TopClients/TopClients.tsx +++ /dev/null @@ -1,71 +0,0 @@ -import React, { FC, useContext } from 'react'; -import { Button } from 'antd'; -import cn from 'classnames'; -import { observer } from 'mobx-react-lite'; - -import Store from 'Store'; - -import s from './TopClients.module.pcss'; - -const TopClients: FC = observer(() => { - const store = useContext(Store); - const { ui: { intl }, dashboard } = store; - const { clientsInfo, stats } = dashboard; - const topClients = new Map(); - stats?.topClients?.forEach((client) => { - const [id, requests] = Object.entries(client.numberData); - topClients.set(id, requests); - }); - const clients = Array.from(clientsInfo.entries()); - - return ( -
-
{intl.getMessage('Top Clients')}
-
-
-
{intl.getMessage('client_table_header')}
-
{intl.getMessage('requests')}
-
{intl.getMessage('show_blocked_responses')}
-
%
-
-
-
- {clients.map(([id, c]) => { - const request = topClients.get(id); - return ( -
-
- {c.name} -
- {c.ids?.map((cid) => ( -
{cid}
- ))} -
-
-
- {request} -
-
- API - {/* TODO: api */} -
-
- API / {request} -
-
- -
-
- ... -
-
- ); - })} -
-
- ); -}); - -export default TopClients; diff --git a/client2/src/components/App/Dashboard/components/TopClients/index.ts b/client2/src/components/App/Dashboard/components/TopClients/index.ts deleted file mode 100644 index b495d493f77..00000000000 --- a/client2/src/components/App/Dashboard/components/TopClients/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as TopClients } from './TopClients'; diff --git a/client2/src/components/App/Dashboard/components/TopDomains/TopDomains.module.pcss b/client2/src/components/App/Dashboard/components/TopDomains/TopDomains.module.pcss deleted file mode 100644 index b61ab72affc..00000000000 --- a/client2/src/components/App/Dashboard/components/TopDomains/TopDomains.module.pcss +++ /dev/null @@ -1,62 +0,0 @@ -.container { - display: flex; - flex-flow: column; - background-color: var(--white); -} - -.title { - padding: 24px; - font-size: 16px; - font-weight: 500; - line-height: 22px; - border-bottom: 1px solid var(--gray300); - margin-bottom: 16px; - color: var(--gray900); -} - -.content { - padding: 24px; - -} - -.overal { - font-size: 24px; - line-height: 32px; - margin-bottom: 24px; - color: var(--gray900); -} - -.table { - position: relative; - overflow-y: auto; - max-height: 280px; - width: 100%; -} - -.tableHeader { - /* TODO: color */ - position: sticky; - top: 0; - width: inherit; - background-color: #fafafa; - font-weight: 500; - z-index: 10; -} - -.tableRow { - display: grid; - grid-template-columns: 3fr 1fr 1.5fr; - grid-column-gap: 10px; - padding: 8px 16px; - border-bottom: 1px solid var(--gray300); -} - -.domain { - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; -} - -.progress { - display: flex; -} \ No newline at end of file diff --git a/client2/src/components/App/Dashboard/components/TopDomains/TopDomains.tsx b/client2/src/components/App/Dashboard/components/TopDomains/TopDomains.tsx deleted file mode 100644 index 35fe686f127..00000000000 --- a/client2/src/components/App/Dashboard/components/TopDomains/TopDomains.tsx +++ /dev/null @@ -1,73 +0,0 @@ -import React, { FC, useContext } from 'react'; -import { Progress } from 'antd'; -import cn from 'classnames'; -import { AreaChart, Area, ResponsiveContainer } from 'recharts'; - -import TopArrayEntry from 'Entities/TopArrayEntry'; -import theme from 'Lib/theme'; -import Store from 'Store'; - -import s from './TopDomains.module.pcss'; - -interface TopDomainsProps { - title: string; - overal: number; - chartData: number[]; - tableData: TopArrayEntry[]; - color: string; - useValueColor?: boolean; -} - -const TopDomains: FC = ( - { title, overal, chartData, tableData, color, useValueColor }, -) => { - const store = useContext(Store); - const { ui: { intl } } = store; - const data = tableData.map((e) => { - const [domain, value] = Object.entries(e.numberData)[0]; - return { domain, value }; - }); - - return ( -
-
{title}
-
-
- {overal.toLocaleString('en')} - - ({ name: 'data', value: n }))}> - - - -
-
-
-
- {intl.getMessage('domain')} -
-
- {intl.getMessage('all_queries')} -
-
- % -
-
- {data.map(({ domain, value }) => ( -
-
{domain}
-
{value}
- -
- ))} -
-
-
- ); -}; - -export default TopDomains; diff --git a/client2/src/components/App/Dashboard/components/TopDomains/index.ts b/client2/src/components/App/Dashboard/components/TopDomains/index.ts deleted file mode 100644 index 79fcc1b8a88..00000000000 --- a/client2/src/components/App/Dashboard/components/TopDomains/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as TopDomains } from './TopDomains'; diff --git a/client2/src/components/App/Dashboard/components/index.ts b/client2/src/components/App/Dashboard/components/index.ts deleted file mode 100644 index 9fc2523c5db..00000000000 --- a/client2/src/components/App/Dashboard/components/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export { BlockCard } from './BlockCard'; -export { TopClients } from './TopClients'; -export { TopDomains } from './TopDomains'; -export { BlockedQueries } from './BlockedQueries'; -export { ServerStatistics } from './ServerStatistics'; diff --git a/client2/src/components/App/Dashboard/index.ts b/client2/src/components/App/Dashboard/index.ts deleted file mode 100644 index 449ae5672db..00000000000 --- a/client2/src/components/App/Dashboard/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './Dashboard'; diff --git a/client2/src/components/App/Errors/ErrorBoundary.tsx b/client2/src/components/App/Errors/ErrorBoundary.tsx deleted file mode 100644 index 42204783975..00000000000 --- a/client2/src/components/App/Errors/ErrorBoundary.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import React, { Component, ReactNode } from 'react'; -import cn from 'classnames'; - -import s from './Errors.module.pcss'; - -export default class ErrorBoundary extends Component { - state = { - isError: false, - }; - - static getDerivedStateFromError(): { isError: boolean } { - return { isError: true }; - } - - render(): ReactNode { - const { isError } = this.state; - const { children } = this.props; - - if (isError) { - return ( -
-
- Something went wrong -
-
- ); - } - - return children; - } -} diff --git a/client2/src/components/App/Errors/Errors.module.pcss b/client2/src/components/App/Errors/Errors.module.pcss deleted file mode 100644 index 92e6f9084f8..00000000000 --- a/client2/src/components/App/Errors/Errors.module.pcss +++ /dev/null @@ -1,79 +0,0 @@ -.content { - display: flex; - align-items: center; - justify-content: center; - flex-direction: column; - max-width: 455px; - min-height: calc(100vh - var(--header-height) - 64px); - margin: 0 auto; - text-align: center; - - &_boundary { - min-height: 100vh; - } -} - -.title { - margin-bottom: 8px; - font-size: 18px; - font-weight: 500; - - @media (--s-viewport) { - margin-bottom: 20px; - font-size: 24px; - } -} - -.code { - position: relative; - margin-bottom: 32px; - font-size: 120px; - font-weight: 700; - line-height: 108px; - color: var(--morning); - user-select: none; - - @media (--s-viewport) { - margin-bottom: 54px; - font-size: 180px; - line-height: 162px; - } -} - -.warning { - width: 160px; - height: 173px; - - @media (--s-viewport) { - width: 243px; - height: 262px; - } - - &_code { - position: absolute; - top: -20px; - left: 50%; - transform: translateX(-50%); - - @media (--s-viewport) { - top: -34px; - } - } -} - -.error { - margin-bottom: 10px; - cursor: pointer; -} - -.desc { - margin-bottom: 8px; - max-width: 384px; - font-size: 13px; - color: var(--gray); - - @media (--s-viewport) { - margin-bottom: 20px; - font-size: 14px; - } -} diff --git a/client2/src/components/App/Errors/index.ts b/client2/src/components/App/Errors/index.ts deleted file mode 100644 index e5d6dda21a0..00000000000 --- a/client2/src/components/App/Errors/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as ErrorBoundary } from './ErrorBoundary'; diff --git a/client2/src/components/App/Header/Header.module.pcss b/client2/src/components/App/Header/Header.module.pcss deleted file mode 100644 index 78f6f06784e..00000000000 --- a/client2/src/components/App/Header/Header.module.pcss +++ /dev/null @@ -1,81 +0,0 @@ -.header { - position: relative; - z-index: 1; - color: var(--gray900); - background-color: var(--white); - box-shadow: 0 1px 4px 0 rgba(0, 21, 41, 0.12); -} - -.top, -.bottom { - padding: 12px 16px; - - @media (--l-viewport) { - padding: 12px 32px; - } -} - -.top { - background-color: var(--black); - - @media (--l-viewport) { - display: none; - } -} - -.bottom { - display: flex; - flex-direction: column; - - @media (--l-viewport) { - align-items: center; - flex-direction: row; - height: var(--header-height); - } -} - -.icon { - margin-right: 10px; -} - -.status { - display: flex; - align-items: center; - margin-bottom: 12px; - - @media (--l-viewport) { - margin: 0 16px 0 0; - } -} - -.action { - min-width: 80px; - margin-right: auto; -} - -.languages, -.user { - display: none; - - @media (--l-viewport) { - display: flex; - align-items: center; - } -} - -.user { - margin-right: 32px; -} - -.menu { - color: var(--white); - background-color: transparent; - border: 0; - - &:hover, - &:focus, - &:active { - color: var(--gray400); - background-color: transparent; - } -} diff --git a/client2/src/components/App/Header/Header.tsx b/client2/src/components/App/Header/Header.tsx deleted file mode 100644 index d5da745658e..00000000000 --- a/client2/src/components/App/Header/Header.tsx +++ /dev/null @@ -1,60 +0,0 @@ -import React, { FC, useContext } from 'react'; -import { Button } from 'antd'; -import { MenuOutlined } from '@ant-design/icons'; -import { observer } from 'mobx-react-lite'; - -import { Icon, LangSelect } from 'Common/ui'; -import Store from 'Store'; - -import s from './Header.module.pcss'; - -const Header: FC = observer(() => { - const store = useContext(Store); - const { ui: { intl }, system, ui } = store; - const { status, profile } = system; - - const updateServerStatus = () => { - system.switchServerStatus(!status?.protectionEnabled); - }; - - return ( -
-
-
-
-
- - {status?.protectionEnabled - ? intl.getMessage('header_adguard_status_enabled') - : intl.getMessage('header_adguard_status_disabled')} -
- - {profile?.name && ( -
- - {profile?.name} -
- )} -
- -
-
-
- ); -}); - -export default Header; diff --git a/client2/src/components/App/Header/index.ts b/client2/src/components/App/Header/index.ts deleted file mode 100644 index 579f1ac23fc..00000000000 --- a/client2/src/components/App/Header/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './Header'; diff --git a/client2/src/components/App/Login/ForgotPassword.tsx b/client2/src/components/App/Login/ForgotPassword.tsx deleted file mode 100644 index f19b8a60ef9..00000000000 --- a/client2/src/components/App/Login/ForgotPassword.tsx +++ /dev/null @@ -1,65 +0,0 @@ -import React, { FC, useContext } from 'react'; -import { Button } from 'antd'; -import cn from 'classnames'; - -import { CommonLayout } from 'Common/ui/layouts'; -import { code } from 'Common/formating'; -import { Link } from 'Common/ui'; -import Store from 'Store'; -import theme from 'Lib/theme'; - -import s from './Login.module.pcss'; -import { RoutePath } from '../Routes/Paths'; - -const ForgotPassword: FC = () => { - const store = useContext(Store); - const { ui: { intl } } = store; - - return ( - -
-
- {intl.getMessage('login_password_title')} -
- -

- {intl.getMessage('login_password_hash')} -

- -
-
- {intl.getMessage('login_password_step_1')} -
-
- {intl.getMessage('login_password_step_2', { code })} -
-
- {intl.getMessage('login_password_step_3', { code })} -
-
- {intl.getMessage('login_password_step_4')} -
-
- {intl.getMessage('login_password_step_5')} -
-
- -

- {intl.getMessage('login_password_result')} -

- - - - -
-
- ); -}; - -export default ForgotPassword; diff --git a/client2/src/components/App/Login/Login.module.pcss b/client2/src/components/App/Login/Login.module.pcss deleted file mode 100644 index ae887cd94bc..00000000000 --- a/client2/src/components/App/Login/Login.module.pcss +++ /dev/null @@ -1,34 +0,0 @@ -.title { - margin-bottom: 12px; - font-size: 28px; - text-align: center; - - &_form { - margin-bottom: 32px; - } -} - -.link { - display: inline-block; - vertical-align: middle; - margin-top: 32px; - font-size: 16px; - text-align: center; -} - -.paragraph { - font-size: 16px; - margin: 0 0 14px; -} - -.list { - margin-bottom: 16px; - padding-left: 20px; - font-size: 16px; -} - -.step { - margin-bottom: 5px; - display: list-item; - list-style: decimal; -} diff --git a/client2/src/components/App/Login/Login.tsx b/client2/src/components/App/Login/Login.tsx deleted file mode 100644 index 844e03f9679..00000000000 --- a/client2/src/components/App/Login/Login.tsx +++ /dev/null @@ -1,102 +0,0 @@ -import React, { FC, useContext } from 'react'; -import { Button } from 'antd'; -import { observer } from 'mobx-react-lite'; -import { Formik, FormikHelpers } from 'formik'; -import cn from 'classnames'; - -import { Input } from 'Common/controls'; -import { CommonLayout } from 'Common/ui/layouts'; -import { Link } from 'Common/ui'; -import { RoutePath } from 'Components/App/Routes/Paths'; -import Store from 'Store'; -import theme from 'Lib/theme'; - -import s from './Login.module.pcss'; - -type FormValues = { - name: string; - password: string; -}; - -const Login: FC = observer(() => { - const store = useContext(Store); - const { ui: { intl }, login } = store; - - const onSubmit = async (values: FormValues, { setSubmitting }: FormikHelpers) => { - const { name, password } = values; - - const error = await login.login({ - name, - password, - }); - - if (error) { - setSubmitting(false); - } - }; - - const initialValues: FormValues = { - name: '', - password: '', - }; - - return ( - -
-
- {intl.getMessage('login')} -
- - - {({ - values, - handleSubmit, - setFieldValue, - isSubmitting, - }) => ( -
- setFieldValue('name', v)} - autoFocus - /> - setFieldValue('password', v)} - /> - -
- )} -
- -
- - {intl.getMessage('login_password_link')} - -
-
-
- ); -}); - -export default Login; diff --git a/client2/src/components/App/Login/index.ts b/client2/src/components/App/Login/index.ts deleted file mode 100644 index 3da6e50e817..00000000000 --- a/client2/src/components/App/Login/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { default as Login } from './Login'; -export { default as ForgotPassword } from './ForgotPassword'; diff --git a/client2/src/components/App/Routes/Paths.ts b/client2/src/components/App/Routes/Paths.ts deleted file mode 100644 index f722a790932..00000000000 --- a/client2/src/components/App/Routes/Paths.ts +++ /dev/null @@ -1,63 +0,0 @@ -import qs from 'qs'; -import { Locale } from 'Localization'; - -const BasicPath = '/'; -const pathBuilder = (path: string) => (`${BasicPath}${path}`); - -export enum RoutePath { - Dashboard = 'Dashboard', - FiltersBlocklist = 'FiltersBlocklist', - FiltersAllowlist = 'FiltersAllowlist', - FiltersRewrites = 'FiltersRewrites', - FiltersServices = 'FiltersServices', - FiltersCustom = 'FiltersCustom', - QueryLog = 'QueryLog', - SetupGuide = 'SetupGuide', - SettingsGeneral = 'SettingsGeneral', - SettingsDns = 'SettingsDns', - SettingsEncryption = 'SettingsEncryption', - SettingsClients = 'SettingsClients', - SettingsDhcp = 'SettingsDhcp', - Login = 'Login', - ForgotPassword = 'ForgotPassword', -} - -export const Paths: Record = { - Dashboard: pathBuilder('dashboard'), - FiltersBlocklist: pathBuilder('filters/blocklists'), - FiltersAllowlist: pathBuilder('filters/allowlists'), - FiltersRewrites: pathBuilder('filters/rewrites'), - FiltersServices: pathBuilder('filters/services'), - FiltersCustom: pathBuilder('filters/custom'), - QueryLog: pathBuilder('logs'), - SetupGuide: pathBuilder('guide'), - SettingsGeneral: pathBuilder('settings/general'), - SettingsDns: pathBuilder('settings/dns'), - SettingsEncryption: pathBuilder('settings/encryption'), - SettingsClients: pathBuilder('settings/clients'), - SettingsDhcp: pathBuilder('settings/dhcp'), - Login: pathBuilder(''), - ForgotPassword: pathBuilder('forgot_password'), -}; - -export enum LinkParamsKeys {} -export enum QueryParams {} -export type LinkParams = Partial>; - -export const linkPathBuilder = ( - route: RoutePath, - params?: LinkParams, - lang?: Locale, - query?: Partial>, -) => { - let path = Paths[route]; // .replace(BasicPath, `/${lang}`); - if (params) { - Object.keys(params).forEach((key: unknown) => { - path = path.replace(`:${key}`, String(params[key as LinkParamsKeys])); - }); - } - if (query) { - path += `?${qs.stringify(query)}`; - } - return path; -}; diff --git a/client2/src/components/App/Routes/Routes.module.pcss b/client2/src/components/App/Routes/Routes.module.pcss deleted file mode 100644 index e1561e76f63..00000000000 --- a/client2/src/components/App/Routes/Routes.module.pcss +++ /dev/null @@ -1,3 +0,0 @@ -.app { - min-height: 100vh; -} \ No newline at end of file diff --git a/client2/src/components/App/Routes/Routes.tsx b/client2/src/components/App/Routes/Routes.tsx deleted file mode 100644 index ad6df6cdfcd..00000000000 --- a/client2/src/components/App/Routes/Routes.tsx +++ /dev/null @@ -1,76 +0,0 @@ -import React, { FC, useContext } from 'react'; -import { Layout } from 'antd'; -import { Switch, Route, Redirect } from 'react-router-dom'; -import { observer } from 'mobx-react-lite'; - -import Store from 'Store'; -import { Paths } from './Paths'; - -import Dashboard from '../Dashboard'; -import { Login, ForgotPassword } from '../Login'; -import Sidebar from '../Sidebar'; -import Header from '../Header'; -import SetupGuide from '../SetupGuide'; -import { GeneralSettings } from '../Settings'; - -import s from './Routes.module.pcss'; - -const { Content } = Layout; - -const AuthRoutes: FC = React.memo(() => { - return ( - - - - - ); -}); - -const AppRoutes: FC = observer(() => { - return ( - - - -
- - - - - - - - - - - ); -}); - -const Routes: FC = observer(() => { - const store = useContext(Store); - const { login: { loggedIn } } = store; - if (loggedIn) { - return ; - } - return ; -}); - -export default Routes; diff --git a/client2/src/components/App/Routes/index.ts b/client2/src/components/App/Routes/index.ts deleted file mode 100644 index edc668a3f8d..00000000000 --- a/client2/src/components/App/Routes/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './Routes'; diff --git a/client2/src/components/App/Settings/GeneralSettings/GeneralSettings.tsx b/client2/src/components/App/Settings/GeneralSettings/GeneralSettings.tsx deleted file mode 100644 index 00a273bbaa0..00000000000 --- a/client2/src/components/App/Settings/GeneralSettings/GeneralSettings.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import React, { FC, useContext, useEffect } from 'react'; -import { Tabs, Grid } from 'antd'; -import { observer } from 'mobx-react-lite'; - -import { InnerLayout } from 'Common/ui'; -import Store from 'Store'; - -import { General, QueryLog, Statistics, TAB_KEY } from './components'; - -const { useBreakpoint } = Grid; -const { TabPane } = Tabs; - -const GeneralSettings: FC = observer(() => { - const store = useContext(Store); - const { ui: { intl }, generalSettings } = store; - const { inited } = generalSettings; - const screens = useBreakpoint(); - - useEffect(() => { - if (!inited) { - generalSettings.init(); - } - }, [inited]); - - if (!inited) { - return null; - } - - const tabsPosition = screens.lg ? 'left' : 'top'; - - return ( - - - - - - - - - - - - - - ); -}); - -export default GeneralSettings; diff --git a/client2/src/components/App/Settings/GeneralSettings/components/Common.module.pcss b/client2/src/components/App/Settings/GeneralSettings/components/Common.module.pcss deleted file mode 100644 index e1570e85a43..00000000000 --- a/client2/src/components/App/Settings/GeneralSettings/components/Common.module.pcss +++ /dev/null @@ -1,45 +0,0 @@ -.title { - font-size: 20px; - font-weight: 500; - color: var(--gray900); - margin-bottom: 48px; - display: flex; - justify-content: space-between; -} - -.radio { - display: block; - height: 30px; - line-height: 30px; - - &:first-of-type { - margin-top: -12px; - } -} -.save { - display: block; - margin-top: 24px; -} - -.item { - display: flex; - justify-content: space-between; - margin-bottom: 24px; -} - -.nameTitle { - color: var(--black); -} -.nameDesc { - color: var(--gray700); - margin-right: 40px; - - @media (--m-viewport) { - margin-right: 200px; - } -} -.select { - margin-bottom: 24px; - margin-top: -12px; - width: 200px; -} \ No newline at end of file diff --git a/client2/src/components/App/Settings/GeneralSettings/components/General.tsx b/client2/src/components/App/Settings/GeneralSettings/components/General.tsx deleted file mode 100644 index 7284749658e..00000000000 --- a/client2/src/components/App/Settings/GeneralSettings/components/General.tsx +++ /dev/null @@ -1,169 +0,0 @@ -import React, { FC, useContext } from 'react'; -import { Button, Switch, Select } from 'antd'; -import { Formik, FormikHelpers } from 'formik'; -import { observer } from 'mobx-react-lite'; - -import { Link } from 'Common/ui'; -import Store from 'Store'; -import { RoutePath } from 'Paths'; - -import { s } from '.'; - -const { Option } = Select; - -const General: FC = observer(() => { - const store = useContext(Store); - const { ui: { intl }, generalSettings } = store; - const { - safebrowsing, - filteringConfig, - parental, - safesearch, - } = generalSettings; - - const initialValues = { - ...filteringConfig!.serialize(), - safebrowsing, - parental, - safesearch, - }; - - type InitialValues = typeof initialValues; - - const onSubmit = async (values: InitialValues, helpers: FormikHelpers) => { - // await generalSettings.updateQueryLogConfig(values); - if (initialValues.parental !== values.parental) { - generalSettings[values.parental ? 'parentalEnable' : 'parentalDisable'](); - } - if (initialValues.safesearch !== values.safesearch) { - generalSettings[values.safesearch ? 'safebrowsingEnable' : 'safebrowsingDisable'](); - } - if (initialValues.safebrowsing !== values.safebrowsing) { - generalSettings[values.safebrowsing ? 'safebrowsingEnable' : 'safebrowsingDisable'](); - } - if (initialValues.enabled !== values.enabled - || initialValues.interval !== values.interval) { - generalSettings.updateFilteringConfig({ - interval: values.interval, - enabled: values.enabled, - }); - } - helpers.setSubmitting(false); - }; - - const filtersLink = (e: string) => { - // TODO: fix link - return {e}; - }; - - return ( - <> -
- {intl.getMessage('filter_category_general')} -
- - {({ - handleSubmit, - values, - setFieldValue, - isSubmitting, - dirty, - }) => ( -
-
-
-
- {intl.getMessage('block_domain_use_filters_and_hosts')} -
-
- {intl.getMessage('filters_block_toggle_hint', { a: filtersLink })} -
-
- setFieldValue('enabled', e)}/> -
-
-
-
- {intl.getMessage('filters_interval')} -
-
-
- -
-
-
- {intl.getMessage('use_adguard_browsing_sec')} -
-
- {intl.getMessage('use_adguard_browsing_sec_hint')} -
-
- setFieldValue('safebrowsing', e)}/> -
-
-
-
- {intl.getMessage('use_adguard_parental')} -
-
- {intl.getMessage('use_adguard_parental_hint')} -
-
- setFieldValue('parental', e)}/> -
-
-
-
- {intl.getMessage('enforce_safe_search')} -
-
- {intl.getMessage('enforce_save_search_hint')} -
-
- setFieldValue('safesearch', e)}/> -
- {dirty && ( - - )} -
- )} -
- - ); -}); - -export default General; diff --git a/client2/src/components/App/Settings/GeneralSettings/components/QueryLog.tsx b/client2/src/components/App/Settings/GeneralSettings/components/QueryLog.tsx deleted file mode 100644 index c13bf599ec3..00000000000 --- a/client2/src/components/App/Settings/GeneralSettings/components/QueryLog.tsx +++ /dev/null @@ -1,124 +0,0 @@ -import React, { FC, useContext, useState } from 'react'; -import { Radio, Button, Switch } from 'antd'; -import { Formik, FormikHelpers } from 'formik'; -import { observer } from 'mobx-react-lite'; - -import { notifySuccess, ConfirmModalLayout } from 'Common/ui'; -import { IQueryLogConfig } from 'Entities/QueryLogConfig'; -import Store from 'Store'; - -import { s } from '.'; - -const { Group } = Radio; - -const QueryLog: FC = observer(() => { - const store = useContext(Store); - const [showConfirm, setShowConfirm] = useState(false); - const { ui: { intl }, generalSettings } = store; - const { - queryLogConfig, - } = generalSettings; - - const onSubmit = async (values: IQueryLogConfig, helpers: FormikHelpers) => { - await generalSettings.updateQueryLogConfig(values); - helpers.setSubmitting(false); - }; - - const onReset = async () => { - const result = await generalSettings.querylogClear(); - if (result) { - notifySuccess(intl.getMessage('query_log_cleared')); - } - }; - - return ( - <> -
- {intl.getMessage('query_log_configuration')} - -
- setShowConfirm(false)} - title={intl.getMessage('query_log_clear')} - buttonText={intl.getMessage('query_log_clear')} - > - {intl.getMessage('query_log_confirm_clear')} - - - {({ - handleSubmit, - values, - setFieldValue, - isSubmitting, - dirty, - }) => ( -
-
-
-
- {intl.getMessage('query_log_enable')} -
-
- setFieldValue('enabled', e)}/> -
-
-
-
- {intl.getMessage('anonymize_client_ip')} -
-
- {intl.getMessage('anonymize_client_ip_desc')} -
-
- setFieldValue('anonymize_client_ip', e)}/> -
-
-
-
- {intl.getMessage('query_log_retention')} -
-
- {intl.getMessage('query_log_retention_confirm')} -
-
-
- setFieldValue('interval', e.target.value)}> - - {intl.getMessage('interval_24_hour')} - - - {intl.getPlural('interval_days', 7, { count: 7 })} - - - {intl.getPlural('interval_days', 30, { count: 30 })} - - - {intl.getPlural('interval_days', 90, { count: 90 })} - - - {dirty && ( - - )} -
- )} -
- - ); -}); - -export default QueryLog; diff --git a/client2/src/components/App/Settings/GeneralSettings/components/Statistics.tsx b/client2/src/components/App/Settings/GeneralSettings/components/Statistics.tsx deleted file mode 100644 index 7b6e2112076..00000000000 --- a/client2/src/components/App/Settings/GeneralSettings/components/Statistics.tsx +++ /dev/null @@ -1,105 +0,0 @@ -import React, { FC, useContext, useState } from 'react'; -import { Radio, Button } from 'antd'; -import { Formik, FormikHelpers } from 'formik'; -import { observer } from 'mobx-react-lite'; - -import { notifySuccess, ConfirmModalLayout } from 'Common/ui'; -import { IStatsConfig } from 'Entities/StatsConfig'; -import Store from 'Store'; - -import { s } from '.'; - -const { Group } = Radio; - -const Statistics: FC = observer(() => { - const store = useContext(Store); - const [showConfirm, setShowConfirm] = useState(false); - const { ui: { intl }, generalSettings } = store; - const { - statsConfig, - } = generalSettings; - - const onSubmit = async (values: IStatsConfig, helpers: FormikHelpers) => { - await generalSettings.updateStatsConfig(values); - helpers.setSubmitting(false); - }; - - const onReset = async () => { - const result = await generalSettings.statsReset(); - if (result) { - notifySuccess(intl.getMessage('stats_reset')); - } - }; - - return ( - <> -
- {intl.getMessage('statistics_configuration')} - -
- setShowConfirm(false)} - title={intl.getMessage('statistics_clear')} - buttonText={intl.getMessage('statistics_clear')} - > - {intl.getMessage('statistics_clear_confirm')} - - - {({ - handleSubmit, - values, - setFieldValue, - isSubmitting, - dirty, - }) => ( -
-
-
-
- {intl.getMessage('statistics_retention')} -
-
- {intl.getMessage('statistics_retention_desc')} -
-
-
- setFieldValue('interval', e.target.value)}> - - {intl.getMessage('interval_24_hour')} - - - {intl.getPlural('interval_days', 7, { count: 7 })} - - - {intl.getPlural('interval_days', 30, { count: 30 })} - - - {intl.getPlural('interval_days', 90, { count: 90 })} - - - {dirty && ( - - )} -
- )} -
- - ); -}); - -export default Statistics; diff --git a/client2/src/components/App/Settings/GeneralSettings/components/index.ts b/client2/src/components/App/Settings/GeneralSettings/components/index.ts deleted file mode 100644 index 872b4789c57..00000000000 --- a/client2/src/components/App/Settings/GeneralSettings/components/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -export { default as General } from './General'; -export { default as QueryLog } from './QueryLog'; -export { default as Statistics } from './Statistics'; -export enum TAB_KEY { - GENERAL = 'GENERAL', - QUERY_LOG = 'QUERY_LOG', - STATISTICS = 'STATISTICS', -} -export { default as s } from './Common.module.pcss'; diff --git a/client2/src/components/App/Settings/GeneralSettings/index.ts b/client2/src/components/App/Settings/GeneralSettings/index.ts deleted file mode 100644 index 103dbe79819..00000000000 --- a/client2/src/components/App/Settings/GeneralSettings/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as GeneralSettings } from './GeneralSettings'; diff --git a/client2/src/components/App/Settings/index.ts b/client2/src/components/App/Settings/index.ts deleted file mode 100644 index dfb1ece8e6d..00000000000 --- a/client2/src/components/App/Settings/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { GeneralSettings } from './GeneralSettings'; diff --git a/client2/src/components/App/SetupGuide/SetupGuide.module.pcss b/client2/src/components/App/SetupGuide/SetupGuide.module.pcss deleted file mode 100644 index c4ac60c53c2..00000000000 --- a/client2/src/components/App/SetupGuide/SetupGuide.module.pcss +++ /dev/null @@ -1,31 +0,0 @@ -.title { - margin-bottom: 16px; - font-size: 20px; - font-weight: 500; - - @media (--m-viewport) { - margin-bottom: 24px; - } -} - -.text { - margin-bottom: 32px; - font-size: 14px; - color: var(--gray900); - - p { - margin: 0 0 5px; - } -} - -.addresses { - margin-top: 16px; -} - -.address { - font-family: var(--font-family-monospace); - font-size: 16px; - font-weight: 600; - word-break: break-all; - color: var(--green400); -} diff --git a/client2/src/components/App/SetupGuide/SetupGuide.tsx b/client2/src/components/App/SetupGuide/SetupGuide.tsx deleted file mode 100644 index f4c5a760bca..00000000000 --- a/client2/src/components/App/SetupGuide/SetupGuide.tsx +++ /dev/null @@ -1,92 +0,0 @@ -import React, { FC, useContext } from 'react'; -import { Tabs, Grid } from 'antd'; - -import { InnerLayout } from 'Common/ui'; -import { externalLink, p } from 'Common/formating'; -import { DHCP_LINK } from 'Consts/common'; -import Store from 'Store'; - -import s from './SetupGuide.module.pcss'; - -const { useBreakpoint } = Grid; -const { TabPane } = Tabs; - -const SetupGuide: FC = () => { - const store = useContext(Store); - const { ui: { intl }, system } = store; - const screens = useBreakpoint(); - const tabsPosition = screens.lg ? 'left' : 'top'; - - const { status } = system; - - const tabs = [ - { - key: intl.getMessage('router'), - text: intl.getMessage('install_configure_router', { p }), - }, - { - key: 'Windows', - text: intl.getMessage('install_configure_windows', { p }), - }, - { - key: 'macOS', - text: intl.getMessage('install_configure_macos', { p }), - }, - { - key: 'Linux', - text: intl.getMessage('install_configure_router', { p }), - }, - { - key: 'Android', - text: intl.getMessage('install_configure_android', { p }), - }, - { - key: 'iOS', - text: intl.getMessage('install_configure_ios', { p }), - }, - ]; - - const addresses = ( - <> -
- {intl.getMessage('install_configure_adresses')} - {status?.dnsAddresses && ( -
- {status.dnsAddresses.map((address) => ( -
- {address} -
- ))} -
- )} -
-
- {intl.getMessage('install_configure_dhcp', { dhcp: externalLink(DHCP_LINK) })} -
- - ); - - return ( - - - {tabs.map((tab) => ( - -
- {intl.getMessage('install_configure_how_to_title', { value: tab.key })} -
-
- {tab.text} -
- {addresses} -
- ))} -
-
- ); -}; - -export default SetupGuide; diff --git a/client2/src/components/App/SetupGuide/index.tsx b/client2/src/components/App/SetupGuide/index.tsx deleted file mode 100644 index 97a2bb20731..00000000000 --- a/client2/src/components/App/SetupGuide/index.tsx +++ /dev/null @@ -1 +0,0 @@ -export { default } from './SetupGuide'; diff --git a/client2/src/components/App/Sidebar/Sidebar.module.pcss b/client2/src/components/App/Sidebar/Sidebar.module.pcss deleted file mode 100644 index 6942d66a57d..00000000000 --- a/client2/src/components/App/Sidebar/Sidebar.module.pcss +++ /dev/null @@ -1,23 +0,0 @@ -.logo { - width: 118px; - height: 31px; - margin: 20px; -} - -.icon { - width: 16px; - height: 16px; - margin-right: 10px; -} - -.menu { - display: flex; - flex-direction: column; - min-height: calc(100% - 71px); -} - -.logout { - @media (--m-viewport) { - margin-top: auto!important; - } -} diff --git a/client2/src/components/App/Sidebar/Sidebar.tsx b/client2/src/components/App/Sidebar/Sidebar.tsx deleted file mode 100644 index f7485bc73e6..00000000000 --- a/client2/src/components/App/Sidebar/Sidebar.tsx +++ /dev/null @@ -1,116 +0,0 @@ -import React, { FC, useContext } from 'react'; -import { Layout, Menu, Grid } from 'antd'; -import { observer } from 'mobx-react-lite'; -import { PieChartOutlined, FormOutlined, TableOutlined, ProfileOutlined, SettingOutlined } from '@ant-design/icons'; - -import Store from 'Store'; -import { Link, Icon, Mask } from 'Common/ui'; -import { RoutePath, linkPathBuilder } from 'Components/App/Routes/Paths'; - -import s from './Sidebar.module.pcss'; - -const { Sider } = Layout; -const { Item: MenuItem, SubMenu } = Menu; -const { useBreakpoint } = Grid; - -const Sidebar: FC = observer(() => { - const store = useContext(Store); - const screens = useBreakpoint(); - const { ui: { intl, sidebarOpen, toggleSidebar } } = store; - - if (!Object.keys(screens).length) { - return null; - } - - const handleSidebar = () => { - if (!screens.xl) { - toggleSidebar(); - } - }; - - return ( - <> - - - - - - - {intl.getMessage('dashboard')} - - - - - - {intl.getMessage('filters')} - - - - - - {intl.getMessage('query_log')} - - - - - - {intl.getMessage('setup_guide')} - - - } - title={intl.getMessage('settings')} - > - - - {intl.getMessage('general_settings')} - - - - - {intl.getMessage('dns_settings')} - - - - - {intl.getMessage('encryption_settings')} - - - - - {intl.getMessage('client_settings')} - - - - - {intl.getMessage('dhcp_settings')} - - - - - - - {intl.getMessage('sign_out')} - - - - - - - ); -}); - -export default Sidebar; diff --git a/client2/src/components/App/Sidebar/index.ts b/client2/src/components/App/Sidebar/index.ts deleted file mode 100644 index e842a8591f8..00000000000 --- a/client2/src/components/App/Sidebar/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './Sidebar'; diff --git a/client2/src/components/App/index.ts b/client2/src/components/App/index.ts deleted file mode 100644 index 9122fa1a9e0..00000000000 --- a/client2/src/components/App/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './App'; diff --git a/client2/src/components/Install/Install.tsx b/client2/src/components/Install/Install.tsx deleted file mode 100644 index 3e7d797e072..00000000000 --- a/client2/src/components/Install/Install.tsx +++ /dev/null @@ -1,122 +0,0 @@ -import React, { FC } from 'react'; -import { Layout } from 'antd'; -import { Formik, FormikHelpers } from 'formik'; -import { observer } from 'mobx-react-lite'; -import cn from 'classnames'; - -import { IInitialConfigurationBeta } from 'Entities/InitialConfigurationBeta'; -import Icons from 'Common/ui/Icons'; -import { - DEFAULT_DNS_ADDRESS, - DEFAULT_DNS_PORT, - DEFAULT_IP_ADDRESS, - DEFAULT_IP_PORT, -} from 'Consts/install'; -import { notifyError } from 'Common/ui'; -import InstallStore from 'Store/stores/Install'; -import theme from 'Lib/theme'; - -import AdminInterface from './components/AdminInterface'; -import Auth from './components/Auth'; -import DnsServer from './components/DnsServer'; -import Stepper from './components/Stepper'; -import Welcome from './components/Welcome'; -import ConfigureDevices from './components/ConfigureDevices'; - -const { Content } = Layout; - -export type FormValues = IInitialConfigurationBeta & { step: number }; - -const InstallForm: FC = observer(() => { - const initialValues: FormValues = { - step: 0, - web: { - ip: [DEFAULT_IP_ADDRESS], - port: DEFAULT_IP_PORT, - }, - dns: { - ip: [DEFAULT_DNS_ADDRESS], - port: DEFAULT_DNS_PORT, - }, - password: '', - username: '', - }; - - const onNext = async (values: FormValues, { setFieldValue }: FormikHelpers) => { - const currentStep = values.step; - const checker = (condition: boolean, message: string) => { - if (condition) { - setFieldValue('step', currentStep + 1); - } else { - notifyError(message); - } - }; - switch (currentStep) { - case 1: { - // web - const check = await InstallStore.checkConfig(values); - checker(check?.web?.status === '', check?.web?.status || ''); - break; - } - case 3: { - // dns - const check = await InstallStore.checkConfig(values); - checker(check?.dns?.status === '', check?.dns?.status || ''); - break; - } - case 4: { - // configure - const config = await InstallStore.configure(values); - if (config) { - const { web } = values; - window.location.href = `http://${web.ip[0]}:${web.port}`; - } - break; - } - default: - setFieldValue('step', currentStep + 1); - break; - } - }; - - return ( - - {({ values, handleSubmit, setFieldValue }) => ( -
- - {values.step === 0 && ( - setFieldValue('step', 1)}/> - )} - {values.step === 1 && ( - - )} - {values.step === 2 && ( - - )} - {values.step === 3 && ( - - )} - {values.step === 4 && ( - - )} - - )} -
- ); -}); - -const Install: FC = () => { - return ( - - - - - - - ); -}; - -export default Install; diff --git a/client2/src/components/Install/components/AdminInterface/AdminInterface.tsx b/client2/src/components/Install/components/AdminInterface/AdminInterface.tsx deleted file mode 100644 index 1a4b3757360..00000000000 --- a/client2/src/components/Install/components/AdminInterface/AdminInterface.tsx +++ /dev/null @@ -1,142 +0,0 @@ -import React, { FC, useContext } from 'react'; -import cn from 'classnames'; -import { observer } from 'mobx-react-lite'; -import { FormikHelpers } from 'formik'; - -import { Input, Radio, Switch } from 'Common/controls'; -import { DEFAULT_IP_ADDRESS } from 'Consts/install'; -import { chechNetworkType, NETWORK_TYPE } from 'Helpers/installHelpers'; -import theme from 'Lib/theme'; -import Store from 'Store/installStore'; - -import { FormValues } from '../../Install'; -import StepButtons from '../StepButtons'; - -enum NETWORK_OPTIONS { - ALL = 'all', - CUSTOM = 'custom', -} - -interface AdminInterfaceProps { - values: FormValues; - setFieldValue: FormikHelpers['setFieldValue']; -} - -const AdminInterface: FC = observer(({ - values, - setFieldValue, -}) => { - const { ui: { intl }, install: { addresses } } = useContext(Store); - const { web: { ip } } = values; - const radioValue = ip.length === 1 && ip[0] === DEFAULT_IP_ADDRESS - ? NETWORK_OPTIONS.ALL : NETWORK_OPTIONS.CUSTOM; - - const onSelectRadio = (v: string | number) => { - const value = v === NETWORK_OPTIONS.ALL - ? [DEFAULT_IP_ADDRESS] : []; - setFieldValue('web.ip', value); - }; - - const getManualBlock = () => ( -
- {addresses?.interfaces.map((a) => { - let name = ''; - const type = chechNetworkType(a.name); - switch (type) { - case NETWORK_TYPE.ETHERNET: - name = `${intl.getMessage('ethernet')} (${a.name}) `; - break; - case NETWORK_TYPE.LOCAL: - name = `${intl.getMessage('localhost')} (${a.name}) `; - break; - default: - name = a.name || ''; - break; - } - return ( -
-
- {name} -
- {a.ipAddresses?.map((addrIp) => ( -
-
- http://{addrIp} -
- { - const temp = new Set(ip); - if (temp.has(addrIp)) { - temp.delete(addrIp); - } else { - temp.add(addrIp); - } - setFieldValue('web.ip', Array.from(temp.values())); - }}/> -
- ))} -
- ); - })} -
- ); - - return ( - <> -
- {intl.getMessage('install_admin_interface_title')} -
-
- {intl.getMessage('install_admin_interface_title_decs')} -
-
- {intl.getMessage('install_admin_interface_where_interface')} -
-
- {intl.getMessage('install_admin_interface_where_interface_desc')} -
- - { radioValue !== NETWORK_OPTIONS.ALL && getManualBlock()} -
- {intl.getMessage('install_admin_interface_port')} -
-
- {intl.getMessage('install_admin_interface_port_desc')} -
- { - const port = v === '' ? '' : parseInt(v, 10); - setFieldValue('web.port', port); - }} - /> - - - ); -}); - -export default AdminInterface; diff --git a/client2/src/components/Install/components/AdminInterface/index.ts b/client2/src/components/Install/components/AdminInterface/index.ts deleted file mode 100644 index e0f7b851620..00000000000 --- a/client2/src/components/Install/components/AdminInterface/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './AdminInterface'; diff --git a/client2/src/components/Install/components/Auth/Auth.tsx b/client2/src/components/Install/components/Auth/Auth.tsx deleted file mode 100644 index fe346328ef5..00000000000 --- a/client2/src/components/Install/components/Auth/Auth.tsx +++ /dev/null @@ -1,55 +0,0 @@ -import React, { FC, useContext } from 'react'; -import cn from 'classnames'; -import { observer } from 'mobx-react-lite'; -import { FormikHelpers } from 'formik'; - -import { Input } from 'Common/controls'; -import theme from 'Lib/theme'; -import Store from 'Store/installStore'; - -import StepButtons from '../StepButtons'; -import { FormValues } from '../../Install'; - -interface AuthProps { - values: FormValues; - setFieldValue: FormikHelpers['setFieldValue']; -} - -const Auth: FC = observer(({ - values, - setFieldValue, -}) => { - const { ui: { intl } } = useContext(Store); - - return ( - <> -
- {intl.getMessage('install_auth_title')} -
-
- {intl.getMessage('install_auth_description')} -
- setFieldValue('username', v)} - /> - setFieldValue('password', v)} - /> - - - ); -}); - -export default Auth; diff --git a/client2/src/components/Install/components/Auth/index.ts b/client2/src/components/Install/components/Auth/index.ts deleted file mode 100644 index b1dea29b872..00000000000 --- a/client2/src/components/Install/components/Auth/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './Auth'; diff --git a/client2/src/components/Install/components/ConfigureDevices/ConfigureDevices.tsx b/client2/src/components/Install/components/ConfigureDevices/ConfigureDevices.tsx deleted file mode 100644 index fc305adfb54..00000000000 --- a/client2/src/components/Install/components/ConfigureDevices/ConfigureDevices.tsx +++ /dev/null @@ -1,142 +0,0 @@ -import React, { FC, useContext } from 'react'; -import { Tabs, Grid } from 'antd'; -import cn from 'classnames'; -import { FormikHelpers } from 'formik'; - -import { DHCP_LINK } from 'Consts/common'; -import { danger, externalLink, p } from 'Common/formating'; -import { DEFAULT_DNS_PORT, DEFAULT_IP_ADDRESS, DEFAULT_IP_PORT } from 'Consts/install'; -import Store from 'Store/installStore'; -import theme from 'Lib/theme'; - -import { FormValues } from '../../Install'; -import StepButtons from '../StepButtons'; - -const { useBreakpoint } = Grid; -const { TabPane } = Tabs; - -interface ConfigureDevicesProps { - values: FormValues; - setFieldValue: FormikHelpers['setFieldValue']; -} - -const ConfigureDevices: FC = ({ - values, setFieldValue, -}) => { - const { ui: { intl }, install: { addresses } } = useContext(Store); - const screens = useBreakpoint(); - const tabsPosition = screens.md ? 'left' : 'top'; - - const allIps = addresses?.interfaces.reduce((all, data) => { - const { ipAddresses } = data; - if (ipAddresses) { - all.push(...ipAddresses); - } - return all; - }, [] as string[]); - - const { web: { ip: webIp }, dns: { ip: dnsIp } } = values; - const selectedWebIps = webIp.length === 1 && webIp[0] === DEFAULT_IP_ADDRESS - ? allIps : webIp; - const selectedDnsIps = dnsIp.length === 1 && dnsIp[0] === DEFAULT_IP_ADDRESS - ? allIps : dnsIp; - - return ( - <> -
- {intl.getMessage('install_configure_title')} -
-
- {intl.getMessage('install_configure_danger_notice', { danger })} -
- - - -
- {intl.getMessage('install_configure_how_to_title', { value: intl.getMessage('router') })} -
-
- {intl.getMessage('install_configure_router', { p })} -
-
- -
- {intl.getMessage('install_configure_how_to_title', { value: 'Windows' })} -
-
- {intl.getMessage('install_configure_windows', { p })} -
-
- -
- {intl.getMessage('install_configure_how_to_title', { value: 'macOS' })} -
-
- {intl.getMessage('install_configure_macos', { p })} -
-
- -
- {intl.getMessage('install_configure_how_to_title', { value: 'Linux' })} -
-
- {/* TODO: add linux setup */} - {intl.getMessage('install_configure_router', { p })} -
-
- -
- {intl.getMessage('install_configure_how_to_title', { value: 'Android' })} -
-
- {intl.getMessage('install_configure_android', { p })} -
-
- -
- {intl.getMessage('install_configure_how_to_title', { value: 'iOS' })} -
-
- {intl.getMessage('install_configure_ios', { p })} -
-
-
- -
- {intl.getMessage('install_configure_adresses')} -
-
-
- {intl.getMessage('install_admin_interface_title')} -
-
- {selectedWebIps?.map((ip) => ( -
- {ip}{values.web.port !== DEFAULT_IP_PORT && `:${values.web.port}`} -
- ))} -
-
- {intl.getMessage('install_dns_server_title')} -
-
- {selectedDnsIps?.map((ip) => ( -
- {ip}{values.dns.port !== DEFAULT_DNS_PORT && `:${values.dns.port}`} -
- ))} -
-
-
- {intl.getMessage('install_configure_dhcp', { dhcp: externalLink(DHCP_LINK) })} -
- - - ); -}; - -export default ConfigureDevices; diff --git a/client2/src/components/Install/components/ConfigureDevices/index.ts b/client2/src/components/Install/components/ConfigureDevices/index.ts deleted file mode 100644 index 928cdfa0fb5..00000000000 --- a/client2/src/components/Install/components/ConfigureDevices/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './ConfigureDevices'; diff --git a/client2/src/components/Install/components/DnsServer/DnsServer.tsx b/client2/src/components/Install/components/DnsServer/DnsServer.tsx deleted file mode 100644 index 60db1260047..00000000000 --- a/client2/src/components/Install/components/DnsServer/DnsServer.tsx +++ /dev/null @@ -1,142 +0,0 @@ -import React, { FC, useContext } from 'react'; -import cn from 'classnames'; -import { observer } from 'mobx-react-lite'; -import { FormikHelpers } from 'formik'; - -import { Input, Radio, Switch } from 'Common/controls'; -import { DEFAULT_IP_ADDRESS } from 'Consts/install'; -import { chechNetworkType, NETWORK_TYPE } from 'Helpers/installHelpers'; -import theme from 'Lib/theme'; -import Store from 'Store/installStore'; - -import { FormValues } from '../../Install'; -import StepButtons from '../StepButtons'; - -enum NETWORK_OPTIONS { - ALL = 'all', - CUSTOM = 'custom', -} - -interface DnsServerProps { - values: FormValues; - setFieldValue: FormikHelpers['setFieldValue']; -} - -const DnsServer: FC = observer(({ - values, - setFieldValue, -}) => { - const { ui: { intl }, install: { addresses } } = useContext(Store); - const { dns: { ip } } = values; - const radioValue = ip.length === 1 && ip[0] === DEFAULT_IP_ADDRESS - ? NETWORK_OPTIONS.ALL : NETWORK_OPTIONS.CUSTOM; - - const onSelectRadio = (v: string | number) => { - const value = v === NETWORK_OPTIONS.ALL - ? [DEFAULT_IP_ADDRESS] : []; - setFieldValue('dns.ip', value); - }; - - const getManualBlock = () => ( -
- {addresses?.interfaces.map((a) => { - let name = ''; - const type = chechNetworkType(a.name); - switch (type) { - case NETWORK_TYPE.ETHERNET: - name = `${intl.getMessage('ethernet')} (${a.name}) `; - break; - case NETWORK_TYPE.LOCAL: - name = `${intl.getMessage('localhost')} (${a.name}) `; - break; - default: - name = a.name || ''; - break; - } - return ( -
-
- {name} -
- {a.ipAddresses?.map((addrIp) => ( -
-
- {addrIp} -
- { - const temp = new Set(ip); - if (temp.has(addrIp)) { - temp.delete(addrIp); - } else { - temp.add(addrIp); - } - setFieldValue('dns.ip', Array.from(temp.values())); - }}/> -
- ))} -
- ); - })} -
- ); - - return ( -
-
- {intl.getMessage('install_dns_server_title')} -
-
- {intl.getMessage('install_dns_server_desc')} -
-
- {intl.getMessage('install_dns_server_network_interfaces')} -
-
- {intl.getMessage('install_dns_server_network_interfaces_desc')} -
- - { radioValue !== NETWORK_OPTIONS.ALL && getManualBlock()} -
- {intl.getMessage('install_dns_server_port')} -
-
- {intl.getMessage('install_dns_server_port_desc')} -
- { - const port = v === '' ? '' : parseInt(v, 10); - setFieldValue('dns.port', port); - }} - /> - -
- ); -}); - -export default DnsServer; diff --git a/client2/src/components/Install/components/DnsServer/index.ts b/client2/src/components/Install/components/DnsServer/index.ts deleted file mode 100644 index 95d67c54870..00000000000 --- a/client2/src/components/Install/components/DnsServer/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './DnsServer'; diff --git a/client2/src/components/Install/components/StepButtons/StepButtons.tsx b/client2/src/components/Install/components/StepButtons/StepButtons.tsx deleted file mode 100644 index d5875eac079..00000000000 --- a/client2/src/components/Install/components/StepButtons/StepButtons.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import React, { FC, useContext } from 'react'; -import { Button } from 'antd'; -import { observer } from 'mobx-react-lite'; -import { FormikHelpers } from 'formik'; - -import Store from 'Store/installStore'; -import theme from 'Lib/theme'; - -import { FormValues } from '../../Install'; - -interface StepButtonsProps { - setFieldValue: FormikHelpers['setFieldValue']; - currentStep: number; - values: FormValues; -} - -const StepButtons: FC = observer(({ - setFieldValue, - currentStep, -}) => { - const { ui: { intl } } = useContext(Store); - return ( -
- - -
- ); -}); - -export default StepButtons; diff --git a/client2/src/components/Install/components/StepButtons/index.ts b/client2/src/components/Install/components/StepButtons/index.ts deleted file mode 100644 index a4875a80f24..00000000000 --- a/client2/src/components/Install/components/StepButtons/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './StepButtons'; diff --git a/client2/src/components/Install/components/Stepper/Stepper.module.pcss b/client2/src/components/Install/components/Stepper/Stepper.module.pcss deleted file mode 100644 index 3f6f3a0d214..00000000000 --- a/client2/src/components/Install/components/Stepper/Stepper.module.pcss +++ /dev/null @@ -1,66 +0,0 @@ -.stepper { - position: relative; - display: flex; - align-items: center; - justify-content: space-between; - height: 16px; - margin-bottom: 32px; - - @media (--m-viewport) { - margin-bottom: 48px; - } -} - -.wrap { - flex: 1; - position: relative; - display: inline-flex; - align-items: center; - justify-content: flex-end; - height: 16px; - - &:before { - content: ""; - position: absolute; - left: 0; - bottom: 7px; - width: 100%; - height: 1px; - background-color: var(--gray400); - } - - &:first-child { - flex: 0; - - &:before { - display: none; - } - } - - &.current .circle { - transform: scale(2); - background-color: var(--green400); - border-color: var(--green400); - } - - &.active .circle { - background-color: var(--green400); - border-color: var(--green400); - } - - &.current:before, - &.active:before { - background-color: var(--green400); - } -} - -.circle { - position: relative; - z-index: 1; - width: 8px; - height: 8px; - background-color: var(--white); - border-radius: 50%; - border: 1px solid var(--gray400); - transition: var(--transition) transform, var(--transition) background, var(--transition) border; -} diff --git a/client2/src/components/Install/components/Stepper/Stepper.tsx b/client2/src/components/Install/components/Stepper/Stepper.tsx deleted file mode 100644 index 29950ca849d..00000000000 --- a/client2/src/components/Install/components/Stepper/Stepper.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import React, { FC } from 'react'; -import cn from 'classnames'; - -import s from './Stepper.module.pcss'; - -interface StepProps { - active: boolean; - current: boolean; -} - -const Step: FC = ({ active, current }) => { - return ( -
-
-
- ); -}; - -interface StepperProps { - currentStep: number; -} - -const Stepper: FC = ({ currentStep }) => { - return ( -
- = 0} /> - = 1} /> - = 2} /> - = 3} /> - = 4} /> -
- ); -}; - -export default Stepper; diff --git a/client2/src/components/Install/components/Stepper/index.ts b/client2/src/components/Install/components/Stepper/index.ts deleted file mode 100644 index 2fb2a1bd819..00000000000 --- a/client2/src/components/Install/components/Stepper/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './Stepper'; diff --git a/client2/src/components/Install/components/Welcome/Welcome.tsx b/client2/src/components/Install/components/Welcome/Welcome.tsx deleted file mode 100644 index baa8118487b..00000000000 --- a/client2/src/components/Install/components/Welcome/Welcome.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import React, { FC, useContext } from 'react'; -import { Button } from 'antd'; -import { observer } from 'mobx-react-lite'; - -import Store from 'Store/installStore'; -import Icon from 'Common/ui/Icon'; -import theme from 'Lib/theme'; - -interface WelcomeProps { - onNext: () => void; -} - -const Welcome: FC = observer(({ onNext }) => { - const { ui: { intl } } = useContext(Store); - return ( - <> - -
- {intl.getMessage('install_wellcome_title')} -
-
- {intl.getMessage('install_wellcome_desc')} -
-
- -
- - ); -}); - -export default Welcome; diff --git a/client2/src/components/Install/components/Welcome/index.ts b/client2/src/components/Install/components/Welcome/index.ts deleted file mode 100644 index 7cc4be19a5f..00000000000 --- a/client2/src/components/Install/components/Welcome/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './Welcome'; diff --git a/client2/src/components/Install/index.ts b/client2/src/components/Install/index.ts deleted file mode 100644 index 6808555d00b..00000000000 --- a/client2/src/components/Install/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './Install'; diff --git a/client2/src/components/common/controls/Button/Button.tsx b/client2/src/components/common/controls/Button/Button.tsx deleted file mode 100644 index 667b9abd5d9..00000000000 --- a/client2/src/components/common/controls/Button/Button.tsx +++ /dev/null @@ -1,67 +0,0 @@ -import React, { FC, FocusEvent } from 'react'; -import { Button as ButtonControl } from 'antd'; -import cn from 'classnames'; - -type ButtonSize = 'small' | 'medium' | 'big'; -type ButtonType = 'primary' | 'icon' | 'link' | 'outlined' | 'border' | 'ghost' | 'input' | 'edit'; -type ButtonHTMLType = 'submit' | 'button' | 'reset'; -type ButtonShape = 'circle' | 'round'; - -export interface ButtonProps { - className?: string; - danger?: boolean; - dataAttrs?: { - [key: string]: string; - }; - disabled?: boolean; - htmlType?: ButtonHTMLType; - // icon?: IconType | 'dots_loader'; - iconClassName?: string; - id?: string; - inGroup?: boolean; - onClick?: React.MouseEventHandler; - onBlur?: (e: FocusEvent) => void; - shape?: ButtonShape; - size?: ButtonSize; - type: ButtonType; - block?: boolean; -} - -const Button: FC = ({ - children, - className, - danger, - dataAttrs, - disabled, - htmlType, - // icon, - id, - onClick, - onBlur, - shape, -}) => { - const buttonClass = cn( - className, - ); - - return ( - - // : )} - id={id} - onClick={onClick} - onBlur={onBlur} - shape={shape} - > - {children} - - ); -}; - -export default Button; diff --git a/client2/src/components/common/controls/Button/index.ts b/client2/src/components/common/controls/Button/index.ts deleted file mode 100644 index efe8c800c0d..00000000000 --- a/client2/src/components/common/controls/Button/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './Button'; diff --git a/client2/src/components/common/controls/Input/Input.tsx b/client2/src/components/common/controls/Input/Input.tsx deleted file mode 100644 index 2b7503bbc8b..00000000000 --- a/client2/src/components/common/controls/Input/Input.tsx +++ /dev/null @@ -1,146 +0,0 @@ -import React, { FC, FocusEvent, KeyboardEvent, ClipboardEvent, ChangeEvent, useState } from 'react'; -import { Input as InputControl } from 'antd'; -import { InputProps as InputControlProps } from 'antd/lib/input'; -import cn from 'classnames'; - -import { Icon } from 'Common/ui'; -import theme from 'Lib/theme'; - -interface AdminInterfaceProps { - autoComplete?: InputControlProps['autoComplete']; - autoFocus?: InputControlProps['autoFocus']; - className?: string; - description?: string; - disabled?: boolean; - error?: boolean; - id?: string; - inputMode?: InputControlProps['inputMode']; - label?: string; - wrapperClassName?: string; - name: string; - onBlur?: (e: FocusEvent) => void; - onChange?: (data: string, e?: ChangeEvent) => void; - onFocus?: (e: FocusEvent) => void; - onKeyDown?: (e: KeyboardEvent) => void; - onPaste?: (e: ClipboardEvent) => void; - pattern?: InputControlProps['pattern']; - placeholder: string; - prefix?: InputControlProps['prefix']; - size?: InputControlProps['size']; - suffix?: InputControlProps['suffix']; - type: InputControlProps['type']; - value: string | number; -} - -const InputComponent: FC = ({ - autoComplete, - autoFocus, - className, - description, - disabled, - error, - id, - inputMode, - label, - wrapperClassName, - name, - onBlur, - onChange, - onFocus, - onKeyDown, - onPaste, - pattern, - placeholder, - prefix, - size = 'middle', - suffix, - type, - value, -}) => { - const [inputType, setInputType] = useState(type); - - const inputClass = cn( - 'input', - { input_big: size === 'large' }, - { input_medium: size === 'middle' }, - { input_small: size === 'small' }, - className, - ); - - const handleBlur = (e: FocusEvent) => { - if (onBlur) { - onBlur(e); - } - }; - - const showPassword = () => { - if (inputType === 'password') { - setInputType('text'); - } else { - setInputType('password'); - } - }; - - const showPasswordIcon = () => { - const icon = inputType === 'password' ? 'visibility_disable' : 'visibility_enable'; - return ( - - ); - }; - - const validSuffix = ( - <> - {!!suffix && suffix} - {(type === 'password') && showPasswordIcon()} - - ); - - let descriptionView = null; - if (description) { - descriptionView = ( -
- {description} -
- ); - } - - return ( - - ); -}; - -export default InputComponent; diff --git a/client2/src/components/common/controls/Input/index.ts b/client2/src/components/common/controls/Input/index.ts deleted file mode 100644 index b4d38647387..00000000000 --- a/client2/src/components/common/controls/Input/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as Input } from './Input'; diff --git a/client2/src/components/common/controls/Radio/Radio.module.pcss b/client2/src/components/common/controls/Radio/Radio.module.pcss deleted file mode 100644 index ebbce092620..00000000000 --- a/client2/src/components/common/controls/Radio/Radio.module.pcss +++ /dev/null @@ -1,20 +0,0 @@ -.group { - width: 100%; -} - -.radio { - display: flex; - align-items: center; - margin-bottom: 16px; - padding-bottom: 16px; - width: 100%; - border-bottom: 1px solid var(--gray300); - - &:last-child { - border-bottom: 0; - } -} - -.desc { - color: var(--gray400); -} diff --git a/client2/src/components/common/controls/Radio/Radio.tsx b/client2/src/components/common/controls/Radio/Radio.tsx deleted file mode 100644 index 5b816858bda..00000000000 --- a/client2/src/components/common/controls/Radio/Radio.tsx +++ /dev/null @@ -1,55 +0,0 @@ -import React, { FC } from 'react'; -import { Radio } from 'antd'; -import { observer } from 'mobx-react-lite'; - -import s from './Radio.module.pcss'; - -const { Group } = Radio; - -interface RadioProps { - options: { - label: string; - desc?: string; - value: string | number; - }[]; - onSelect: (value: string | number) => void; - value: string | number; -} - -const RadioComponent: FC = observer(({ - options, onSelect, value, -}) => { - if (options.length === 0) { - return null; - } - - return ( - { - onSelect(e.target.value); - }} - className={s.group} - > - {options.map((o) => ( - -
- {o.label} -
- {o.desc && ( -
- {o.desc} -
- )} -
- ))} -
- - ); -}); - -export default RadioComponent; diff --git a/client2/src/components/common/controls/Radio/index.ts b/client2/src/components/common/controls/Radio/index.ts deleted file mode 100644 index 61c95671a55..00000000000 --- a/client2/src/components/common/controls/Radio/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './Radio'; diff --git a/client2/src/components/common/controls/Switch/Switch.tsx b/client2/src/components/common/controls/Switch/Switch.tsx deleted file mode 100644 index bb762eec1bc..00000000000 --- a/client2/src/components/common/controls/Switch/Switch.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import { Switch as SwitchE } from 'antd'; - -export default SwitchE; diff --git a/client2/src/components/common/controls/Switch/index.ts b/client2/src/components/common/controls/Switch/index.ts deleted file mode 100644 index 4f1eea554da..00000000000 --- a/client2/src/components/common/controls/Switch/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as Switch } from './Switch'; diff --git a/client2/src/components/common/controls/index.ts b/client2/src/components/common/controls/index.ts deleted file mode 100644 index 3746e6febd1..00000000000 --- a/client2/src/components/common/controls/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export { default as Radio } from './Radio'; -export { Input } from './Input'; -export { Switch } from './Switch'; -export { default as Button } from './Button'; diff --git a/client2/src/components/common/formating/code.tsx b/client2/src/components/common/formating/code.tsx deleted file mode 100644 index 60de648c8ee..00000000000 --- a/client2/src/components/common/formating/code.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import React from 'react'; -import theme from 'Lib/theme'; - -const code = (e: string) => { - return ( - - {e} - - ); -}; - -export default code; diff --git a/client2/src/components/common/formating/danger.tsx b/client2/src/components/common/formating/danger.tsx deleted file mode 100644 index a04cce3c1d7..00000000000 --- a/client2/src/components/common/formating/danger.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import React from 'react'; -import theme from 'Lib/theme'; - -const danger = (e: string) => { - return ( - - {e} - - ); -}; - -export default danger; diff --git a/client2/src/components/common/formating/externalLink.tsx b/client2/src/components/common/formating/externalLink.tsx deleted file mode 100644 index 14e0cad5bf2..00000000000 --- a/client2/src/components/common/formating/externalLink.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import React from 'react'; -import theme from 'Lib/theme'; - -export const externalLink = (link: string) => (e: string) => ( - - {e} - -); diff --git a/client2/src/components/common/formating/index.ts b/client2/src/components/common/formating/index.ts deleted file mode 100644 index 7b1322b1474..00000000000 --- a/client2/src/components/common/formating/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export { default as danger } from './danger'; -export { default as p } from './p'; -export { default as code } from './code'; -export { externalLink } from './externalLink'; diff --git a/client2/src/components/common/formating/p.tsx b/client2/src/components/common/formating/p.tsx deleted file mode 100644 index 68b3991517b..00000000000 --- a/client2/src/components/common/formating/p.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import React from 'react'; - -const danger = (e: string) => { - return ( -

- {e} -

- ); -}; - -export default danger; diff --git a/client2/src/components/common/index.ts b/client2/src/components/common/index.ts deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/client2/src/components/common/ui/Icon/Icon.module.pcss b/client2/src/components/common/ui/Icon/Icon.module.pcss deleted file mode 100644 index a935fe21671..00000000000 --- a/client2/src/components/common/ui/Icon/Icon.module.pcss +++ /dev/null @@ -1,7 +0,0 @@ -.icon { - display: inline-block; - vertical-align: middle; - width: 24px; - height: 24px; - flex-shrink: 0; -} diff --git a/client2/src/components/common/ui/Icon/Icon.tsx b/client2/src/components/common/ui/Icon/Icon.tsx deleted file mode 100644 index 261852b3700..00000000000 --- a/client2/src/components/common/ui/Icon/Icon.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import React, { FC } from 'react'; -import cn from 'classnames'; -import { IconType } from 'Common/ui/Icons'; - -import s from './Icon.module.pcss'; - -interface IconProps { - icon: IconType; - color?: string; - className?: string; - onClick?: () => void; -} - -const Icon: FC = ({ icon, color, className, onClick }) => { - const iconClass = cn(s.icon, color, className); - - return ( - - - - ); -}; - -export default Icon; -export { IconType } from 'Common/ui/Icons'; diff --git a/client2/src/components/common/ui/Icon/index.ts b/client2/src/components/common/ui/Icon/index.ts deleted file mode 100644 index c1c8457b25d..00000000000 --- a/client2/src/components/common/ui/Icon/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default, IconType } from './Icon'; diff --git a/client2/src/components/common/ui/Icons/Icon.pcss b/client2/src/components/common/ui/Icons/Icon.pcss deleted file mode 100644 index a77a74a7fd4..00000000000 --- a/client2/src/components/common/ui/Icons/Icon.pcss +++ /dev/null @@ -1,3 +0,0 @@ -.icons { - display: none; -} diff --git a/client2/src/components/common/ui/Icons/index.tsx b/client2/src/components/common/ui/Icons/index.tsx deleted file mode 100644 index dcf0e338211..00000000000 --- a/client2/src/components/common/ui/Icons/index.tsx +++ /dev/null @@ -1,84 +0,0 @@ -import React, { FC } from 'react'; -import './Icon.pcss'; - -export type IconType = - 'logo' | - 'visibility_disable' | - 'visibility_enable' | - 'logo_shield' | - 'logo_light' | - 'sign_out' | - 'user' | - 'language' | - 'close_big'; - -const Icons: FC = () => ( - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -); - -export default Icons; diff --git a/client2/src/components/common/ui/LangSelect/LangSelect.module.pcss b/client2/src/components/common/ui/LangSelect/LangSelect.module.pcss deleted file mode 100644 index 1342ea344c6..00000000000 --- a/client2/src/components/common/ui/LangSelect/LangSelect.module.pcss +++ /dev/null @@ -1,10 +0,0 @@ -.wrap { - display: inline-flex; - align-items: center; -} - -.icon { - font-size: 22px; - margin-right: 10px; - color: var(--gray700); -} diff --git a/client2/src/components/common/ui/LangSelect/LangSelect.tsx b/client2/src/components/common/ui/LangSelect/LangSelect.tsx deleted file mode 100644 index 24bc15b2009..00000000000 --- a/client2/src/components/common/ui/LangSelect/LangSelect.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import React, { FC, useContext } from 'react'; - -import { Icon } from 'Common/ui'; -import Store from 'Store'; -import { LANGUAGES } from 'Localization'; - -import s from './LangSelect.module.pcss'; - -const LangSelector: FC = () => { - const store = useContext(Store); - const { ui: { currentLang } } = store; - - const lang = LANGUAGES.find((e) => e.code === currentLang)!; - - return ( -
- - {lang.name} -
- ); -}; - -export default LangSelector; diff --git a/client2/src/components/common/ui/LangSelect/index.tsx b/client2/src/components/common/ui/LangSelect/index.tsx deleted file mode 100644 index 25f35f87aeb..00000000000 --- a/client2/src/components/common/ui/LangSelect/index.tsx +++ /dev/null @@ -1 +0,0 @@ -export { default } from './LangSelect'; diff --git a/client2/src/components/common/ui/Link.tsx b/client2/src/components/common/ui/Link.tsx deleted file mode 100644 index 5abbc0a1f2d..00000000000 --- a/client2/src/components/common/ui/Link.tsx +++ /dev/null @@ -1,63 +0,0 @@ -import React, { FC, MouseEvent } from 'react'; -import { Link as L, LinkProps as LProps } from 'react-router-dom'; -import cn from 'classnames'; - -import { linkPathBuilder, RoutePath, LinkParams, LinkParamsKeys } from 'Paths'; - -interface LinkProps { - to: RoutePath; - props?: LinkParams; - className?: string; - type?: LProps['type']; - stop?: boolean; - disabled?: boolean; - onClick?: () => void; - id?: string; -} - -const Link: FC = ({ - to, children, className, props, type, stop, disabled, onClick, id, -}) => { - if (props) { - Object.keys(props).forEach((key: unknown) => { - if (!props[key as LinkParamsKeys]) { - throw new Error(`Got wrong ${key} propKey: ${props[key as LinkParamsKeys]} in Link`); - } - }); - } - - const handleClick = (e: MouseEvent) => { - if (stop) { - e.stopPropagation(); - } - if (onClick) { - onClick(); - } - }; - - if (disabled) { - return ( -
- {children} -
- ); - } - - return ( - - {children} - - ); -}; - -export default Link; diff --git a/client2/src/components/common/ui/Mask/Mask.module.pcss b/client2/src/components/common/ui/Mask/Mask.module.pcss deleted file mode 100644 index 7c7e1930922..00000000000 --- a/client2/src/components/common/ui/Mask/Mask.module.pcss +++ /dev/null @@ -1,26 +0,0 @@ -.mask { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1040; - height: 100%; - background-color: rgba(0, 0, 0, 0.45); - opacity: 0; - visibility: hidden; - transition: opacity var(--transition); - cursor: pointer; - - &_visible { - opacity: 1; - visibility: visible; - } - - @media (--l-viewport) { - &_visible { - opacity: 0; - visibility: hidden; - } - } -} diff --git a/client2/src/components/common/ui/Mask/Mask.tsx b/client2/src/components/common/ui/Mask/Mask.tsx deleted file mode 100644 index 162b23491b6..00000000000 --- a/client2/src/components/common/ui/Mask/Mask.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import React, { FC } from 'react'; -import cn from 'classnames'; - -import s from './Mask.module.pcss'; - -interface MaskProps { - open: boolean; - handle: () => void; -} - -const Mask: FC = ({ open, handle }) => { - return ( -
- ); -}; - -export default Mask; diff --git a/client2/src/components/common/ui/Mask/index.ts b/client2/src/components/common/ui/Mask/index.ts deleted file mode 100644 index 7933fa49bba..00000000000 --- a/client2/src/components/common/ui/Mask/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './Mask'; diff --git a/client2/src/components/common/ui/Notifications/index.ts b/client2/src/components/common/ui/Notifications/index.ts deleted file mode 100644 index 69c284eb238..00000000000 --- a/client2/src/components/common/ui/Notifications/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { notifyError, notifySuccess } from './notifications'; diff --git a/client2/src/components/common/ui/Notifications/notifications.tsx b/client2/src/components/common/ui/Notifications/notifications.tsx deleted file mode 100644 index 6a5da09bae8..00000000000 --- a/client2/src/components/common/ui/Notifications/notifications.tsx +++ /dev/null @@ -1,42 +0,0 @@ -import React from 'react'; -import { notification } from 'antd'; - -import { DEFAULT_NOTIFICATION_DURATION } from 'Consts/common'; - -export const notifySuccess = (title: string, code?: string) => { - notification.success({ - message: ( -
- {title} -
- ), - placement: 'bottomRight', - duration: DEFAULT_NOTIFICATION_DURATION, - className: 'notification', - }); -}; - -export const notifyError = ( - title: string, - options?: { - btn?: React.ReactNode; - duration?: number; - onClose?: () => void; - }, -) => { - const { btn, duration, onClose } = options || {}; - notification.error({ - onClose, - message: ( -
- {title} -
- ), - placement: 'bottomRight', - duration: typeof duration === 'number' ? duration : DEFAULT_NOTIFICATION_DURATION, - className: 'notification', - btn, - }); -}; diff --git a/client2/src/components/common/ui/index.ts b/client2/src/components/common/ui/index.ts deleted file mode 100644 index c505ed4897d..00000000000 --- a/client2/src/components/common/ui/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -export { default as Icon } from './Icon'; -export { notifyError, notifySuccess } from './Notifications'; -export { default as Link } from './Link'; -export { default as LangSelect } from './LangSelect'; -export { default as Mask } from './Mask'; -export { CommonLayout, InnerLayout, CommonModalLayout, ConfirmModalLayout } from './layouts'; diff --git a/client2/src/components/common/ui/layouts/CommonLayout.tsx b/client2/src/components/common/ui/layouts/CommonLayout.tsx deleted file mode 100644 index e0c73cb3bae..00000000000 --- a/client2/src/components/common/ui/layouts/CommonLayout.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { Layout } from 'antd'; -import React, { FC } from 'react'; - -interface CommonLayoutProps { - className?: string; -} - -const CommonLayout: FC = ({ children, className }) => { - return ( - - {children} - - ); -}; - -export default CommonLayout; diff --git a/client2/src/components/common/ui/layouts/CommonModalLayout.tsx b/client2/src/components/common/ui/layouts/CommonModalLayout.tsx deleted file mode 100644 index 8e62049e3ad..00000000000 --- a/client2/src/components/common/ui/layouts/CommonModalLayout.tsx +++ /dev/null @@ -1,87 +0,0 @@ -import React, { FC, useContext, useEffect } from 'react'; -import { Modal, Button } from 'antd'; -import cn from 'classnames'; - -import { Icon } from 'Common/ui'; -import Store from 'Store'; - -interface CommonModalLayoutProps { - visible: boolean; - title: string; - buttonText?: string; - className?: string; - width?: number; - onClose: () => void; - onSubmit?: () => void; - noFooter?: boolean; - disabled?: boolean; - centered?: boolean; -} - -const CommonModalLayout: FC = ({ - visible, - children, - title, - buttonText, - className, - width, - onClose, - onSubmit, - noFooter, - disabled, - centered, -}) => { - const store = useContext(Store); - const { ui: { intl } } = store; - - useEffect(() => { - const onEnter = (e: KeyboardEvent) => { - if (e.key === 'Enter' && onSubmit) { - onSubmit(); - } - }; - if (onSubmit) { - window.addEventListener('keyup', onEnter); - } - return () => { - window.removeEventListener('keyup', onEnter); - }; - }, [onSubmit]); - const footer = noFooter ? null : [ - , - , - ]; - - return ( - } - width={width || 480} - centered={centered} - > - {children} - - ); -}; - -export default CommonModalLayout; diff --git a/client2/src/components/common/ui/layouts/ConfirmModalLayout.tsx b/client2/src/components/common/ui/layouts/ConfirmModalLayout.tsx deleted file mode 100644 index 503b858cb57..00000000000 --- a/client2/src/components/common/ui/layouts/ConfirmModalLayout.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import React, { FC } from 'react'; - -import CommonModalLayout from './CommonModalLayout'; - -interface DeleteModalLayoutProps { - visible: boolean; - title: string; - buttonText: string; - onClose: () => void; - onConfirm?: () => void; -} - -const DeleteModalLayout: FC = ({ - visible, - children, - title, - buttonText, - onClose, - onConfirm, -}) => { - return ( - - {children} - - ); -}; - -export default DeleteModalLayout; diff --git a/client2/src/components/common/ui/layouts/InnerLayout.tsx b/client2/src/components/common/ui/layouts/InnerLayout.tsx deleted file mode 100644 index 4ecab818f6c..00000000000 --- a/client2/src/components/common/ui/layouts/InnerLayout.tsx +++ /dev/null @@ -1,41 +0,0 @@ -import { Layout } from 'antd'; -import React, { FC } from 'react'; -import cn from 'classnames'; - -import theme from 'Lib/theme'; - -interface InnerLayoutProps { - title: string; - className?: string; - containerClassName?: string; -} - -const InnerLayout: FC = ({ - children, title, className, containerClassName, -}) => { - return ( - -
-
-
- {title} -
-
- {children} -
-
- ); -}; - -export default InnerLayout; diff --git a/client2/src/components/common/ui/layouts/index.ts b/client2/src/components/common/ui/layouts/index.ts deleted file mode 100644 index 3751f8791d9..00000000000 --- a/client2/src/components/common/ui/layouts/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export { default as CommonLayout } from './CommonLayout'; -export { default as InnerLayout } from './InnerLayout'; -export { default as ConfirmModalLayout } from './ConfirmModalLayout'; -export { default as CommonModalLayout } from './CommonModalLayout'; diff --git a/client2/src/lib/ant/Modal.pcss b/client2/src/lib/ant/Modal.pcss deleted file mode 100644 index c0c98671668..00000000000 --- a/client2/src/lib/ant/Modal.pcss +++ /dev/null @@ -1,47 +0,0 @@ -.modal { - & .ant-modal-close-x { - display: flex; - align-items: center; - justify-content: center; - width: 24px; - height: 24px; - color: var(--black); - border-radius: 2px; - background-color: var(--white); - transition: background-color 0.3s; - - &:hover, - &:focus { - background-color: var(--cloud); - } - - &:active { - background-color: var(--borders-white); - } - - & svg { - width: 20px; - height: 20px; - } - - @media (--s-viewport) { - width: 40px; - height: 40px; - - & svg { - width: 24px; - height: 24px; - } - } - } - - & .ant-modal-close { - top: 11px; - right: 8px; - - @media (--s-viewport) { - top: 15px; - right: 15px; - } - } -} diff --git a/client2/src/lib/ant/Radio.pcss b/client2/src/lib/ant/Radio.pcss deleted file mode 100644 index b3937d8d311..00000000000 --- a/client2/src/lib/ant/Radio.pcss +++ /dev/null @@ -1,15 +0,0 @@ -.ant-radio { - margin-right: 18px; -} - -.ant-radio-inner { - width: 20px; - height: 20px; - background-color: transparent; - border-color: var(--gray400); - - &::after { - width: 12px; - height: 12px; - } -} \ No newline at end of file diff --git a/client2/src/lib/ant/Sidebar.pcss b/client2/src/lib/ant/Sidebar.pcss deleted file mode 100644 index a0d55dfebfb..00000000000 --- a/client2/src/lib/ant/Sidebar.pcss +++ /dev/null @@ -1,26 +0,0 @@ -.sidebar { - position: fixed; - top: 0; - height: 100vh; - font-weight: 500; - overflow: auto; - z-index: 1041; - scrollbar-width: none; - - &::-webkit-scrollbar { - display: none; - } - - @media (--l-viewport) { - position: sticky; - z-index: 1040; - } - - & .ant-menu-item-group { - @media (--m-viewport) { - &:last-child { - margin-top: auto; - } - } - } -} \ No newline at end of file diff --git a/client2/src/lib/ant/Tabs.pcss b/client2/src/lib/ant/Tabs.pcss deleted file mode 100644 index 0b110210491..00000000000 --- a/client2/src/lib/ant/Tabs.pcss +++ /dev/null @@ -1,45 +0,0 @@ -.tabs { - border-radius: 2px; - background-color: var(--white); - - & .ant-tabs-tab { - padding: 10px 16px; - margin-right: 10px; - color: var(--gray900); - transition: color var(--transition), background var(--transition); - - &.ant-tabs-tab-active { - background-color: #E6F4EA; - } - } - - &.ant-tabs-left > .ant-tabs-nav .ant-tabs-tab { - @media (--l-viewport) { - min-width: 230px; - margin-bottom: 7px; - padding: 10px 24px; - } - } - - &.ant-tabs-left > .ant-tabs-content-holder > .ant-tabs-content > .ant-tabs-tabpane { - @media (--l-viewport) { - padding: 24px 40px; - } - } - - & .ant-tabs-nav { - margin-bottom: 0; - } - - & .ant-tabs-tabpane { - padding: 24px 16px; - } - - & .ant-tabs-nav-list { - padding: 0 16px; - - @media (--l-viewport) { - padding: 24px 0; - } - } -} diff --git a/client2/src/lib/ant/ant-overrides.less b/client2/src/lib/ant/ant-overrides.less deleted file mode 100644 index 1de4b6e52d1..00000000000 --- a/client2/src/lib/ant/ant-overrides.less +++ /dev/null @@ -1,12 +0,0 @@ -@primary-color: #67b279; -@success-color: #4d995f; -@text-color: #000; -@link-hover-color: #4d995f; -@link-active-color: #4d995f; -@text-selection-bg: #e7efff; -@layout-body-background: #f3f3f3; -@layout-header-background: #131313; -@menu-dark-submenu-bg: #131313; - -@font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif; -@font-size-base: 14px; diff --git a/client2/src/lib/ant/ant.less b/client2/src/lib/ant/ant.less deleted file mode 100644 index a4e7d2ec021..00000000000 --- a/client2/src/lib/ant/ant.less +++ /dev/null @@ -1,6 +0,0 @@ -@import '~antd/dist/antd.less'; -@import './ant-overrides.less'; - -::selection { - color: #000; -} diff --git a/client2/src/lib/ant/index.ts b/client2/src/lib/ant/index.ts deleted file mode 100644 index 9fd16b8d033..00000000000 --- a/client2/src/lib/ant/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -import './Radio.pcss'; -import './Sidebar.pcss'; -import './Tabs.pcss'; -import './Modal.pcss'; - -const insertStyles = true; -export default insertStyles; diff --git a/client2/src/lib/apis/blockedServices.ts b/client2/src/lib/apis/blockedServices.ts deleted file mode 100644 index 7daa3344d76..00000000000 --- a/client2/src/lib/apis/blockedServices.ts +++ /dev/null @@ -1,43 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export default class BlockedServicesApi { - static async blockedServicesAvailableServices(): Promise { - return await fetch(`/control/blocked_services/services`, { - method: 'GET', - }).then(async (res) => { - if (res.status === 200) { - return res.json(); - } else { - return new Error(String(res.status)); - } - }) - } - - static async blockedServicesList(): Promise { - return await fetch(`/control/blocked_services/list`, { - method: 'GET', - }).then(async (res) => { - if (res.status === 200) { - return res.json(); - } else { - return new Error(String(res.status)); - } - }) - } - - static async blockedServicesSet(data: string[]): Promise { - return await fetch(`/control/blocked_services/set`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify(data), - }).then(async (res) => { - if (res.status === 200) { - return res.status; - } else { - return new Error(String(res.status)); - } - }) - } -} diff --git a/client2/src/lib/apis/clients.ts b/client2/src/lib/apis/clients.ts deleted file mode 100644 index 187bcc9c765..00000000000 --- a/client2/src/lib/apis/clients.ts +++ /dev/null @@ -1,139 +0,0 @@ -import qs from 'qs'; -import AccessListResponse, { IAccessListResponse } from 'Entities/AccessListResponse'; -import AccessSetRequest, { IAccessSetRequest } from 'Entities/AccessSetRequest'; -import Client, { IClient } from 'Entities/Client'; -import ClientDelete, { IClientDelete } from 'Entities/ClientDelete'; -import ClientUpdate, { IClientUpdate } from 'Entities/ClientUpdate'; -import Clients, { IClients } from 'Entities/Clients'; -import ClientsFindEntry, { IClientsFindEntry } from 'Entities/ClientsFindEntry'; - -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export default class ClientsApi { - static async accessList(): Promise { - return await fetch(`/control/access/list`, { - method: 'GET', - }).then(async (res) => { - if (res.status === 200) { - return res.json(); - } else { - return new Error(String(res.status)); - } - }) - } - - static async accessSet(accesssetrequest: IAccessSetRequest): Promise { - const haveError: string[] = []; - const accesssetrequestValid = new AccessSetRequest(accesssetrequest); - haveError.push(...accesssetrequestValid.validate()); - if (haveError.length > 0) { - return Promise.resolve(haveError); - } - return await fetch(`/control/access/set`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify(accesssetrequestValid.serialize()), - }).then(async (res) => { - if (res.status === 200) { - return res.status; - } else { - return new Error(String(res.status)); - } - }) - } - - static async clientsAdd(client: IClient): Promise { - const haveError: string[] = []; - const clientValid = new Client(client); - haveError.push(...clientValid.validate()); - if (haveError.length > 0) { - return Promise.resolve(haveError); - } - return await fetch(`/control/clients/add`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify(clientValid.serialize()), - }).then(async (res) => { - if (res.status === 200) { - return res.status; - } else { - return new Error(String(res.status)); - } - }) - } - - static async clientsDelete(clientdelete: IClientDelete): Promise { - const haveError: string[] = []; - const clientdeleteValid = new ClientDelete(clientdelete); - haveError.push(...clientdeleteValid.validate()); - if (haveError.length > 0) { - return Promise.resolve(haveError); - } - return await fetch(`/control/clients/delete`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify(clientdeleteValid.serialize()), - }).then(async (res) => { - if (res.status === 200) { - return res.status; - } else { - return new Error(String(res.status)); - } - }) - } - - static async clientsFind(ip0?: string): Promise { - const queryParams = { - ip0: ip0, - } - return await fetch(`/control/clients/find?${qs.stringify(queryParams, { arrayFormat: 'comma' })}`, { - method: 'GET', - }).then(async (res) => { - if (res.status === 200) { - return res.json(); - } else { - return new Error(String(res.status)); - } - }) - } - - static async clientsStatus(): Promise { - return await fetch(`/control/clients`, { - method: 'GET', - }).then(async (res) => { - if (res.status === 200) { - return res.json(); - } else { - return new Error(String(res.status)); - } - }) - } - - static async clientsUpdate(clientupdate: IClientUpdate): Promise { - const haveError: string[] = []; - const clientupdateValid = new ClientUpdate(clientupdate); - haveError.push(...clientupdateValid.validate()); - if (haveError.length > 0) { - return Promise.resolve(haveError); - } - return await fetch(`/control/clients/update`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify(clientupdateValid.serialize()), - }).then(async (res) => { - if (res.status === 200) { - return res.status; - } else { - return new Error(String(res.status)); - } - }) - } -} diff --git a/client2/src/lib/apis/dhcp.ts b/client2/src/lib/apis/dhcp.ts deleted file mode 100644 index 2d2df29f160..00000000000 --- a/client2/src/lib/apis/dhcp.ts +++ /dev/null @@ -1,123 +0,0 @@ -import DhcpConfig, { IDhcpConfig } from 'Entities/DhcpConfig'; -import DhcpSearchResult, { IDhcpSearchResult } from 'Entities/DhcpSearchResult'; -import DhcpStaticLease, { IDhcpStaticLease } from 'Entities/DhcpStaticLease'; -import DhcpStatus, { IDhcpStatus } from 'Entities/DhcpStatus'; -import NetInterfaces, { INetInterfaces } from 'Entities/NetInterfaces'; - -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export default class DhcpApi { - static async checkActiveDhcp(): Promise { - return await fetch(`/control/dhcp/find_active_dhcp`, { - method: 'POST', - }).then(async (res) => { - if (res.status === 200) { - return res.json(); - } else { - return new Error(String(res.status)); - } - }) - } - - static async dhcpAddStaticLease(dhcpstaticlease: IDhcpStaticLease): Promise { - const haveError: string[] = []; - const dhcpstaticleaseValid = new DhcpStaticLease(dhcpstaticlease); - haveError.push(...dhcpstaticleaseValid.validate()); - if (haveError.length > 0) { - return Promise.resolve(haveError); - } - return await fetch(`/control/dhcp/add_static_lease`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify(dhcpstaticleaseValid.serialize()), - }).then(async (res) => { - if (res.status === 200) { - return res.status; - } else { - return new Error(String(res.status)); - } - }) - } - - static async dhcpInterfaces(): Promise { - return await fetch(`/control/dhcp/interfaces`, { - method: 'GET', - }).then(async (res) => { - if (res.status === 200) { - return res.json(); - } else { - return new Error(String(res.status)); - } - }) - } - - static async dhcpRemoveStaticLease(dhcpstaticlease: IDhcpStaticLease): Promise { - const haveError: string[] = []; - const dhcpstaticleaseValid = new DhcpStaticLease(dhcpstaticlease); - haveError.push(...dhcpstaticleaseValid.validate()); - if (haveError.length > 0) { - return Promise.resolve(haveError); - } - return await fetch(`/control/dhcp/remove_static_lease`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify(dhcpstaticleaseValid.serialize()), - }).then(async (res) => { - if (res.status === 200) { - return res.status; - } else { - return new Error(String(res.status)); - } - }) - } - - static async dhcpReset(): Promise { - return await fetch(`/control/dhcp/reset`, { - method: 'POST', - }).then(async (res) => { - if (res.status === 200) { - return res.status; - } else { - return new Error(String(res.status)); - } - }) - } - - static async dhcpSetConfig(dhcpconfig: IDhcpConfig): Promise { - const haveError: string[] = []; - const dhcpconfigValid = new DhcpConfig(dhcpconfig); - haveError.push(...dhcpconfigValid.validate()); - if (haveError.length > 0) { - return Promise.resolve(haveError); - } - return await fetch(`/control/dhcp/set_config`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify(dhcpconfigValid.serialize()), - }).then(async (res) => { - if (res.status === 200) { - return res.status; - } else { - return new Error(String(res.status)); - } - }) - } - - static async dhcpStatus(): Promise { - return await fetch(`/control/dhcp/status`, { - method: 'GET', - }).then(async (res) => { - if (res.status === 200) { - return res.json(); - } else { - return new Error(String(res.status)); - } - }) - } -} diff --git a/client2/src/lib/apis/filtering.ts b/client2/src/lib/apis/filtering.ts deleted file mode 100644 index cdaf1e91e9c..00000000000 --- a/client2/src/lib/apis/filtering.ts +++ /dev/null @@ -1,167 +0,0 @@ -import qs from 'qs'; -import AddUrlRequest, { IAddUrlRequest } from 'Entities/AddUrlRequest'; -import FilterCheckHostResponse, { IFilterCheckHostResponse } from 'Entities/FilterCheckHostResponse'; -import FilterConfig, { IFilterConfig } from 'Entities/FilterConfig'; -import FilterRefreshRequest, { IFilterRefreshRequest } from 'Entities/FilterRefreshRequest'; -import FilterRefreshResponse, { IFilterRefreshResponse } from 'Entities/FilterRefreshResponse'; -import FilterSetUrl, { IFilterSetUrl } from 'Entities/FilterSetUrl'; -import FilterStatus, { IFilterStatus } from 'Entities/FilterStatus'; -import RemoveUrlRequest, { IRemoveUrlRequest } from 'Entities/RemoveUrlRequest'; - -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export default class FilteringApi { - static async filteringAddURL(addurlrequest: IAddUrlRequest): Promise { - const haveError: string[] = []; - const addurlrequestValid = new AddUrlRequest(addurlrequest); - haveError.push(...addurlrequestValid.validate()); - if (haveError.length > 0) { - return Promise.resolve(haveError); - } - return await fetch(`/control/filtering/add_url`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify(addurlrequestValid.serialize()), - }).then(async (res) => { - if (res.status === 200) { - return res.status; - } else { - return new Error(String(res.status)); - } - }) - } - - static async filteringCheckHost(name?: string): Promise { - const queryParams = { - name: name, - } - return await fetch(`/control/filtering/check_host?${qs.stringify(queryParams, { arrayFormat: 'comma' })}`, { - method: 'GET', - }).then(async (res) => { - if (res.status === 200) { - return res.json(); - } else { - return new Error(String(res.status)); - } - }) - } - - static async filteringConfig(filterconfig: IFilterConfig): Promise { - const haveError: string[] = []; - const filterconfigValid = new FilterConfig(filterconfig); - haveError.push(...filterconfigValid.validate()); - if (haveError.length > 0) { - return Promise.resolve(haveError); - } - return await fetch(`/control/filtering/config`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify(filterconfigValid.serialize()), - }).then(async (res) => { - if (res.status === 200) { - return res.status; - } else { - return new Error(String(res.status)); - } - }) - } - - static async filteringRefresh(filterrefreshrequest: IFilterRefreshRequest): Promise { - const haveError: string[] = []; - const filterrefreshrequestValid = new FilterRefreshRequest(filterrefreshrequest); - haveError.push(...filterrefreshrequestValid.validate()); - if (haveError.length > 0) { - return Promise.resolve(haveError); - } - return await fetch(`/control/filtering/refresh`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify(filterrefreshrequestValid.serialize()), - }).then(async (res) => { - if (res.status === 200) { - return res.json(); - } else { - return new Error(String(res.status)); - } - }) - } - - static async filteringRemoveURL(removeurlrequest: IRemoveUrlRequest): Promise { - const haveError: string[] = []; - const removeurlrequestValid = new RemoveUrlRequest(removeurlrequest); - haveError.push(...removeurlrequestValid.validate()); - if (haveError.length > 0) { - return Promise.resolve(haveError); - } - return await fetch(`/control/filtering/remove_url`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify(removeurlrequestValid.serialize()), - }).then(async (res) => { - if (res.status === 200) { - return res.status; - } else { - return new Error(String(res.status)); - } - }) - } - - static async filteringSetRules(data: string): Promise { - const params = String(data); - return await fetch(`/control/filtering/set_rules`, { - method: 'POST', - headers: { - 'Content-Type': 'text/plain', - }, - body: params, - }).then(async (res) => { - if (res.status === 200) { - return res.status; - } else { - return new Error(String(res.status)); - } - }) - } - - static async filteringSetURL(filterseturl: IFilterSetUrl): Promise { - const haveError: string[] = []; - const filterseturlValid = new FilterSetUrl(filterseturl); - haveError.push(...filterseturlValid.validate()); - if (haveError.length > 0) { - return Promise.resolve(haveError); - } - return await fetch(`/control/filtering/set_url`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify(filterseturlValid.serialize()), - }).then(async (res) => { - if (res.status === 200) { - return res.status; - } else { - return new Error(String(res.status)); - } - }) - } - - static async filteringStatus(): Promise { - return await fetch(`/control/filtering/status`, { - method: 'GET', - }).then(async (res) => { - if (res.status === 200) { - return res.json(); - } else { - return new Error(String(res.status)); - } - }) - } -} diff --git a/client2/src/lib/apis/global.ts b/client2/src/lib/apis/global.ts deleted file mode 100644 index d66e7139e89..00000000000 --- a/client2/src/lib/apis/global.ts +++ /dev/null @@ -1,160 +0,0 @@ -import DNSConfig, { IDNSConfig } from 'Entities/DNSConfig'; -import GetVersionRequest, { IGetVersionRequest } from 'Entities/GetVersionRequest'; -import Login, { ILogin } from 'Entities/Login'; -import ProfileInfo, { IProfileInfo } from 'Entities/ProfileInfo'; -import ServerStatus, { IServerStatus } from 'Entities/ServerStatus'; -import UpstreamsConfig, { IUpstreamsConfig } from 'Entities/UpstreamsConfig'; -import UpstreamsConfigResponse, { IUpstreamsConfigResponse } from 'Entities/UpstreamsConfigResponse'; -import VersionInfo, { IVersionInfo } from 'Entities/VersionInfo'; - -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export default class GlobalApi { - static async beginUpdate(): Promise { - return await fetch(`/control/update`, { - method: 'POST', - }).then(async (res) => { - if (res.status === 200) { - return res.status; - } else { - return new Error(String(res.status)); - } - }) - } - - static async dnsConfig(dnsconfig: IDNSConfig): Promise { - const haveError: string[] = []; - const dnsconfigValid = new DNSConfig(dnsconfig); - haveError.push(...dnsconfigValid.validate()); - if (haveError.length > 0) { - return Promise.resolve(haveError); - } - return await fetch(`/control/dns_config`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify(dnsconfigValid.serialize()), - }).then(async (res) => { - if (res.status === 200) { - return res.status; - } else { - return new Error(String(res.status)); - } - }) - } - - static async dnsInfo(): Promise { - return await fetch(`/control/dns_info`, { - method: 'GET', - }).then(async (res) => { - if (res.status === 200) { - return res.json(); - } else { - return new Error(String(res.status)); - } - }) - } - - static async getProfile(): Promise { - return await fetch(`/control/profile`, { - method: 'GET', - }).then(async (res) => { - if (res.status === 200) { - return res.json(); - } else { - return new Error(String(res.status)); - } - }) - } - - static async getVersionJson(getversionrequest: IGetVersionRequest): Promise { - const haveError: string[] = []; - const getversionrequestValid = new GetVersionRequest(getversionrequest); - haveError.push(...getversionrequestValid.validate()); - if (haveError.length > 0) { - return Promise.resolve(haveError); - } - return await fetch(`/control/version.json`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify(getversionrequestValid.serialize()), - }).then(async (res) => { - if (res.status === 200) { - return res.json(); - } else { - return new Error(String(res.status)); - } - }) - } - - static async login(login: ILogin): Promise { - const haveError: string[] = []; - const loginValid = new Login(login); - haveError.push(...loginValid.validate()); - if (haveError.length > 0) { - return Promise.resolve(haveError); - } - return await fetch(`/control/login`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify(loginValid.serialize()), - }).then(async (res) => { - if (res.status === 200) { - return res.status; - } else { - return new Error(String(res.status)); - } - }) - } - - static async logout(): Promise { - return await fetch(`/control/logout`, { - method: 'GET', - }).then(async (res) => { - if (res.status === 200) { - return res.status; - } else { - return new Error(String(res.status)); - } - }) - } - - static async status(): Promise { - return await fetch(`/control/status`, { - method: 'GET', - }).then(async (res) => { - if (res.status === 200) { - return res.json(); - } else { - return new Error(String(res.status)); - } - }) - } - - static async testUpstreamDNS(upstreamsconfig: IUpstreamsConfig): Promise { - const haveError: string[] = []; - const upstreamsconfigValid = new UpstreamsConfig(upstreamsconfig); - haveError.push(...upstreamsconfigValid.validate()); - if (haveError.length > 0) { - return Promise.resolve(haveError); - } - return await fetch(`/control/test_upstream_dns`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify(upstreamsconfigValid.serialize()), - }).then(async (res) => { - if (res.status === 200) { - return res.json(); - } else { - return new Error(String(res.status)); - } - }) - } -} diff --git a/client2/src/lib/apis/i18n.ts b/client2/src/lib/apis/i18n.ts deleted file mode 100644 index 045ea104cc0..00000000000 --- a/client2/src/lib/apis/i18n.ts +++ /dev/null @@ -1,32 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export default class I18nApi { - static async changeLanguage(data: string): Promise { - const params = String(data); - return await fetch(`/control/i18n/change_language`, { - method: 'POST', - headers: { - 'Content-Type': 'text/plain', - }, - body: params, - }).then(async (res) => { - if (res.status === 200) { - return res.status; - } else { - return new Error(String(res.status)); - } - }) - } - - static async currentLanguage(): Promise { - return await fetch(`/control/i18n/current_language`, { - method: 'GET', - }).then(async (res) => { - if (res.status === 200) { - return res.status; - } else { - return new Error(String(res.status)); - } - }) - } -} diff --git a/client2/src/lib/apis/install.ts b/client2/src/lib/apis/install.ts deleted file mode 100644 index 6de0d23030e..00000000000 --- a/client2/src/lib/apis/install.ts +++ /dev/null @@ -1,123 +0,0 @@ -import AddressesInfo, { IAddressesInfo } from 'Entities/AddressesInfo'; -import AddressesInfoBeta, { IAddressesInfoBeta } from 'Entities/AddressesInfoBeta'; -import CheckConfigRequest, { ICheckConfigRequest } from 'Entities/CheckConfigRequest'; -import CheckConfigRequestBeta, { ICheckConfigRequestBeta } from 'Entities/CheckConfigRequestBeta'; -import CheckConfigResponse, { ICheckConfigResponse } from 'Entities/CheckConfigResponse'; -import InitialConfiguration, { IInitialConfiguration } from 'Entities/InitialConfiguration'; -import InitialConfigurationBeta, { IInitialConfigurationBeta } from 'Entities/InitialConfigurationBeta'; - -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export default class InstallApi { - static async installCheckConfig(checkconfigrequest: ICheckConfigRequest): Promise { - const haveError: string[] = []; - const checkconfigrequestValid = new CheckConfigRequest(checkconfigrequest); - haveError.push(...checkconfigrequestValid.validate()); - if (haveError.length > 0) { - return Promise.resolve(haveError); - } - return await fetch(`/control/install/check_config`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify(checkconfigrequestValid.serialize()), - }).then(async (res) => { - if (res.status === 200) { - return res.json(); - } else { - return new Error(String(res.status)); - } - }) - } - - static async installCheckConfigBeta(checkconfigrequestbeta: ICheckConfigRequestBeta): Promise { - const haveError: string[] = []; - const checkconfigrequestbetaValid = new CheckConfigRequestBeta(checkconfigrequestbeta); - haveError.push(...checkconfigrequestbetaValid.validate()); - if (haveError.length > 0) { - return Promise.resolve(haveError); - } - return await fetch(`/control/install/check_config_beta`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify(checkconfigrequestbetaValid.serialize()), - }).then(async (res) => { - if (res.status === 200) { - return res.json(); - } else { - return new Error(String(res.status)); - } - }) - } - - static async installConfigure(initialconfiguration: IInitialConfiguration): Promise { - const haveError: string[] = []; - const initialconfigurationValid = new InitialConfiguration(initialconfiguration); - haveError.push(...initialconfigurationValid.validate()); - if (haveError.length > 0) { - return Promise.resolve(haveError); - } - return await fetch(`/control/install/configure`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify(initialconfigurationValid.serialize()), - }).then(async (res) => { - if (res.status === 200) { - return res.status; - } else { - return new Error(String(res.status)); - } - }) - } - - static async installConfigureBeta(initialconfigurationbeta: IInitialConfigurationBeta): Promise { - const haveError: string[] = []; - const initialconfigurationbetaValid = new InitialConfigurationBeta(initialconfigurationbeta); - haveError.push(...initialconfigurationbetaValid.validate()); - if (haveError.length > 0) { - return Promise.resolve(haveError); - } - return await fetch(`/control/install/configure_beta`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify(initialconfigurationbetaValid.serialize()), - }).then(async (res) => { - if (res.status === 200) { - return res.status; - } else { - return new Error(String(res.status)); - } - }) - } - - static async installGetAddresses(): Promise { - return await fetch(`/control/install/get_addresses`, { - method: 'GET', - }).then(async (res) => { - if (res.status === 200) { - return res.json(); - } else { - return new Error(String(res.status)); - } - }) - } - - static async installGetAddressesBeta(): Promise { - return await fetch(`/control/install/get_addresses_beta`, { - method: 'GET', - }).then(async (res) => { - if (res.status === 200) { - return res.json(); - } else { - return new Error(String(res.status)); - } - }) - } -} diff --git a/client2/src/lib/apis/log.ts b/client2/src/lib/apis/log.ts deleted file mode 100644 index f0aa37fba4c..00000000000 --- a/client2/src/lib/apis/log.ts +++ /dev/null @@ -1,72 +0,0 @@ -import qs from 'qs'; -import QueryLog, { IQueryLog } from 'Entities/QueryLog'; -import QueryLogConfig, { IQueryLogConfig } from 'Entities/QueryLogConfig'; - -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export default class LogApi { - static async queryLog(older_than?: string, offset?: number, limit?: number, search?: string, response_status?: string): Promise { - const queryParams = { - older_than: older_than, - offset: offset, - limit: limit, - search: search, - response_status: response_status, - } - return await fetch(`/control/querylog?${qs.stringify(queryParams, { arrayFormat: 'comma' })}`, { - method: 'GET', - }).then(async (res) => { - if (res.status === 200) { - return res.json(); - } else { - return new Error(String(res.status)); - } - }) - } - - static async queryLogConfig(querylogconfig: IQueryLogConfig): Promise { - const haveError: string[] = []; - const querylogconfigValid = new QueryLogConfig(querylogconfig); - haveError.push(...querylogconfigValid.validate()); - if (haveError.length > 0) { - return Promise.resolve(haveError); - } - return await fetch(`/control/querylog_config`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify(querylogconfigValid.serialize()), - }).then(async (res) => { - if (res.status === 200) { - return res.status; - } else { - return new Error(String(res.status)); - } - }) - } - - static async queryLogInfo(): Promise { - return await fetch(`/control/querylog_info`, { - method: 'GET', - }).then(async (res) => { - if (res.status === 200) { - return res.json(); - } else { - return new Error(String(res.status)); - } - }) - } - - static async querylogClear(): Promise { - return await fetch(`/control/querylog_clear`, { - method: 'POST', - }).then(async (res) => { - if (res.status === 200) { - return res.status; - } else { - return new Error(String(res.status)); - } - }) - } -} diff --git a/client2/src/lib/apis/mobileconfig.ts b/client2/src/lib/apis/mobileconfig.ts deleted file mode 100644 index 5abeffa0c38..00000000000 --- a/client2/src/lib/apis/mobileconfig.ts +++ /dev/null @@ -1,37 +0,0 @@ -import qs from 'qs'; - -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export default class MobileconfigApi { - static async mobileConfigDoH(host?: string, client_id?: string): Promise { - const queryParams = { - host: host, - client_id: client_id, - } - return await fetch(`/control/apple/doh.mobileconfig?${qs.stringify(queryParams, { arrayFormat: 'comma' })}`, { - method: 'GET', - }).then(async (res) => { - if (res.status === 200) { - return res.status; - } else { - return new Error(String(res.status)); - } - }) - } - - static async mobileConfigDoT(host?: string, client_id?: string): Promise { - const queryParams = { - host: host, - client_id: client_id, - } - return await fetch(`/control/apple/dot.mobileconfig?${qs.stringify(queryParams, { arrayFormat: 'comma' })}`, { - method: 'GET', - }).then(async (res) => { - if (res.status === 200) { - return res.status; - } else { - return new Error(String(res.status)); - } - }) - } -} diff --git a/client2/src/lib/apis/parental.ts b/client2/src/lib/apis/parental.ts deleted file mode 100644 index 61f693f544e..00000000000 --- a/client2/src/lib/apis/parental.ts +++ /dev/null @@ -1,44 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export default class ParentalApi { - static async parentalDisable(): Promise { - return await fetch(`/control/parental/disable`, { - method: 'POST', - }).then(async (res) => { - if (res.status === 200) { - return res.status; - } else { - return new Error(String(res.status)); - } - }) - } - - static async parentalEnable(data: string): Promise { - const params = String(data); - return await fetch(`/control/parental/enable`, { - method: 'POST', - headers: { - 'Content-Type': 'text/plain', - }, - body: params, - }).then(async (res) => { - if (res.status === 200) { - return res.status; - } else { - return new Error(String(res.status)); - } - }) - } - - static async parentalStatus(): Promise { - return await fetch(`/control/parental/status`, { - method: 'GET', - }).then(async (res) => { - if (res.status === 200) { - return res.json(); - } else { - return new Error(String(res.status)); - } - }) - } -} diff --git a/client2/src/lib/apis/rewrite.ts b/client2/src/lib/apis/rewrite.ts deleted file mode 100644 index eded5c97537..00000000000 --- a/client2/src/lib/apis/rewrite.ts +++ /dev/null @@ -1,61 +0,0 @@ -import RewriteEntry, { IRewriteEntry } from 'Entities/RewriteEntry'; - -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export default class RewriteApi { - static async rewriteAdd(rewriteentry: IRewriteEntry): Promise { - const haveError: string[] = []; - const rewriteentryValid = new RewriteEntry(rewriteentry); - haveError.push(...rewriteentryValid.validate()); - if (haveError.length > 0) { - return Promise.resolve(haveError); - } - return await fetch(`/control/rewrite/add`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify(rewriteentryValid.serialize()), - }).then(async (res) => { - if (res.status === 200) { - return res.status; - } else { - return new Error(String(res.status)); - } - }) - } - - static async rewriteDelete(rewriteentry: IRewriteEntry): Promise { - const haveError: string[] = []; - const rewriteentryValid = new RewriteEntry(rewriteentry); - haveError.push(...rewriteentryValid.validate()); - if (haveError.length > 0) { - return Promise.resolve(haveError); - } - return await fetch(`/control/rewrite/delete`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify(rewriteentryValid.serialize()), - }).then(async (res) => { - if (res.status === 200) { - return res.status; - } else { - return new Error(String(res.status)); - } - }) - } - - static async rewriteList(): Promise { - return await fetch(`/control/rewrite/list`, { - method: 'GET', - }).then(async (res) => { - if (res.status === 200) { - return res.json(); - } else { - return new Error(String(res.status)); - } - }) - } -} diff --git a/client2/src/lib/apis/safebrowsing.ts b/client2/src/lib/apis/safebrowsing.ts deleted file mode 100644 index 9d82a5a1dbf..00000000000 --- a/client2/src/lib/apis/safebrowsing.ts +++ /dev/null @@ -1,39 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export default class SafebrowsingApi { - static async safebrowsingDisable(): Promise { - return await fetch(`/control/safebrowsing/disable`, { - method: 'POST', - }).then(async (res) => { - if (res.status === 200) { - return res.status; - } else { - return new Error(String(res.status)); - } - }) - } - - static async safebrowsingEnable(): Promise { - return await fetch(`/control/safebrowsing/enable`, { - method: 'POST', - }).then(async (res) => { - if (res.status === 200) { - return res.status; - } else { - return new Error(String(res.status)); - } - }) - } - - static async safebrowsingStatus(): Promise { - return await fetch(`/control/safebrowsing/status`, { - method: 'GET', - }).then(async (res) => { - if (res.status === 200) { - return res.json(); - } else { - return new Error(String(res.status)); - } - }) - } -} diff --git a/client2/src/lib/apis/safesearch.ts b/client2/src/lib/apis/safesearch.ts deleted file mode 100644 index e36e79f969e..00000000000 --- a/client2/src/lib/apis/safesearch.ts +++ /dev/null @@ -1,39 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export default class SafesearchApi { - static async safesearchDisable(): Promise { - return await fetch(`/control/safesearch/disable`, { - method: 'POST', - }).then(async (res) => { - if (res.status === 200) { - return res.status; - } else { - return new Error(String(res.status)); - } - }) - } - - static async safesearchEnable(): Promise { - return await fetch(`/control/safesearch/enable`, { - method: 'POST', - }).then(async (res) => { - if (res.status === 200) { - return res.status; - } else { - return new Error(String(res.status)); - } - }) - } - - static async safesearchStatus(): Promise { - return await fetch(`/control/safesearch/status`, { - method: 'GET', - }).then(async (res) => { - if (res.status === 200) { - return res.json(); - } else { - return new Error(String(res.status)); - } - }) - } -} diff --git a/client2/src/lib/apis/stats.ts b/client2/src/lib/apis/stats.ts deleted file mode 100644 index 630f17c082a..00000000000 --- a/client2/src/lib/apis/stats.ts +++ /dev/null @@ -1,64 +0,0 @@ -import Stats, { IStats } from 'Entities/Stats'; -import StatsConfig, { IStatsConfig } from 'Entities/StatsConfig'; - -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export default class StatsApi { - static async stats(): Promise { - return await fetch(`/control/stats`, { - method: 'GET', - }).then(async (res) => { - if (res.status === 200) { - return res.json(); - } else { - return new Error(String(res.status)); - } - }) - } - - static async statsConfig(statsconfig: IStatsConfig): Promise { - const haveError: string[] = []; - const statsconfigValid = new StatsConfig(statsconfig); - haveError.push(...statsconfigValid.validate()); - if (haveError.length > 0) { - return Promise.resolve(haveError); - } - return await fetch(`/control/stats_config`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify(statsconfigValid.serialize()), - }).then(async (res) => { - if (res.status === 200) { - return res.status; - } else { - return new Error(String(res.status)); - } - }) - } - - static async statsInfo(): Promise { - return await fetch(`/control/stats_info`, { - method: 'GET', - }).then(async (res) => { - if (res.status === 200) { - return res.json(); - } else { - return new Error(String(res.status)); - } - }) - } - - static async statsReset(): Promise { - return await fetch(`/control/stats_reset`, { - method: 'POST', - }).then(async (res) => { - if (res.status === 200) { - return res.status; - } else { - return new Error(String(res.status)); - } - }) - } -} diff --git a/client2/src/lib/apis/tls.ts b/client2/src/lib/apis/tls.ts deleted file mode 100644 index c9f064d7d0b..00000000000 --- a/client2/src/lib/apis/tls.ts +++ /dev/null @@ -1,61 +0,0 @@ -import TlsConfig, { ITlsConfig } from 'Entities/TlsConfig'; - -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export default class TlsApi { - static async tlsConfigure(tlsconfig: ITlsConfig): Promise { - const haveError: string[] = []; - const tlsconfigValid = new TlsConfig(tlsconfig); - haveError.push(...tlsconfigValid.validate()); - if (haveError.length > 0) { - return Promise.resolve(haveError); - } - return await fetch(`/control/tls/configure`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify(tlsconfigValid.serialize()), - }).then(async (res) => { - if (res.status === 200) { - return res.json(); - } else { - return new Error(String(res.status)); - } - }) - } - - static async tlsStatus(): Promise { - return await fetch(`/control/tls/status`, { - method: 'GET', - }).then(async (res) => { - if (res.status === 200) { - return res.json(); - } else { - return new Error(String(res.status)); - } - }) - } - - static async tlsValidate(tlsconfig: ITlsConfig): Promise { - const haveError: string[] = []; - const tlsconfigValid = new TlsConfig(tlsconfig); - haveError.push(...tlsconfigValid.validate()); - if (haveError.length > 0) { - return Promise.resolve(haveError); - } - return await fetch(`/control/tls/validate`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify(tlsconfigValid.serialize()), - }).then(async (res) => { - if (res.status === 200) { - return res.json(); - } else { - return new Error(String(res.status)); - } - }) - } -} diff --git a/client2/src/lib/consts/common.ts b/client2/src/lib/consts/common.ts deleted file mode 100644 index 668536b09ed..00000000000 --- a/client2/src/lib/consts/common.ts +++ /dev/null @@ -1,3 +0,0 @@ -export const DEFAULT_NOTIFICATION_DURATION = 5; - -export const DHCP_LINK = 'https://github.com/AdguardTeam/AdGuardHome/wiki/DHCP'; diff --git a/client2/src/lib/consts/forms.ts b/client2/src/lib/consts/forms.ts deleted file mode 100644 index 85b4220d87e..00000000000 --- a/client2/src/lib/consts/forms.ts +++ /dev/null @@ -1 +0,0 @@ -export const EMPTY_FIELD_ERROR = 'empty_field'; diff --git a/client2/src/lib/consts/install.ts b/client2/src/lib/consts/install.ts deleted file mode 100644 index fcc3904fa58..00000000000 --- a/client2/src/lib/consts/install.ts +++ /dev/null @@ -1,7 +0,0 @@ -export const DEFAULT_IP_ADDRESS = '0.0.0.0'; - -export const DEFAULT_IP_PORT = 80; - -export const DEFAULT_DNS_ADDRESS = '0.0.0.0'; - -export const DEFAULT_DNS_PORT = 53; diff --git a/client2/src/lib/entities/AccessList.ts b/client2/src/lib/entities/AccessList.ts deleted file mode 100644 index 7d127465870..00000000000 --- a/client2/src/lib/entities/AccessList.ts +++ /dev/null @@ -1,76 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IAccessList { - allowed_clients?: string[]; - blocked_hosts?: string[]; - disallowed_clients?: string[]; -} - -export default class AccessList { - readonly _allowed_clients: string[] | undefined; - - /** */ - get allowedClients(): string[] | undefined { - return this._allowed_clients; - } - - readonly _blocked_hosts: string[] | undefined; - - /** */ - get blockedHosts(): string[] | undefined { - return this._blocked_hosts; - } - - readonly _disallowed_clients: string[] | undefined; - - /** */ - get disallowedClients(): string[] | undefined { - return this._disallowed_clients; - } - - constructor(props: IAccessList) { - if (props.allowed_clients) { - this._allowed_clients = props.allowed_clients; - } - if (props.blocked_hosts) { - this._blocked_hosts = props.blocked_hosts; - } - if (props.disallowed_clients) { - this._disallowed_clients = props.disallowed_clients; - } - } - - serialize(): IAccessList { - const data: IAccessList = { - }; - if (typeof this._allowed_clients !== 'undefined') { - data.allowed_clients = this._allowed_clients; - } - if (typeof this._blocked_hosts !== 'undefined') { - data.blocked_hosts = this._blocked_hosts; - } - if (typeof this._disallowed_clients !== 'undefined') { - data.disallowed_clients = this._disallowed_clients; - } - return data; - } - - validate(): string[] { - const validate = { - allowed_clients: !this._allowed_clients ? true : this._allowed_clients.reduce((result, p) => result && typeof p === 'string', true), - disallowed_clients: !this._disallowed_clients ? true : this._disallowed_clients.reduce((result, p) => result && typeof p === 'string', true), - blocked_hosts: !this._blocked_hosts ? true : this._blocked_hosts.reduce((result, p) => result && typeof p === 'string', true), - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): AccessList { - return new AccessList({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/AccessListResponse.ts b/client2/src/lib/entities/AccessListResponse.ts deleted file mode 100644 index c4443f0af96..00000000000 --- a/client2/src/lib/entities/AccessListResponse.ts +++ /dev/null @@ -1,6 +0,0 @@ -import AccessList, { IAccessList } from './AccessList'; - -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export type IAccessListResponse = IAccessList; -export default AccessList; diff --git a/client2/src/lib/entities/AccessSetRequest.ts b/client2/src/lib/entities/AccessSetRequest.ts deleted file mode 100644 index 45ebbab1dce..00000000000 --- a/client2/src/lib/entities/AccessSetRequest.ts +++ /dev/null @@ -1,6 +0,0 @@ -import AccessList, { IAccessList } from './AccessList'; - -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export type IAccessSetRequest = IAccessList; -export default AccessList; diff --git a/client2/src/lib/entities/AddUrlRequest.ts b/client2/src/lib/entities/AddUrlRequest.ts deleted file mode 100644 index 076dd4d29fa..00000000000 --- a/client2/src/lib/entities/AddUrlRequest.ts +++ /dev/null @@ -1,78 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IAddUrlRequest { - name?: string; - url?: string; - whitelist?: boolean; -} - -export default class AddUrlRequest { - readonly _name: string | undefined; - - get name(): string | undefined { - return this._name; - } - - readonly _url: string | undefined; - - /** - * Description: URL or an absolute path to the file containing filtering rules. - * - * Example: https://filters.adtidy.org/windows/filters/15.txt - */ - get url(): string | undefined { - return this._url; - } - - readonly _whitelist: boolean | undefined; - - get whitelist(): boolean | undefined { - return this._whitelist; - } - - constructor(props: IAddUrlRequest) { - if (typeof props.name === 'string') { - this._name = props.name.trim(); - } - if (typeof props.url === 'string') { - this._url = props.url.trim(); - } - if (typeof props.whitelist === 'boolean') { - this._whitelist = props.whitelist; - } - } - - serialize(): IAddUrlRequest { - const data: IAddUrlRequest = { - }; - if (typeof this._name !== 'undefined') { - data.name = this._name; - } - if (typeof this._url !== 'undefined') { - data.url = this._url; - } - if (typeof this._whitelist !== 'undefined') { - data.whitelist = this._whitelist; - } - return data; - } - - validate(): string[] { - const validate = { - name: !this._name ? true : typeof this._name === 'string' && !this._name ? true : this._name, - url: !this._url ? true : typeof this._url === 'string' && !this._url ? true : this._url, - whitelist: !this._whitelist ? true : typeof this._whitelist === 'boolean', - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): AddUrlRequest { - return new AddUrlRequest({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/AddressInfo.ts b/client2/src/lib/entities/AddressInfo.ts deleted file mode 100644 index 1afdecb477b..00000000000 --- a/client2/src/lib/entities/AddressInfo.ts +++ /dev/null @@ -1,67 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IAddressInfo { - ip: string; - port: number; -} - -export default class AddressInfo { - readonly _ip: string; - - /** - * Description: undefined - * Example: 127.0.0.1 - */ - get ip(): string { - return this._ip; - } - - static ipValidate(ip: string): boolean { - return typeof ip === 'string' && !!ip.trim(); - } - - readonly _port: number; - - /** - * Description: undefined - * Example: 53 - */ - get port(): number { - return this._port; - } - - static portValidate(port: number): boolean { - return typeof port === 'number'; - } - - constructor(props: IAddressInfo) { - this._ip = props.ip.trim(); - this._port = props.port; - } - - serialize(): IAddressInfo { - const data: IAddressInfo = { - ip: this._ip, - port: this._port, - }; - return data; - } - - validate(): string[] { - const validate = { - ip: typeof this._ip === 'string' && !this._ip ? true : this._ip, - port: typeof this._port === 'number', - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): AddressInfo { - return new AddressInfo({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/AddressInfoBeta.ts b/client2/src/lib/entities/AddressInfoBeta.ts deleted file mode 100644 index 8b5073a3636..00000000000 --- a/client2/src/lib/entities/AddressInfoBeta.ts +++ /dev/null @@ -1,71 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IAddressInfoBeta { - ip: string[]; - port: number; -} - -export default class AddressInfoBeta { - readonly _ip: string[]; - - /** - * Description: undefined - * Example: 127.0.0.1 - */ - get ip(): string[] { - return this._ip; - } - - static get ipMinItems() { - return 1; - } - - static ipValidate(ip: string[]): boolean { - return ip.reduce((result, p) => result && (typeof p === 'string' && !!p.trim()), true); - } - - readonly _port: number; - - /** - * Description: undefined - * Example: 53 - */ - get port(): number { - return this._port; - } - - static portValidate(port: number): boolean { - return typeof port === 'number'; - } - - constructor(props: IAddressInfoBeta) { - this._ip = props.ip; - this._port = props.port; - } - - serialize(): IAddressInfoBeta { - const data: IAddressInfoBeta = { - ip: this._ip, - port: this._port, - }; - return data; - } - - validate(): string[] { - const validate = { - ip: this._ip.reduce((result, p) => result && typeof p === 'string', true), - port: typeof this._port === 'number', - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): AddressInfoBeta { - return new AddressInfoBeta({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/AddressesInfo.ts b/client2/src/lib/entities/AddressesInfo.ts deleted file mode 100644 index af864b177d1..00000000000 --- a/client2/src/lib/entities/AddressesInfo.ts +++ /dev/null @@ -1,79 +0,0 @@ -import NetInterfaces, { INetInterfaces } from './NetInterfaces'; - -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IAddressesInfo { - dns_port: number; - interfaces: INetInterfaces; - web_port: number; -} - -export default class AddressesInfo { - readonly _dns_port: number; - - /** - * Description: undefined - * Example: 53 - */ - get dnsPort(): number { - return this._dns_port; - } - - static dnsPortValidate(dnsPort: number): boolean { - return typeof dnsPort === 'number'; - } - - readonly _interfaces: NetInterfaces; - - get interfaces(): NetInterfaces { - return this._interfaces; - } - - readonly _web_port: number; - - /** - * Description: undefined - * Example: 80 - */ - get webPort(): number { - return this._web_port; - } - - static webPortValidate(webPort: number): boolean { - return typeof webPort === 'number'; - } - - constructor(props: IAddressesInfo) { - this._dns_port = props.dns_port; - this._interfaces = new NetInterfaces(props.interfaces); - this._web_port = props.web_port; - } - - serialize(): IAddressesInfo { - const data: IAddressesInfo = { - dns_port: this._dns_port, - interfaces: this._interfaces.serialize(), - web_port: this._web_port, - }; - return data; - } - - validate(): string[] { - const validate = { - dns_port: typeof this._dns_port === 'number', - web_port: typeof this._web_port === 'number', - interfaces: this._interfaces.validate().length === 0, - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): AddressesInfo { - return new AddressesInfo({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/AddressesInfoBeta.ts b/client2/src/lib/entities/AddressesInfoBeta.ts deleted file mode 100644 index 603adafe53f..00000000000 --- a/client2/src/lib/entities/AddressesInfoBeta.ts +++ /dev/null @@ -1,80 +0,0 @@ -import NetInterface, { INetInterface } from './NetInterface'; - -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IAddressesInfoBeta { - dns_port: number; - interfaces: INetInterface[]; - web_port: number; -} - -export default class AddressesInfoBeta { - readonly _dns_port: number; - - /** - * Description: undefined - * Example: 53 - */ - get dnsPort(): number { - return this._dns_port; - } - - static dnsPortValidate(dnsPort: number): boolean { - return typeof dnsPort === 'number'; - } - - readonly _interfaces: NetInterface[]; - - /** */ - get interfaces(): NetInterface[] { - return this._interfaces; - } - - readonly _web_port: number; - - /** - * Description: undefined - * Example: 80 - */ - get webPort(): number { - return this._web_port; - } - - static webPortValidate(webPort: number): boolean { - return typeof webPort === 'number'; - } - - constructor(props: IAddressesInfoBeta) { - this._dns_port = props.dns_port; - this._interfaces = props.interfaces.map((p) => new NetInterface(p)); - this._web_port = props.web_port; - } - - serialize(): IAddressesInfoBeta { - const data: IAddressesInfoBeta = { - dns_port: this._dns_port, - interfaces: this._interfaces.map((p) => p.serialize()), - web_port: this._web_port, - }; - return data; - } - - validate(): string[] { - const validate = { - dns_port: typeof this._dns_port === 'number', - web_port: typeof this._web_port === 'number', - interfaces: this._interfaces.reduce((result, p) => result && p.validate().length === 0, true), - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): AddressesInfoBeta { - return new AddressesInfoBeta({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/BlockedServicesArray.ts b/client2/src/lib/entities/BlockedServicesArray.ts deleted file mode 100644 index 6c175abea0d..00000000000 --- a/client2/src/lib/entities/BlockedServicesArray.ts +++ /dev/null @@ -1,31 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IBlockedServicesArray { -} - -export default class BlockedServicesArray { - constructor(props: IBlockedServicesArray) { - } - - serialize(): IBlockedServicesArray { - const data: IBlockedServicesArray = { - }; - return data; - } - - validate(): string[] { - const validate = { - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): BlockedServicesArray { - return new BlockedServicesArray({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/CheckConfigRequest.ts b/client2/src/lib/entities/CheckConfigRequest.ts deleted file mode 100644 index dba0f741f01..00000000000 --- a/client2/src/lib/entities/CheckConfigRequest.ts +++ /dev/null @@ -1,75 +0,0 @@ -import CheckConfigRequestInfo, { ICheckConfigRequestInfo } from './CheckConfigRequestInfo'; - -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface ICheckConfigRequest { - dns?: ICheckConfigRequestInfo; - set_static_ip?: boolean; - web?: ICheckConfigRequestInfo; -} - -export default class CheckConfigRequest { - readonly _dns: CheckConfigRequestInfo | undefined; - - get dns(): CheckConfigRequestInfo | undefined { - return this._dns; - } - - readonly _set_static_ip: boolean | undefined; - - get setStaticIp(): boolean | undefined { - return this._set_static_ip; - } - - readonly _web: CheckConfigRequestInfo | undefined; - - get web(): CheckConfigRequestInfo | undefined { - return this._web; - } - - constructor(props: ICheckConfigRequest) { - if (props.dns) { - this._dns = new CheckConfigRequestInfo(props.dns); - } - if (typeof props.set_static_ip === 'boolean') { - this._set_static_ip = props.set_static_ip; - } - if (props.web) { - this._web = new CheckConfigRequestInfo(props.web); - } - } - - serialize(): ICheckConfigRequest { - const data: ICheckConfigRequest = { - }; - if (typeof this._dns !== 'undefined') { - data.dns = this._dns.serialize(); - } - if (typeof this._set_static_ip !== 'undefined') { - data.set_static_ip = this._set_static_ip; - } - if (typeof this._web !== 'undefined') { - data.web = this._web.serialize(); - } - return data; - } - - validate(): string[] { - const validate = { - dns: !this._dns ? true : this._dns.validate().length === 0, - web: !this._web ? true : this._web.validate().length === 0, - set_static_ip: !this._set_static_ip ? true : typeof this._set_static_ip === 'boolean', - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): CheckConfigRequest { - return new CheckConfigRequest({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/CheckConfigRequestBeta.ts b/client2/src/lib/entities/CheckConfigRequestBeta.ts deleted file mode 100644 index b34c855fc8b..00000000000 --- a/client2/src/lib/entities/CheckConfigRequestBeta.ts +++ /dev/null @@ -1,75 +0,0 @@ -import CheckConfigRequestInfoBeta, { ICheckConfigRequestInfoBeta } from './CheckConfigRequestInfoBeta'; - -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface ICheckConfigRequestBeta { - dns?: ICheckConfigRequestInfoBeta; - set_static_ip?: boolean; - web?: ICheckConfigRequestInfoBeta; -} - -export default class CheckConfigRequestBeta { - readonly _dns: CheckConfigRequestInfoBeta | undefined; - - get dns(): CheckConfigRequestInfoBeta | undefined { - return this._dns; - } - - readonly _set_static_ip: boolean | undefined; - - get setStaticIp(): boolean | undefined { - return this._set_static_ip; - } - - readonly _web: CheckConfigRequestInfoBeta | undefined; - - get web(): CheckConfigRequestInfoBeta | undefined { - return this._web; - } - - constructor(props: ICheckConfigRequestBeta) { - if (props.dns) { - this._dns = new CheckConfigRequestInfoBeta(props.dns); - } - if (typeof props.set_static_ip === 'boolean') { - this._set_static_ip = props.set_static_ip; - } - if (props.web) { - this._web = new CheckConfigRequestInfoBeta(props.web); - } - } - - serialize(): ICheckConfigRequestBeta { - const data: ICheckConfigRequestBeta = { - }; - if (typeof this._dns !== 'undefined') { - data.dns = this._dns.serialize(); - } - if (typeof this._set_static_ip !== 'undefined') { - data.set_static_ip = this._set_static_ip; - } - if (typeof this._web !== 'undefined') { - data.web = this._web.serialize(); - } - return data; - } - - validate(): string[] { - const validate = { - dns: !this._dns ? true : this._dns.validate().length === 0, - web: !this._web ? true : this._web.validate().length === 0, - set_static_ip: !this._set_static_ip ? true : typeof this._set_static_ip === 'boolean', - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): CheckConfigRequestBeta { - return new CheckConfigRequestBeta({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/CheckConfigRequestInfo.ts b/client2/src/lib/entities/CheckConfigRequestInfo.ts deleted file mode 100644 index c8da0cf352d..00000000000 --- a/client2/src/lib/entities/CheckConfigRequestInfo.ts +++ /dev/null @@ -1,81 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface ICheckConfigRequestInfo { - autofix?: boolean; - ip?: string; - port?: number; -} - -export default class CheckConfigRequestInfo { - readonly _autofix: boolean | undefined; - - get autofix(): boolean | undefined { - return this._autofix; - } - - readonly _ip: string | undefined; - - /** - * Description: undefined - * Example: 127.0.0.1 - */ - get ip(): string | undefined { - return this._ip; - } - - readonly _port: number | undefined; - - /** - * Description: undefined - * Example: 53 - */ - get port(): number | undefined { - return this._port; - } - - constructor(props: ICheckConfigRequestInfo) { - if (typeof props.autofix === 'boolean') { - this._autofix = props.autofix; - } - if (typeof props.ip === 'string') { - this._ip = props.ip.trim(); - } - if (typeof props.port === 'number') { - this._port = props.port; - } - } - - serialize(): ICheckConfigRequestInfo { - const data: ICheckConfigRequestInfo = { - }; - if (typeof this._autofix !== 'undefined') { - data.autofix = this._autofix; - } - if (typeof this._ip !== 'undefined') { - data.ip = this._ip; - } - if (typeof this._port !== 'undefined') { - data.port = this._port; - } - return data; - } - - validate(): string[] { - const validate = { - ip: !this._ip ? true : typeof this._ip === 'string' && !this._ip ? true : this._ip, - port: !this._port ? true : typeof this._port === 'number', - autofix: !this._autofix ? true : typeof this._autofix === 'boolean', - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): CheckConfigRequestInfo { - return new CheckConfigRequestInfo({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/CheckConfigRequestInfoBeta.ts b/client2/src/lib/entities/CheckConfigRequestInfoBeta.ts deleted file mode 100644 index d086e7718b1..00000000000 --- a/client2/src/lib/entities/CheckConfigRequestInfoBeta.ts +++ /dev/null @@ -1,85 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface ICheckConfigRequestInfoBeta { - autofix?: boolean; - ip?: string[]; - port?: number; -} - -export default class CheckConfigRequestInfoBeta { - readonly _autofix: boolean | undefined; - - get autofix(): boolean | undefined { - return this._autofix; - } - - readonly _ip: string[] | undefined; - - /** - * Description: undefined - * Example: 127.0.0.1 - */ - get ip(): string[] | undefined { - return this._ip; - } - - static get ipMinItems() { - return 1; - } - - readonly _port: number | undefined; - - /** - * Description: undefined - * Example: 53 - */ - get port(): number | undefined { - return this._port; - } - - constructor(props: ICheckConfigRequestInfoBeta) { - if (typeof props.autofix === 'boolean') { - this._autofix = props.autofix; - } - if (props.ip) { - this._ip = props.ip; - } - if (typeof props.port === 'number') { - this._port = props.port; - } - } - - serialize(): ICheckConfigRequestInfoBeta { - const data: ICheckConfigRequestInfoBeta = { - }; - if (typeof this._autofix !== 'undefined') { - data.autofix = this._autofix; - } - if (typeof this._ip !== 'undefined') { - data.ip = this._ip; - } - if (typeof this._port !== 'undefined') { - data.port = this._port; - } - return data; - } - - validate(): string[] { - const validate = { - ip: !this._ip ? true : this._ip.reduce((result, p) => result && typeof p === 'string', true), - port: !this._port ? true : typeof this._port === 'number', - autofix: !this._autofix ? true : typeof this._autofix === 'boolean', - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): CheckConfigRequestInfoBeta { - return new CheckConfigRequestInfoBeta({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/CheckConfigResponse.ts b/client2/src/lib/entities/CheckConfigResponse.ts deleted file mode 100644 index 74d45519fa9..00000000000 --- a/client2/src/lib/entities/CheckConfigResponse.ts +++ /dev/null @@ -1,64 +0,0 @@ -import CheckConfigResponseInfo, { ICheckConfigResponseInfo } from './CheckConfigResponseInfo'; -import CheckConfigStaticIpInfo, { ICheckConfigStaticIpInfo } from './CheckConfigStaticIpInfo'; - -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface ICheckConfigResponse { - dns: ICheckConfigResponseInfo; - static_ip: ICheckConfigStaticIpInfo; - web: ICheckConfigResponseInfo; -} - -export default class CheckConfigResponse { - readonly _dns: CheckConfigResponseInfo; - - get dns(): CheckConfigResponseInfo { - return this._dns; - } - - readonly _static_ip: CheckConfigStaticIpInfo; - - get staticIp(): CheckConfigStaticIpInfo { - return this._static_ip; - } - - readonly _web: CheckConfigResponseInfo; - - get web(): CheckConfigResponseInfo { - return this._web; - } - - constructor(props: ICheckConfigResponse) { - this._dns = new CheckConfigResponseInfo(props.dns); - this._static_ip = new CheckConfigStaticIpInfo(props.static_ip); - this._web = new CheckConfigResponseInfo(props.web); - } - - serialize(): ICheckConfigResponse { - const data: ICheckConfigResponse = { - dns: this._dns.serialize(), - static_ip: this._static_ip.serialize(), - web: this._web.serialize(), - }; - return data; - } - - validate(): string[] { - const validate = { - dns: this._dns.validate().length === 0, - web: this._web.validate().length === 0, - static_ip: this._static_ip.validate().length === 0, - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): CheckConfigResponse { - return new CheckConfigResponse({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/CheckConfigResponseInfo.ts b/client2/src/lib/entities/CheckConfigResponseInfo.ts deleted file mode 100644 index 09d9d2a98cc..00000000000 --- a/client2/src/lib/entities/CheckConfigResponseInfo.ts +++ /dev/null @@ -1,59 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface ICheckConfigResponseInfo { - can_autofix: boolean; - status: string; -} - -export default class CheckConfigResponseInfo { - readonly _can_autofix: boolean; - - get canAutofix(): boolean { - return this._can_autofix; - } - - static canAutofixValidate(canAutofix: boolean): boolean { - return typeof canAutofix === 'boolean'; - } - - readonly _status: string; - - get status(): string { - return this._status; - } - - static statusValidate(status: string): boolean { - return typeof status === 'string' && !!status.trim(); - } - - constructor(props: ICheckConfigResponseInfo) { - this._can_autofix = props.can_autofix; - this._status = props.status.trim(); - } - - serialize(): ICheckConfigResponseInfo { - const data: ICheckConfigResponseInfo = { - can_autofix: this._can_autofix, - status: this._status, - }; - return data; - } - - validate(): string[] { - const validate = { - status: typeof this._status === 'string' && !this._status ? true : this._status, - can_autofix: typeof this._can_autofix === 'boolean', - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): CheckConfigResponseInfo { - return new CheckConfigResponseInfo({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/CheckConfigStaticIpInfo.ts b/client2/src/lib/entities/CheckConfigStaticIpInfo.ts deleted file mode 100644 index b7c7a34c654..00000000000 --- a/client2/src/lib/entities/CheckConfigStaticIpInfo.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { CheckConfigStaticIpInfoStatic } from './CheckConfigStaticIpInfoStatic'; - -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface ICheckConfigStaticIpInfo { - error?: string; - ip?: string; - static?: CheckConfigStaticIpInfoStatic; -} - -export default class CheckConfigStaticIpInfo { - readonly _error: string | undefined; - - /** */ - get error(): string | undefined { - return this._error; - } - - readonly _ip: string | undefined; - - /** - * Description: Current dynamic IP address. Set if static=no - * Example: 192.168.1.1 - */ - get ip(): string | undefined { - return this._ip; - } - - readonly _static: CheckConfigStaticIpInfoStatic | undefined; - - get static(): CheckConfigStaticIpInfoStatic | undefined { - return this._static; - } - - constructor(props: ICheckConfigStaticIpInfo) { - if (typeof props.error === 'string') { - this._error = props.error.trim(); - } - if (typeof props.ip === 'string') { - this._ip = props.ip.trim(); - } - if (props.static) { - this._static = props.static; - } - } - - serialize(): ICheckConfigStaticIpInfo { - const data: ICheckConfigStaticIpInfo = { - }; - if (typeof this._error !== 'undefined') { - data.error = this._error; - } - if (typeof this._ip !== 'undefined') { - data.ip = this._ip; - } - if (typeof this._static !== 'undefined') { - data.static = this._static; - } - return data; - } - - validate(): string[] { - const validate = { - ip: !this._ip ? true : typeof this._ip === 'string' && !this._ip ? true : this._ip, - error: !this._error ? true : typeof this._error === 'string' && !this._error ? true : this._error, - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): CheckConfigStaticIpInfo { - return new CheckConfigStaticIpInfo({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/CheckConfigStaticIpInfoStatic.ts b/client2/src/lib/entities/CheckConfigStaticIpInfoStatic.ts deleted file mode 100644 index 9609e1ec0f2..00000000000 --- a/client2/src/lib/entities/CheckConfigStaticIpInfoStatic.ts +++ /dev/null @@ -1,7 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export enum CheckConfigStaticIpInfoStatic { - YES = 'yes', - NO = 'no', - ERROR = 'error' -} diff --git a/client2/src/lib/entities/Client.ts b/client2/src/lib/entities/Client.ts deleted file mode 100644 index c86a9d8f2e4..00000000000 --- a/client2/src/lib/entities/Client.ts +++ /dev/null @@ -1,176 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IClient { - blocked_services?: string[]; - filtering_enabled?: boolean; - ids?: string[]; - name?: string; - parental_enabled?: boolean; - safebrowsing_enabled?: boolean; - safesearch_enabled?: boolean; - upstreams?: string[]; - use_global_blocked_services?: boolean; - use_global_settings?: boolean; -} - -export default class Client { - readonly _blocked_services: string[] | undefined; - - get blockedServices(): string[] | undefined { - return this._blocked_services; - } - - readonly _filtering_enabled: boolean | undefined; - - get filteringEnabled(): boolean | undefined { - return this._filtering_enabled; - } - - readonly _ids: string[] | undefined; - - /** */ - get ids(): string[] | undefined { - return this._ids; - } - - readonly _name: string | undefined; - - /** - * Description: Name - * Example: localhost - */ - get name(): string | undefined { - return this._name; - } - - readonly _parental_enabled: boolean | undefined; - - get parentalEnabled(): boolean | undefined { - return this._parental_enabled; - } - - readonly _safebrowsing_enabled: boolean | undefined; - - get safebrowsingEnabled(): boolean | undefined { - return this._safebrowsing_enabled; - } - - readonly _safesearch_enabled: boolean | undefined; - - get safesearchEnabled(): boolean | undefined { - return this._safesearch_enabled; - } - - readonly _upstreams: string[] | undefined; - - get upstreams(): string[] | undefined { - return this._upstreams; - } - - readonly _use_global_blocked_services: boolean | undefined; - - get useGlobalBlockedServices(): boolean | undefined { - return this._use_global_blocked_services; - } - - readonly _use_global_settings: boolean | undefined; - - get useGlobalSettings(): boolean | undefined { - return this._use_global_settings; - } - - constructor(props: IClient) { - if (props.blocked_services) { - this._blocked_services = props.blocked_services; - } - if (typeof props.filtering_enabled === 'boolean') { - this._filtering_enabled = props.filtering_enabled; - } - if (props.ids) { - this._ids = props.ids; - } - if (typeof props.name === 'string') { - this._name = props.name.trim(); - } - if (typeof props.parental_enabled === 'boolean') { - this._parental_enabled = props.parental_enabled; - } - if (typeof props.safebrowsing_enabled === 'boolean') { - this._safebrowsing_enabled = props.safebrowsing_enabled; - } - if (typeof props.safesearch_enabled === 'boolean') { - this._safesearch_enabled = props.safesearch_enabled; - } - if (props.upstreams) { - this._upstreams = props.upstreams; - } - if (typeof props.use_global_blocked_services === 'boolean') { - this._use_global_blocked_services = props.use_global_blocked_services; - } - if (typeof props.use_global_settings === 'boolean') { - this._use_global_settings = props.use_global_settings; - } - } - - serialize(): IClient { - const data: IClient = { - }; - if (typeof this._blocked_services !== 'undefined') { - data.blocked_services = this._blocked_services; - } - if (typeof this._filtering_enabled !== 'undefined') { - data.filtering_enabled = this._filtering_enabled; - } - if (typeof this._ids !== 'undefined') { - data.ids = this._ids; - } - if (typeof this._name !== 'undefined') { - data.name = this._name; - } - if (typeof this._parental_enabled !== 'undefined') { - data.parental_enabled = this._parental_enabled; - } - if (typeof this._safebrowsing_enabled !== 'undefined') { - data.safebrowsing_enabled = this._safebrowsing_enabled; - } - if (typeof this._safesearch_enabled !== 'undefined') { - data.safesearch_enabled = this._safesearch_enabled; - } - if (typeof this._upstreams !== 'undefined') { - data.upstreams = this._upstreams; - } - if (typeof this._use_global_blocked_services !== 'undefined') { - data.use_global_blocked_services = this._use_global_blocked_services; - } - if (typeof this._use_global_settings !== 'undefined') { - data.use_global_settings = this._use_global_settings; - } - return data; - } - - validate(): string[] { - const validate = { - name: !this._name ? true : typeof this._name === 'string' && !this._name ? true : this._name, - ids: !this._ids ? true : this._ids.reduce((result, p) => result && typeof p === 'string', true), - use_global_settings: !this._use_global_settings ? true : typeof this._use_global_settings === 'boolean', - filtering_enabled: !this._filtering_enabled ? true : typeof this._filtering_enabled === 'boolean', - parental_enabled: !this._parental_enabled ? true : typeof this._parental_enabled === 'boolean', - safebrowsing_enabled: !this._safebrowsing_enabled ? true : typeof this._safebrowsing_enabled === 'boolean', - safesearch_enabled: !this._safesearch_enabled ? true : typeof this._safesearch_enabled === 'boolean', - use_global_blocked_services: !this._use_global_blocked_services ? true : typeof this._use_global_blocked_services === 'boolean', - blocked_services: !this._blocked_services ? true : this._blocked_services.reduce((result, p) => result && typeof p === 'string', true), - upstreams: !this._upstreams ? true : this._upstreams.reduce((result, p) => result && typeof p === 'string', true), - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): Client { - return new Client({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/ClientAuto.ts b/client2/src/lib/entities/ClientAuto.ts deleted file mode 100644 index 2696a4c2a9e..00000000000 --- a/client2/src/lib/entities/ClientAuto.ts +++ /dev/null @@ -1,85 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IClientAuto { - ip?: string; - name?: string; - source?: string; -} - -export default class ClientAuto { - readonly _ip: string | undefined; - - /** - * Description: IP address - * Example: 127.0.0.1 - */ - get ip(): string | undefined { - return this._ip; - } - - readonly _name: string | undefined; - - /** - * Description: Name - * Example: localhost - */ - get name(): string | undefined { - return this._name; - } - - readonly _source: string | undefined; - - /** - * Description: The source of this information - * Example: etc/hosts - */ - get source(): string | undefined { - return this._source; - } - - constructor(props: IClientAuto) { - if (typeof props.ip === 'string') { - this._ip = props.ip.trim(); - } - if (typeof props.name === 'string') { - this._name = props.name.trim(); - } - if (typeof props.source === 'string') { - this._source = props.source.trim(); - } - } - - serialize(): IClientAuto { - const data: IClientAuto = { - }; - if (typeof this._ip !== 'undefined') { - data.ip = this._ip; - } - if (typeof this._name !== 'undefined') { - data.name = this._name; - } - if (typeof this._source !== 'undefined') { - data.source = this._source; - } - return data; - } - - validate(): string[] { - const validate = { - ip: !this._ip ? true : typeof this._ip === 'string' && !this._ip ? true : this._ip, - name: !this._name ? true : typeof this._name === 'string' && !this._name ? true : this._name, - source: !this._source ? true : typeof this._source === 'string' && !this._source ? true : this._source, - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): ClientAuto { - return new ClientAuto({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/ClientDelete.ts b/client2/src/lib/entities/ClientDelete.ts deleted file mode 100644 index 6a009c039f4..00000000000 --- a/client2/src/lib/entities/ClientDelete.ts +++ /dev/null @@ -1,45 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IClientDelete { - name?: string; -} - -export default class ClientDelete { - readonly _name: string | undefined; - - get name(): string | undefined { - return this._name; - } - - constructor(props: IClientDelete) { - if (typeof props.name === 'string') { - this._name = props.name.trim(); - } - } - - serialize(): IClientDelete { - const data: IClientDelete = { - }; - if (typeof this._name !== 'undefined') { - data.name = this._name; - } - return data; - } - - validate(): string[] { - const validate = { - name: !this._name ? true : typeof this._name === 'string' && !this._name ? true : this._name, - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): ClientDelete { - return new ClientDelete({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/ClientFindSubEntry.ts b/client2/src/lib/entities/ClientFindSubEntry.ts deleted file mode 100644 index 8d06754955f..00000000000 --- a/client2/src/lib/entities/ClientFindSubEntry.ts +++ /dev/null @@ -1,222 +0,0 @@ -import WhoisInfo, { IWhoisInfo } from './WhoisInfo'; - -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IClientFindSubEntry { - blocked_services?: string[]; - disallowed?: boolean; - disallowed_rule?: string; - filtering_enabled?: boolean; - ids?: string[]; - name?: string; - parental_enabled?: boolean; - safebrowsing_enabled?: boolean; - safesearch_enabled?: boolean; - upstreams?: string[]; - use_global_blocked_services?: boolean; - use_global_settings?: boolean; - whois_info?: IWhoisInfo; -} - -export default class ClientFindSubEntry { - readonly _blocked_services: string[] | undefined; - - get blockedServices(): string[] | undefined { - return this._blocked_services; - } - - readonly _disallowed: boolean | undefined; - - /** */ - get disallowed(): boolean | undefined { - return this._disallowed; - } - - readonly _disallowed_rule: string | undefined; - - /** */ - get disallowedRule(): string | undefined { - return this._disallowed_rule; - } - - readonly _filtering_enabled: boolean | undefined; - - get filteringEnabled(): boolean | undefined { - return this._filtering_enabled; - } - - readonly _ids: string[] | undefined; - - /** */ - get ids(): string[] | undefined { - return this._ids; - } - - readonly _name: string | undefined; - - /** - * Description: Name - * Example: localhost - */ - get name(): string | undefined { - return this._name; - } - - readonly _parental_enabled: boolean | undefined; - - get parentalEnabled(): boolean | undefined { - return this._parental_enabled; - } - - readonly _safebrowsing_enabled: boolean | undefined; - - get safebrowsingEnabled(): boolean | undefined { - return this._safebrowsing_enabled; - } - - readonly _safesearch_enabled: boolean | undefined; - - get safesearchEnabled(): boolean | undefined { - return this._safesearch_enabled; - } - - readonly _upstreams: string[] | undefined; - - get upstreams(): string[] | undefined { - return this._upstreams; - } - - readonly _use_global_blocked_services: boolean | undefined; - - get useGlobalBlockedServices(): boolean | undefined { - return this._use_global_blocked_services; - } - - readonly _use_global_settings: boolean | undefined; - - get useGlobalSettings(): boolean | undefined { - return this._use_global_settings; - } - - readonly _whois_info: WhoisInfo | undefined; - - get whoisInfo(): WhoisInfo | undefined { - return this._whois_info; - } - - constructor(props: IClientFindSubEntry) { - if (props.blocked_services) { - this._blocked_services = props.blocked_services; - } - if (typeof props.disallowed === 'boolean') { - this._disallowed = props.disallowed; - } - if (typeof props.disallowed_rule === 'string') { - this._disallowed_rule = props.disallowed_rule.trim(); - } - if (typeof props.filtering_enabled === 'boolean') { - this._filtering_enabled = props.filtering_enabled; - } - if (props.ids) { - this._ids = props.ids; - } - if (typeof props.name === 'string') { - this._name = props.name.trim(); - } - if (typeof props.parental_enabled === 'boolean') { - this._parental_enabled = props.parental_enabled; - } - if (typeof props.safebrowsing_enabled === 'boolean') { - this._safebrowsing_enabled = props.safebrowsing_enabled; - } - if (typeof props.safesearch_enabled === 'boolean') { - this._safesearch_enabled = props.safesearch_enabled; - } - if (props.upstreams) { - this._upstreams = props.upstreams; - } - if (typeof props.use_global_blocked_services === 'boolean') { - this._use_global_blocked_services = props.use_global_blocked_services; - } - if (typeof props.use_global_settings === 'boolean') { - this._use_global_settings = props.use_global_settings; - } - if (props.whois_info) { - this._whois_info = new WhoisInfo(props.whois_info); - } - } - - serialize(): IClientFindSubEntry { - const data: IClientFindSubEntry = { - }; - if (typeof this._blocked_services !== 'undefined') { - data.blocked_services = this._blocked_services; - } - if (typeof this._disallowed !== 'undefined') { - data.disallowed = this._disallowed; - } - if (typeof this._disallowed_rule !== 'undefined') { - data.disallowed_rule = this._disallowed_rule; - } - if (typeof this._filtering_enabled !== 'undefined') { - data.filtering_enabled = this._filtering_enabled; - } - if (typeof this._ids !== 'undefined') { - data.ids = this._ids; - } - if (typeof this._name !== 'undefined') { - data.name = this._name; - } - if (typeof this._parental_enabled !== 'undefined') { - data.parental_enabled = this._parental_enabled; - } - if (typeof this._safebrowsing_enabled !== 'undefined') { - data.safebrowsing_enabled = this._safebrowsing_enabled; - } - if (typeof this._safesearch_enabled !== 'undefined') { - data.safesearch_enabled = this._safesearch_enabled; - } - if (typeof this._upstreams !== 'undefined') { - data.upstreams = this._upstreams; - } - if (typeof this._use_global_blocked_services !== 'undefined') { - data.use_global_blocked_services = this._use_global_blocked_services; - } - if (typeof this._use_global_settings !== 'undefined') { - data.use_global_settings = this._use_global_settings; - } - if (typeof this._whois_info !== 'undefined') { - data.whois_info = this._whois_info.serialize(); - } - return data; - } - - validate(): string[] { - const validate = { - name: !this._name ? true : typeof this._name === 'string' && !this._name ? true : this._name, - ids: !this._ids ? true : this._ids.reduce((result, p) => result && typeof p === 'string', true), - use_global_settings: !this._use_global_settings ? true : typeof this._use_global_settings === 'boolean', - filtering_enabled: !this._filtering_enabled ? true : typeof this._filtering_enabled === 'boolean', - parental_enabled: !this._parental_enabled ? true : typeof this._parental_enabled === 'boolean', - safebrowsing_enabled: !this._safebrowsing_enabled ? true : typeof this._safebrowsing_enabled === 'boolean', - safesearch_enabled: !this._safesearch_enabled ? true : typeof this._safesearch_enabled === 'boolean', - use_global_blocked_services: !this._use_global_blocked_services ? true : typeof this._use_global_blocked_services === 'boolean', - blocked_services: !this._blocked_services ? true : this._blocked_services.reduce((result, p) => result && typeof p === 'string', true), - upstreams: !this._upstreams ? true : this._upstreams.reduce((result, p) => result && typeof p === 'string', true), - whois_info: !this._whois_info ? true : this._whois_info.validate().length === 0, - disallowed: !this._disallowed ? true : typeof this._disallowed === 'boolean', - disallowed_rule: !this._disallowed_rule ? true : typeof this._disallowed_rule === 'string' && !this._disallowed_rule ? true : this._disallowed_rule, - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): ClientFindSubEntry { - return new ClientFindSubEntry({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/ClientUpdate.ts b/client2/src/lib/entities/ClientUpdate.ts deleted file mode 100644 index 2a817b3a8ef..00000000000 --- a/client2/src/lib/entities/ClientUpdate.ts +++ /dev/null @@ -1,61 +0,0 @@ -import Client, { IClient } from './Client'; - -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IClientUpdate { - data?: IClient; - name?: string; -} - -export default class ClientUpdate { - readonly _data: Client | undefined; - - get data(): Client | undefined { - return this._data; - } - - readonly _name: string | undefined; - - get name(): string | undefined { - return this._name; - } - - constructor(props: IClientUpdate) { - if (props.data) { - this._data = new Client(props.data); - } - if (typeof props.name === 'string') { - this._name = props.name.trim(); - } - } - - serialize(): IClientUpdate { - const data: IClientUpdate = { - }; - if (typeof this._data !== 'undefined') { - data.data = this._data.serialize(); - } - if (typeof this._name !== 'undefined') { - data.name = this._name; - } - return data; - } - - validate(): string[] { - const validate = { - name: !this._name ? true : typeof this._name === 'string' && !this._name ? true : this._name, - data: !this._data ? true : this._data.validate().length === 0, - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): ClientUpdate { - return new ClientUpdate({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/Clients.ts b/client2/src/lib/entities/Clients.ts deleted file mode 100644 index 8ba5a8e8594..00000000000 --- a/client2/src/lib/entities/Clients.ts +++ /dev/null @@ -1,62 +0,0 @@ -import Client, { IClient } from './Client'; -import ClientAuto, { IClientAuto } from './ClientAuto'; - -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IClients { - auto_clients?: IClientAuto[]; - clients?: IClient[]; -} - -export default class Clients { - readonly _auto_clients: ClientAuto[] | undefined; - - get autoClients(): ClientAuto[] | undefined { - return this._auto_clients; - } - - readonly _clients: Client[] | undefined; - - get clients(): Client[] | undefined { - return this._clients; - } - - constructor(props: IClients) { - if (props.auto_clients) { - this._auto_clients = props.auto_clients.map((p) => new ClientAuto(p)); - } - if (props.clients) { - this._clients = props.clients.map((p) => new Client(p)); - } - } - - serialize(): IClients { - const data: IClients = { - }; - if (typeof this._auto_clients !== 'undefined') { - data.auto_clients = this._auto_clients.map((p) => p.serialize()); - } - if (typeof this._clients !== 'undefined') { - data.clients = this._clients.map((p) => p.serialize()); - } - return data; - } - - validate(): string[] { - const validate = { - clients: !this._clients ? true : this._clients.reduce((result, p) => result && p.validate().length === 0, true), - auto_clients: !this._auto_clients ? true : this._auto_clients.reduce((result, p) => result && p.validate().length === 0, true), - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): Clients { - return new Clients({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/ClientsArray.ts b/client2/src/lib/entities/ClientsArray.ts deleted file mode 100644 index 774e162b976..00000000000 --- a/client2/src/lib/entities/ClientsArray.ts +++ /dev/null @@ -1,31 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IClientsArray { -} - -export default class ClientsArray { - constructor(props: IClientsArray) { - } - - serialize(): IClientsArray { - const data: IClientsArray = { - }; - return data; - } - - validate(): string[] { - const validate = { - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): ClientsArray { - return new ClientsArray({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/ClientsAutoArray.ts b/client2/src/lib/entities/ClientsAutoArray.ts deleted file mode 100644 index 855c9e8a2a9..00000000000 --- a/client2/src/lib/entities/ClientsAutoArray.ts +++ /dev/null @@ -1,31 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IClientsAutoArray { -} - -export default class ClientsAutoArray { - constructor(props: IClientsAutoArray) { - } - - serialize(): IClientsAutoArray { - const data: IClientsAutoArray = { - }; - return data; - } - - validate(): string[] { - const validate = { - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): ClientsAutoArray { - return new ClientsAutoArray({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/ClientsFindEntry.ts b/client2/src/lib/entities/ClientsFindEntry.ts deleted file mode 100644 index 8b220a781ce..00000000000 --- a/client2/src/lib/entities/ClientsFindEntry.ts +++ /dev/null @@ -1,33 +0,0 @@ -import ClientFindSubEntry, { IClientFindSubEntry } from './ClientFindSubEntry'; - -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IClientsFindEntry { - [key: string]: IClientFindSubEntry; -} - -export default class ClientsFindEntry { - readonly data: Record; - - constructor(props: IClientsFindEntry) { - this.data = Object.entries(props).reduce>((prev, [key, value]) => { - prev[key] = new ClientFindSubEntry(value!); - return prev; - }, {}) - } - - serialize(): IClientsFindEntry { - return Object.entries(this.data).reduce>((prev, [key, value]) => { - prev[key] = value.serialize(); - return prev; - }, {}) - } - - validate(): string[] { - return [] - } - - update(props: IClientsFindEntry): ClientsFindEntry { - return new ClientsFindEntry({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/ClientsFindResponse.ts b/client2/src/lib/entities/ClientsFindResponse.ts deleted file mode 100644 index 63685be6fac..00000000000 --- a/client2/src/lib/entities/ClientsFindResponse.ts +++ /dev/null @@ -1,31 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IClientsFindResponse { -} - -export default class ClientsFindResponse { - constructor(props: IClientsFindResponse) { - } - - serialize(): IClientsFindResponse { - const data: IClientsFindResponse = { - }; - return data; - } - - validate(): string[] { - const validate = { - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): ClientsFindResponse { - return new ClientsFindResponse({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/DNSConfig.ts b/client2/src/lib/entities/DNSConfig.ts deleted file mode 100644 index d56883e5701..00000000000 --- a/client2/src/lib/entities/DNSConfig.ts +++ /dev/null @@ -1,250 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IDNSConfig { - blocking_ipv4?: string; - blocking_ipv6?: string; - blocking_mode?: string; - bootstrap_dns?: string[]; - cache_size?: number; - cache_ttl_max?: number; - cache_ttl_min?: number; - dhcp_available?: boolean; - dnssec_enabled?: boolean; - edns_cs_enabled?: boolean; - protection_enabled?: boolean; - ratelimit?: number; - upstream_dns?: string[]; - upstream_dns_file?: string; - upstream_mode?: any; -} - -export default class DNSConfig { - readonly _blocking_ipv4: string | undefined; - - get blockingIpv4(): string | undefined { - return this._blocking_ipv4; - } - - readonly _blocking_ipv6: string | undefined; - - get blockingIpv6(): string | undefined { - return this._blocking_ipv6; - } - - readonly _blocking_mode: string | undefined; - - get blockingMode(): string | undefined { - return this._blocking_mode; - } - - readonly _bootstrap_dns: string[] | undefined; - - /** - * Description: Bootstrap servers, port is optional after colon. Empty value will reset it to default values. - * - * Example: 8.8.8.8:53,1.1.1.1:53 - */ - get bootstrapDns(): string[] | undefined { - return this._bootstrap_dns; - } - - readonly _cache_size: number | undefined; - - get cacheSize(): number | undefined { - return this._cache_size; - } - - readonly _cache_ttl_max: number | undefined; - - get cacheTtlMax(): number | undefined { - return this._cache_ttl_max; - } - - readonly _cache_ttl_min: number | undefined; - - get cacheTtlMin(): number | undefined { - return this._cache_ttl_min; - } - - readonly _dhcp_available: boolean | undefined; - - get dhcpAvailable(): boolean | undefined { - return this._dhcp_available; - } - - readonly _dnssec_enabled: boolean | undefined; - - get dnssecEnabled(): boolean | undefined { - return this._dnssec_enabled; - } - - readonly _edns_cs_enabled: boolean | undefined; - - get ednsCsEnabled(): boolean | undefined { - return this._edns_cs_enabled; - } - - readonly _protection_enabled: boolean | undefined; - - get protectionEnabled(): boolean | undefined { - return this._protection_enabled; - } - - readonly _ratelimit: number | undefined; - - get ratelimit(): number | undefined { - return this._ratelimit; - } - - readonly _upstream_dns: string[] | undefined; - - /** - * Description: Upstream servers, port is optional after colon. Empty value will reset it to default values. - * - * Example: tls://1.1.1.1,tls://1.0.0.1 - */ - get upstreamDns(): string[] | undefined { - return this._upstream_dns; - } - - readonly _upstream_dns_file: string | undefined; - - get upstreamDnsFile(): string | undefined { - return this._upstream_dns_file; - } - - readonly _upstream_mode: any | undefined; - - get upstreamMode(): any | undefined { - return this._upstream_mode; - } - - constructor(props: IDNSConfig) { - if (typeof props.blocking_ipv4 === 'string') { - this._blocking_ipv4 = props.blocking_ipv4.trim(); - } - if (typeof props.blocking_ipv6 === 'string') { - this._blocking_ipv6 = props.blocking_ipv6.trim(); - } - if (typeof props.blocking_mode === 'string') { - this._blocking_mode = props.blocking_mode.trim(); - } - if (props.bootstrap_dns) { - this._bootstrap_dns = props.bootstrap_dns; - } - if (typeof props.cache_size === 'number') { - this._cache_size = props.cache_size; - } - if (typeof props.cache_ttl_max === 'number') { - this._cache_ttl_max = props.cache_ttl_max; - } - if (typeof props.cache_ttl_min === 'number') { - this._cache_ttl_min = props.cache_ttl_min; - } - if (typeof props.dhcp_available === 'boolean') { - this._dhcp_available = props.dhcp_available; - } - if (typeof props.dnssec_enabled === 'boolean') { - this._dnssec_enabled = props.dnssec_enabled; - } - if (typeof props.edns_cs_enabled === 'boolean') { - this._edns_cs_enabled = props.edns_cs_enabled; - } - if (typeof props.protection_enabled === 'boolean') { - this._protection_enabled = props.protection_enabled; - } - if (typeof props.ratelimit === 'number') { - this._ratelimit = props.ratelimit; - } - if (props.upstream_dns) { - this._upstream_dns = props.upstream_dns; - } - if (typeof props.upstream_dns_file === 'string') { - this._upstream_dns_file = props.upstream_dns_file.trim(); - } - if (props.upstream_mode) { - this._upstream_mode = props.upstream_mode; - } - } - - serialize(): IDNSConfig { - const data: IDNSConfig = { - }; - if (typeof this._blocking_ipv4 !== 'undefined') { - data.blocking_ipv4 = this._blocking_ipv4; - } - if (typeof this._blocking_ipv6 !== 'undefined') { - data.blocking_ipv6 = this._blocking_ipv6; - } - if (typeof this._blocking_mode !== 'undefined') { - data.blocking_mode = this._blocking_mode; - } - if (typeof this._bootstrap_dns !== 'undefined') { - data.bootstrap_dns = this._bootstrap_dns; - } - if (typeof this._cache_size !== 'undefined') { - data.cache_size = this._cache_size; - } - if (typeof this._cache_ttl_max !== 'undefined') { - data.cache_ttl_max = this._cache_ttl_max; - } - if (typeof this._cache_ttl_min !== 'undefined') { - data.cache_ttl_min = this._cache_ttl_min; - } - if (typeof this._dhcp_available !== 'undefined') { - data.dhcp_available = this._dhcp_available; - } - if (typeof this._dnssec_enabled !== 'undefined') { - data.dnssec_enabled = this._dnssec_enabled; - } - if (typeof this._edns_cs_enabled !== 'undefined') { - data.edns_cs_enabled = this._edns_cs_enabled; - } - if (typeof this._protection_enabled !== 'undefined') { - data.protection_enabled = this._protection_enabled; - } - if (typeof this._ratelimit !== 'undefined') { - data.ratelimit = this._ratelimit; - } - if (typeof this._upstream_dns !== 'undefined') { - data.upstream_dns = this._upstream_dns; - } - if (typeof this._upstream_dns_file !== 'undefined') { - data.upstream_dns_file = this._upstream_dns_file; - } - if (typeof this._upstream_mode !== 'undefined') { - data.upstream_mode = this._upstream_mode; - } - return data; - } - - validate(): string[] { - const validate = { - bootstrap_dns: !this._bootstrap_dns ? true : this._bootstrap_dns.reduce((result, p) => result && typeof p === 'string', true), - upstream_dns: !this._upstream_dns ? true : this._upstream_dns.reduce((result, p) => result && typeof p === 'string', true), - upstream_dns_file: !this._upstream_dns_file ? true : typeof this._upstream_dns_file === 'string' && !this._upstream_dns_file ? true : this._upstream_dns_file, - protection_enabled: !this._protection_enabled ? true : typeof this._protection_enabled === 'boolean', - dhcp_available: !this._dhcp_available ? true : typeof this._dhcp_available === 'boolean', - ratelimit: !this._ratelimit ? true : typeof this._ratelimit === 'number', - blocking_mode: !this._blocking_mode ? true : typeof this._blocking_mode === 'string' && !this._blocking_mode ? true : this._blocking_mode, - blocking_ipv4: !this._blocking_ipv4 ? true : typeof this._blocking_ipv4 === 'string' && !this._blocking_ipv4 ? true : this._blocking_ipv4, - blocking_ipv6: !this._blocking_ipv6 ? true : typeof this._blocking_ipv6 === 'string' && !this._blocking_ipv6 ? true : this._blocking_ipv6, - edns_cs_enabled: !this._edns_cs_enabled ? true : typeof this._edns_cs_enabled === 'boolean', - dnssec_enabled: !this._dnssec_enabled ? true : typeof this._dnssec_enabled === 'boolean', - cache_size: !this._cache_size ? true : typeof this._cache_size === 'number', - cache_ttl_min: !this._cache_ttl_min ? true : typeof this._cache_ttl_min === 'number', - cache_ttl_max: !this._cache_ttl_max ? true : typeof this._cache_ttl_max === 'number', - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): DNSConfig { - return new DNSConfig({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/DhcpConfig.ts b/client2/src/lib/entities/DhcpConfig.ts deleted file mode 100644 index 61874da0cb6..00000000000 --- a/client2/src/lib/entities/DhcpConfig.ts +++ /dev/null @@ -1,90 +0,0 @@ -import DhcpConfigV4, { IDhcpConfigV4 } from './DhcpConfigV4'; -import DhcpConfigV6, { IDhcpConfigV6 } from './DhcpConfigV6'; - -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IDhcpConfig { - enabled?: boolean; - interface_name?: string; - v4?: IDhcpConfigV4; - v6?: IDhcpConfigV6; -} - -export default class DhcpConfig { - readonly _enabled: boolean | undefined; - - get enabled(): boolean | undefined { - return this._enabled; - } - - readonly _interface_name: string | undefined; - - get interfaceName(): string | undefined { - return this._interface_name; - } - - readonly _v4: DhcpConfigV4 | undefined; - - get v4(): DhcpConfigV4 | undefined { - return this._v4; - } - - readonly _v6: DhcpConfigV6 | undefined; - - get v6(): DhcpConfigV6 | undefined { - return this._v6; - } - - constructor(props: IDhcpConfig) { - if (typeof props.enabled === 'boolean') { - this._enabled = props.enabled; - } - if (typeof props.interface_name === 'string') { - this._interface_name = props.interface_name.trim(); - } - if (props.v4) { - this._v4 = new DhcpConfigV4(props.v4); - } - if (props.v6) { - this._v6 = new DhcpConfigV6(props.v6); - } - } - - serialize(): IDhcpConfig { - const data: IDhcpConfig = { - }; - if (typeof this._enabled !== 'undefined') { - data.enabled = this._enabled; - } - if (typeof this._interface_name !== 'undefined') { - data.interface_name = this._interface_name; - } - if (typeof this._v4 !== 'undefined') { - data.v4 = this._v4.serialize(); - } - if (typeof this._v6 !== 'undefined') { - data.v6 = this._v6.serialize(); - } - return data; - } - - validate(): string[] { - const validate = { - enabled: !this._enabled ? true : typeof this._enabled === 'boolean', - interface_name: !this._interface_name ? true : typeof this._interface_name === 'string' && !this._interface_name ? true : this._interface_name, - v4: !this._v4 ? true : this._v4.validate().length === 0, - v6: !this._v6 ? true : this._v6.validate().length === 0, - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): DhcpConfig { - return new DhcpConfig({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/DhcpConfigV4.ts b/client2/src/lib/entities/DhcpConfigV4.ts deleted file mode 100644 index ae4ebdc2aff..00000000000 --- a/client2/src/lib/entities/DhcpConfigV4.ts +++ /dev/null @@ -1,117 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IDhcpConfigV4 { - gateway_ip?: string; - lease_duration?: number; - range_end?: string; - range_start?: string; - subnet_mask?: string; -} - -export default class DhcpConfigV4 { - readonly _gateway_ip: string | undefined; - - /** - * Description: undefined - * Example: 192.168.1.1 - */ - get gatewayIp(): string | undefined { - return this._gateway_ip; - } - - readonly _lease_duration: number | undefined; - - get leaseDuration(): number | undefined { - return this._lease_duration; - } - - readonly _range_end: string | undefined; - - /** - * Description: undefined - * Example: 192.168.10.50 - */ - get rangeEnd(): string | undefined { - return this._range_end; - } - - readonly _range_start: string | undefined; - - /** - * Description: undefined - * Example: 192.168.1.2 - */ - get rangeStart(): string | undefined { - return this._range_start; - } - - readonly _subnet_mask: string | undefined; - - /** - * Description: undefined - * Example: 255.255.255.0 - */ - get subnetMask(): string | undefined { - return this._subnet_mask; - } - - constructor(props: IDhcpConfigV4) { - if (typeof props.gateway_ip === 'string') { - this._gateway_ip = props.gateway_ip.trim(); - } - if (typeof props.lease_duration === 'number') { - this._lease_duration = props.lease_duration; - } - if (typeof props.range_end === 'string') { - this._range_end = props.range_end.trim(); - } - if (typeof props.range_start === 'string') { - this._range_start = props.range_start.trim(); - } - if (typeof props.subnet_mask === 'string') { - this._subnet_mask = props.subnet_mask.trim(); - } - } - - serialize(): IDhcpConfigV4 { - const data: IDhcpConfigV4 = { - }; - if (typeof this._gateway_ip !== 'undefined') { - data.gateway_ip = this._gateway_ip; - } - if (typeof this._lease_duration !== 'undefined') { - data.lease_duration = this._lease_duration; - } - if (typeof this._range_end !== 'undefined') { - data.range_end = this._range_end; - } - if (typeof this._range_start !== 'undefined') { - data.range_start = this._range_start; - } - if (typeof this._subnet_mask !== 'undefined') { - data.subnet_mask = this._subnet_mask; - } - return data; - } - - validate(): string[] { - const validate = { - gateway_ip: !this._gateway_ip ? true : typeof this._gateway_ip === 'string' && !this._gateway_ip ? true : this._gateway_ip, - subnet_mask: !this._subnet_mask ? true : typeof this._subnet_mask === 'string' && !this._subnet_mask ? true : this._subnet_mask, - range_start: !this._range_start ? true : typeof this._range_start === 'string' && !this._range_start ? true : this._range_start, - range_end: !this._range_end ? true : typeof this._range_end === 'string' && !this._range_end ? true : this._range_end, - lease_duration: !this._lease_duration ? true : typeof this._lease_duration === 'number', - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): DhcpConfigV4 { - return new DhcpConfigV4({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/DhcpConfigV6.ts b/client2/src/lib/entities/DhcpConfigV6.ts deleted file mode 100644 index cf7d6763999..00000000000 --- a/client2/src/lib/entities/DhcpConfigV6.ts +++ /dev/null @@ -1,59 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IDhcpConfigV6 { - lease_duration?: number; - range_start?: string; -} - -export default class DhcpConfigV6 { - readonly _lease_duration: number | undefined; - - get leaseDuration(): number | undefined { - return this._lease_duration; - } - - readonly _range_start: string | undefined; - - get rangeStart(): string | undefined { - return this._range_start; - } - - constructor(props: IDhcpConfigV6) { - if (typeof props.lease_duration === 'number') { - this._lease_duration = props.lease_duration; - } - if (typeof props.range_start === 'string') { - this._range_start = props.range_start.trim(); - } - } - - serialize(): IDhcpConfigV6 { - const data: IDhcpConfigV6 = { - }; - if (typeof this._lease_duration !== 'undefined') { - data.lease_duration = this._lease_duration; - } - if (typeof this._range_start !== 'undefined') { - data.range_start = this._range_start; - } - return data; - } - - validate(): string[] { - const validate = { - range_start: !this._range_start ? true : typeof this._range_start === 'string' && !this._range_start ? true : this._range_start, - lease_duration: !this._lease_duration ? true : typeof this._lease_duration === 'number', - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): DhcpConfigV6 { - return new DhcpConfigV6({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/DhcpLease.ts b/client2/src/lib/entities/DhcpLease.ts deleted file mode 100644 index b285496b1d6..00000000000 --- a/client2/src/lib/entities/DhcpLease.ts +++ /dev/null @@ -1,103 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IDhcpLease { - expires: string; - hostname: string; - ip: string; - mac: string; -} - -export default class DhcpLease { - readonly _expires: string; - - /** - * Description: undefined - * Example: 2017-07-21T17:32:28Z - */ - get expires(): string { - return this._expires; - } - - static expiresValidate(expires: string): boolean { - return typeof expires === 'string' && !!expires.trim(); - } - - readonly _hostname: string; - - /** - * Description: undefined - * Example: dell - */ - get hostname(): string { - return this._hostname; - } - - static hostnameValidate(hostname: string): boolean { - return typeof hostname === 'string' && !!hostname.trim(); - } - - readonly _ip: string; - - /** - * Description: undefined - * Example: 192.168.1.22 - */ - get ip(): string { - return this._ip; - } - - static ipValidate(ip: string): boolean { - return typeof ip === 'string' && !!ip.trim(); - } - - readonly _mac: string; - - /** - * Description: undefined - * Example: 00:11:09:b3:b3:b8 - */ - get mac(): string { - return this._mac; - } - - static macValidate(mac: string): boolean { - return typeof mac === 'string' && !!mac.trim(); - } - - constructor(props: IDhcpLease) { - this._expires = props.expires.trim(); - this._hostname = props.hostname.trim(); - this._ip = props.ip.trim(); - this._mac = props.mac.trim(); - } - - serialize(): IDhcpLease { - const data: IDhcpLease = { - expires: this._expires, - hostname: this._hostname, - ip: this._ip, - mac: this._mac, - }; - return data; - } - - validate(): string[] { - const validate = { - mac: typeof this._mac === 'string' && !this._mac ? true : this._mac, - ip: typeof this._ip === 'string' && !this._ip ? true : this._ip, - hostname: typeof this._hostname === 'string' && !this._hostname ? true : this._hostname, - expires: typeof this._expires === 'string' && !this._expires ? true : this._expires, - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): DhcpLease { - return new DhcpLease({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/DhcpSearchResult.ts b/client2/src/lib/entities/DhcpSearchResult.ts deleted file mode 100644 index c168a244e4c..00000000000 --- a/client2/src/lib/entities/DhcpSearchResult.ts +++ /dev/null @@ -1,62 +0,0 @@ -import DhcpSearchV4, { IDhcpSearchV4 } from './DhcpSearchV4'; -import DhcpSearchV6, { IDhcpSearchV6 } from './DhcpSearchV6'; - -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IDhcpSearchResult { - v4?: IDhcpSearchV4; - v6?: IDhcpSearchV6; -} - -export default class DhcpSearchResult { - readonly _v4: DhcpSearchV4 | undefined; - - get v4(): DhcpSearchV4 | undefined { - return this._v4; - } - - readonly _v6: DhcpSearchV6 | undefined; - - get v6(): DhcpSearchV6 | undefined { - return this._v6; - } - - constructor(props: IDhcpSearchResult) { - if (props.v4) { - this._v4 = new DhcpSearchV4(props.v4); - } - if (props.v6) { - this._v6 = new DhcpSearchV6(props.v6); - } - } - - serialize(): IDhcpSearchResult { - const data: IDhcpSearchResult = { - }; - if (typeof this._v4 !== 'undefined') { - data.v4 = this._v4.serialize(); - } - if (typeof this._v6 !== 'undefined') { - data.v6 = this._v6.serialize(); - } - return data; - } - - validate(): string[] { - const validate = { - v4: !this._v4 ? true : this._v4.validate().length === 0, - v6: !this._v6 ? true : this._v6.validate().length === 0, - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): DhcpSearchResult { - return new DhcpSearchResult({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/DhcpSearchResultOtherServer.ts b/client2/src/lib/entities/DhcpSearchResultOtherServer.ts deleted file mode 100644 index be50bbdd94f..00000000000 --- a/client2/src/lib/entities/DhcpSearchResultOtherServer.ts +++ /dev/null @@ -1,65 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IDhcpSearchResultOtherServer { - error?: string; - found?: string; -} - -export default class DhcpSearchResultOtherServer { - readonly _error: string | undefined; - - /** */ - get error(): string | undefined { - return this._error; - } - - readonly _found: string | undefined; - - /** - * Description: The result of searching the other DHCP server. - * - * Example: no - */ - get found(): string | undefined { - return this._found; - } - - constructor(props: IDhcpSearchResultOtherServer) { - if (typeof props.error === 'string') { - this._error = props.error.trim(); - } - if (typeof props.found === 'string') { - this._found = props.found.trim(); - } - } - - serialize(): IDhcpSearchResultOtherServer { - const data: IDhcpSearchResultOtherServer = { - }; - if (typeof this._error !== 'undefined') { - data.error = this._error; - } - if (typeof this._found !== 'undefined') { - data.found = this._found; - } - return data; - } - - validate(): string[] { - const validate = { - found: !this._found ? true : typeof this._found === 'string' && !this._found ? true : this._found, - error: !this._error ? true : typeof this._error === 'string' && !this._error ? true : this._error, - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): DhcpSearchResultOtherServer { - return new DhcpSearchResultOtherServer({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/DhcpSearchResultStaticIP.ts b/client2/src/lib/entities/DhcpSearchResultStaticIP.ts deleted file mode 100644 index f3fc2155c12..00000000000 --- a/client2/src/lib/entities/DhcpSearchResultStaticIP.ts +++ /dev/null @@ -1,65 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IDhcpSearchResultStaticIP { - ip?: string; - static?: string; -} - -export default class DhcpSearchResultStaticIP { - readonly _ip: string | undefined; - - /** */ - get ip(): string | undefined { - return this._ip; - } - - readonly _static: string | undefined; - - /** - * Description: The result of determining static IP address. - * - * Example: yes - */ - get static(): string | undefined { - return this._static; - } - - constructor(props: IDhcpSearchResultStaticIP) { - if (typeof props.ip === 'string') { - this._ip = props.ip.trim(); - } - if (typeof props.static === 'string') { - this._static = props.static.trim(); - } - } - - serialize(): IDhcpSearchResultStaticIP { - const data: IDhcpSearchResultStaticIP = { - }; - if (typeof this._ip !== 'undefined') { - data.ip = this._ip; - } - if (typeof this._static !== 'undefined') { - data.static = this._static; - } - return data; - } - - validate(): string[] { - const validate = { - static: !this._static ? true : typeof this._static === 'string' && !this._static ? true : this._static, - ip: !this._ip ? true : typeof this._ip === 'string' && !this._ip ? true : this._ip, - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): DhcpSearchResultStaticIP { - return new DhcpSearchResultStaticIP({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/DhcpSearchV4.ts b/client2/src/lib/entities/DhcpSearchV4.ts deleted file mode 100644 index 01af44193b4..00000000000 --- a/client2/src/lib/entities/DhcpSearchV4.ts +++ /dev/null @@ -1,62 +0,0 @@ -import DhcpSearchResultOtherServer, { IDhcpSearchResultOtherServer } from './DhcpSearchResultOtherServer'; -import DhcpSearchResultStaticIP, { IDhcpSearchResultStaticIP } from './DhcpSearchResultStaticIP'; - -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IDhcpSearchV4 { - other_server?: IDhcpSearchResultOtherServer; - static_ip?: IDhcpSearchResultStaticIP; -} - -export default class DhcpSearchV4 { - readonly _other_server: DhcpSearchResultOtherServer | undefined; - - get otherServer(): DhcpSearchResultOtherServer | undefined { - return this._other_server; - } - - readonly _static_ip: DhcpSearchResultStaticIP | undefined; - - get staticIp(): DhcpSearchResultStaticIP | undefined { - return this._static_ip; - } - - constructor(props: IDhcpSearchV4) { - if (props.other_server) { - this._other_server = new DhcpSearchResultOtherServer(props.other_server); - } - if (props.static_ip) { - this._static_ip = new DhcpSearchResultStaticIP(props.static_ip); - } - } - - serialize(): IDhcpSearchV4 { - const data: IDhcpSearchV4 = { - }; - if (typeof this._other_server !== 'undefined') { - data.other_server = this._other_server.serialize(); - } - if (typeof this._static_ip !== 'undefined') { - data.static_ip = this._static_ip.serialize(); - } - return data; - } - - validate(): string[] { - const validate = { - other_server: !this._other_server ? true : this._other_server.validate().length === 0, - static_ip: !this._static_ip ? true : this._static_ip.validate().length === 0, - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): DhcpSearchV4 { - return new DhcpSearchV4({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/DhcpSearchV6.ts b/client2/src/lib/entities/DhcpSearchV6.ts deleted file mode 100644 index e02134a58d8..00000000000 --- a/client2/src/lib/entities/DhcpSearchV6.ts +++ /dev/null @@ -1,47 +0,0 @@ -import DhcpSearchResultOtherServer, { IDhcpSearchResultOtherServer } from './DhcpSearchResultOtherServer'; - -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IDhcpSearchV6 { - other_server?: IDhcpSearchResultOtherServer; -} - -export default class DhcpSearchV6 { - readonly _other_server: DhcpSearchResultOtherServer | undefined; - - get otherServer(): DhcpSearchResultOtherServer | undefined { - return this._other_server; - } - - constructor(props: IDhcpSearchV6) { - if (props.other_server) { - this._other_server = new DhcpSearchResultOtherServer(props.other_server); - } - } - - serialize(): IDhcpSearchV6 { - const data: IDhcpSearchV6 = { - }; - if (typeof this._other_server !== 'undefined') { - data.other_server = this._other_server.serialize(); - } - return data; - } - - validate(): string[] { - const validate = { - other_server: !this._other_server ? true : this._other_server.validate().length === 0, - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): DhcpSearchV6 { - return new DhcpSearchV6({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/DhcpStaticLease.ts b/client2/src/lib/entities/DhcpStaticLease.ts deleted file mode 100644 index a365f3b6d5a..00000000000 --- a/client2/src/lib/entities/DhcpStaticLease.ts +++ /dev/null @@ -1,85 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IDhcpStaticLease { - hostname: string; - ip: string; - mac: string; -} - -export default class DhcpStaticLease { - readonly _hostname: string; - - /** - * Description: undefined - * Example: dell - */ - get hostname(): string { - return this._hostname; - } - - static hostnameValidate(hostname: string): boolean { - return typeof hostname === 'string' && !!hostname.trim(); - } - - readonly _ip: string; - - /** - * Description: undefined - * Example: 192.168.1.22 - */ - get ip(): string { - return this._ip; - } - - static ipValidate(ip: string): boolean { - return typeof ip === 'string' && !!ip.trim(); - } - - readonly _mac: string; - - /** - * Description: undefined - * Example: 00:11:09:b3:b3:b8 - */ - get mac(): string { - return this._mac; - } - - static macValidate(mac: string): boolean { - return typeof mac === 'string' && !!mac.trim(); - } - - constructor(props: IDhcpStaticLease) { - this._hostname = props.hostname.trim(); - this._ip = props.ip.trim(); - this._mac = props.mac.trim(); - } - - serialize(): IDhcpStaticLease { - const data: IDhcpStaticLease = { - hostname: this._hostname, - ip: this._ip, - mac: this._mac, - }; - return data; - } - - validate(): string[] { - const validate = { - mac: typeof this._mac === 'string' && !this._mac ? true : this._mac, - ip: typeof this._ip === 'string' && !this._ip ? true : this._ip, - hostname: typeof this._hostname === 'string' && !this._hostname ? true : this._hostname, - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): DhcpStaticLease { - return new DhcpStaticLease({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/DhcpStatus.ts b/client2/src/lib/entities/DhcpStatus.ts deleted file mode 100644 index 604daf95ba9..00000000000 --- a/client2/src/lib/entities/DhcpStatus.ts +++ /dev/null @@ -1,116 +0,0 @@ -import DhcpConfigV4, { IDhcpConfigV4 } from './DhcpConfigV4'; -import DhcpConfigV6, { IDhcpConfigV6 } from './DhcpConfigV6'; -import DhcpLease, { IDhcpLease } from './DhcpLease'; -import DhcpStaticLease, { IDhcpStaticLease } from './DhcpStaticLease'; - -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IDhcpStatus { - enabled?: boolean; - interface_name?: string; - leases: IDhcpLease[]; - static_leases?: IDhcpStaticLease[]; - v4?: IDhcpConfigV4; - v6?: IDhcpConfigV6; -} - -export default class DhcpStatus { - readonly _enabled: boolean | undefined; - - get enabled(): boolean | undefined { - return this._enabled; - } - - readonly _interface_name: string | undefined; - - get interfaceName(): string | undefined { - return this._interface_name; - } - - readonly _leases: DhcpLease[]; - - get leases(): DhcpLease[] { - return this._leases; - } - - readonly _static_leases: DhcpStaticLease[] | undefined; - - get staticLeases(): DhcpStaticLease[] | undefined { - return this._static_leases; - } - - readonly _v4: DhcpConfigV4 | undefined; - - get v4(): DhcpConfigV4 | undefined { - return this._v4; - } - - readonly _v6: DhcpConfigV6 | undefined; - - get v6(): DhcpConfigV6 | undefined { - return this._v6; - } - - constructor(props: IDhcpStatus) { - if (typeof props.enabled === 'boolean') { - this._enabled = props.enabled; - } - if (typeof props.interface_name === 'string') { - this._interface_name = props.interface_name.trim(); - } - this._leases = props.leases.map((p) => new DhcpLease(p)); - if (props.static_leases) { - this._static_leases = props.static_leases.map((p) => new DhcpStaticLease(p)); - } - if (props.v4) { - this._v4 = new DhcpConfigV4(props.v4); - } - if (props.v6) { - this._v6 = new DhcpConfigV6(props.v6); - } - } - - serialize(): IDhcpStatus { - const data: IDhcpStatus = { - leases: this._leases.map((p) => p.serialize()), - }; - if (typeof this._enabled !== 'undefined') { - data.enabled = this._enabled; - } - if (typeof this._interface_name !== 'undefined') { - data.interface_name = this._interface_name; - } - if (typeof this._static_leases !== 'undefined') { - data.static_leases = this._static_leases.map((p) => p.serialize()); - } - if (typeof this._v4 !== 'undefined') { - data.v4 = this._v4.serialize(); - } - if (typeof this._v6 !== 'undefined') { - data.v6 = this._v6.serialize(); - } - return data; - } - - validate(): string[] { - const validate = { - enabled: !this._enabled ? true : typeof this._enabled === 'boolean', - interface_name: !this._interface_name ? true : typeof this._interface_name === 'string' && !this._interface_name ? true : this._interface_name, - v4: !this._v4 ? true : this._v4.validate().length === 0, - v6: !this._v6 ? true : this._v6.validate().length === 0, - leases: this._leases.reduce((result, p) => result && p.validate().length === 0, true), - static_leases: !this._static_leases ? true : this._static_leases.reduce((result, p) => result && p.validate().length === 0, true), - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): DhcpStatus { - return new DhcpStatus({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/DnsAnswer.ts b/client2/src/lib/entities/DnsAnswer.ts deleted file mode 100644 index d3351be36c8..00000000000 --- a/client2/src/lib/entities/DnsAnswer.ts +++ /dev/null @@ -1,85 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IDnsAnswer { - ttl?: number; - type?: string; - value?: string; -} - -export default class DnsAnswer { - readonly _ttl: number | undefined; - - /** - * Description: undefined - * Example: 55 - */ - get ttl(): number | undefined { - return this._ttl; - } - - readonly _type: string | undefined; - - /** - * Description: undefined - * Example: A - */ - get type(): string | undefined { - return this._type; - } - - readonly _value: string | undefined; - - /** - * Description: undefined - * Example: 217.69.139.201 - */ - get value(): string | undefined { - return this._value; - } - - constructor(props: IDnsAnswer) { - if (typeof props.ttl === 'number') { - this._ttl = props.ttl; - } - if (typeof props.type === 'string') { - this._type = props.type.trim(); - } - if (typeof props.value === 'string') { - this._value = props.value.trim(); - } - } - - serialize(): IDnsAnswer { - const data: IDnsAnswer = { - }; - if (typeof this._ttl !== 'undefined') { - data.ttl = this._ttl; - } - if (typeof this._type !== 'undefined') { - data.type = this._type; - } - if (typeof this._value !== 'undefined') { - data.value = this._value; - } - return data; - } - - validate(): string[] { - const validate = { - ttl: !this._ttl ? true : typeof this._ttl === 'number', - type: !this._type ? true : typeof this._type === 'string' && !this._type ? true : this._type, - value: !this._value ? true : typeof this._value === 'string' && !this._value ? true : this._value, - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): DnsAnswer { - return new DnsAnswer({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/DnsQuestion.ts b/client2/src/lib/entities/DnsQuestion.ts deleted file mode 100644 index 42849b17b6d..00000000000 --- a/client2/src/lib/entities/DnsQuestion.ts +++ /dev/null @@ -1,85 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IDnsQuestion { - class?: string; - host?: string; - type?: string; -} - -export default class DnsQuestion { - readonly _class: string | undefined; - - /** - * Description: undefined - * Example: IN - */ - get class(): string | undefined { - return this._class; - } - - readonly _host: string | undefined; - - /** - * Description: undefined - * Example: example.org - */ - get host(): string | undefined { - return this._host; - } - - readonly _type: string | undefined; - - /** - * Description: undefined - * Example: A - */ - get type(): string | undefined { - return this._type; - } - - constructor(props: IDnsQuestion) { - if (typeof props.class === 'string') { - this._class = props.class.trim(); - } - if (typeof props.host === 'string') { - this._host = props.host.trim(); - } - if (typeof props.type === 'string') { - this._type = props.type.trim(); - } - } - - serialize(): IDnsQuestion { - const data: IDnsQuestion = { - }; - if (typeof this._class !== 'undefined') { - data.class = this._class; - } - if (typeof this._host !== 'undefined') { - data.host = this._host; - } - if (typeof this._type !== 'undefined') { - data.type = this._type; - } - return data; - } - - validate(): string[] { - const validate = { - class: !this._class ? true : typeof this._class === 'string' && !this._class ? true : this._class, - host: !this._host ? true : typeof this._host === 'string' && !this._host ? true : this._host, - type: !this._type ? true : typeof this._type === 'string' && !this._type ? true : this._type, - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): DnsQuestion { - return new DnsQuestion({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/Error.ts b/client2/src/lib/entities/Error.ts deleted file mode 100644 index 79d16b5c516..00000000000 --- a/client2/src/lib/entities/Error.ts +++ /dev/null @@ -1,46 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IError { - message?: string; -} - -export default class Error { - readonly _message: string | undefined; - - /** */ - get message(): string | undefined { - return this._message; - } - - constructor(props: IError) { - if (typeof props.message === 'string') { - this._message = props.message.trim(); - } - } - - serialize(): IError { - const data: IError = { - }; - if (typeof this._message !== 'undefined') { - data.message = this._message; - } - return data; - } - - validate(): string[] { - const validate = { - message: !this._message ? true : typeof this._message === 'string' && !this._message ? true : this._message, - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): Error { - return new Error({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/Filter.ts b/client2/src/lib/entities/Filter.ts deleted file mode 100644 index c7f3ff878ce..00000000000 --- a/client2/src/lib/entities/Filter.ts +++ /dev/null @@ -1,136 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IFilter { - enabled: boolean; - id: number; - last_updated: string; - name: string; - rules_count: number; - url: string; -} - -export default class Filter { - readonly _enabled: boolean; - - get enabled(): boolean { - return this._enabled; - } - - static enabledValidate(enabled: boolean): boolean { - return typeof enabled === 'boolean'; - } - - readonly _id: number; - - /** - * Description: undefined - * Example: 1234 - */ - get id(): number { - return this._id; - } - - static idValidate(id: number): boolean { - return typeof id === 'number'; - } - - readonly _last_updated: string; - - /** - * Description: undefined - * Example: 2018-10-30T12:18:57+03:00 - */ - get lastUpdated(): string { - return this._last_updated; - } - - static lastUpdatedValidate(lastUpdated: string): boolean { - return typeof lastUpdated === 'string' && !!lastUpdated.trim(); - } - - readonly _name: string; - - /** - * Description: undefined - * Example: AdGuard Simplified Domain Names filter - */ - get name(): string { - return this._name; - } - - static nameValidate(name: string): boolean { - return typeof name === 'string' && !!name.trim(); - } - - readonly _rules_count: number; - - /** - * Description: undefined - * Example: 5912 - */ - get rulesCount(): number { - return this._rules_count; - } - - static rulesCountValidate(rulesCount: number): boolean { - return typeof rulesCount === 'number'; - } - - readonly _url: string; - - /** - * Description: undefined - * Example: https://adguardteam.github.io/AdGuardSDNSFilter/Filters/filter.txt - * - */ - get url(): string { - return this._url; - } - - static urlValidate(url: string): boolean { - return typeof url === 'string' && !!url.trim(); - } - - constructor(props: IFilter) { - this._enabled = props.enabled; - this._id = props.id; - this._last_updated = props.last_updated.trim(); - this._name = props.name.trim(); - this._rules_count = props.rules_count; - this._url = props.url.trim(); - } - - serialize(): IFilter { - const data: IFilter = { - enabled: this._enabled, - id: this._id, - last_updated: this._last_updated, - name: this._name, - rules_count: this._rules_count, - url: this._url, - }; - return data; - } - - validate(): string[] { - const validate = { - enabled: typeof this._enabled === 'boolean', - id: typeof this._id === 'number', - last_updated: typeof this._last_updated === 'string' && !this._last_updated ? true : this._last_updated, - name: typeof this._name === 'string' && !this._name ? true : this._name, - rules_count: typeof this._rules_count === 'number', - url: typeof this._url === 'string' && !this._url ? true : this._url, - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): Filter { - return new Filter({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/FilterCheckHostResponse.ts b/client2/src/lib/entities/FilterCheckHostResponse.ts deleted file mode 100644 index 2f0daa9a119..00000000000 --- a/client2/src/lib/entities/FilterCheckHostResponse.ts +++ /dev/null @@ -1,143 +0,0 @@ -import ResultRule, { IResultRule } from './ResultRule'; - -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IFilterCheckHostResponse { - cname?: string; - filter_id?: number; - ip_addrs?: string[]; - reason?: string; - rule?: string; - rules?: IResultRule[]; - service_name?: string; -} - -export default class FilterCheckHostResponse { - readonly _cname: string | undefined; - - /** */ - get cname(): string | undefined { - return this._cname; - } - - readonly _filter_id: number | undefined; - - /** */ - get filterId(): number | undefined { - return this._filter_id; - } - - readonly _ip_addrs: string[] | undefined; - - /** */ - get ipAddrs(): string[] | undefined { - return this._ip_addrs; - } - - readonly _reason: string | undefined; - - /** */ - get reason(): string | undefined { - return this._reason; - } - - readonly _rule: string | undefined; - - /** - * Description: Filtering rule applied to the request (if any). - * Deprecated: use `rules[*].text` instead. - * - * Example: ||example.org^ - */ - get rule(): string | undefined { - return this._rule; - } - - readonly _rules: ResultRule[] | undefined; - - /** */ - get rules(): ResultRule[] | undefined { - return this._rules; - } - - readonly _service_name: string | undefined; - - /** */ - get serviceName(): string | undefined { - return this._service_name; - } - - constructor(props: IFilterCheckHostResponse) { - if (typeof props.cname === 'string') { - this._cname = props.cname.trim(); - } - if (typeof props.filter_id === 'number') { - this._filter_id = props.filter_id; - } - if (props.ip_addrs) { - this._ip_addrs = props.ip_addrs; - } - if (typeof props.reason === 'string') { - this._reason = props.reason.trim(); - } - if (typeof props.rule === 'string') { - this._rule = props.rule.trim(); - } - if (props.rules) { - this._rules = props.rules.map((p) => new ResultRule(p)); - } - if (typeof props.service_name === 'string') { - this._service_name = props.service_name.trim(); - } - } - - serialize(): IFilterCheckHostResponse { - const data: IFilterCheckHostResponse = { - }; - if (typeof this._cname !== 'undefined') { - data.cname = this._cname; - } - if (typeof this._filter_id !== 'undefined') { - data.filter_id = this._filter_id; - } - if (typeof this._ip_addrs !== 'undefined') { - data.ip_addrs = this._ip_addrs; - } - if (typeof this._reason !== 'undefined') { - data.reason = this._reason; - } - if (typeof this._rule !== 'undefined') { - data.rule = this._rule; - } - if (typeof this._rules !== 'undefined') { - data.rules = this._rules.map((p) => p.serialize()); - } - if (typeof this._service_name !== 'undefined') { - data.service_name = this._service_name; - } - return data; - } - - validate(): string[] { - const validate = { - reason: !this._reason ? true : typeof this._reason === 'string' && !this._reason ? true : this._reason, - filter_id: !this._filter_id ? true : typeof this._filter_id === 'number', - rule: !this._rule ? true : typeof this._rule === 'string' && !this._rule ? true : this._rule, - rules: !this._rules ? true : this._rules.reduce((result, p) => result && p.validate().length === 0, true), - service_name: !this._service_name ? true : typeof this._service_name === 'string' && !this._service_name ? true : this._service_name, - cname: !this._cname ? true : typeof this._cname === 'string' && !this._cname ? true : this._cname, - ip_addrs: !this._ip_addrs ? true : this._ip_addrs.reduce((result, p) => result && typeof p === 'string', true), - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): FilterCheckHostResponse { - return new FilterCheckHostResponse({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/FilterConfig.ts b/client2/src/lib/entities/FilterConfig.ts deleted file mode 100644 index b1691de117c..00000000000 --- a/client2/src/lib/entities/FilterConfig.ts +++ /dev/null @@ -1,59 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IFilterConfig { - enabled?: boolean; - interval?: number; -} - -export default class FilterConfig { - readonly _enabled: boolean | undefined; - - get enabled(): boolean | undefined { - return this._enabled; - } - - readonly _interval: number | undefined; - - get interval(): number | undefined { - return this._interval; - } - - constructor(props: IFilterConfig) { - if (typeof props.enabled === 'boolean') { - this._enabled = props.enabled; - } - if (typeof props.interval === 'number') { - this._interval = props.interval; - } - } - - serialize(): IFilterConfig { - const data: IFilterConfig = { - }; - if (typeof this._enabled !== 'undefined') { - data.enabled = this._enabled; - } - if (typeof this._interval !== 'undefined') { - data.interval = this._interval; - } - return data; - } - - validate(): string[] { - const validate = { - enabled: !this._enabled ? true : typeof this._enabled === 'boolean', - interval: !this._interval ? true : typeof this._interval === 'number', - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): FilterConfig { - return new FilterConfig({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/FilterRefreshRequest.ts b/client2/src/lib/entities/FilterRefreshRequest.ts deleted file mode 100644 index 3b274ddb6f5..00000000000 --- a/client2/src/lib/entities/FilterRefreshRequest.ts +++ /dev/null @@ -1,45 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IFilterRefreshRequest { - whitelist?: boolean; -} - -export default class FilterRefreshRequest { - readonly _whitelist: boolean | undefined; - - get whitelist(): boolean | undefined { - return this._whitelist; - } - - constructor(props: IFilterRefreshRequest) { - if (typeof props.whitelist === 'boolean') { - this._whitelist = props.whitelist; - } - } - - serialize(): IFilterRefreshRequest { - const data: IFilterRefreshRequest = { - }; - if (typeof this._whitelist !== 'undefined') { - data.whitelist = this._whitelist; - } - return data; - } - - validate(): string[] { - const validate = { - whitelist: !this._whitelist ? true : typeof this._whitelist === 'boolean', - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): FilterRefreshRequest { - return new FilterRefreshRequest({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/FilterRefreshResponse.ts b/client2/src/lib/entities/FilterRefreshResponse.ts deleted file mode 100644 index 96d45b09541..00000000000 --- a/client2/src/lib/entities/FilterRefreshResponse.ts +++ /dev/null @@ -1,45 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IFilterRefreshResponse { - updated?: number; -} - -export default class FilterRefreshResponse { - readonly _updated: number | undefined; - - get updated(): number | undefined { - return this._updated; - } - - constructor(props: IFilterRefreshResponse) { - if (typeof props.updated === 'number') { - this._updated = props.updated; - } - } - - serialize(): IFilterRefreshResponse { - const data: IFilterRefreshResponse = { - }; - if (typeof this._updated !== 'undefined') { - data.updated = this._updated; - } - return data; - } - - validate(): string[] { - const validate = { - updated: !this._updated ? true : typeof this._updated === 'number', - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): FilterRefreshResponse { - return new FilterRefreshResponse({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/FilterSetUrl.ts b/client2/src/lib/entities/FilterSetUrl.ts deleted file mode 100644 index 92eccfc7547..00000000000 --- a/client2/src/lib/entities/FilterSetUrl.ts +++ /dev/null @@ -1,72 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IFilterSetUrl { - data?: any; - url?: string; - whitelist?: boolean; -} - -export default class FilterSetUrl { - readonly _data: any | undefined; - - get data(): any | undefined { - return this._data; - } - - readonly _url: string | undefined; - - get url(): string | undefined { - return this._url; - } - - readonly _whitelist: boolean | undefined; - - get whitelist(): boolean | undefined { - return this._whitelist; - } - - constructor(props: IFilterSetUrl) { - if (props.data) { - this._data = props.data; - } - if (typeof props.url === 'string') { - this._url = props.url.trim(); - } - if (typeof props.whitelist === 'boolean') { - this._whitelist = props.whitelist; - } - } - - serialize(): IFilterSetUrl { - const data: IFilterSetUrl = { - }; - if (typeof this._data !== 'undefined') { - data.data = this._data; - } - if (typeof this._url !== 'undefined') { - data.url = this._url; - } - if (typeof this._whitelist !== 'undefined') { - data.whitelist = this._whitelist; - } - return data; - } - - validate(): string[] { - const validate = { - url: !this._url ? true : typeof this._url === 'string' && !this._url ? true : this._url, - whitelist: !this._whitelist ? true : typeof this._whitelist === 'boolean', - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): FilterSetUrl { - return new FilterSetUrl({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/FilterStatus.ts b/client2/src/lib/entities/FilterStatus.ts deleted file mode 100644 index be63d5126e7..00000000000 --- a/client2/src/lib/entities/FilterStatus.ts +++ /dev/null @@ -1,89 +0,0 @@ -import Filter, { IFilter } from './Filter'; - -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IFilterStatus { - enabled?: boolean; - filters?: IFilter[]; - interval?: number; - user_rules?: string[]; -} - -export default class FilterStatus { - readonly _enabled: boolean | undefined; - - get enabled(): boolean | undefined { - return this._enabled; - } - - readonly _filters: Filter[] | undefined; - - get filters(): Filter[] | undefined { - return this._filters; - } - - readonly _interval: number | undefined; - - get interval(): number | undefined { - return this._interval; - } - - readonly _user_rules: string[] | undefined; - - get userRules(): string[] | undefined { - return this._user_rules; - } - - constructor(props: IFilterStatus) { - if (typeof props.enabled === 'boolean') { - this._enabled = props.enabled; - } - if (props.filters) { - this._filters = props.filters.map((p) => new Filter(p)); - } - if (typeof props.interval === 'number') { - this._interval = props.interval; - } - if (props.user_rules) { - this._user_rules = props.user_rules; - } - } - - serialize(): IFilterStatus { - const data: IFilterStatus = { - }; - if (typeof this._enabled !== 'undefined') { - data.enabled = this._enabled; - } - if (typeof this._filters !== 'undefined') { - data.filters = this._filters.map((p) => p.serialize()); - } - if (typeof this._interval !== 'undefined') { - data.interval = this._interval; - } - if (typeof this._user_rules !== 'undefined') { - data.user_rules = this._user_rules; - } - return data; - } - - validate(): string[] { - const validate = { - enabled: !this._enabled ? true : typeof this._enabled === 'boolean', - interval: !this._interval ? true : typeof this._interval === 'number', - filters: !this._filters ? true : this._filters.reduce((result, p) => result && p.validate().length === 0, true), - user_rules: !this._user_rules ? true : this._user_rules.reduce((result, p) => result && typeof p === 'string', true), - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): FilterStatus { - return new FilterStatus({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/GetVersionRequest.ts b/client2/src/lib/entities/GetVersionRequest.ts deleted file mode 100644 index 8677bb11ef3..00000000000 --- a/client2/src/lib/entities/GetVersionRequest.ts +++ /dev/null @@ -1,46 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IGetVersionRequest { - recheck_now?: boolean; -} - -export default class GetVersionRequest { - readonly _recheck_now: boolean | undefined; - - /** */ - get recheckNow(): boolean | undefined { - return this._recheck_now; - } - - constructor(props: IGetVersionRequest) { - if (typeof props.recheck_now === 'boolean') { - this._recheck_now = props.recheck_now; - } - } - - serialize(): IGetVersionRequest { - const data: IGetVersionRequest = { - }; - if (typeof this._recheck_now !== 'undefined') { - data.recheck_now = this._recheck_now; - } - return data; - } - - validate(): string[] { - const validate = { - recheck_now: !this._recheck_now ? true : typeof this._recheck_now === 'boolean', - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): GetVersionRequest { - return new GetVersionRequest({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/InitialConfiguration.ts b/client2/src/lib/entities/InitialConfiguration.ts deleted file mode 100644 index 1bb32c3ce99..00000000000 --- a/client2/src/lib/entities/InitialConfiguration.ts +++ /dev/null @@ -1,89 +0,0 @@ -import AddressInfo, { IAddressInfo } from './AddressInfo'; - -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IInitialConfiguration { - dns: IAddressInfo; - password: string; - username: string; - web: IAddressInfo; -} - -export default class InitialConfiguration { - readonly _dns: AddressInfo; - - get dns(): AddressInfo { - return this._dns; - } - - readonly _password: string; - - /** - * Description: Basic auth password - * Example: password - */ - get password(): string { - return this._password; - } - - static passwordValidate(password: string): boolean { - return typeof password === 'string' && !!password.trim(); - } - - readonly _username: string; - - /** - * Description: Basic auth username - * Example: admin - */ - get username(): string { - return this._username; - } - - static usernameValidate(username: string): boolean { - return typeof username === 'string' && !!username.trim(); - } - - readonly _web: AddressInfo; - - get web(): AddressInfo { - return this._web; - } - - constructor(props: IInitialConfiguration) { - this._dns = new AddressInfo(props.dns); - this._password = props.password.trim(); - this._username = props.username.trim(); - this._web = new AddressInfo(props.web); - } - - serialize(): IInitialConfiguration { - const data: IInitialConfiguration = { - dns: this._dns.serialize(), - password: this._password, - username: this._username, - web: this._web.serialize(), - }; - return data; - } - - validate(): string[] { - const validate = { - dns: this._dns.validate().length === 0, - web: this._web.validate().length === 0, - username: typeof this._username === 'string' && !this._username ? true : this._username, - password: typeof this._password === 'string' && !this._password ? true : this._password, - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): InitialConfiguration { - return new InitialConfiguration({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/InitialConfigurationBeta.ts b/client2/src/lib/entities/InitialConfigurationBeta.ts deleted file mode 100644 index bbf09595847..00000000000 --- a/client2/src/lib/entities/InitialConfigurationBeta.ts +++ /dev/null @@ -1,89 +0,0 @@ -import AddressInfoBeta, { IAddressInfoBeta } from './AddressInfoBeta'; - -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IInitialConfigurationBeta { - dns: IAddressInfoBeta; - password: string; - username: string; - web: IAddressInfoBeta; -} - -export default class InitialConfigurationBeta { - readonly _dns: AddressInfoBeta; - - get dns(): AddressInfoBeta { - return this._dns; - } - - readonly _password: string; - - /** - * Description: Basic auth password - * Example: password - */ - get password(): string { - return this._password; - } - - static passwordValidate(password: string): boolean { - return typeof password === 'string' && !!password.trim(); - } - - readonly _username: string; - - /** - * Description: Basic auth username - * Example: admin - */ - get username(): string { - return this._username; - } - - static usernameValidate(username: string): boolean { - return typeof username === 'string' && !!username.trim(); - } - - readonly _web: AddressInfoBeta; - - get web(): AddressInfoBeta { - return this._web; - } - - constructor(props: IInitialConfigurationBeta) { - this._dns = new AddressInfoBeta(props.dns); - this._password = props.password.trim(); - this._username = props.username.trim(); - this._web = new AddressInfoBeta(props.web); - } - - serialize(): IInitialConfigurationBeta { - const data: IInitialConfigurationBeta = { - dns: this._dns.serialize(), - password: this._password, - username: this._username, - web: this._web.serialize(), - }; - return data; - } - - validate(): string[] { - const validate = { - dns: this._dns.validate().length === 0, - web: this._web.validate().length === 0, - username: typeof this._username === 'string' && !this._username ? true : this._username, - password: typeof this._password === 'string' && !this._password ? true : this._password, - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): InitialConfigurationBeta { - return new InitialConfigurationBeta({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/Login.ts b/client2/src/lib/entities/Login.ts deleted file mode 100644 index 808c6f6e7cd..00000000000 --- a/client2/src/lib/entities/Login.ts +++ /dev/null @@ -1,61 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface ILogin { - name?: string; - password?: string; -} - -export default class Login { - readonly _name: string | undefined; - - /** */ - get name(): string | undefined { - return this._name; - } - - readonly _password: string | undefined; - - /** */ - get password(): string | undefined { - return this._password; - } - - constructor(props: ILogin) { - if (typeof props.name === 'string') { - this._name = props.name.trim(); - } - if (typeof props.password === 'string') { - this._password = props.password.trim(); - } - } - - serialize(): ILogin { - const data: ILogin = { - }; - if (typeof this._name !== 'undefined') { - data.name = this._name; - } - if (typeof this._password !== 'undefined') { - data.password = this._password; - } - return data; - } - - validate(): string[] { - const validate = { - name: !this._name ? true : typeof this._name === 'string' && !this._name ? true : this._name, - password: !this._password ? true : typeof this._password === 'string' && !this._password ? true : this._password, - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): Login { - return new Login({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/NetInterface.ts b/client2/src/lib/entities/NetInterface.ts deleted file mode 100644 index c11d7a2c737..00000000000 --- a/client2/src/lib/entities/NetInterface.ts +++ /dev/null @@ -1,114 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface INetInterface { - flags: string; - hardware_address: string; - ip_addresses?: string[]; - mtu: number; - name: string; -} - -export default class NetInterface { - readonly _flags: string; - - /** - * Description: Flags could be any combination of the following values, divided by the "|" character: "up", "broadcast", "loopback", "pointtopoint" and "multicast". - * - * Example: up|broadcast|multicast - */ - get flags(): string { - return this._flags; - } - - static flagsValidate(flags: string): boolean { - return typeof flags === 'string' && !!flags.trim(); - } - - readonly _hardware_address: string; - - /** - * Description: undefined - * Example: 52:54:00:11:09:ba - */ - get hardwareAddress(): string { - return this._hardware_address; - } - - static hardwareAddressValidate(hardwareAddress: string): boolean { - return typeof hardwareAddress === 'string' && !!hardwareAddress.trim(); - } - - readonly _ip_addresses: string[] | undefined; - - get ipAddresses(): string[] | undefined { - return this._ip_addresses; - } - - readonly _mtu: number; - - get mtu(): number { - return this._mtu; - } - - static mtuValidate(mtu: number): boolean { - return typeof mtu === 'number'; - } - - readonly _name: string; - - /** - * Description: undefined - * Example: eth0 - */ - get name(): string { - return this._name; - } - - static nameValidate(name: string): boolean { - return typeof name === 'string' && !!name.trim(); - } - - constructor(props: INetInterface) { - this._flags = props.flags.trim(); - this._hardware_address = props.hardware_address.trim(); - if (props.ip_addresses) { - this._ip_addresses = props.ip_addresses; - } - this._mtu = props.mtu; - this._name = props.name.trim(); - } - - serialize(): INetInterface { - const data: INetInterface = { - flags: this._flags, - hardware_address: this._hardware_address, - mtu: this._mtu, - name: this._name, - }; - if (typeof this._ip_addresses !== 'undefined') { - data.ip_addresses = this._ip_addresses; - } - return data; - } - - validate(): string[] { - const validate = { - flags: typeof this._flags === 'string' && !this._flags ? true : this._flags, - hardware_address: typeof this._hardware_address === 'string' && !this._hardware_address ? true : this._hardware_address, - name: typeof this._name === 'string' && !this._name ? true : this._name, - ip_addresses: !this._ip_addresses ? true : this._ip_addresses.reduce((result, p) => result && typeof p === 'string', true), - mtu: typeof this._mtu === 'number', - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): NetInterface { - return new NetInterface({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/NetInterfaces.ts b/client2/src/lib/entities/NetInterfaces.ts deleted file mode 100644 index 29a33304f19..00000000000 --- a/client2/src/lib/entities/NetInterfaces.ts +++ /dev/null @@ -1,33 +0,0 @@ -import NetInterface, { INetInterface } from './NetInterface'; - -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface INetInterfaces { - [key: string]: INetInterface; -} - -export default class NetInterfaces { - readonly data: Record; - - constructor(props: INetInterfaces) { - this.data = Object.entries(props).reduce>((prev, [key, value]) => { - prev[key] = new NetInterface(value!); - return prev; - }, {}) - } - - serialize(): INetInterfaces { - return Object.entries(this.data).reduce>((prev, [key, value]) => { - prev[key] = value.serialize(); - return prev; - }, {}) - } - - validate(): string[] { - return [] - } - - update(props: INetInterfaces): NetInterfaces { - return new NetInterfaces({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/ProfileInfo.ts b/client2/src/lib/entities/ProfileInfo.ts deleted file mode 100644 index 0a8f099ce49..00000000000 --- a/client2/src/lib/entities/ProfileInfo.ts +++ /dev/null @@ -1,45 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IProfileInfo { - name?: string; -} - -export default class ProfileInfo { - readonly _name: string | undefined; - - get name(): string | undefined { - return this._name; - } - - constructor(props: IProfileInfo) { - if (typeof props.name === 'string') { - this._name = props.name.trim(); - } - } - - serialize(): IProfileInfo { - const data: IProfileInfo = { - }; - if (typeof this._name !== 'undefined') { - data.name = this._name; - } - return data; - } - - validate(): string[] { - const validate = { - name: !this._name ? true : typeof this._name === 'string' && !this._name ? true : this._name, - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): ProfileInfo { - return new ProfileInfo({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/QueryLog.ts b/client2/src/lib/entities/QueryLog.ts deleted file mode 100644 index da2b7761519..00000000000 --- a/client2/src/lib/entities/QueryLog.ts +++ /dev/null @@ -1,65 +0,0 @@ -import QueryLogItem, { IQueryLogItem } from './QueryLogItem'; - -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IQueryLog { - data?: IQueryLogItem[]; - oldest?: string; -} - -export default class QueryLog { - readonly _data: QueryLogItem[] | undefined; - - get data(): QueryLogItem[] | undefined { - return this._data; - } - - readonly _oldest: string | undefined; - - /** - * Description: undefined - * Example: 2018-11-26T00:02:41+03:00 - */ - get oldest(): string | undefined { - return this._oldest; - } - - constructor(props: IQueryLog) { - if (props.data) { - this._data = props.data.map((p) => new QueryLogItem(p)); - } - if (typeof props.oldest === 'string') { - this._oldest = props.oldest.trim(); - } - } - - serialize(): IQueryLog { - const data: IQueryLog = { - }; - if (typeof this._data !== 'undefined') { - data.data = this._data.map((p) => p.serialize()); - } - if (typeof this._oldest !== 'undefined') { - data.oldest = this._oldest; - } - return data; - } - - validate(): string[] { - const validate = { - oldest: !this._oldest ? true : typeof this._oldest === 'string' && !this._oldest ? true : this._oldest, - data: !this._data ? true : this._data.reduce((result, p) => result && p.validate().length === 0, true), - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): QueryLog { - return new QueryLog({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/QueryLogConfig.ts b/client2/src/lib/entities/QueryLogConfig.ts deleted file mode 100644 index e767d72cbf1..00000000000 --- a/client2/src/lib/entities/QueryLogConfig.ts +++ /dev/null @@ -1,76 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IQueryLogConfig { - anonymize_client_ip?: boolean; - enabled?: boolean; - interval?: number; -} - -export default class QueryLogConfig { - readonly _anonymize_client_ip: boolean | undefined; - - /** */ - get anonymizeClientIp(): boolean | undefined { - return this._anonymize_client_ip; - } - - readonly _enabled: boolean | undefined; - - /** */ - get enabled(): boolean | undefined { - return this._enabled; - } - - readonly _interval: number | undefined; - - /** */ - get interval(): number | undefined { - return this._interval; - } - - constructor(props: IQueryLogConfig) { - if (typeof props.anonymize_client_ip === 'boolean') { - this._anonymize_client_ip = props.anonymize_client_ip; - } - if (typeof props.enabled === 'boolean') { - this._enabled = props.enabled; - } - if (typeof props.interval === 'number') { - this._interval = props.interval; - } - } - - serialize(): IQueryLogConfig { - const data: IQueryLogConfig = { - }; - if (typeof this._anonymize_client_ip !== 'undefined') { - data.anonymize_client_ip = this._anonymize_client_ip; - } - if (typeof this._enabled !== 'undefined') { - data.enabled = this._enabled; - } - if (typeof this._interval !== 'undefined') { - data.interval = this._interval; - } - return data; - } - - validate(): string[] { - const validate = { - enabled: !this._enabled ? true : typeof this._enabled === 'boolean', - interval: !this._interval ? true : typeof this._interval === 'number', - anonymize_client_ip: !this._anonymize_client_ip ? true : typeof this._anonymize_client_ip === 'boolean', - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): QueryLogConfig { - return new QueryLogConfig({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/QueryLogItem.ts b/client2/src/lib/entities/QueryLogItem.ts deleted file mode 100644 index 6dffead36e5..00000000000 --- a/client2/src/lib/entities/QueryLogItem.ts +++ /dev/null @@ -1,297 +0,0 @@ -import DnsAnswer, { IDnsAnswer } from './DnsAnswer'; -import DnsQuestion, { IDnsQuestion } from './DnsQuestion'; -import ResultRule, { IResultRule } from './ResultRule'; - -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IQueryLogItem { - answer?: IDnsAnswer[]; - answer_dnssec?: boolean; - client?: string; - client_id?: string; - client_proto?: any; - elapsedMs?: string; - filterId?: number; - original_answer?: IDnsAnswer[]; - question?: IDnsQuestion; - reason?: string; - rule?: string; - rules?: IResultRule[]; - service_name?: string; - status?: string; - time?: string; - upstream?: string; -} - -export default class QueryLogItem { - readonly _answer: DnsAnswer[] | undefined; - - get answer(): DnsAnswer[] | undefined { - return this._answer; - } - - readonly _answer_dnssec: boolean | undefined; - - get answerDnssec(): boolean | undefined { - return this._answer_dnssec; - } - - readonly _client: string | undefined; - - /** - * Description: The client's IP address. - * - * Example: 192.168.0.1 - */ - get client(): string | undefined { - return this._client; - } - - readonly _client_id: string | undefined; - - /** - * Description: The client ID, if provided in DOH, DOQ, or DOT. - * - * Example: cli123 - */ - get clientId(): string | undefined { - return this._client_id; - } - - readonly _client_proto: any | undefined; - - get clientProto(): any | undefined { - return this._client_proto; - } - - readonly _elapsedMs: string | undefined; - - /** - * Description: undefined - * Example: 54.023928 - */ - get elapsedMs(): string | undefined { - return this._elapsedMs; - } - - readonly _filterId: number | undefined; - - /** - * Description: In case if there's a rule applied to this DNS request, this is ID of the filter list that the rule belongs to. - * Deprecated: use `rules[*].filter_list_id` instead. - * - * Example: 123123 - */ - get filterId(): number | undefined { - return this._filterId; - } - - readonly _original_answer: DnsAnswer[] | undefined; - - /** */ - get originalAnswer(): DnsAnswer[] | undefined { - return this._original_answer; - } - - readonly _question: DnsQuestion | undefined; - - get question(): DnsQuestion | undefined { - return this._question; - } - - readonly _reason: string | undefined; - - /** */ - get reason(): string | undefined { - return this._reason; - } - - readonly _rule: string | undefined; - - /** - * Description: Filtering rule applied to the request (if any). - * Deprecated: use `rules[*].text` instead. - * - * Example: ||example.org^ - */ - get rule(): string | undefined { - return this._rule; - } - - readonly _rules: ResultRule[] | undefined; - - /** */ - get rules(): ResultRule[] | undefined { - return this._rules; - } - - readonly _service_name: string | undefined; - - /** */ - get serviceName(): string | undefined { - return this._service_name; - } - - readonly _status: string | undefined; - - /** - * Description: DNS response status - * Example: NOERROR - */ - get status(): string | undefined { - return this._status; - } - - readonly _time: string | undefined; - - /** - * Description: DNS request processing start time - * Example: 2018-11-26T00:02:41+03:00 - */ - get time(): string | undefined { - return this._time; - } - - readonly _upstream: string | undefined; - - /** */ - get upstream(): string | undefined { - return this._upstream; - } - - constructor(props: IQueryLogItem) { - if (props.answer) { - this._answer = props.answer.map((p) => new DnsAnswer(p)); - } - if (typeof props.answer_dnssec === 'boolean') { - this._answer_dnssec = props.answer_dnssec; - } - if (typeof props.client === 'string') { - this._client = props.client.trim(); - } - if (typeof props.client_id === 'string') { - this._client_id = props.client_id.trim(); - } - if (props.client_proto) { - this._client_proto = props.client_proto; - } - if (typeof props.elapsedMs === 'string') { - this._elapsedMs = props.elapsedMs.trim(); - } - if (typeof props.filterId === 'number') { - this._filterId = props.filterId; - } - if (props.original_answer) { - this._original_answer = props.original_answer.map((p) => new DnsAnswer(p)); - } - if (props.question) { - this._question = new DnsQuestion(props.question); - } - if (typeof props.reason === 'string') { - this._reason = props.reason.trim(); - } - if (typeof props.rule === 'string') { - this._rule = props.rule.trim(); - } - if (props.rules) { - this._rules = props.rules.map((p) => new ResultRule(p)); - } - if (typeof props.service_name === 'string') { - this._service_name = props.service_name.trim(); - } - if (typeof props.status === 'string') { - this._status = props.status.trim(); - } - if (typeof props.time === 'string') { - this._time = props.time.trim(); - } - if (typeof props.upstream === 'string') { - this._upstream = props.upstream.trim(); - } - } - - serialize(): IQueryLogItem { - const data: IQueryLogItem = { - }; - if (typeof this._answer !== 'undefined') { - data.answer = this._answer.map((p) => p.serialize()); - } - if (typeof this._answer_dnssec !== 'undefined') { - data.answer_dnssec = this._answer_dnssec; - } - if (typeof this._client !== 'undefined') { - data.client = this._client; - } - if (typeof this._client_id !== 'undefined') { - data.client_id = this._client_id; - } - if (typeof this._client_proto !== 'undefined') { - data.client_proto = this._client_proto; - } - if (typeof this._elapsedMs !== 'undefined') { - data.elapsedMs = this._elapsedMs; - } - if (typeof this._filterId !== 'undefined') { - data.filterId = this._filterId; - } - if (typeof this._original_answer !== 'undefined') { - data.original_answer = this._original_answer.map((p) => p.serialize()); - } - if (typeof this._question !== 'undefined') { - data.question = this._question.serialize(); - } - if (typeof this._reason !== 'undefined') { - data.reason = this._reason; - } - if (typeof this._rule !== 'undefined') { - data.rule = this._rule; - } - if (typeof this._rules !== 'undefined') { - data.rules = this._rules.map((p) => p.serialize()); - } - if (typeof this._service_name !== 'undefined') { - data.service_name = this._service_name; - } - if (typeof this._status !== 'undefined') { - data.status = this._status; - } - if (typeof this._time !== 'undefined') { - data.time = this._time; - } - if (typeof this._upstream !== 'undefined') { - data.upstream = this._upstream; - } - return data; - } - - validate(): string[] { - const validate = { - answer: !this._answer ? true : this._answer.reduce((result, p) => result && p.validate().length === 0, true), - original_answer: !this._original_answer ? true : this._original_answer.reduce((result, p) => result && p.validate().length === 0, true), - upstream: !this._upstream ? true : typeof this._upstream === 'string' && !this._upstream ? true : this._upstream, - answer_dnssec: !this._answer_dnssec ? true : typeof this._answer_dnssec === 'boolean', - client: !this._client ? true : typeof this._client === 'string' && !this._client ? true : this._client, - client_id: !this._client_id ? true : typeof this._client_id === 'string' && !this._client_id ? true : this._client_id, - elapsedMs: !this._elapsedMs ? true : typeof this._elapsedMs === 'string' && !this._elapsedMs ? true : this._elapsedMs, - question: !this._question ? true : this._question.validate().length === 0, - filterId: !this._filterId ? true : typeof this._filterId === 'number', - rule: !this._rule ? true : typeof this._rule === 'string' && !this._rule ? true : this._rule, - rules: !this._rules ? true : this._rules.reduce((result, p) => result && p.validate().length === 0, true), - reason: !this._reason ? true : typeof this._reason === 'string' && !this._reason ? true : this._reason, - service_name: !this._service_name ? true : typeof this._service_name === 'string' && !this._service_name ? true : this._service_name, - status: !this._status ? true : typeof this._status === 'string' && !this._status ? true : this._status, - time: !this._time ? true : typeof this._time === 'string' && !this._time ? true : this._time, - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): QueryLogItem { - return new QueryLogItem({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/RemoveUrlRequest.ts b/client2/src/lib/entities/RemoveUrlRequest.ts deleted file mode 100644 index b45571a02f0..00000000000 --- a/client2/src/lib/entities/RemoveUrlRequest.ts +++ /dev/null @@ -1,49 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IRemoveUrlRequest { - url?: string; -} - -export default class RemoveUrlRequest { - readonly _url: string | undefined; - - /** - * Description: Previously added URL containing filtering rules - * Example: https://filters.adtidy.org/windows/filters/15.txt - */ - get url(): string | undefined { - return this._url; - } - - constructor(props: IRemoveUrlRequest) { - if (typeof props.url === 'string') { - this._url = props.url.trim(); - } - } - - serialize(): IRemoveUrlRequest { - const data: IRemoveUrlRequest = { - }; - if (typeof this._url !== 'undefined') { - data.url = this._url; - } - return data; - } - - validate(): string[] { - const validate = { - url: !this._url ? true : typeof this._url === 'string' && !this._url ? true : this._url, - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): RemoveUrlRequest { - return new RemoveUrlRequest({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/ResultRule.ts b/client2/src/lib/entities/ResultRule.ts deleted file mode 100644 index d0f03c988bf..00000000000 --- a/client2/src/lib/entities/ResultRule.ts +++ /dev/null @@ -1,69 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IResultRule { - filter_list_id?: number; - text?: string; -} - -export default class ResultRule { - readonly _filter_list_id: number | undefined; - - /** - * Description: In case if there's a rule applied to this DNS request, this is ID of the filter list that the rule belongs to. - * - * Example: 123123 - */ - get filterListId(): number | undefined { - return this._filter_list_id; - } - - readonly _text: string | undefined; - - /** - * Description: The text of the filtering rule applied to the request (if any). - * - * Example: ||example.org^ - */ - get text(): string | undefined { - return this._text; - } - - constructor(props: IResultRule) { - if (typeof props.filter_list_id === 'number') { - this._filter_list_id = props.filter_list_id; - } - if (typeof props.text === 'string') { - this._text = props.text.trim(); - } - } - - serialize(): IResultRule { - const data: IResultRule = { - }; - if (typeof this._filter_list_id !== 'undefined') { - data.filter_list_id = this._filter_list_id; - } - if (typeof this._text !== 'undefined') { - data.text = this._text; - } - return data; - } - - validate(): string[] { - const validate = { - filter_list_id: !this._filter_list_id ? true : typeof this._filter_list_id === 'number', - text: !this._text ? true : typeof this._text === 'string' && !this._text ? true : this._text, - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): ResultRule { - return new ResultRule({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/RewriteEntry.ts b/client2/src/lib/entities/RewriteEntry.ts deleted file mode 100644 index 31612b5712e..00000000000 --- a/client2/src/lib/entities/RewriteEntry.ts +++ /dev/null @@ -1,67 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IRewriteEntry { - answer?: string; - domain?: string; -} - -export default class RewriteEntry { - readonly _answer: string | undefined; - - /** - * Description: value of A, AAAA or CNAME DNS record - * Example: 127.0.0.1 - */ - get answer(): string | undefined { - return this._answer; - } - - readonly _domain: string | undefined; - - /** - * Description: Domain name - * Example: example.org - */ - get domain(): string | undefined { - return this._domain; - } - - constructor(props: IRewriteEntry) { - if (typeof props.answer === 'string') { - this._answer = props.answer.trim(); - } - if (typeof props.domain === 'string') { - this._domain = props.domain.trim(); - } - } - - serialize(): IRewriteEntry { - const data: IRewriteEntry = { - }; - if (typeof this._answer !== 'undefined') { - data.answer = this._answer; - } - if (typeof this._domain !== 'undefined') { - data.domain = this._domain; - } - return data; - } - - validate(): string[] { - const validate = { - domain: !this._domain ? true : typeof this._domain === 'string' && !this._domain ? true : this._domain, - answer: !this._answer ? true : typeof this._answer === 'string' && !this._answer ? true : this._answer, - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): RewriteEntry { - return new RewriteEntry({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/RewriteList.ts b/client2/src/lib/entities/RewriteList.ts deleted file mode 100644 index a92ff328090..00000000000 --- a/client2/src/lib/entities/RewriteList.ts +++ /dev/null @@ -1,31 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IRewriteList { -} - -export default class RewriteList { - constructor(props: IRewriteList) { - } - - serialize(): IRewriteList { - const data: IRewriteList = { - }; - return data; - } - - validate(): string[] { - const validate = { - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): RewriteList { - return new RewriteList({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/ServerStatus.ts b/client2/src/lib/entities/ServerStatus.ts deleted file mode 100644 index d70f0adf6bc..00000000000 --- a/client2/src/lib/entities/ServerStatus.ts +++ /dev/null @@ -1,179 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IServerStatus { - dhcp_available?: boolean; - dns_addresses: string[]; - dns_port: number; - http_port: number; - language: string; - protection_enabled: boolean; - running: boolean; - version: string; -} - -export default class ServerStatus { - readonly _dhcp_available: boolean | undefined; - - get dhcpAvailable(): boolean | undefined { - return this._dhcp_available; - } - - readonly _dns_addresses: string[]; - - /** - * Description: undefined - * Example: 127.0.0.1 - */ - get dnsAddresses(): string[] { - return this._dns_addresses; - } - - static dnsAddressesValidate(dnsAddresses: string[]): boolean { - return dnsAddresses.reduce((result, p) => result && (typeof p === 'string' && !!p.trim()), true); - } - - readonly _dns_port: number; - - /** - * Description: undefined - * Example: 53 - */ - get dnsPort(): number { - return this._dns_port; - } - - static get dnsPortMinValue() { - return 1; - } - - static get dnsPortMaxValue() { - return 65535; - } - - static dnsPortValidate(dnsPort: number): boolean { - return dnsPort >= 1 && dnsPort <= 65535; - } - - readonly _http_port: number; - - /** - * Description: undefined - * Example: 80 - */ - get httpPort(): number { - return this._http_port; - } - - static get httpPortMinValue() { - return 1; - } - - static get httpPortMaxValue() { - return 65535; - } - - static httpPortValidate(httpPort: number): boolean { - return httpPort >= 1 && httpPort <= 65535; - } - - readonly _language: string; - - /** - * Description: undefined - * Example: en - */ - get language(): string { - return this._language; - } - - static languageValidate(language: string): boolean { - return typeof language === 'string' && !!language.trim(); - } - - readonly _protection_enabled: boolean; - - get protectionEnabled(): boolean { - return this._protection_enabled; - } - - static protectionEnabledValidate(protectionEnabled: boolean): boolean { - return typeof protectionEnabled === 'boolean'; - } - - readonly _running: boolean; - - get running(): boolean { - return this._running; - } - - static runningValidate(running: boolean): boolean { - return typeof running === 'boolean'; - } - - readonly _version: string; - - /** - * Description: undefined - * Example: 0.1 - */ - get version(): string { - return this._version; - } - - static versionValidate(version: string): boolean { - return typeof version === 'string' && !!version.trim(); - } - - constructor(props: IServerStatus) { - if (typeof props.dhcp_available === 'boolean') { - this._dhcp_available = props.dhcp_available; - } - this._dns_addresses = props.dns_addresses; - this._dns_port = props.dns_port; - this._http_port = props.http_port; - this._language = props.language.trim(); - this._protection_enabled = props.protection_enabled; - this._running = props.running; - this._version = props.version.trim(); - } - - serialize(): IServerStatus { - const data: IServerStatus = { - dns_addresses: this._dns_addresses, - dns_port: this._dns_port, - http_port: this._http_port, - language: this._language, - protection_enabled: this._protection_enabled, - running: this._running, - version: this._version, - }; - if (typeof this._dhcp_available !== 'undefined') { - data.dhcp_available = this._dhcp_available; - } - return data; - } - - validate(): string[] { - const validate = { - dns_addresses: this._dns_addresses.reduce((result, p) => result && typeof p === 'string', true), - dns_port: this._dns_port >= 1 && this._dns_port <= 65535, - http_port: this._http_port >= 1 && this._http_port <= 65535, - protection_enabled: typeof this._protection_enabled === 'boolean', - dhcp_available: !this._dhcp_available ? true : typeof this._dhcp_available === 'boolean', - running: typeof this._running === 'boolean', - version: typeof this._version === 'string' && !this._version ? true : this._version, - language: typeof this._language === 'string' && !this._language ? true : this._language, - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): ServerStatus { - return new ServerStatus({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/Stats.ts b/client2/src/lib/entities/Stats.ts deleted file mode 100644 index bae0e1b51cd..00000000000 --- a/client2/src/lib/entities/Stats.ts +++ /dev/null @@ -1,257 +0,0 @@ -import TopArrayEntry, { ITopArrayEntry } from './TopArrayEntry'; - -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IStats { - avg_processing_time?: number; - blocked_filtering?: number[]; - dns_queries?: number[]; - num_blocked_filtering?: number; - num_dns_queries?: number; - num_replaced_parental?: number; - num_replaced_safebrowsing?: number; - num_replaced_safesearch?: number; - replaced_parental?: number[]; - replaced_safebrowsing?: number[]; - time_units?: string; - top_blocked_domains?: ITopArrayEntry[]; - top_clients?: ITopArrayEntry[]; - top_queried_domains?: ITopArrayEntry[]; -} - -export default class Stats { - readonly _avg_processing_time: number | undefined; - - /** - * Description: Average time in milliseconds on processing a DNS - * Example: 0.34 - */ - get avgProcessingTime(): number | undefined { - return this._avg_processing_time; - } - - readonly _blocked_filtering: number[] | undefined; - - get blockedFiltering(): number[] | undefined { - return this._blocked_filtering; - } - - readonly _dns_queries: number[] | undefined; - - get dnsQueries(): number[] | undefined { - return this._dns_queries; - } - - readonly _num_blocked_filtering: number | undefined; - - /** - * Description: Number of requests blocked by filtering rules - * Example: 50 - */ - get numBlockedFiltering(): number | undefined { - return this._num_blocked_filtering; - } - - readonly _num_dns_queries: number | undefined; - - /** - * Description: Total number of DNS queries - * Example: 123 - */ - get numDnsQueries(): number | undefined { - return this._num_dns_queries; - } - - readonly _num_replaced_parental: number | undefined; - - /** - * Description: Number of blocked adult websites - * Example: 15 - */ - get numReplacedParental(): number | undefined { - return this._num_replaced_parental; - } - - readonly _num_replaced_safebrowsing: number | undefined; - - /** - * Description: Number of requests blocked by safebrowsing module - * Example: 5 - */ - get numReplacedSafebrowsing(): number | undefined { - return this._num_replaced_safebrowsing; - } - - readonly _num_replaced_safesearch: number | undefined; - - /** - * Description: Number of requests blocked by safesearch module - * Example: 5 - */ - get numReplacedSafesearch(): number | undefined { - return this._num_replaced_safesearch; - } - - readonly _replaced_parental: number[] | undefined; - - get replacedParental(): number[] | undefined { - return this._replaced_parental; - } - - readonly _replaced_safebrowsing: number[] | undefined; - - get replacedSafebrowsing(): number[] | undefined { - return this._replaced_safebrowsing; - } - - readonly _time_units: string | undefined; - - /** - * Description: Time units - * Example: hours - */ - get timeUnits(): string | undefined { - return this._time_units; - } - - readonly _top_blocked_domains: TopArrayEntry[] | undefined; - - get topBlockedDomains(): TopArrayEntry[] | undefined { - return this._top_blocked_domains; - } - - readonly _top_clients: TopArrayEntry[] | undefined; - - get topClients(): TopArrayEntry[] | undefined { - return this._top_clients; - } - - readonly _top_queried_domains: TopArrayEntry[] | undefined; - - get topQueriedDomains(): TopArrayEntry[] | undefined { - return this._top_queried_domains; - } - - constructor(props: IStats) { - if (typeof props.avg_processing_time === 'number') { - this._avg_processing_time = props.avg_processing_time; - } - if (props.blocked_filtering) { - this._blocked_filtering = props.blocked_filtering; - } - if (props.dns_queries) { - this._dns_queries = props.dns_queries; - } - if (typeof props.num_blocked_filtering === 'number') { - this._num_blocked_filtering = props.num_blocked_filtering; - } - if (typeof props.num_dns_queries === 'number') { - this._num_dns_queries = props.num_dns_queries; - } - if (typeof props.num_replaced_parental === 'number') { - this._num_replaced_parental = props.num_replaced_parental; - } - if (typeof props.num_replaced_safebrowsing === 'number') { - this._num_replaced_safebrowsing = props.num_replaced_safebrowsing; - } - if (typeof props.num_replaced_safesearch === 'number') { - this._num_replaced_safesearch = props.num_replaced_safesearch; - } - if (props.replaced_parental) { - this._replaced_parental = props.replaced_parental; - } - if (props.replaced_safebrowsing) { - this._replaced_safebrowsing = props.replaced_safebrowsing; - } - if (typeof props.time_units === 'string') { - this._time_units = props.time_units.trim(); - } - if (props.top_blocked_domains) { - this._top_blocked_domains = props.top_blocked_domains.map((p) => new TopArrayEntry(p)); - } - if (props.top_clients) { - this._top_clients = props.top_clients.map((p) => new TopArrayEntry(p)); - } - if (props.top_queried_domains) { - this._top_queried_domains = props.top_queried_domains.map((p) => new TopArrayEntry(p)); - } - } - - serialize(): IStats { - const data: IStats = { - }; - if (typeof this._avg_processing_time !== 'undefined') { - data.avg_processing_time = this._avg_processing_time; - } - if (typeof this._blocked_filtering !== 'undefined') { - data.blocked_filtering = this._blocked_filtering; - } - if (typeof this._dns_queries !== 'undefined') { - data.dns_queries = this._dns_queries; - } - if (typeof this._num_blocked_filtering !== 'undefined') { - data.num_blocked_filtering = this._num_blocked_filtering; - } - if (typeof this._num_dns_queries !== 'undefined') { - data.num_dns_queries = this._num_dns_queries; - } - if (typeof this._num_replaced_parental !== 'undefined') { - data.num_replaced_parental = this._num_replaced_parental; - } - if (typeof this._num_replaced_safebrowsing !== 'undefined') { - data.num_replaced_safebrowsing = this._num_replaced_safebrowsing; - } - if (typeof this._num_replaced_safesearch !== 'undefined') { - data.num_replaced_safesearch = this._num_replaced_safesearch; - } - if (typeof this._replaced_parental !== 'undefined') { - data.replaced_parental = this._replaced_parental; - } - if (typeof this._replaced_safebrowsing !== 'undefined') { - data.replaced_safebrowsing = this._replaced_safebrowsing; - } - if (typeof this._time_units !== 'undefined') { - data.time_units = this._time_units; - } - if (typeof this._top_blocked_domains !== 'undefined') { - data.top_blocked_domains = this._top_blocked_domains.map((p) => p.serialize()); - } - if (typeof this._top_clients !== 'undefined') { - data.top_clients = this._top_clients.map((p) => p.serialize()); - } - if (typeof this._top_queried_domains !== 'undefined') { - data.top_queried_domains = this._top_queried_domains.map((p) => p.serialize()); - } - return data; - } - - validate(): string[] { - const validate = { - time_units: !this._time_units ? true : typeof this._time_units === 'string' && !this._time_units ? true : this._time_units, - num_dns_queries: !this._num_dns_queries ? true : typeof this._num_dns_queries === 'number', - num_blocked_filtering: !this._num_blocked_filtering ? true : typeof this._num_blocked_filtering === 'number', - num_replaced_safebrowsing: !this._num_replaced_safebrowsing ? true : typeof this._num_replaced_safebrowsing === 'number', - num_replaced_safesearch: !this._num_replaced_safesearch ? true : typeof this._num_replaced_safesearch === 'number', - num_replaced_parental: !this._num_replaced_parental ? true : typeof this._num_replaced_parental === 'number', - avg_processing_time: !this._avg_processing_time ? true : typeof this._avg_processing_time === 'number', - top_queried_domains: !this._top_queried_domains ? true : this._top_queried_domains.reduce((result, p) => result && p.validate().length === 0, true), - top_clients: !this._top_clients ? true : this._top_clients.reduce((result, p) => result && p.validate().length === 0, true), - top_blocked_domains: !this._top_blocked_domains ? true : this._top_blocked_domains.reduce((result, p) => result && p.validate().length === 0, true), - dns_queries: !this._dns_queries ? true : this._dns_queries.reduce((result, p) => result && typeof p === 'number', true), - blocked_filtering: !this._blocked_filtering ? true : this._blocked_filtering.reduce((result, p) => result && typeof p === 'number', true), - replaced_safebrowsing: !this._replaced_safebrowsing ? true : this._replaced_safebrowsing.reduce((result, p) => result && typeof p === 'number', true), - replaced_parental: !this._replaced_parental ? true : this._replaced_parental.reduce((result, p) => result && typeof p === 'number', true), - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): Stats { - return new Stats({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/StatsConfig.ts b/client2/src/lib/entities/StatsConfig.ts deleted file mode 100644 index 516105eaea1..00000000000 --- a/client2/src/lib/entities/StatsConfig.ts +++ /dev/null @@ -1,46 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IStatsConfig { - interval?: number; -} - -export default class StatsConfig { - readonly _interval: number | undefined; - - /** */ - get interval(): number | undefined { - return this._interval; - } - - constructor(props: IStatsConfig) { - if (typeof props.interval === 'number') { - this._interval = props.interval; - } - } - - serialize(): IStatsConfig { - const data: IStatsConfig = { - }; - if (typeof this._interval !== 'undefined') { - data.interval = this._interval; - } - return data; - } - - validate(): string[] { - const validate = { - interval: !this._interval ? true : typeof this._interval === 'number', - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): StatsConfig { - return new StatsConfig({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/TlsConfig.ts b/client2/src/lib/entities/TlsConfig.ts deleted file mode 100644 index be3ecad1f3b..00000000000 --- a/client2/src/lib/entities/TlsConfig.ts +++ /dev/null @@ -1,404 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface ITlsConfig { - certificate_chain?: string; - certificate_path?: string; - dns_names?: string[]; - enabled?: boolean; - force_https?: boolean; - issuer?: string; - key_type?: string; - not_after?: string; - not_before?: string; - port_dns_over_quic?: number; - port_dns_over_tls?: number; - port_https?: number; - private_key?: string; - private_key_path?: string; - server_name?: string; - subject?: string; - valid_cert?: boolean; - valid_chain?: boolean; - valid_key?: boolean; - valid_pair?: boolean; - warning_validation?: string; -} - -export default class TlsConfig { - readonly _certificate_chain: string | undefined; - - /** */ - get certificateChain(): string | undefined { - return this._certificate_chain; - } - - readonly _certificate_path: string | undefined; - - /** */ - get certificatePath(): string | undefined { - return this._certificate_path; - } - - readonly _dns_names: string[] | undefined; - - /** - * Description: The value of SubjectAltNames field of the first certificate in the chain. - * - * Example: *.example.org - */ - get dnsNames(): string[] | undefined { - return this._dns_names; - } - - readonly _enabled: boolean | undefined; - - /** - * Description: enabled is the encryption (DOT/DOH/HTTPS) status - * Example: true - */ - get enabled(): boolean | undefined { - return this._enabled; - } - - readonly _force_https: boolean | undefined; - - /** - * Description: if true, forces HTTP->HTTPS redirect - * Example: true - */ - get forceHttps(): boolean | undefined { - return this._force_https; - } - - readonly _issuer: string | undefined; - - /** - * Description: The issuer of the first certificate in the chain. - * Example: CN=Let's Encrypt Authority X3,O=Let's Encrypt,C=US - */ - get issuer(): string | undefined { - return this._issuer; - } - - readonly _key_type: string | undefined; - - /** - * Description: Key type. - * Example: RSA - */ - get keyType(): string | undefined { - return this._key_type; - } - - readonly _not_after: string | undefined; - - /** - * Description: The NotAfter field of the first certificate in the chain. - * - * Example: 2019-05-01T10:47:32Z - */ - get notAfter(): string | undefined { - return this._not_after; - } - - readonly _not_before: string | undefined; - - /** - * Description: The NotBefore field of the first certificate in the chain. - * - * Example: 2019-01-31T10:47:32Z - */ - get notBefore(): string | undefined { - return this._not_before; - } - - readonly _port_dns_over_quic: number | undefined; - - /** - * Description: DNS-over-QUIC port. If 0, DOQ will be disabled. - * Example: 784 - */ - get portDnsOverQuic(): number | undefined { - return this._port_dns_over_quic; - } - - readonly _port_dns_over_tls: number | undefined; - - /** - * Description: DNS-over-TLS port. If 0, DOT will be disabled. - * Example: 853 - */ - get portDnsOverTls(): number | undefined { - return this._port_dns_over_tls; - } - - readonly _port_https: number | undefined; - - /** - * Description: HTTPS port. If 0, HTTPS will be disabled. - * Example: 443 - */ - get portHttps(): number | undefined { - return this._port_https; - } - - readonly _private_key: string | undefined; - - /** */ - get privateKey(): string | undefined { - return this._private_key; - } - - readonly _private_key_path: string | undefined; - - /** */ - get privateKeyPath(): string | undefined { - return this._private_key_path; - } - - readonly _server_name: string | undefined; - - /** - * Description: server_name is the hostname of your HTTPS/TLS server - * Example: example.org - */ - get serverName(): string | undefined { - return this._server_name; - } - - readonly _subject: string | undefined; - - /** - * Description: The subject of the first certificate in the chain. - * Example: CN=example.org - */ - get subject(): string | undefined { - return this._subject; - } - - readonly _valid_cert: boolean | undefined; - - /** - * Description: Set to true if the specified certificates chain is a valid chain of X509 certificates. - * - * Example: true - */ - get validCert(): boolean | undefined { - return this._valid_cert; - } - - readonly _valid_chain: boolean | undefined; - - /** - * Description: Set to true if the specified certificates chain is verified and issued by a known CA. - * - * Example: true - */ - get validChain(): boolean | undefined { - return this._valid_chain; - } - - readonly _valid_key: boolean | undefined; - - /** - * Description: Set to true if the key is a valid private key. - * Example: true - */ - get validKey(): boolean | undefined { - return this._valid_key; - } - - readonly _valid_pair: boolean | undefined; - - /** - * Description: Set to true if both certificate and private key are correct. - * - * Example: true - */ - get validPair(): boolean | undefined { - return this._valid_pair; - } - - readonly _warning_validation: string | undefined; - - /** - * Description: A validation warning message with the issue description. - * - * Example: You have specified an empty certificate - */ - get warningValidation(): string | undefined { - return this._warning_validation; - } - - constructor(props: ITlsConfig) { - if (typeof props.certificate_chain === 'string') { - this._certificate_chain = props.certificate_chain.trim(); - } - if (typeof props.certificate_path === 'string') { - this._certificate_path = props.certificate_path.trim(); - } - if (props.dns_names) { - this._dns_names = props.dns_names; - } - if (typeof props.enabled === 'boolean') { - this._enabled = props.enabled; - } - if (typeof props.force_https === 'boolean') { - this._force_https = props.force_https; - } - if (typeof props.issuer === 'string') { - this._issuer = props.issuer.trim(); - } - if (typeof props.key_type === 'string') { - this._key_type = props.key_type.trim(); - } - if (typeof props.not_after === 'string') { - this._not_after = props.not_after.trim(); - } - if (typeof props.not_before === 'string') { - this._not_before = props.not_before.trim(); - } - if (typeof props.port_dns_over_quic === 'number') { - this._port_dns_over_quic = props.port_dns_over_quic; - } - if (typeof props.port_dns_over_tls === 'number') { - this._port_dns_over_tls = props.port_dns_over_tls; - } - if (typeof props.port_https === 'number') { - this._port_https = props.port_https; - } - if (typeof props.private_key === 'string') { - this._private_key = props.private_key.trim(); - } - if (typeof props.private_key_path === 'string') { - this._private_key_path = props.private_key_path.trim(); - } - if (typeof props.server_name === 'string') { - this._server_name = props.server_name.trim(); - } - if (typeof props.subject === 'string') { - this._subject = props.subject.trim(); - } - if (typeof props.valid_cert === 'boolean') { - this._valid_cert = props.valid_cert; - } - if (typeof props.valid_chain === 'boolean') { - this._valid_chain = props.valid_chain; - } - if (typeof props.valid_key === 'boolean') { - this._valid_key = props.valid_key; - } - if (typeof props.valid_pair === 'boolean') { - this._valid_pair = props.valid_pair; - } - if (typeof props.warning_validation === 'string') { - this._warning_validation = props.warning_validation.trim(); - } - } - - serialize(): ITlsConfig { - const data: ITlsConfig = { - }; - if (typeof this._certificate_chain !== 'undefined') { - data.certificate_chain = this._certificate_chain; - } - if (typeof this._certificate_path !== 'undefined') { - data.certificate_path = this._certificate_path; - } - if (typeof this._dns_names !== 'undefined') { - data.dns_names = this._dns_names; - } - if (typeof this._enabled !== 'undefined') { - data.enabled = this._enabled; - } - if (typeof this._force_https !== 'undefined') { - data.force_https = this._force_https; - } - if (typeof this._issuer !== 'undefined') { - data.issuer = this._issuer; - } - if (typeof this._key_type !== 'undefined') { - data.key_type = this._key_type; - } - if (typeof this._not_after !== 'undefined') { - data.not_after = this._not_after; - } - if (typeof this._not_before !== 'undefined') { - data.not_before = this._not_before; - } - if (typeof this._port_dns_over_quic !== 'undefined') { - data.port_dns_over_quic = this._port_dns_over_quic; - } - if (typeof this._port_dns_over_tls !== 'undefined') { - data.port_dns_over_tls = this._port_dns_over_tls; - } - if (typeof this._port_https !== 'undefined') { - data.port_https = this._port_https; - } - if (typeof this._private_key !== 'undefined') { - data.private_key = this._private_key; - } - if (typeof this._private_key_path !== 'undefined') { - data.private_key_path = this._private_key_path; - } - if (typeof this._server_name !== 'undefined') { - data.server_name = this._server_name; - } - if (typeof this._subject !== 'undefined') { - data.subject = this._subject; - } - if (typeof this._valid_cert !== 'undefined') { - data.valid_cert = this._valid_cert; - } - if (typeof this._valid_chain !== 'undefined') { - data.valid_chain = this._valid_chain; - } - if (typeof this._valid_key !== 'undefined') { - data.valid_key = this._valid_key; - } - if (typeof this._valid_pair !== 'undefined') { - data.valid_pair = this._valid_pair; - } - if (typeof this._warning_validation !== 'undefined') { - data.warning_validation = this._warning_validation; - } - return data; - } - - validate(): string[] { - const validate = { - enabled: !this._enabled ? true : typeof this._enabled === 'boolean', - server_name: !this._server_name ? true : typeof this._server_name === 'string' && !this._server_name ? true : this._server_name, - force_https: !this._force_https ? true : typeof this._force_https === 'boolean', - port_https: !this._port_https ? true : typeof this._port_https === 'number', - port_dns_over_tls: !this._port_dns_over_tls ? true : typeof this._port_dns_over_tls === 'number', - port_dns_over_quic: !this._port_dns_over_quic ? true : typeof this._port_dns_over_quic === 'number', - certificate_chain: !this._certificate_chain ? true : typeof this._certificate_chain === 'string' && !this._certificate_chain ? true : this._certificate_chain, - private_key: !this._private_key ? true : typeof this._private_key === 'string' && !this._private_key ? true : this._private_key, - certificate_path: !this._certificate_path ? true : typeof this._certificate_path === 'string' && !this._certificate_path ? true : this._certificate_path, - private_key_path: !this._private_key_path ? true : typeof this._private_key_path === 'string' && !this._private_key_path ? true : this._private_key_path, - valid_cert: !this._valid_cert ? true : typeof this._valid_cert === 'boolean', - valid_chain: !this._valid_chain ? true : typeof this._valid_chain === 'boolean', - subject: !this._subject ? true : typeof this._subject === 'string' && !this._subject ? true : this._subject, - issuer: !this._issuer ? true : typeof this._issuer === 'string' && !this._issuer ? true : this._issuer, - not_before: !this._not_before ? true : typeof this._not_before === 'string' && !this._not_before ? true : this._not_before, - not_after: !this._not_after ? true : typeof this._not_after === 'string' && !this._not_after ? true : this._not_after, - dns_names: !this._dns_names ? true : this._dns_names.reduce((result, p) => result && typeof p === 'string', true), - valid_key: !this._valid_key ? true : typeof this._valid_key === 'boolean', - key_type: !this._key_type ? true : typeof this._key_type === 'string' && !this._key_type ? true : this._key_type, - warning_validation: !this._warning_validation ? true : typeof this._warning_validation === 'string' && !this._warning_validation ? true : this._warning_validation, - valid_pair: !this._valid_pair ? true : typeof this._valid_pair === 'boolean', - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): TlsConfig { - return new TlsConfig({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/TopArrayEntry.ts b/client2/src/lib/entities/TopArrayEntry.ts deleted file mode 100644 index 2720683a966..00000000000 --- a/client2/src/lib/entities/TopArrayEntry.ts +++ /dev/null @@ -1,47 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface ITopArrayEntry { - domain_or_ip?: number; - [key: string]: number | undefined; -} - -export default class TopArrayEntry { - readonly _domain_or_ip: number | undefined; - - get domainOrIp(): number | undefined { - return this._domain_or_ip; - } - - readonly numberData: Record; - - constructor(props: ITopArrayEntry) { - this.numberData = Object.entries(props).reduce>((prev, [key, value]) => { - prev[key] = value!; - return prev; - }, {}) - } - - serialize(): ITopArrayEntry { - return Object.entries(this.numberData).reduce>((prev, [key, value]) => { - prev[key] = value; - return prev; - }, {}) - } - - validate(): string[] { - const validate = { - domain_or_ip: !this._domain_or_ip ? true : typeof this._domain_or_ip === 'number', - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): TopArrayEntry { - return new TopArrayEntry({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/UpstreamsConfig.ts b/client2/src/lib/entities/UpstreamsConfig.ts deleted file mode 100644 index 5b9c0a6b66c..00000000000 --- a/client2/src/lib/entities/UpstreamsConfig.ts +++ /dev/null @@ -1,69 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IUpstreamsConfig { - bootstrap_dns: string[]; - upstream_dns: string[]; -} - -export default class UpstreamsConfig { - readonly _bootstrap_dns: string[]; - - /** - * Description: Bootstrap servers, port is optional after colon. Empty value will reset it to default values. - * - * Example: 8.8.8.8:53,1.1.1.1:53 - */ - get bootstrapDns(): string[] { - return this._bootstrap_dns; - } - - static bootstrapDnsValidate(bootstrapDns: string[]): boolean { - return bootstrapDns.reduce((result, p) => result && (typeof p === 'string' && !!p.trim()), true); - } - - readonly _upstream_dns: string[]; - - /** - * Description: Upstream servers, port is optional after colon. Empty value will reset it to default values. - * - * Example: tls://1.1.1.1,tls://1.0.0.1 - */ - get upstreamDns(): string[] { - return this._upstream_dns; - } - - static upstreamDnsValidate(upstreamDns: string[]): boolean { - return upstreamDns.reduce((result, p) => result && (typeof p === 'string' && !!p.trim()), true); - } - - constructor(props: IUpstreamsConfig) { - this._bootstrap_dns = props.bootstrap_dns; - this._upstream_dns = props.upstream_dns; - } - - serialize(): IUpstreamsConfig { - const data: IUpstreamsConfig = { - bootstrap_dns: this._bootstrap_dns, - upstream_dns: this._upstream_dns, - }; - return data; - } - - validate(): string[] { - const validate = { - bootstrap_dns: this._bootstrap_dns.reduce((result, p) => result && typeof p === 'string', true), - upstream_dns: this._upstream_dns.reduce((result, p) => result && typeof p === 'string', true), - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): UpstreamsConfig { - return new UpstreamsConfig({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/UpstreamsConfigResponse.ts b/client2/src/lib/entities/UpstreamsConfigResponse.ts deleted file mode 100644 index 5d827a7e87f..00000000000 --- a/client2/src/lib/entities/UpstreamsConfigResponse.ts +++ /dev/null @@ -1,31 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IUpstreamsConfigResponse { - [key: string]: string; -} - -export default class UpstreamsConfigResponse { - readonly data: Record; - - constructor(props: IUpstreamsConfigResponse) { - this.data = Object.entries(props).reduce>((prev, [key, value]) => { - prev[key] = value!; - return prev; - }, {}) - } - - serialize(): IUpstreamsConfigResponse { - return Object.entries(this.data).reduce>((prev, [key, value]) => { - prev[key] = value; - return prev; - }, {}) - } - - validate(): string[] { - return [] - } - - update(props: IUpstreamsConfigResponse): UpstreamsConfigResponse { - return new UpstreamsConfigResponse({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/VersionInfo.ts b/client2/src/lib/entities/VersionInfo.ts deleted file mode 100644 index 59d4b937ec7..00000000000 --- a/client2/src/lib/entities/VersionInfo.ts +++ /dev/null @@ -1,115 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IVersionInfo { - announcement?: string; - announcement_url?: string; - can_autoupdate?: boolean; - disabled: boolean; - new_version?: string; -} - -export default class VersionInfo { - readonly _announcement: string | undefined; - - /** - * Description: undefined - * Example: AdGuard Home v0.9 is now available! - */ - get announcement(): string | undefined { - return this._announcement; - } - - readonly _announcement_url: string | undefined; - - /** - * Description: undefined - * Example: https://github.com/AdguardTeam/AdGuardHome/releases/tag/v0.9 - * - */ - get announcementUrl(): string | undefined { - return this._announcement_url; - } - - readonly _can_autoupdate: boolean | undefined; - - get canAutoupdate(): boolean | undefined { - return this._can_autoupdate; - } - - readonly _disabled: boolean; - - /** */ - get disabled(): boolean { - return this._disabled; - } - - static disabledValidate(disabled: boolean): boolean { - return typeof disabled === 'boolean'; - } - - readonly _new_version: string | undefined; - - /** - * Description: undefined - * Example: v0.9 - */ - get newVersion(): string | undefined { - return this._new_version; - } - - constructor(props: IVersionInfo) { - if (typeof props.announcement === 'string') { - this._announcement = props.announcement.trim(); - } - if (typeof props.announcement_url === 'string') { - this._announcement_url = props.announcement_url.trim(); - } - if (typeof props.can_autoupdate === 'boolean') { - this._can_autoupdate = props.can_autoupdate; - } - this._disabled = props.disabled; - if (typeof props.new_version === 'string') { - this._new_version = props.new_version.trim(); - } - } - - serialize(): IVersionInfo { - const data: IVersionInfo = { - disabled: this._disabled, - }; - if (typeof this._announcement !== 'undefined') { - data.announcement = this._announcement; - } - if (typeof this._announcement_url !== 'undefined') { - data.announcement_url = this._announcement_url; - } - if (typeof this._can_autoupdate !== 'undefined') { - data.can_autoupdate = this._can_autoupdate; - } - if (typeof this._new_version !== 'undefined') { - data.new_version = this._new_version; - } - return data; - } - - validate(): string[] { - const validate = { - disabled: typeof this._disabled === 'boolean', - new_version: !this._new_version ? true : typeof this._new_version === 'string' && !this._new_version ? true : this._new_version, - announcement: !this._announcement ? true : typeof this._announcement === 'string' && !this._announcement ? true : this._announcement, - announcement_url: !this._announcement_url ? true : typeof this._announcement_url === 'string' && !this._announcement_url ? true : this._announcement_url, - can_autoupdate: !this._can_autoupdate ? true : typeof this._can_autoupdate === 'boolean', - }; - const isError: string[] = []; - Object.keys(validate).forEach((key) => { - if (!(validate as any)[key]) { - isError.push(key); - } - }); - return isError; - } - - update(props: Partial): VersionInfo { - return new VersionInfo({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/entities/WhoisInfo.ts b/client2/src/lib/entities/WhoisInfo.ts deleted file mode 100644 index aa5ee6286af..00000000000 --- a/client2/src/lib/entities/WhoisInfo.ts +++ /dev/null @@ -1,31 +0,0 @@ -// This file was autogenerated. Please do not change. -// All changes will be overwrited on commit. -export interface IWhoisInfo { - [key: string]: string; -} - -export default class WhoisInfo { - readonly data: Record; - - constructor(props: IWhoisInfo) { - this.data = Object.entries(props).reduce>((prev, [key, value]) => { - prev[key] = value!; - return prev; - }, {}) - } - - serialize(): IWhoisInfo { - return Object.entries(this.data).reduce>((prev, [key, value]) => { - prev[key] = value; - return prev; - }, {}) - } - - validate(): string[] { - return [] - } - - update(props: IWhoisInfo): WhoisInfo { - return new WhoisInfo({ ...this.serialize(), ...props }); - } -} diff --git a/client2/src/lib/helpers/apiErrors.ts b/client2/src/lib/helpers/apiErrors.ts deleted file mode 100644 index c1916e1ffb9..00000000000 --- a/client2/src/lib/helpers/apiErrors.ts +++ /dev/null @@ -1,14 +0,0 @@ -interface ErrorCheck { - error?: Error; - result?: T; -} - -export function errorChecker(response: Error | any): ErrorCheck { - if (typeof response !== 'object') { - return { result: response }; - } - if (response instanceof Error) { - return { error: response }; - } - return { result: response }; -} diff --git a/client2/src/lib/helpers/installHelpers.ts b/client2/src/lib/helpers/installHelpers.ts deleted file mode 100644 index a4258402841..00000000000 --- a/client2/src/lib/helpers/installHelpers.ts +++ /dev/null @@ -1,17 +0,0 @@ -export enum NETWORK_TYPE { - LOCAL = 'LOCAL', - ETHERNET = 'ETHERNET', - OTHER = 'OTHER', -} - -export const chechNetworkType = (network: string | undefined) => { - if (!network) { - return NETWORK_TYPE.OTHER; - } - if (network.includes('en')) { - return NETWORK_TYPE.ETHERNET; - } - if (network.includes('lo')) { - return NETWORK_TYPE.LOCAL; - } -}; diff --git a/client2/src/lib/theme/Content.module.pcss b/client2/src/lib/theme/Content.module.pcss deleted file mode 100644 index 8f2246df054..00000000000 --- a/client2/src/lib/theme/Content.module.pcss +++ /dev/null @@ -1,51 +0,0 @@ -.content { - min-height: 100vh; - - &_auth { - @media (--m-viewport) { - background-color: var(--gray100); - background-image: url('../../assets/img/install.png'); - background-position: center 20px; - background-repeat: no-repeat; - background-size: 100%; - } - } - - &_inner { - min-height: calc(100vh - var(--header-height)); - } -} - -.container { - width: 100%; - margin: 0 auto; - padding: 16px; - - @media (--l-viewport) { - padding: 24px; - } - - &_auth { - max-width: 432px; - padding: 24px 16px 40px; - - @media (--m-viewport) { - padding: 40px 16px; - } - } -} - -.header { - margin-bottom: 16px; - padding: 0 16px; - - @media (--m-viewport) { - margin-bottom: 24px; - padding: 0 24px; - } -} - -.title { - font-size: 16px; - font-weight: 600; -} diff --git a/client2/src/lib/theme/Form.module.pcss b/client2/src/lib/theme/Form.module.pcss deleted file mode 100644 index f4988df62e8..00000000000 --- a/client2/src/lib/theme/Form.module.pcss +++ /dev/null @@ -1,78 +0,0 @@ -.group { - display: block; - margin-bottom: 24px; - - &_last, - &:last-child { - margin-bottom: 0; - } -} - -.label { - margin-bottom: 4px; - font-size: 14px; - color: var(--gray700); -} - -.reveal { - color: var(--black); - transition: color var(--transition); - cursor: pointer; - - &:hover, - &:focus { - color: var(--gray); - } -} - -.reveal + .suffix { - margin-left: 16px; -} - -.addon { - display: flex; - height: 48px; - padding: 14px 3px 14px 14px; - font-size: 14px; - font-weight: 500; - line-height: 1.4; - cursor: pointer; - overflow: hidden; - - @media (--m-viewport) { - padding-right: 6px; - font-size: 16px; - line-height: 1.3; - } -} - -.addonCountry { - min-width: 28px; - margin-right: 3px; - - @media (--m-viewport) { - margin-right: 12px; - } -} - -.addonIcon { - position: relative; - top: -2px; - margin-right: 9px; - color: var(--concrete); -} - -.addonCode { - position: relative; - padding-left: 12px; - - &::before { - content: ""; - position: absolute; - top: -14px; - left: 0; - width: 1px; - height: 48px; - background-color: var(--borders-white); - } -} diff --git a/client2/src/lib/theme/Install.module.pcss b/client2/src/lib/theme/Install.module.pcss deleted file mode 100644 index 39b5d682a7c..00000000000 --- a/client2/src/lib/theme/Install.module.pcss +++ /dev/null @@ -1,130 +0,0 @@ -.title, -.subtitle, -.text { - color: var(--gray900); -} - -.title { - margin-bottom: 20px; - font-size: 28px; - line-height: 1.1; -} - -.subtitle { - margin-bottom: 12px; - font-size: 20px; - line-height: 1.4; -} - -.text { - font-size: 16px; - line-height: 1.5; - - &_block { - margin-bottom: 35px; - } - - &_base { - margin-bottom: 12px; - } -} - -.danger { - text-transform: capitalize; - color: var(--red400); - font-weight: bold; -} - -.actions { - display: flex; - align-items: center; - justify-content: space-between; - flex-direction: column-reverse; - margin-top: 48px; - - @media (--m-viewport) { - flex-direction: row; - } -} - -.button { - width: 100%; - min-width: 188px; - - &:last-child { - margin-bottom: 16px; - } - - &:only-child { - margin: 0; - } - - @media (--m-viewport) { - width: auto; - - &:first-child { - margin-right: 12px; - } - - &:last-child { - margin-bottom: 0; - margin-left: 12px; - } - - &:only-child { - margin: 0; - } - } -} - -.logo { - width: 130px; - height: 40px; - margin-bottom: 35px; - - @media (--m-viewport) { - width: 185px; - height: 57px; - } -} - -.ip { - font-family: var(--font-family-monospace); - font-size: 16px; - font-weight: 600; - word-break: break-all; - color: var(--green400); -} - -.options { - margin-bottom: 48px; -} - -.name { - padding-bottom: 5px; - border-bottom: 1px solid var(--gray300); - margin-bottom: 16px; - margin-top: 20px; -} - -.option { - display: flex; - justify-content: space-between; - align-items: center; - margin-bottom: 8px; -} - -.address { - margin-right: 16px; - word-break: break-all; - color: var(--gray400); -} - -.tabs { - width: 100%; - - @media (--m-viewport) { - width: 505px; - margin-left: -131px; - } -} diff --git a/client2/src/lib/theme/Link.module.pcss b/client2/src/lib/theme/Link.module.pcss deleted file mode 100644 index b0751d90df8..00000000000 --- a/client2/src/lib/theme/Link.module.pcss +++ /dev/null @@ -1,27 +0,0 @@ -.link { - color: var(--green400); - text-decoration: underline; - - &:hover, - &:focus { - color: var(--green700); - text-decoration: none; - } - - &:active { - color: var(--green400); - } - - &.gray { - color: var(--gray900); - - &:hover, - &:focus { - color: var(--gray700); - } - - &:active { - color: var(--gray700); - } - } -} diff --git a/client2/src/lib/theme/Text.module.pcss b/client2/src/lib/theme/Text.module.pcss deleted file mode 100644 index 55a5f4e32e9..00000000000 --- a/client2/src/lib/theme/Text.module.pcss +++ /dev/null @@ -1,41 +0,0 @@ -.f14 { - font-size: 14px; -} - -.f16 { - font-size: 16px; -} - -.f20 { - font-size: 20px; -} - -.bold { - font-weight: 700; -} - -.medium { - font-weight: 600; -} - -.regular { - font-weight: 400; -} - -.code { - padding: 3px 5px; - font-size: 14px; - font-family: var(--font-family-monospace); - background-color: var(--gray300); - border-radius: 2px; -} - -.danger { - text-transform: uppercase; - color: var(--red400); - font-weight: bold; -} - -.center { - text-align: center; -} diff --git a/client2/src/lib/theme/colors.ts b/client2/src/lib/theme/colors.ts deleted file mode 100644 index 09b157b8b16..00000000000 --- a/client2/src/lib/theme/colors.ts +++ /dev/null @@ -1,8 +0,0 @@ -export const colors = { - red: '#c23814', - orange: '#eb9300', - purple: '#b267a0', - green: '#67b279', - gray300: '#d8d8d8', - gray700: '#888888', -}; diff --git a/client2/src/lib/theme/index.ts b/client2/src/lib/theme/index.ts deleted file mode 100644 index c215d1a068a..00000000000 --- a/client2/src/lib/theme/index.ts +++ /dev/null @@ -1,18 +0,0 @@ -import form from './Form.module.pcss'; -import text from './Text.module.pcss'; -import install from './Install.module.pcss'; -import link from './Link.module.pcss'; -import content from './Content.module.pcss'; - -import { colors } from './colors'; - -const theme = { - form, - chartColors: colors, - text, - install, - link, - content, -}; - -export default theme; diff --git a/client2/src/localization/index.ts b/client2/src/localization/index.ts deleted file mode 100644 index a5a02eae6fd..00000000000 --- a/client2/src/localization/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Locale, DatePickerLocale, messages, DEFAULT_LOCALE, LANGUAGES } from './locales'; - -export { Locale, DatePickerLocale, messages, DEFAULT_LOCALE, LANGUAGES }; -export const i18n = (lang: Locale) => ({ - getMessage: (key: string) => messages[lang][key], - getUILanguage: () => lang, - getBaseMessage: (key: string) => messages[DEFAULT_LOCALE][key] || key, - getBaseUILanguage: () => DEFAULT_LOCALE, -}); diff --git a/client2/src/localization/locales/en.json b/client2/src/localization/locales/en.json deleted file mode 100644 index a0094f6a447..00000000000 --- a/client2/src/localization/locales/en.json +++ /dev/null @@ -1,137 +0,0 @@ -{ - "back": "Back", - "ethernet": "Ethernet", - "localhost": "localhost", - "login": "Login", - "password": "Password", - "next": "Next", - "port": "Port", - "router": "Router", - "username": "Username", - "sign_in": "Sign in", - "sign_out": "Sign out", - "dashboard": "Dashboard", - "setup_guide": "Setup guide", - "query_log": "Query Log", - "filters": "Filters", - "settings": "Settings", - "general_settings": "General settings", - "dns_settings": "DNS settings", - "encryption_settings": "Encryption settings", - "client_settings": "Client settings", - "dhcp_settings": "DHCP settings", - "disable": "Disable", - "disabled": "Disabled", - "enable": "Enable", - "clear": "Clear", - "cancel": "Cancel", - - "login_password_title": "Reset Password", - "login_password_link": "Forgot password?", - "login_password_hash": "AdGuard Home stores passwords as a BCrypt-encoded hash. Here's what you need to do to change the password:", - "login_password_step_1": "Stop AdGuard Home", - "login_password_step_2": "Edit AdGuardHome.yaml", - "login_password_step_3": "Find password field there", - "login_password_step_4": "Replace it with the new value. You can use .htpasswd password generator tool or any online BCrypt generator tool (there are many available online).", - "login_password_step_5": "Start AdGuard Home", - "login_password_result": "Now you'll be able to log in to web interface using your new password.", - - "install_admin_interface_port_desc": "Now it is working at 3000 port, just in case, but we recomended to use 80 port. Using this ports allow to access to Web interface like to common site", - "install_admin_interface_port": "Which port will be used", - "install_admin_interface_title_decs": "Admin web interface is used to control AdGuard Home. You can open it in your browser and it does not require using a client-side program", - "install_admin_interface_title": "Admin interface settings", - "install_admin_interface_where_interface_desc": "Set what kind of networks will be able to access to Admin interface. For example: if you choose a local interface only, then Admin inteface will be accessed by this local device only", - "install_admin_interface_where_interface": "Where can I open Admin interface", - - "install_all_networks_description": "All available web interfaces", - "install_all_networks": "All networks", - "install_choose_networks_desc": "For advanced users", - "install_choose_networks": "Choose manually", - - "install_wellcome_button": "Let's go", - "install_wellcome_desc": "You have installed AdGuard Home on your device. It is a network-wide ad-and-tracker blocking DNS server with Admin Web interface. Let’s set some settings to correct DNS working", - "install_wellcome_title": "Welcome to AdGuard Home", - - "install_auth_title": "Login and password", - "install_auth_description": "Set login and password for accessing to Web interface", - - "install_dns_server_title": "DNS server settings", - "install_dns_server_desc": "AdGuard DNS server works like common DNS server but also blocks ads and tracking domains", - "install_dns_server_network_interfaces": "Network interfaces", - "install_dns_server_network_interfaces_desc": "You should set for what kind of networks will be use AdGuard Home DNS server. Most often you need to have available all interfaces", - "install_dns_server_port": "Which port will be used", - "install_dns_server_port_desc": "You have to use port 53 for correct internet working. Change this value only if you have reason", - "install_dns_server_non_static_ip": "How to use non-static IP adresses?", - - "install_configure_title": "Configure your devices", - "install_configure_danger_notice": "IMPORTANT! To start using AdGuard Home, you need to configure your devices manually", - "install_configure_how_to_title": "How to configure %value%", - "install_configure_router": "

This setup will automatically cover all the devices connected to your home router and you will not need to configure each of them manually.

Open the preferences for your router. Usually, you can access it from your browser via a URL (like http://192.168.0.1/ or http://192.168.1.1/). You may be asked to enter the password. If you don't remember it, you can often reset the password by pressing a button on the router itself. Some routers require a specific application, which in that case should be already installed on your computer/phone.

Find the DHCP/DNS settings. Look for the DNS letters next to a field which allows two or three sets of numbers, each broken into four groups of one to three digits.

Enter your AdGuard Home server addresses there.

", - "install_configure_windows": "

Open Control Panel through Start menu or Windows search.

Go to Network and Internet category and then to Network and Sharing Center.

On the left side of the screen find Change adapter settings and click on it.

Select your active connection, right-click on it and choose Properties.

Find Internet Protocol Version 4 (TCP/IP) in the list, select it and then click on Properties again.

Choose Use the following DNS server addresses and enter your AdGuard Home server addresses.

", - "install_configure_macos": "

Click on Apple icon and go to System Preferences.

Click on Network.

Select the first connection in your list and click Advanced.

Select the DNS tab and enter your AdGuard Home server addresses.

", - "install_configure_android": "

From the Android Menu home screen, tap Settings.

Tap Wi-Fi on the menu. The screen listing all of the available networks will be shown (it is impossible to set custom DNS for mobile connection).

Long press the network you're connected to, and tap Modify Network.

On some devices, you may need to check the box for Advanced to see further settings. To adjust your Android DNS settings, you will need to switch the IP settings from DHCP to Static.

Change set DNS 1 and DNS 2 values to your AdGuard Home server addresses.

", - "install_configure_ios": "

From the home screen, tap Settings.

Choose Wi-Fi in the left menu (it is impossible to configure DNS for mobile networks).

Tap on the name of the currently active network.

In the DNS field enter your AdGuard Home server addresses.

", - "install_configure_adresses": "AdGuard Home addresses:", - "install_configure_dhcp": "You can't set a custom DNS server on some types of routers. In this case it may help if you set up AdGuard Home as a DHCP server. Otherwise, you should search for the manual on how to customize DNS servers for your particular router model.", - - "header_adguard_status_enabled": "AdGuard Home is enabled", - "header_adguard_status_disabled": "AdGuard Home is disabled", - "header_server_uptime": "Server uptime is %value%", - - "top_clients": "Top clients", - "client_table_header": "Client", - "requests": "Requests", - "show_blocked_responses": "Blocked", - - "filter_category_general": "General", - "query_log_configuration": "Logs configuration", - "statistics_configuration": "Statistics configuration", - "statistics_clear": " Clear statistics", - "interval_24_hour": "24 hours", - "interval_days": "| %count% day | %count% days", - "interval_hours": "| %count% hour | %count% hours", - "save_btn": "Save", - "stats_reset": "Statistics reseted succesfully", - "statistics_retention": "Statistics retention", - "statistics_retention_desc": "If you decrease the interval value, some data will be lost", - "query_log_enable": "Enable log", - "query_log_clear": "Clear query logs", - "query_log_retention": "Query logs retention", - "query_log_cleared": "The query log has been successfully cleared", - "anonymize_client_ip": "Anonymize client IP", - "anonymize_client_ip_desc": "Don't save the full IP address of the client in logs and statistics", - "query_log_retention_confirm": "If you decrease the interval value, some data will be lost", - "query_log_confirm_clear": "Are you sure you want to clear the entire query log?", - "query_log_reset": "Query log cleared succesfully", - "statistics_clear_confirm": "Are you sure you want to clear statistics?", - - "stats_query_domain": "Top queried domains", - "top_blocked_domains": "Top blocked domains", - "domain": "Domain", - "all_queries": "All queries", - - "block_domain_use_filters_and_hosts": "Block domains using filters and hosts files", - "filters_interval": "Filters update interval", - "filters_block_toggle_hint": "You can setup blocking rules in the Filters settings.", - "use_adguard_browsing_sec": "Use AdGuard browsing security web service", - "use_adguard_browsing_sec_hint": "AdGuard Home will check if domain is blacklisted by the browsing security web service. It will use privacy-friendly lookup API to perform the check: only a short prefix of the domain name SHA256 hash is sent to the server.", - "use_adguard_parental": "Use AdGuard parental control web service", - "use_adguard_parental_hint": "AdGuard Home will check if domain contains adult materials. It uses the same privacy-friendly API as the browsing security web service.", - "enforce_safe_search": "Enforce safe search", - "enforce_save_search_hint": "AdGuard Home can enforce safe search in the following search engines: Google, Youtube, Bing, DuckDuckGo, Yandex, Pixabay.", - - "dashboard_blocked_ads": "Blocked Ads", - "dashboard_blocked_trackers": "Blocked trackers", - "dashboard_filter_rules": "Count of filter rules", - "dashboard_blocked_queries": "Blocked queries", - "dashboard_filter_rules_count": "%enabled% of %all% filters", - "dashboard_server_statistics": "Internal server statistic", - "other" : "Other", - "ads" : "Ads", - "trackers" : "Trackers", - "stats_adult": "Blocked adult websites", - "stats_malware_phishing": "Blocked malware/phishing", - "average_processing_time": "Average processing time", - "milliseconds_abbreviation": "ms" - -} diff --git a/client2/src/localization/locales/index.ts b/client2/src/localization/locales/index.ts deleted file mode 100644 index 98266112e7d..00000000000 --- a/client2/src/localization/locales/index.ts +++ /dev/null @@ -1,36 +0,0 @@ -import 'dayjs/locale/ru'; - -import { PickerLocale } from 'antd/es/date-picker/generatePicker'; -import ruPicker from 'antd/es/date-picker/locale/ru_RU'; -import enPicker from 'antd/es/date-picker/locale/en_GB'; - -import ruLang from './ru.json'; -import enLang from './en.json'; - -export enum Locale { - en = 'en', - ru = 'ru', -} -export const DatePickerLocale: Record = { - [Locale.ru]: ruPicker, - [Locale.en]: enPicker, -}; - -export const messages: Record> = { - [Locale.ru]: ruLang, - [Locale.en]: enLang, -}; - -// TODO get languages and default locale from .twosky file -export const DEFAULT_LOCALE = Locale.en; - -export const LANGUAGES: { code: Locale; name: string }[] = [ - { - code: Locale.en, - name: 'English', - }, - { - code: Locale.ru, - name: 'Русский', - }, -]; diff --git a/client2/src/localization/locales/ru.json b/client2/src/localization/locales/ru.json deleted file mode 100644 index af53fc02e3c..00000000000 --- a/client2/src/localization/locales/ru.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "install_wellcome_title": "Добро пожаловать в AdGuard Home", - "install_wellcome_desc": "Русский текст" -} \ No newline at end of file diff --git a/client2/src/main.pcss b/client2/src/main.pcss deleted file mode 100644 index 9d7573ba680..00000000000 --- a/client2/src/main.pcss +++ /dev/null @@ -1,31 +0,0 @@ -:root { - --white: #ffffff; - --gray100: #f3f3f3; - --gray300: #d8d8d8; - --gray400: #a4a4a4; - --gray700: #888888; - --gray900: #4d4d4d; - --black: #131313; - --green400: #67b279; - --green700: #4d995f; - --red400: #c23814; - --text-selection: #e7efff; - --header-height: 48px; - --transition: 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); - --font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif; - --font-family-monospace: Monaco, Menlo, "Ubuntu Mono", Consolas, source-code-pro, monospace; -} - -body { - font-size: 16px; - color: var(--gray900); -} - -::selection { - background: var(--text-selection); - color: var(--black); -} - -@custom-media --m-viewport (min-width: 768px); -@custom-media --l-viewport (min-width: 992px); -@custom-media --xl-viewport (min-width: 1200px); diff --git a/client2/src/store/index.ts b/client2/src/store/index.ts deleted file mode 100644 index a1c7b93b91a..00000000000 --- a/client2/src/store/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default, Store, storeValue } from './store'; diff --git a/client2/src/store/installStore.ts b/client2/src/store/installStore.ts deleted file mode 100644 index dfe7bfd7b83..00000000000 --- a/client2/src/store/installStore.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { createContext } from 'react'; -import Install from './stores/Install'; -import UI from './stores/ui'; - -export class Store { - ui: UI; - - install: Install; - - constructor() { - this.ui = new UI(this); - this.install = new Install(this); - } -} - -export const storeValue = new Store(); - -const StoreContext = createContext(storeValue); -export default StoreContext; diff --git a/client2/src/store/store.ts b/client2/src/store/store.ts deleted file mode 100644 index 4debd161fb2..00000000000 --- a/client2/src/store/store.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { createContext } from 'react'; -import UI from './stores/ui'; -import Login from './stores/Login'; -import Dashboard from './stores/Dasnboard'; -import System from './stores/System'; -import GeneralSettings from './stores/GeneralSettings'; - -export class Store { - ui: UI; - - login: Login; - - dashboard: Dashboard; - - system: System; - - generalSettings: GeneralSettings; - - constructor() { - this.ui = new UI(this); - this.login = new Login(this); - this.dashboard = new Dashboard(this); - this.system = new System(this); - this.generalSettings = new GeneralSettings(this); - } - - init() { - this.dashboard.init(); - this.system.init(); - } -} - -export const storeValue = new Store(); - -const StoreContext = createContext(storeValue); -export default StoreContext; diff --git a/client2/src/store/stores/Dasnboard.ts b/client2/src/store/stores/Dasnboard.ts deleted file mode 100644 index c4aa30625a0..00000000000 --- a/client2/src/store/stores/Dasnboard.ts +++ /dev/null @@ -1,120 +0,0 @@ -import { flow, makeAutoObservable, observable } from 'mobx'; - -import clientsApi from 'Apis/clients'; -import statsApi from 'Apis/stats'; -import filteringApi from 'Apis/filtering'; -import tlsApi from 'Apis/tls'; - -import { errorChecker } from 'Helpers/apiErrors'; -import { Store } from 'Store'; -import Stats, { IStats } from 'Entities/Stats'; -import StatsConfig, { IStatsConfig } from 'Entities/StatsConfig'; -import TlsConfig, { ITlsConfig } from 'Entities/TlsConfig'; -import { IClientsFindEntry } from 'Entities/ClientsFindEntry'; -import ClientFindSubEntry from 'Entities/ClientFindSubEntry'; -import FilterStatus, { IFilterStatus } from 'Entities/FilterStatus'; - -import { IStore } from './utils'; - -export default class Dashboard implements IStore { - rootStore: Store; - - inited = false; - - stats: Stats | undefined; - - statsConfig: StatsConfig | undefined; - - clientsInfo: Map; - - tlsConfig: TlsConfig | undefined; - - filteringConfig: FilterStatus | undefined; - - constructor(rootStore: Store) { - this.rootStore = rootStore; - makeAutoObservable(this, { - rootStore: false, - inited: observable, - init: flow, - - getStatsConfig: flow, - getTlsConfig: flow, - getClient: flow, - filteringStatus: flow, - - stats: observable.ref, - statsConfig: observable.ref, - clientsInfo: observable.ref, - tlsConfig: observable.ref, - filteringConfig: observable.ref, - }); - this.clientsInfo = new Map(); - if (this.rootStore.login.loggedIn) { - this.init(); - } - } - - * init() { - yield this.getStatsConfig(); - yield this.getTlsConfig(); - yield this.getStats(); - yield this.filteringStatus(); - this.inited = true; - } - - * getStats() { - const response = yield statsApi.stats(); - const { result } = errorChecker(response); - if (result) { - this.stats = new Stats(result); - if (this.stats.topClients) { - // TODO: fix bycicle - const topClients = this.stats.topClients.map((e) => { - return Object.keys(e.numberData)[0]; - }); - let firstClient = topClients.shift(); - firstClient += '&'; - const topClientsReq = firstClient + topClients.map((ip, index) => `ip${index + 1}=${ip}`).join('&'); - yield this.getClient(topClientsReq); - } - } - } - - * getClient(ip: string) { - // if & is encoding set in clientsFind qs options - encode: false - const response = yield clientsApi.clientsFind(ip); - const { result } = errorChecker(response); - if (result) { - this.clientsInfo = new Map(); - result.forEach((client) => { - const [clientIp, data] = Object.entries(client)[0]; - this.clientsInfo.set(clientIp, new ClientFindSubEntry(data)); - }); - } - } - - * getStatsConfig() { - const response = yield statsApi.statsInfo(); - const { result } = errorChecker(response); - if (result) { - this.statsConfig = new StatsConfig(result); - } - } - - * getTlsConfig() { - const response = yield tlsApi.tlsStatus(); - const { result } = errorChecker(response); - if (result) { - this.tlsConfig = new TlsConfig(result); - } - } - - * filteringStatus() { - const response = yield filteringApi.filteringStatus(); - const { result } = errorChecker(response); - if (result) { - this.filteringConfig = new FilterStatus(result); - } - } -} diff --git a/client2/src/store/stores/GeneralSettings.ts b/client2/src/store/stores/GeneralSettings.ts deleted file mode 100644 index 6b5e8287eb0..00000000000 --- a/client2/src/store/stores/GeneralSettings.ts +++ /dev/null @@ -1,218 +0,0 @@ -import { flow, makeAutoObservable, observable } from 'mobx'; -import { Store } from 'Store'; - -import statsApi from 'Apis/stats'; -import queryApi from 'Apis/log'; -import safeBrowsingApi from 'Apis/safebrowsing'; -import filteringApi from 'Apis/filtering'; -import parentalApi from 'Apis/parental'; -import safesearchApi from 'Apis/safesearch'; - -import StatsConfig, { IStatsConfig } from 'Entities/StatsConfig'; -import QueryLogConfig, { IQueryLogConfig } from 'Entities/QueryLogConfig'; -import FilterConfig, { IFilterConfig } from 'Entities/FilterConfig'; -import FilterStatus, { IFilterStatus } from 'Entities/FilterStatus'; - -import { errorChecker } from 'Helpers/apiErrors'; - -import { IStore } from './utils'; - -export default class SomeStore implements IStore { - rootStore: Store; - - inited = false; - - statsConfig: StatsConfig | undefined; - - queryLogConfig: QueryLogConfig | undefined; - - safebrowsing: boolean | undefined; - - filteringConfig: FilterConfig | undefined; - - parental: boolean | undefined; - - safesearch: boolean | undefined; - - constructor(rootStore: Store) { - this.rootStore = rootStore; - makeAutoObservable(this, { - rootStore: false, - inited: observable, - init: flow, - - statsConfig: observable.ref, - queryLogConfig: observable.ref, - safebrowsing: observable, - filteringConfig: observable.ref, - parental: observable, - safesearch: observable, - - updateStatsConfig: flow, - statsInfo: flow, - statsReset: flow, - updateQueryLogConfig: flow, - queryLogInfo: flow, - querylogClear: flow, - safebrowsingDisable: flow, - safebrowsingEnable: flow, - safebrowsingStatus: flow, - updateFilteringConfig: flow, - filteringStatus: flow, - parentalDisable: flow, - parentalEnable: flow, - parentalStatus: flow, - safesearchDisable: flow, - safesearchEnable: flow, - safesearchStatus: flow, - }); - } - - * init() { - yield this.statsInfo(); - yield this.queryLogInfo(); - yield this.safebrowsingStatus(); - yield this.filteringStatus(); - yield this.parentalStatus(); - yield this.safesearchStatus(); - this.inited = yield true; - } - - * updateStatsConfig(statsconfig: IStatsConfig) { - const response = yield statsApi.statsConfig(statsconfig); - const { result } = errorChecker(response); - if (result) { - yield this.statsInfo(); - } - } - - * statsInfo() { - const response = yield statsApi.statsInfo(); - const { result } = errorChecker(response); - if (result) { - this.statsConfig = new StatsConfig(result); - } - } - - * statsReset() { - const response = yield statsApi.statsReset(); - const { result } = errorChecker(response); - if (result) { - yield this.statsInfo(); - return true; - } - } - - * updateQueryLogConfig(querylogconfig: IQueryLogConfig) { - const response = yield queryApi.queryLogConfig(querylogconfig); - const { result } = errorChecker(response); - if (result) { - yield this.queryLogInfo(); - } - } - - * queryLogInfo() { - const response = yield queryApi.queryLogInfo(); - const { result } = errorChecker(response); - if (result) { - this.queryLogConfig = new QueryLogConfig(result); - } - } - - * querylogClear() { - const response = yield queryApi.querylogClear(); - const { result } = errorChecker(response); - if (result) { - yield this.queryLogInfo(); - } - } - - * safebrowsingDisable() { - const response = yield safeBrowsingApi.safebrowsingDisable(); - const { result } = errorChecker(response); - if (result) { - this.safebrowsing = false; - } - } - - * safebrowsingEnable() { - const response = yield safeBrowsingApi.safebrowsingEnable(); - const { result } = errorChecker(response); - if (result) { - this.safebrowsing = true; - } - } - - * safebrowsingStatus() { - const response = yield safeBrowsingApi.safebrowsingStatus(); - const { result } = errorChecker(response); - if (result) { - this.safebrowsing = result.enabled; - } - } - - * updateFilteringConfig(filterconfig: IFilterConfig) { - const response = yield filteringApi.filteringConfig(filterconfig); - const { result } = errorChecker(response); - if (result) { - yield this.filteringStatus(); - } - } - - * filteringStatus() { - const response = yield filteringApi.filteringStatus(); - const { result } = errorChecker(response); - if (result) { - this.filteringConfig = new FilterStatus(result); - } - } - - * parentalDisable() { - const response = yield parentalApi.parentalDisable(); - const { result } = errorChecker(response); - if (result) { - this.parental = false; - } - } - - * parentalEnable() { - // TODO: remove magic; - const response = yield parentalApi.parentalEnable('sensitivity=TEEN'); - const { result } = errorChecker(response); - if (result) { - this.parental = true; - } - } - - * parentalStatus() { - const response = yield parentalApi.parentalStatus(); - const { result } = errorChecker(response); - if (result) { - this.parental = result.enabled; - } - } - - * safesearchDisable() { - const response = yield safesearchApi.safesearchDisable(); - const { result } = errorChecker(response); - if (result) { - this.safesearch = false; - } - } - - * safesearchEnable() { - const response = yield safesearchApi.safesearchEnable(); - const { result } = errorChecker(response); - if (result) { - this.safesearch = true; - } - } - - * safesearchStatus() { - const response = yield safesearchApi.safesearchStatus(); - const { result } = errorChecker(response); - if (result) { - this.safesearch = result.enabled; - } - } -} diff --git a/client2/src/store/stores/Install.ts b/client2/src/store/stores/Install.ts deleted file mode 100644 index 92b2ff06ef1..00000000000 --- a/client2/src/store/stores/Install.ts +++ /dev/null @@ -1,50 +0,0 @@ -import InstallApi from 'Apis/install'; -import AddressesInfoBeta, { IAddressesInfoBeta } from 'Entities/AddressesInfoBeta'; -import { ICheckConfigRequestBeta } from 'Entities/CheckConfigRequestBeta'; -import CheckConfigResponse, { ICheckConfigResponse } from 'Entities/CheckConfigResponse'; -import { IInitialConfigurationBeta } from 'Entities/InitialConfigurationBeta'; -import { errorChecker } from 'Helpers/apiErrors'; -import { flow, makeAutoObservable } from 'mobx'; - -import { Store } from 'Store/installStore'; - -export default class Install { - rootStore: Store; - - addresses: AddressesInfoBeta | null; - - constructor(rootStore: Store) { - this.rootStore = rootStore; - this.addresses = null; - - makeAutoObservable(this, { - rootStore: false, - getAddresses: flow, - }); - this.getAddresses(); - } - - * getAddresses() { - const response = yield InstallApi.installGetAddressesBeta(); - const { result } = errorChecker(response); - if (result) { - this.addresses = new AddressesInfoBeta(result); - } - } - - static async checkConfig(config: ICheckConfigRequestBeta) { - const response = await InstallApi.installCheckConfigBeta(config); - const { result } = errorChecker(response); - if (result) { - return new CheckConfigResponse(result); - } - } - - static async configure(config: IInitialConfigurationBeta) { - const response = await InstallApi.installConfigureBeta(config); - const { result } = errorChecker(response); - if (result) { - return true; - } - } -} diff --git a/client2/src/store/stores/Login.ts b/client2/src/store/stores/Login.ts deleted file mode 100644 index b15347317cf..00000000000 --- a/client2/src/store/stores/Login.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { flow, makeAutoObservable, observable } from 'mobx'; -import globalApi from 'Apis/global'; - -import { Store } from 'Store'; -import { errorChecker } from 'Helpers/apiErrors'; -import ProfileInfo, { IProfileInfo } from 'Entities/ProfileInfo'; -import { ILogin } from 'Entities/Login'; - -export default class Login { - rootStore: Store; - - loggedIn = false; - - constructor(rootStore: Store) { - this.rootStore = rootStore; - makeAutoObservable(this, { - loggedIn: observable, - rootStore: false, - checkLoggedIn: flow, - login: flow, - }); - this.checkLoggedIn(); - } - - * checkLoggedIn() { - const response = yield globalApi.getProfile(); - const { result } = errorChecker(response); - if (result) { - this.loggedIn = true; - this.rootStore.system.setProfile(new ProfileInfo(result)); - this.rootStore.init(); - } - // TODO: make smth with result, to not duplicate the request; - } - - * login(login: ILogin) { - const response = yield globalApi.login(login); - const { result, error } = errorChecker(response); - if (result === 200) { - this.loggedIn = true; - return; - } - return error; - } -} diff --git a/client2/src/store/stores/System.ts b/client2/src/store/stores/System.ts deleted file mode 100644 index 41652998002..00000000000 --- a/client2/src/store/stores/System.ts +++ /dev/null @@ -1,75 +0,0 @@ -import { flow, makeAutoObservable, observable, action } from 'mobx'; -import globalApi from 'Apis/global'; - -import { Store } from 'Store'; -import { errorChecker } from 'Helpers/apiErrors'; -import ProfileInfo, { IProfileInfo } from 'Entities/ProfileInfo'; -import ServerStatus, { IServerStatus } from 'Entities/ServerStatus'; - -import { IStore } from './utils'; - -export default class System implements IStore { - rootStore: Store; - - inited = false; - - status: ServerStatus | undefined; - - profile: ProfileInfo | undefined; - - constructor(rootStore: Store) { - this.rootStore = rootStore; - makeAutoObservable(this, { - rootStore: false, - inited: observable, - getServerStatus: flow, - init: flow, - setProfile: action, - switchServerStatus: flow, - getProfile: flow, - status: observable, - profile: observable, - }); - if (this.rootStore.login.loggedIn) { - this.init(); - } - } - - * init() { - yield this.getServerStatus(); - if (!this.profile) { - yield this.getProfile(); - } - this.inited = true; - } - - setProfile(profile: ProfileInfo) { - this.profile = profile; - } - - * getProfile() { - const response = yield globalApi.getProfile(); - const { result } = errorChecker(response); - if (result) { - this.profile = new ProfileInfo(result); - } - } - - * getServerStatus() { - const response = yield globalApi.status(); - const { result } = errorChecker(response); - if (result) { - this.status = new ServerStatus(result); - } - } - - * switchServerStatus(enable: boolean) { - const response = yield globalApi.dnsConfig({ - protection_enabled: enable, - }); - const { result } = errorChecker(response); - if (result) { - yield this.getServerStatus(); - } - } -} diff --git a/client2/src/store/stores/ui.ts b/client2/src/store/stores/ui.ts deleted file mode 100644 index c0d0377ec7d..00000000000 --- a/client2/src/store/stores/ui.ts +++ /dev/null @@ -1,36 +0,0 @@ -import React from 'react'; -import { makeAutoObservable, observable, action } from 'mobx'; -import { translate } from '@adguard/translate'; - -import { Locale, DEFAULT_LOCALE, i18n } from 'Localization'; -import { Store } from 'Store'; -import { Store as InstallStore } from 'Store/installStore'; - -export default class UI { - rootStore: Store | InstallStore; - - currentLang = DEFAULT_LOCALE; - - intl = translate.createReactTranslator(i18n(this.currentLang), React); - - sidebarOpen = false; - - constructor(rootStore: Store | InstallStore) { - this.rootStore = rootStore; - makeAutoObservable(this, { - intl: observable.struct, - rootStore: false, - sidebarOpen: observable, - toggleSidebar: action, - }); - } - - updateLang = (lang: Locale) => { - this.currentLang = lang; - this.intl = translate.createReactTranslator(i18n(this.currentLang), React); - }; - - toggleSidebar = () => { - this.sidebarOpen = !this.sidebarOpen; - }; -} diff --git a/client2/src/store/stores/utils.ts b/client2/src/store/stores/utils.ts deleted file mode 100644 index df679d58ff4..00000000000 --- a/client2/src/store/stores/utils.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { Store } from 'Store'; - -export interface IStore { - rootStore: Store; - init: () => void; - inited: boolean; -} -/* -Each store should implement IStore to work properly if user not loggged in -and after log in like: - -import { flow, makeAutoObservable, observable } from 'mobx'; -import { Store } from 'Store'; -import { IStore } from './utils'; - -export default class SomeStore implements IStore { - rootStore: Store; - - inited = false; - - constructor(rootStore: Store) { - this.rootStore = rootStore; - makeAutoObservable(this, { - rootStore: false, - inited: observable, - init: flow, - }); - if (this.rootStore.login.loggedIn) { - this.init(); - } - } - - * init() { - this.inited = true; - } -} - -*/ diff --git a/client2/tsconfig.json b/client2/tsconfig.json deleted file mode 100644 index fa3398ad940..00000000000 --- a/client2/tsconfig.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "compilerOptions": { - "allowSyntheticDefaultImports": true, - "alwaysStrict": true, - "target": "es6", - "module": "ESNext", - "moduleResolution": "node", - "noResolve": false, - "noImplicitAny": true, - "strict": true, - "removeComments": true, - "sourceMap": true, - "jsx": "react", - "resolveJsonModule": true, - "baseUrl": "src", - "paths": { - "Apis/*": ["lib/apis/*"], - "Common": ["components/common/index"], - "Common/*": ["components/common/*"], - "Components/*": ["components/*"], - "Consts/*": ["lib/consts/*"], - "Entities/*": ["lib/entities/*"], - "Hooks": ["lib/hooks"], - "Helpers/*": ["lib/helpers/*"], - "Lib/*": ["lib/*"], - "Localization": ["localization/index"], - "Paths": ["components/App/Routes/Paths"], - "Store": ["store/store"], - "Store/*": ["store/*"] - }, - "types": [ - "react", - "react-dom", - "node" - ], - "useDefineForClassFields": true - }, - "include": ["src/**/*", "./declaration.d.ts"], - "exclude": ["./node_modules/**/*", "./scripts/generator/**/*"] -} diff --git a/client2/yarn.lock b/client2/yarn.lock deleted file mode 100644 index d171bb541c1..00000000000 --- a/client2/yarn.lock +++ /dev/null @@ -1,8554 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@adguard/translate@^0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@adguard/translate/-/translate-0.2.0.tgz#6b74b037167ec0cae32e6b7423cb35eb1b08a1b3" - integrity sha512-zvpaEKMABcCCuEr7WpGRGgfdzp8L0OMuM0KUI7uwWapX+/i75ifffbWnKxi/LUdZDJu8kJPnmLN/DD5hngZuQQ== - -"@ant-design/colors@^5.0.0": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@ant-design/colors/-/colors-5.0.1.tgz#09670f2f44a7473d7bc01be901c48ec10f12c7a4" - integrity sha512-x1TUaRILaqy3zgFNo+kIqOa3eTYPt81H1/3E4dCjDP4Qvk/xaPEizLDFdRUcIx0cWwyu2LklwfyLHWpbYK8v6A== - dependencies: - "@ctrl/tinycolor" "^3.3.1" - -"@ant-design/icons-svg@^4.0.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@ant-design/icons-svg/-/icons-svg-4.1.0.tgz#480b025f4b20ef7fe8f47d4a4846e4fee84ea06c" - integrity sha512-Fi03PfuUqRs76aI3UWYpP864lkrfPo0hluwGqh7NJdLhvH4iRDc3jbJqZIvRDLHKbXrvAfPPV3+zjUccfFvWOQ== - -"@ant-design/icons@^4.4.0": - version "4.4.0" - resolved "https://registry.yarnpkg.com/@ant-design/icons/-/icons-4.4.0.tgz#d4e4ba5910454e1d3f67a802d2aad9ee75a51dea" - integrity sha512-+X44IouK56JbP3r7zM+Zoykv5wQlXBlxY0NTaFXGpiyYSS/Bh6HIo9aTF62QkSuDTqA3UpeNVTRFioKKRmkWDQ== - dependencies: - "@ant-design/colors" "^5.0.0" - "@ant-design/icons-svg" "^4.0.0" - "@babel/runtime" "^7.11.2" - classnames "^2.2.6" - insert-css "^2.0.0" - rc-util "^5.0.1" - -"@ant-design/react-slick@~0.28.1": - version "0.28.1" - resolved "https://registry.yarnpkg.com/@ant-design/react-slick/-/react-slick-0.28.1.tgz#2e0720838cb57ab8818384dcc96b2a8c61fcd01e" - integrity sha512-Uk+GNexHOmiK3BMk/xvliNsNt+LYnN49u5o4lqeuMKXJlNqE9kGpEF03KpxDqu/zybO0/0yAJALha8oPtR5iHA== - dependencies: - "@babel/runtime" "^7.10.4" - classnames "^2.2.5" - json2mq "^0.2.0" - lodash "^4.17.15" - resize-observer-polyfill "^1.5.0" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" - integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== - dependencies: - "@babel/highlight" "^7.10.4" - -"@babel/core@>=7.9.0": - version "7.12.10" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.10.tgz#b79a2e1b9f70ed3d84bbfb6d8c4ef825f606bccd" - integrity sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.12.10" - "@babel/helper-module-transforms" "^7.12.1" - "@babel/helpers" "^7.12.5" - "@babel/parser" "^7.12.10" - "@babel/template" "^7.12.7" - "@babel/traverse" "^7.12.10" - "@babel/types" "^7.12.10" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.1" - json5 "^2.1.2" - lodash "^4.17.19" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/generator@^7.12.10", "@babel/generator@^7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.11.tgz#98a7df7b8c358c9a37ab07a24056853016aba3af" - integrity sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA== - dependencies: - "@babel/types" "^7.12.11" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/helper-function-name@^7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz#1fd7738aee5dcf53c3ecff24f1da9c511ec47b42" - integrity sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA== - dependencies: - "@babel/helper-get-function-arity" "^7.12.10" - "@babel/template" "^7.12.7" - "@babel/types" "^7.12.11" - -"@babel/helper-get-function-arity@^7.12.10": - version "7.12.10" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz#b158817a3165b5faa2047825dfa61970ddcc16cf" - integrity sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag== - dependencies: - "@babel/types" "^7.12.10" - -"@babel/helper-member-expression-to-functions@^7.12.7": - version "7.12.7" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz#aa77bd0396ec8114e5e30787efa78599d874a855" - integrity sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw== - dependencies: - "@babel/types" "^7.12.7" - -"@babel/helper-module-imports@^7.12.1": - version "7.12.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz#1bfc0229f794988f76ed0a4d4e90860850b54dfb" - integrity sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA== - dependencies: - "@babel/types" "^7.12.5" - -"@babel/helper-module-transforms@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz#7954fec71f5b32c48e4b303b437c34453fd7247c" - integrity sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w== - dependencies: - "@babel/helper-module-imports" "^7.12.1" - "@babel/helper-replace-supers" "^7.12.1" - "@babel/helper-simple-access" "^7.12.1" - "@babel/helper-split-export-declaration" "^7.11.0" - "@babel/helper-validator-identifier" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.12.1" - "@babel/types" "^7.12.1" - lodash "^4.17.19" - -"@babel/helper-optimise-call-expression@^7.12.10": - version "7.12.10" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz#94ca4e306ee11a7dd6e9f42823e2ac6b49881e2d" - integrity sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ== - dependencies: - "@babel/types" "^7.12.10" - -"@babel/helper-replace-supers@^7.12.1": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.11.tgz#ea511658fc66c7908f923106dd88e08d1997d60d" - integrity sha512-q+w1cqmhL7R0FNzth/PLLp2N+scXEK/L2AHbXUyydxp828F4FEa5WcVoqui9vFRiHDQErj9Zof8azP32uGVTRA== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.12.7" - "@babel/helper-optimise-call-expression" "^7.12.10" - "@babel/traverse" "^7.12.10" - "@babel/types" "^7.12.11" - -"@babel/helper-simple-access@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz#32427e5aa61547d38eb1e6eaf5fd1426fdad9136" - integrity sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA== - dependencies: - "@babel/types" "^7.12.1" - -"@babel/helper-split-export-declaration@^7.11.0", "@babel/helper-split-export-declaration@^7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz#1b4cc424458643c47d37022223da33d76ea4603a" - integrity sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g== - dependencies: - "@babel/types" "^7.12.11" - -"@babel/helper-validator-identifier@^7.10.4", "@babel/helper-validator-identifier@^7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" - integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== - -"@babel/helpers@^7.12.5": - version "7.12.5" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.5.tgz#1a1ba4a768d9b58310eda516c449913fe647116e" - integrity sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA== - dependencies: - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.12.5" - "@babel/types" "^7.12.5" - -"@babel/highlight@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" - integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== - dependencies: - "@babel/helper-validator-identifier" "^7.10.4" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.12.10", "@babel/parser@^7.12.11", "@babel/parser@^7.12.7": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.11.tgz#9ce3595bcd74bc5c466905e86c535b8b25011e79" - integrity sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg== - -"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.1", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.4", "@babel/runtime@^7.11.1", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.8.4": - version "7.12.5" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e" - integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/template@^7.10.4", "@babel/template@^7.12.7": - version "7.12.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.7.tgz#c817233696018e39fbb6c491d2fb684e05ed43bc" - integrity sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/parser" "^7.12.7" - "@babel/types" "^7.12.7" - -"@babel/traverse@^7.12.1", "@babel/traverse@^7.12.10", "@babel/traverse@^7.12.5": - version "7.12.12" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.12.tgz#d0cd87892704edd8da002d674bc811ce64743376" - integrity sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w== - dependencies: - "@babel/code-frame" "^7.12.11" - "@babel/generator" "^7.12.11" - "@babel/helper-function-name" "^7.12.11" - "@babel/helper-split-export-declaration" "^7.12.11" - "@babel/parser" "^7.12.11" - "@babel/types" "^7.12.12" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.19" - -"@babel/types@^7.12.1", "@babel/types@^7.12.10", "@babel/types@^7.12.11", "@babel/types@^7.12.12", "@babel/types@^7.12.5", "@babel/types@^7.12.7": - version "7.12.12" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.12.tgz#4608a6ec313abbd87afa55004d373ad04a96c299" - integrity sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ== - dependencies: - "@babel/helper-validator-identifier" "^7.12.11" - lodash "^4.17.19" - to-fast-properties "^2.0.0" - -"@csstools/convert-colors@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" - integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== - -"@ctrl/tinycolor@^3.3.1": - version "3.3.3" - resolved "https://registry.yarnpkg.com/@ctrl/tinycolor/-/tinycolor-3.3.3.tgz#980487763bc7c9238d6d88d1ac0dee2d4df3df68" - integrity sha512-v75yutF4BDMv9weDQVM+K5XEfjiODhugSV729pnoxtBDO61ij2CsDnQa4N4E9xGaH3/FX5ASZjnajljT2F71tA== - -"@discoveryjs/json-ext@^0.5.0": - version "0.5.2" - resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz#8f03a22a04de437254e8ce8cc84ba39689288752" - integrity sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg== - -"@dsherret/to-absolute-glob@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@dsherret/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz#1f6475dc8bd974cea07a2daf3864b317b1dd332c" - integrity sha1-H2R13IvZdM6gei2vOGSzF7HdMyw= - dependencies: - is-absolute "^1.0.0" - is-negated-glob "^1.0.0" - -"@eslint/eslintrc@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.3.0.tgz#d736d6963d7003b6514e6324bec9c602ac340318" - integrity sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg== - dependencies: - ajv "^6.12.4" - debug "^4.1.1" - espree "^7.3.0" - globals "^12.1.0" - ignore "^4.0.6" - import-fresh "^3.2.1" - js-yaml "^3.13.1" - lodash "^4.17.20" - minimatch "^3.0.4" - strip-json-comments "^3.1.1" - -"@nodelib/fs.scandir@2.1.4": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz#d4b3549a5db5de2683e0c1071ab4f140904bbf69" - integrity sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA== - dependencies: - "@nodelib/fs.stat" "2.0.4" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.4", "@nodelib/fs.stat@^2.0.2": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz#a3f2dd61bab43b8db8fa108a121cfffe4c676655" - integrity sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q== - -"@nodelib/fs.walk@^1.2.3": - version "1.2.6" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz#cce9396b30aa5afe9e3756608f5831adcb53d063" - integrity sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow== - dependencies: - "@nodelib/fs.scandir" "2.1.4" - fastq "^1.6.0" - -"@npmcli/move-file@^1.0.1": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.0.tgz#4ef8a53d727b9e43facf35404caf55ebf92cfec8" - integrity sha512-Iv2iq0JuyYjKeFkSR4LPaCdDZwlGK9X2cP/01nJcp3yMJ1FjNd9vpiEYvLUgzBxKPg2SFmaOhizoQsPc0LWeOQ== - dependencies: - mkdirp "^1.0.4" - rimraf "^2.7.1" - -"@sentry/browser@5.30.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-5.30.0.tgz#c28f49d551db3172080caef9f18791a7fd39e3b3" - integrity sha512-rOb58ZNVJWh1VuMuBG1mL9r54nZqKeaIlwSlvzJfc89vyfd7n6tQ1UXMN383QBz/MS5H5z44Hy5eE+7pCrYAfw== - dependencies: - "@sentry/core" "5.30.0" - "@sentry/types" "5.30.0" - "@sentry/utils" "5.30.0" - tslib "^1.9.3" - -"@sentry/core@5.30.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-5.30.0.tgz#6b203664f69e75106ee8b5a2fe1d717379b331f3" - integrity sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg== - dependencies: - "@sentry/hub" "5.30.0" - "@sentry/minimal" "5.30.0" - "@sentry/types" "5.30.0" - "@sentry/utils" "5.30.0" - tslib "^1.9.3" - -"@sentry/hub@5.30.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-5.30.0.tgz#2453be9b9cb903404366e198bd30c7ca74cdc100" - integrity sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ== - dependencies: - "@sentry/types" "5.30.0" - "@sentry/utils" "5.30.0" - tslib "^1.9.3" - -"@sentry/minimal@5.30.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-5.30.0.tgz#ce3d3a6a273428e0084adcb800bc12e72d34637b" - integrity sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw== - dependencies: - "@sentry/hub" "5.30.0" - "@sentry/types" "5.30.0" - tslib "^1.9.3" - -"@sentry/react@^5.27.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/react/-/react-5.30.0.tgz#320e05f766b6a26faefa8d76d1101fd50c69f541" - integrity sha512-dvn4mqCgbeEuUXEGp5P9PaW5j4GWTFUSdx/yG8f9IxNZv5zM+7otjog9ukrubFZvlxVxD/PrIxK0MhadfFY/Dw== - dependencies: - "@sentry/browser" "5.30.0" - "@sentry/minimal" "5.30.0" - "@sentry/types" "5.30.0" - "@sentry/utils" "5.30.0" - hoist-non-react-statics "^3.3.2" - tslib "^1.9.3" - -"@sentry/types@5.30.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/types/-/types-5.30.0.tgz#19709bbe12a1a0115bc790b8942917da5636f402" - integrity sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw== - -"@sentry/utils@5.30.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-5.30.0.tgz#9a5bd7ccff85ccfe7856d493bffa64cabc41e980" - integrity sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww== - dependencies: - "@sentry/types" "5.30.0" - tslib "^1.9.3" - -"@stylelint/postcss-css-in-js@^0.37.2": - version "0.37.2" - resolved "https://registry.yarnpkg.com/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.37.2.tgz#7e5a84ad181f4234a2480803422a47b8749af3d2" - integrity sha512-nEhsFoJurt8oUmieT8qy4nk81WRHmJynmVwn/Vts08PL9fhgIsMhk1GId5yAN643OzqEEb5S/6At2TZW7pqPDA== - dependencies: - "@babel/core" ">=7.9.0" - -"@stylelint/postcss-markdown@^0.36.2": - version "0.36.2" - resolved "https://registry.yarnpkg.com/@stylelint/postcss-markdown/-/postcss-markdown-0.36.2.tgz#0a540c4692f8dcdfc13c8e352c17e7bfee2bb391" - integrity sha512-2kGbqUVJUGE8dM+bMzXG/PYUWKkjLIkRLWNh39OaADkiabDRdw8ATFCgbMz5xdIcvwspPAluSL7uY+ZiTWdWmQ== - dependencies: - remark "^13.0.0" - unist-util-find-all-after "^3.0.2" - -"@ts-morph/common@~0.6.0": - version "0.6.0" - resolved "https://registry.yarnpkg.com/@ts-morph/common/-/common-0.6.0.tgz#cbd4ee57c5ef971511b9c5778e0bb8eb27de4783" - integrity sha512-pI35nZz5bs3tL3btSVX2cWkAE8rc80F+Fn4TwSC6bQvn7fgn9IyLXVcAfpG6X6NBY5wN9TkSWXn/QYUkBvR/Fw== - dependencies: - "@dsherret/to-absolute-glob" "^2.0.2" - fast-glob "^3.2.4" - fs-extra "^9.0.1" - is-negated-glob "^1.0.0" - multimatch "^4.0.0" - typescript "~4.0.2" - -"@types/anymatch@*": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a" - integrity sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA== - -"@types/classnames@^2.2.10": - version "2.2.11" - resolved "https://registry.yarnpkg.com/@types/classnames/-/classnames-2.2.11.tgz#2521cc86f69d15c5b90664e4829d84566052c1cf" - integrity sha512-2koNhpWm3DgWRp5tpkiJ8JGc1xTn2q0l+jUNUE7oMKXUf5NpI9AIdC4kbjGNFBdHtcxBD18LAksoudAVhFKCjw== - -"@types/eslint-scope@^3.7.0": - version "3.7.0" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.0.tgz#4792816e31119ebd506902a482caec4951fabd86" - integrity sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw== - dependencies: - "@types/eslint" "*" - "@types/estree" "*" - -"@types/eslint@*": - version "7.2.6" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.2.6.tgz#5e9aff555a975596c03a98b59ecd103decc70c3c" - integrity sha512-I+1sYH+NPQ3/tVqCeUSBwTE/0heyvtXqpIopUUArlBm0Kpocb8FbMa3AZ/ASKIFpN3rnEx932TTXDbt9OXsNDw== - dependencies: - "@types/estree" "*" - "@types/json-schema" "*" - -"@types/estree@*", "@types/estree@^0.0.46": - version "0.0.46" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.46.tgz#0fb6bfbbeabd7a30880504993369c4bf1deab1fe" - integrity sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg== - -"@types/glob@^7.1.1": - version "7.1.3" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" - integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== - dependencies: - "@types/minimatch" "*" - "@types/node" "*" - -"@types/history@*": - version "4.7.8" - resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.8.tgz#49348387983075705fe8f4e02fb67f7daaec4934" - integrity sha512-S78QIYirQcUoo6UJZx9CSP0O2ix9IaeAXwQi26Rhr/+mg7qqPy8TzaxHSUut7eGjL8WmLccT7/MXf304WjqHcA== - -"@types/hoist-non-react-statics@^3.3.0": - version "3.3.1" - resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz#1124aafe5118cb591977aeb1ceaaed1070eb039f" - integrity sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA== - dependencies: - "@types/react" "*" - hoist-non-react-statics "^3.3.0" - -"@types/html-minifier-terser@^5.0.0": - version "5.1.1" - resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#3c9ee980f1a10d6021ae6632ca3e79ca2ec4fb50" - integrity sha512-giAlZwstKbmvMk1OO7WXSj4OZ0keXAcl2TQq4LWHiiPH2ByaH7WeUzng+Qej8UPxxv+8lRTuouo0iaNDBuzIBA== - -"@types/http-proxy@^1.17.4": - version "1.17.5" - resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.5.tgz#c203c5e6e9dc6820d27a40eb1e511c70a220423d" - integrity sha512-GNkDE7bTv6Sf8JbV2GksknKOsk7OznNYHSdrtvPJXO0qJ9odZig6IZKUi5RFGi6d1bf6dgIAe4uXi3DBc7069Q== - dependencies: - "@types/node" "*" - -"@types/json-schema@*", "@types/json-schema@^7.0.3", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6": - version "7.0.7" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" - integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== - -"@types/json5@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= - -"@types/mdast@^3.0.0": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.3.tgz#2d7d671b1cd1ea3deb306ea75036c2a0407d2deb" - integrity sha512-SXPBMnFVQg1s00dlMCc/jCdvPqdE4mXaMMCeRlxLDmTAEoegHT53xKtkDnzDTOcmMHUfcjyf36/YYZ6SxRdnsw== - dependencies: - "@types/unist" "*" - -"@types/minimatch@*", "@types/minimatch@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" - integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== - -"@types/minimist@^1.2.0": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.1.tgz#283f669ff76d7b8260df8ab7a4262cc83d988256" - integrity sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg== - -"@types/node@*": - version "14.14.22" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.22.tgz#0d29f382472c4ccf3bd96ff0ce47daf5b7b84b18" - integrity sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw== - -"@types/normalize-package-data@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" - integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== - -"@types/parse-json@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" - integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== - -"@types/prop-types@*": - version "15.7.3" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" - integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== - -"@types/q@^1.5.1": - version "1.5.4" - resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24" - integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug== - -"@types/qs@^6.9.5": - version "6.9.5" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.5.tgz#434711bdd49eb5ee69d90c1d67c354a9a8ecb18b" - integrity sha512-/JHkVHtx/REVG0VVToGRGH2+23hsYLHdyG+GrvoUGlGAd0ErauXDyvHtRI/7H7mzLm+tBCKA7pfcpkQ1lf58iQ== - -"@types/react-dom@^16.9.8": - version "16.9.10" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.10.tgz#4485b0bec3d41f856181b717f45fd7831101156f" - integrity sha512-ItatOrnXDMAYpv6G8UCk2VhbYVTjZT9aorLtA/OzDN9XJ2GKcfam68jutoAcILdRjsRUO8qb7AmyObF77Q8QFw== - dependencies: - "@types/react" "^16" - -"@types/react-redux@^7.1.9": - version "7.1.16" - resolved "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-7.1.16.tgz#0fbd04c2500c12105494c83d4a3e45c084e3cb21" - integrity sha512-f/FKzIrZwZk7YEO9E1yoxIuDNRiDducxkFlkw/GNMGEnK9n4K8wJzlJBghpSuOVDgEUHoDkDF7Gi9lHNQR4siw== - dependencies: - "@types/hoist-non-react-statics" "^3.3.0" - "@types/react" "*" - hoist-non-react-statics "^3.3.0" - redux "^4.0.0" - -"@types/react-router-dom@^5.1.6": - version "5.1.7" - resolved "https://registry.yarnpkg.com/@types/react-router-dom/-/react-router-dom-5.1.7.tgz#a126d9ea76079ffbbdb0d9225073eb5797ab7271" - integrity sha512-D5mHD6TbdV/DNHYsnwBTv+y73ei+mMjrkGrla86HthE4/PVvL1J94Bu3qABU+COXzpL23T1EZapVVpwHuBXiUg== - dependencies: - "@types/history" "*" - "@types/react" "*" - "@types/react-router" "*" - -"@types/react-router@*": - version "5.1.11" - resolved "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.11.tgz#b01ce4cb21bf7d6b32edc862fc1e2c0088044b5b" - integrity sha512-ofHbZMlp0Y2baOHgsWBQ4K3AttxY61bDMkwTiBOkPg7U6C/3UwwB5WaIx28JmSVi/eX3uFEMRo61BV22fDQIvg== - dependencies: - "@types/history" "*" - "@types/react" "*" - -"@types/react@*": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.0.tgz#5af3eb7fad2807092f0046a1302b7823e27919b8" - integrity sha512-aj/L7RIMsRlWML3YB6KZiXB3fV2t41+5RBGYF8z+tAKU43Px8C3cYUZsDvf1/+Bm4FK21QWBrDutu8ZJ/70qOw== - dependencies: - "@types/prop-types" "*" - csstype "^3.0.2" - -"@types/react@^16", "@types/react@^16.9.53": - version "16.14.2" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.14.2.tgz#85dcc0947d0645349923c04ccef6018a1ab7538c" - integrity sha512-BzzcAlyDxXl2nANlabtT4thtvbbnhee8hMmH/CcJrISDBVcJS1iOsP1f0OAgSdGE0MsY9tqcrb9YoZcOFv9dbQ== - dependencies: - "@types/prop-types" "*" - csstype "^3.0.2" - -"@types/source-list-map@*": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" - integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== - -"@types/tapable@*", "@types/tapable@^1.0.5": - version "1.0.6" - resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.6.tgz#a9ca4b70a18b270ccb2bc0aaafefd1d486b7ea74" - integrity sha512-W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA== - -"@types/uglify-js@*": - version "3.11.1" - resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.11.1.tgz#97ff30e61a0aa6876c270b5f538737e2d6ab8ceb" - integrity sha512-7npvPKV+jINLu1SpSYVWG8KvyJBhBa8tmzMMdDoVc2pWUYHN8KIXlPJhjJ4LT97c4dXJA2SHL/q6ADbDriZN+Q== - dependencies: - source-map "^0.6.1" - -"@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e" - integrity sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ== - -"@types/webpack-sources@*": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-2.1.0.tgz#8882b0bd62d1e0ce62f183d0d01b72e6e82e8c10" - integrity sha512-LXn/oYIpBeucgP1EIJbKQ2/4ZmpvRl+dlrFdX7+94SKRUV3Evy3FsfMZY318vGhkWUS5MPhtOM3w1/hCOAOXcg== - dependencies: - "@types/node" "*" - "@types/source-list-map" "*" - source-map "^0.7.3" - -"@types/webpack@^4.41.8": - version "4.41.26" - resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.26.tgz#27a30d7d531e16489f9c7607c747be6bc1a459ef" - integrity sha512-7ZyTfxjCRwexh+EJFwRUM+CDB2XvgHl4vfuqf1ZKrgGvcS5BrNvPQqJh3tsZ0P6h6Aa1qClVHaJZszLPzpqHeA== - dependencies: - "@types/anymatch" "*" - "@types/node" "*" - "@types/tapable" "*" - "@types/uglify-js" "*" - "@types/webpack-sources" "*" - source-map "^0.6.0" - -"@typescript-eslint/eslint-plugin@^4.5.0": - version "4.14.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.14.1.tgz#22dd301ce228aaab3416b14ead10b1db3e7d3180" - integrity sha512-5JriGbYhtqMS1kRcZTQxndz1lKMwwEXKbwZbkUZNnp6MJX0+OVXnG0kOlBZP4LUAxEyzu3cs+EXd/97MJXsGfw== - dependencies: - "@typescript-eslint/experimental-utils" "4.14.1" - "@typescript-eslint/scope-manager" "4.14.1" - debug "^4.1.1" - functional-red-black-tree "^1.0.1" - lodash "^4.17.15" - regexpp "^3.0.0" - semver "^7.3.2" - tsutils "^3.17.1" - -"@typescript-eslint/experimental-utils@4.14.1": - version "4.14.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.14.1.tgz#a5c945cb24dabb96747180e1cfc8487f8066f471" - integrity sha512-2CuHWOJwvpw0LofbyG5gvYjEyoJeSvVH2PnfUQSn0KQr4v8Dql2pr43ohmx4fdPQ/eVoTSFjTi/bsGEXl/zUUQ== - dependencies: - "@types/json-schema" "^7.0.3" - "@typescript-eslint/scope-manager" "4.14.1" - "@typescript-eslint/types" "4.14.1" - "@typescript-eslint/typescript-estree" "4.14.1" - eslint-scope "^5.0.0" - eslint-utils "^2.0.0" - -"@typescript-eslint/parser@4.4.1": - version "4.4.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.4.1.tgz#25fde9c080611f303f2f33cedb145d2c59915b80" - integrity sha512-S0fuX5lDku28Au9REYUsV+hdJpW/rNW0gWlc4SXzF/kdrRaAVX9YCxKpziH7djeWT/HFAjLZcnY7NJD8xTeUEg== - dependencies: - "@typescript-eslint/scope-manager" "4.4.1" - "@typescript-eslint/types" "4.4.1" - "@typescript-eslint/typescript-estree" "4.4.1" - debug "^4.1.1" - -"@typescript-eslint/parser@^4.5.0": - version "4.14.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.14.1.tgz#3bd6c24710cd557d8446625284bcc9c6d52817c6" - integrity sha512-mL3+gU18g9JPsHZuKMZ8Z0Ss9YP1S5xYZ7n68Z98GnPq02pYNQuRXL85b9GYhl6jpdvUc45Km7hAl71vybjUmw== - dependencies: - "@typescript-eslint/scope-manager" "4.14.1" - "@typescript-eslint/types" "4.14.1" - "@typescript-eslint/typescript-estree" "4.14.1" - debug "^4.1.1" - -"@typescript-eslint/scope-manager@4.14.1": - version "4.14.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.14.1.tgz#8444534254c6f370e9aa974f035ced7fe713ce02" - integrity sha512-F4bjJcSqXqHnC9JGUlnqSa3fC2YH5zTtmACS1Hk+WX/nFB0guuynVK5ev35D4XZbdKjulXBAQMyRr216kmxghw== - dependencies: - "@typescript-eslint/types" "4.14.1" - "@typescript-eslint/visitor-keys" "4.14.1" - -"@typescript-eslint/scope-manager@4.4.1": - version "4.4.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.4.1.tgz#d19447e60db2ce9c425898d62fa03b2cce8ea3f9" - integrity sha512-2oD/ZqD4Gj41UdFeWZxegH3cVEEH/Z6Bhr/XvwTtGv66737XkR4C9IqEkebCuqArqBJQSj4AgNHHiN1okzD/wQ== - dependencies: - "@typescript-eslint/types" "4.4.1" - "@typescript-eslint/visitor-keys" "4.4.1" - -"@typescript-eslint/types@4.14.1": - version "4.14.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.14.1.tgz#b3d2eb91dafd0fd8b3fce7c61512ac66bd0364aa" - integrity sha512-SkhzHdI/AllAgQSxXM89XwS1Tkic7csPdndUuTKabEwRcEfR8uQ/iPA3Dgio1rqsV3jtqZhY0QQni8rLswJM2w== - -"@typescript-eslint/types@4.4.1": - version "4.4.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.4.1.tgz#c507b35cf523bc7ba00aae5f75ee9b810cdabbc1" - integrity sha512-KNDfH2bCyax5db+KKIZT4rfA8rEk5N0EJ8P0T5AJjo5xrV26UAzaiqoJCxeaibqc0c/IvZxp7v2g3difn2Pn3w== - -"@typescript-eslint/typescript-estree@4.14.1": - version "4.14.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.14.1.tgz#20d3b8c8e3cdc8f764bdd5e5b0606dd83da6075b" - integrity sha512-M8+7MbzKC1PvJIA8kR2sSBnex8bsR5auatLCnVlNTJczmJgqRn8M+sAlQfkEq7M4IY3WmaNJ+LJjPVRrREVSHQ== - dependencies: - "@typescript-eslint/types" "4.14.1" - "@typescript-eslint/visitor-keys" "4.14.1" - debug "^4.1.1" - globby "^11.0.1" - is-glob "^4.0.1" - lodash "^4.17.15" - semver "^7.3.2" - tsutils "^3.17.1" - -"@typescript-eslint/typescript-estree@4.4.1": - version "4.4.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.4.1.tgz#598f6de488106c2587d47ca2462c60f6e2797cb8" - integrity sha512-wP/V7ScKzgSdtcY1a0pZYBoCxrCstLrgRQ2O9MmCUZDtmgxCO/TCqOTGRVwpP4/2hVfqMz/Vw1ZYrG8cVxvN3g== - dependencies: - "@typescript-eslint/types" "4.4.1" - "@typescript-eslint/visitor-keys" "4.4.1" - debug "^4.1.1" - globby "^11.0.1" - is-glob "^4.0.1" - lodash "^4.17.15" - semver "^7.3.2" - tsutils "^3.17.1" - -"@typescript-eslint/visitor-keys@4.14.1": - version "4.14.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.14.1.tgz#e93c2ff27f47ee477a929b970ca89d60a117da91" - integrity sha512-TAblbDXOI7bd0C/9PE1G+AFo7R5uc+ty1ArDoxmrC1ah61Hn6shURKy7gLdRb1qKJmjHkqu5Oq+e4Kt0jwf1IA== - dependencies: - "@typescript-eslint/types" "4.14.1" - eslint-visitor-keys "^2.0.0" - -"@typescript-eslint/visitor-keys@4.4.1": - version "4.4.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.4.1.tgz#1769dc7a9e2d7d2cfd3318b77ed8249187aed5c3" - integrity sha512-H2JMWhLaJNeaylSnMSQFEhT/S/FsJbebQALmoJxMPMxLtlVAMy2uJP/Z543n9IizhjRayLSqoInehCeNW9rWcw== - dependencies: - "@typescript-eslint/types" "4.4.1" - eslint-visitor-keys "^2.0.0" - -"@webassemblyjs/ast@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.0.tgz#a5aa679efdc9e51707a4207139da57920555961f" - integrity sha512-kX2W49LWsbthrmIRMbQZuQDhGtjyqXfEmmHyEi4XWnSZtPmxY0+3anPIzsnRb45VH/J55zlOfWvZuY47aJZTJg== - dependencies: - "@webassemblyjs/helper-numbers" "1.11.0" - "@webassemblyjs/helper-wasm-bytecode" "1.11.0" - -"@webassemblyjs/floating-point-hex-parser@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.0.tgz#34d62052f453cd43101d72eab4966a022587947c" - integrity sha512-Q/aVYs/VnPDVYvsCBL/gSgwmfjeCb4LW8+TMrO3cSzJImgv8lxxEPM2JA5jMrivE7LSz3V+PFqtMbls3m1exDA== - -"@webassemblyjs/helper-api-error@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz#aaea8fb3b923f4aaa9b512ff541b013ffb68d2d4" - integrity sha512-baT/va95eXiXb2QflSx95QGT5ClzWpGaa8L7JnJbgzoYeaA27FCvuBXU758l+KXWRndEmUXjP0Q5fibhavIn8w== - -"@webassemblyjs/helper-buffer@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz#d026c25d175e388a7dbda9694e91e743cbe9b642" - integrity sha512-u9HPBEl4DS+vA8qLQdEQ6N/eJQ7gT7aNvMIo8AAWvAl/xMrcOSiI2M0MAnMCy3jIFke7bEee/JwdX1nUpCtdyA== - -"@webassemblyjs/helper-numbers@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.0.tgz#7ab04172d54e312cc6ea4286d7d9fa27c88cd4f9" - integrity sha512-DhRQKelIj01s5IgdsOJMKLppI+4zpmcMQ3XboFPLwCpSNH6Hqo1ritgHgD0nqHeSYqofA6aBN/NmXuGjM1jEfQ== - dependencies: - "@webassemblyjs/floating-point-hex-parser" "1.11.0" - "@webassemblyjs/helper-api-error" "1.11.0" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/helper-wasm-bytecode@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz#85fdcda4129902fe86f81abf7e7236953ec5a4e1" - integrity sha512-MbmhvxXExm542tWREgSFnOVo07fDpsBJg3sIl6fSp9xuu75eGz5lz31q7wTLffwL3Za7XNRCMZy210+tnsUSEA== - -"@webassemblyjs/helper-wasm-section@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.0.tgz#9ce2cc89300262509c801b4af113d1ca25c1a75b" - integrity sha512-3Eb88hcbfY/FCukrg6i3EH8H2UsD7x8Vy47iVJrP967A9JGqgBVL9aH71SETPx1JrGsOUVLo0c7vMCN22ytJew== - dependencies: - "@webassemblyjs/ast" "1.11.0" - "@webassemblyjs/helper-buffer" "1.11.0" - "@webassemblyjs/helper-wasm-bytecode" "1.11.0" - "@webassemblyjs/wasm-gen" "1.11.0" - -"@webassemblyjs/ieee754@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.0.tgz#46975d583f9828f5d094ac210e219441c4e6f5cf" - integrity sha512-KXzOqpcYQwAfeQ6WbF6HXo+0udBNmw0iXDmEK5sFlmQdmND+tr773Ti8/5T/M6Tl/413ArSJErATd8In3B+WBA== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.0.tgz#f7353de1df38aa201cba9fb88b43f41f75ff403b" - integrity sha512-aqbsHa1mSQAbeeNcl38un6qVY++hh8OpCOzxhixSYgbRfNWcxJNJQwe2rezK9XEcssJbbWIkblaJRwGMS9zp+g== - dependencies: - "@xtuc/long" "4.2.2" - -"@webassemblyjs/utf8@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.0.tgz#86e48f959cf49e0e5091f069a709b862f5a2cadf" - integrity sha512-A/lclGxH6SpSLSyFowMzO/+aDEPU4hvEiooCMXQPcQFPPJaYcPQNKGOCLUySJsYJ4trbpr+Fs08n4jelkVTGVw== - -"@webassemblyjs/wasm-edit@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.0.tgz#ee4a5c9f677046a210542ae63897094c2027cb78" - integrity sha512-JHQ0damXy0G6J9ucyKVXO2j08JVJ2ntkdJlq1UTiUrIgfGMmA7Ik5VdC/L8hBK46kVJgujkBIoMtT8yVr+yVOQ== - dependencies: - "@webassemblyjs/ast" "1.11.0" - "@webassemblyjs/helper-buffer" "1.11.0" - "@webassemblyjs/helper-wasm-bytecode" "1.11.0" - "@webassemblyjs/helper-wasm-section" "1.11.0" - "@webassemblyjs/wasm-gen" "1.11.0" - "@webassemblyjs/wasm-opt" "1.11.0" - "@webassemblyjs/wasm-parser" "1.11.0" - "@webassemblyjs/wast-printer" "1.11.0" - -"@webassemblyjs/wasm-gen@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.0.tgz#3cdb35e70082d42a35166988dda64f24ceb97abe" - integrity sha512-BEUv1aj0WptCZ9kIS30th5ILASUnAPEvE3tVMTrItnZRT9tXCLW2LEXT8ezLw59rqPP9klh9LPmpU+WmRQmCPQ== - dependencies: - "@webassemblyjs/ast" "1.11.0" - "@webassemblyjs/helper-wasm-bytecode" "1.11.0" - "@webassemblyjs/ieee754" "1.11.0" - "@webassemblyjs/leb128" "1.11.0" - "@webassemblyjs/utf8" "1.11.0" - -"@webassemblyjs/wasm-opt@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.0.tgz#1638ae188137f4bb031f568a413cd24d32f92978" - integrity sha512-tHUSP5F4ywyh3hZ0+fDQuWxKx3mJiPeFufg+9gwTpYp324mPCQgnuVKwzLTZVqj0duRDovnPaZqDwoyhIO8kYg== - dependencies: - "@webassemblyjs/ast" "1.11.0" - "@webassemblyjs/helper-buffer" "1.11.0" - "@webassemblyjs/wasm-gen" "1.11.0" - "@webassemblyjs/wasm-parser" "1.11.0" - -"@webassemblyjs/wasm-parser@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.0.tgz#3e680b8830d5b13d1ec86cc42f38f3d4a7700754" - integrity sha512-6L285Sgu9gphrcpDXINvm0M9BskznnzJTE7gYkjDbxET28shDqp27wpruyx3C2S/dvEwiigBwLA1cz7lNUi0kw== - dependencies: - "@webassemblyjs/ast" "1.11.0" - "@webassemblyjs/helper-api-error" "1.11.0" - "@webassemblyjs/helper-wasm-bytecode" "1.11.0" - "@webassemblyjs/ieee754" "1.11.0" - "@webassemblyjs/leb128" "1.11.0" - "@webassemblyjs/utf8" "1.11.0" - -"@webassemblyjs/wast-printer@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.0.tgz#680d1f6a5365d6d401974a8e949e05474e1fab7e" - integrity sha512-Fg5OX46pRdTgB7rKIUojkh9vXaVN6sGYCnEiJN1GYkb0RPwShZXp6KTDqmoMdQPKhcroOXh3fEzmkWmCYaKYhQ== - dependencies: - "@webassemblyjs/ast" "1.11.0" - "@xtuc/long" "4.2.2" - -"@webpack-cli/configtest@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.0.0.tgz#2aff5f1ebc6f793c13ba9b2a701d180eab17f5ee" - integrity sha512-Un0SdBoN1h4ACnIO7EiCjWuyhNI0Jl96JC+63q6xi4HDUYRZn8Auluea9D+v9NWKc5J4sICVEltdBaVjLX39xw== - -"@webpack-cli/info@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.2.1.tgz#af98311f983d0b9fce7284cfcf1acaf1e9f4879c" - integrity sha512-fLnDML5HZ5AEKzHul8xLAksoKN2cibu6MgonkUj8R9V7bbeVRkd1XbGEGWrAUNYHbX1jcqCsDEpBviE5StPMzQ== - dependencies: - envinfo "^7.7.3" - -"@webpack-cli/serve@^1.2.2": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.2.2.tgz#1f8eee44f96524756268f5e3f43e9d943f864d41" - integrity sha512-03GkWxcgFfm8+WIwcsqJb9agrSDNDDoxaNnexPnCCexP5SCE4IgFd9lNpSy+K2nFqVMpgTFw6SwbmVAVTndVew== - -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== - -"@xtuc/long@4.2.2": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== - -accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== - dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" - -acorn-jsx@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" - integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== - -acorn@^7.4.0: - version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - -acorn@^8.0.4: - version "8.0.5" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.0.5.tgz#a3bfb872a74a6a7f661bc81b9849d9cac12601b7" - integrity sha512-v+DieK/HJkJOpFBETDJioequtc3PfxsWMaxIdIwujtF7FEV/MAyDQLlm6/zPvr7Mix07mLh6ccVwIsloceodlg== - -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" - -ajv-errors@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" - integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== - -ajv-keywords@^3.1.0, ajv-keywords@^3.5.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" - integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== - -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.12.4, ajv@^6.12.5: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^7.0.2: - version "7.0.3" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-7.0.3.tgz#13ae747eff125cafb230ac504b2406cf371eece2" - integrity sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - -alphanum-sort@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" - integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= - -ansi-colors@^3.0.0: - version "3.2.4" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" - integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== - -ansi-colors@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - -ansi-html@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" - integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== - -ansi-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" - integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== - -ansi-styles@^3.2.0, ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -antd-dayjs-webpack-plugin@^1.0.1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/antd-dayjs-webpack-plugin/-/antd-dayjs-webpack-plugin-1.0.6.tgz#7d98bcb51422248b8cd4a32e352a0425a3bffa3a" - integrity sha512-UlK3BfA0iE2c5+Zz/Bd2iPAkT6cICtrKG4/swSik5MZweBHtgmu1aUQCHvICdiv39EAShdZy/edfP6mlkS/xXg== - -antd@^4.7.2: - version "4.11.2" - resolved "https://registry.yarnpkg.com/antd/-/antd-4.11.2.tgz#28c20409e2d186d8915cdc6eacf1cfb2b82d9b5b" - integrity sha512-cdjPRlmamETae6c2uvQHRXDN5/T7I/zPiByaeolbq/FRG14JYv9hyUaydXI7n4s6rynPQ2Q6bFdCQ+/r9xZYbA== - dependencies: - "@ant-design/colors" "^5.0.0" - "@ant-design/icons" "^4.4.0" - "@ant-design/react-slick" "~0.28.1" - "@babel/runtime" "^7.11.2" - array-tree-filter "^2.1.0" - classnames "^2.2.6" - copy-to-clipboard "^3.2.0" - lodash "^4.17.20" - moment "^2.25.3" - rc-cascader "~1.4.0" - rc-checkbox "~2.3.0" - rc-collapse "~3.1.0" - rc-dialog "~8.5.1" - rc-drawer "~4.2.0" - rc-dropdown "~3.2.0" - rc-field-form "~1.18.0" - rc-image "~5.1.1" - rc-input-number "~6.1.0" - rc-mentions "~1.5.0" - rc-menu "~8.10.0" - rc-motion "^2.4.0" - rc-notification "~4.5.2" - rc-pagination "~3.1.2" - rc-picker "~2.5.1" - rc-progress "~3.1.0" - rc-rate "~2.9.0" - rc-resize-observer "^1.0.0" - rc-select "~12.1.0" - rc-slider "~9.7.1" - rc-steps "~4.1.0" - rc-switch "~3.2.0" - rc-table "~7.12.0" - rc-tabs "~11.7.0" - rc-textarea "~0.3.0" - rc-tooltip "~5.0.0" - rc-tree "~4.1.0" - rc-tree-select "~4.3.0" - rc-trigger "^5.2.1" - rc-upload "~3.3.4" - rc-util "^5.7.0" - scroll-into-view-if-needed "^2.2.25" - warning "^4.0.3" - -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= - -array-differ@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" - integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= - -array-flatten@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" - integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== - -array-includes@^3.1.1, array-includes@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.2.tgz#a8db03e0b88c8c6aeddc49cb132f9bcab4ebf9c8" - integrity sha512-w2GspexNQpx+PutG3QpT437/BenZBj0M/MZGn5mzv/MofYqo0xmRHzn4lFsoDlWJ+THYsGJmFlW68WlDFx7VRw== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" - get-intrinsic "^1.0.1" - is-string "^1.0.5" - -array-tree-filter@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-tree-filter/-/array-tree-filter-2.1.0.tgz#873ac00fec83749f255ac8dd083814b4f6329190" - integrity sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw== - -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= - dependencies: - array-uniq "^1.0.1" - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= - -array.prototype.flat@^1.2.3: - version "1.2.4" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123" - integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" - -array.prototype.flatmap@^1.2.3: - version "1.2.4" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz#94cfd47cc1556ec0747d97f7c7738c58122004c9" - integrity sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" - function-bind "^1.1.1" - -arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= - -arrify@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" - integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - -astral-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" - integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== - -async-each@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== - -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - -async-validator@^3.0.3: - version "3.5.1" - resolved "https://registry.yarnpkg.com/async-validator/-/async-validator-3.5.1.tgz#cd62b9688b2465f48420e27adb47760ab1b5559f" - integrity sha512-DDmKA7sdSAJtTVeNZHrnr2yojfFaoeW8MfQN8CeuXg8DDQHTqKk9Fdv38dSvnesHoO8MUwMI2HphOeSyIF+wmQ== - -async@^2.6.2: - version "2.6.3" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== - dependencies: - lodash "^4.17.14" - -at-least-node@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" - integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== - -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -autoprefixer@^10.0.1: - version "10.2.3" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.2.3.tgz#2834b55b75cfc10fa80c66000a66dc94b7136804" - integrity sha512-vlz+iv+EnLkVaTgX8wApfYzmK3LUfK8Z9XAnmflzxMy/+oFuNK8fVGQV79SOpBv4jxk2YQJimw4hXIKZ29570A== - dependencies: - browserslist "^4.16.1" - caniuse-lite "^1.0.30001178" - colorette "^1.2.1" - fraction.js "^4.0.13" - normalize-range "^0.1.2" - postcss-value-parser "^4.1.0" - -autoprefixer@^9.6.1, autoprefixer@^9.8.6: - version "9.8.6" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f" - integrity sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg== - dependencies: - browserslist "^4.12.0" - caniuse-lite "^1.0.30001109" - colorette "^1.2.1" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^7.0.32" - postcss-value-parser "^4.1.0" - -bail@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" - integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ== - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -batch@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" - integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= - -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== - -bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -body-parser@1.19.0: - version "1.19.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" - integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== - dependencies: - bytes "3.1.0" - content-type "~1.0.4" - debug "2.6.9" - depd "~1.1.2" - http-errors "1.7.2" - iconv-lite "0.4.24" - on-finished "~2.3.0" - qs "6.7.0" - raw-body "2.4.0" - type-is "~1.6.17" - -bonjour@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" - integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= - 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" - -boolbase@^1.0.0, boolbase@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^2.3.1, braces@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -braces@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.1, browserslist@^4.6.4: - version "4.16.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.1.tgz#bf757a2da376b3447b800a16f0f1c96358138766" - integrity sha512-UXhDrwqsNcpTYJBTZsbGATDxZbiVDsx6UjpmRUmtnP10pr8wAYr5LgFoEFw9ixriQH2mv/NX2SfGzE/o8GndLA== - dependencies: - caniuse-lite "^1.0.30001173" - colorette "^1.2.1" - electron-to-chromium "^1.3.634" - escalade "^3.1.1" - node-releases "^1.1.69" - -buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== - -buffer-indexof@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" - integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== - -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= - -bytes@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" - integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== - -cacache@^15.0.5: - version "15.0.5" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.5.tgz#69162833da29170d6732334643c60e005f5f17d0" - integrity sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A== - dependencies: - "@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.0" - tar "^6.0.2" - unique-filename "^1.1.1" - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= - dependencies: - callsites "^2.0.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= - dependencies: - caller-callsite "^2.0.0" - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camel-case@^4.1.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" - integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== - dependencies: - pascal-case "^3.1.2" - tslib "^2.0.3" - -camelcase-css@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" - integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== - -camelcase-keys@^6.2.2: - version "6.2.2" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" - integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== - dependencies: - camelcase "^5.3.1" - map-obj "^4.0.0" - quick-lru "^4.0.1" - -camelcase@^5.0.0, camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -camelcase@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" - integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== - -caniuse-api@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" - integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== - dependencies: - browserslist "^4.0.0" - caniuse-lite "^1.0.0" - lodash.memoize "^4.1.2" - lodash.uniq "^4.5.0" - -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001173, caniuse-lite@^1.0.30001178: - version "1.0.30001180" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001180.tgz#67abcd6d1edf48fa5e7d1e84091d1d65ab76e33b" - integrity sha512-n8JVqXuZMVSPKiPiypjFtDTXc4jWIdjxull0f92WLo7e1MSi3uJ3NvveakSh/aCl1QKFAvIz3vIj0v+0K+FrXw== - -chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.0, chalk@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" - integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -character-entities-legacy@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" - integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA== - -character-entities@^1.0.0: - version "1.2.4" - resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b" - integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw== - -character-reference-invalid@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" - integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== - -chokidar@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" - -chownr@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" - integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== - -chrome-trace-event@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" - integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== - dependencies: - tslib "^1.9.0" - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -classnames@2.x, classnames@^2.2.1, classnames@^2.2.3, classnames@^2.2.5, classnames@^2.2.6: - version "2.2.6" - resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" - integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== - -clean-css@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" - integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA== - dependencies: - source-map "~0.6.0" - -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - -clone-deep@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" - integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== - dependencies: - is-plain-object "^2.0.4" - kind-of "^6.0.2" - shallow-clone "^3.0.0" - -clone-regexp@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clone-regexp/-/clone-regexp-2.2.0.tgz#7d65e00885cd8796405c35a737e7a86b7429e36f" - integrity sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q== - dependencies: - is-regexp "^2.0.0" - -clone@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= - -coa@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" - integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== - dependencies: - "@types/q" "^1.5.1" - chalk "^2.4.1" - q "^1.1.2" - -code-block-writer@^10.1.0: - version "10.1.1" - resolved "https://registry.yarnpkg.com/code-block-writer/-/code-block-writer-10.1.1.tgz#ad5684ed4bfb2b0783c8b131281ae84ee640a42f" - integrity sha512-67ueh2IRGst/51p0n6FvPrnRjAGHY5F8xdjkgrYE7DDzpJe6qA07RYQ9VcoUeo5ATOjSOiWpSL3SWBRRbempMw== - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.9.0, color-convert@^1.9.1: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -color-name@^1.0.0, color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-string@^1.5.4: - version "1.5.4" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.4.tgz#dd51cd25cfee953d138fe4002372cc3d0e504cb6" - integrity sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color@^3.0.0: - version "3.1.3" - resolved "https://registry.yarnpkg.com/color/-/color-3.1.3.tgz#ca67fb4e7b97d611dcde39eceed422067d91596e" - integrity sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ== - dependencies: - color-convert "^1.9.1" - color-string "^1.5.4" - -colorette@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" - integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== - -commander@^2.20.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commander@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" - integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== - -commander@^6.2.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" - integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - -component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - -compressible@~2.0.16: - version "2.0.18" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" - integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== - dependencies: - mime-db ">= 1.43.0 < 2" - -compression@^1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" - integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== - dependencies: - accepts "~1.3.5" - bytes "3.0.0" - compressible "~2.0.16" - debug "2.6.9" - on-headers "~1.0.2" - safe-buffer "5.1.2" - vary "~1.1.2" - -compute-scroll-into-view@^1.0.16: - version "1.0.16" - resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.16.tgz#5b7bf4f7127ea2c19b750353d7ce6776a90ee088" - integrity sha512-a85LHKY81oQnikatZYA90pufpZ6sQx++BoCxOEMsjpZx+ZnaKGQnCyCehTRr/1p9GBIAHTjcU9k71kSYWloLiQ== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -confusing-browser-globals@^1.0.10, confusing-browser-globals@^1.0.9: - version "1.0.10" - resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz#30d1e7f3d1b882b25ec4933d1d1adac353d20a59" - integrity sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA== - -connect-history-api-fallback@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" - integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== - -contains-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" - integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= - -content-disposition@0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" - integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== - dependencies: - safe-buffer "5.1.2" - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -convert-source-map@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== - dependencies: - safe-buffer "~5.1.1" - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= - -cookie@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" - integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== - -copy-anything@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-2.0.1.tgz#2afbce6da684bdfcbec93752fa762819cb480d9a" - integrity sha512-lA57e7viQHOdPQcrytv5jFeudZZOXuyk47lZym279FiDQ8jeZomXiGuVf6ffMKkJ+3TIai3J1J3yi6M+/4U35g== - dependencies: - is-what "^3.7.1" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= - -copy-to-clipboard@^3.2.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz#115aa1a9998ffab6196f93076ad6da3b913662ae" - integrity sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw== - dependencies: - toggle-selection "^1.0.6" - -copy-webpack-plugin@^6.2.1: - version "6.4.1" - resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-6.4.1.tgz#138cd9b436dbca0a6d071720d5414848992ec47e" - integrity sha512-MXyPCjdPVx5iiWyl40Va3JGh27bKzOTNY3NjUTrosD2q7dR/cLD0013uqJ3BpFbUjyONINjb6qI7nDIJujrMbA== - dependencies: - cacache "^15.0.5" - fast-glob "^3.2.4" - find-cache-dir "^3.3.1" - glob-parent "^5.1.1" - globby "^11.0.1" - loader-utils "^2.0.0" - normalize-path "^3.0.0" - p-limit "^3.0.2" - schema-utils "^3.0.0" - serialize-javascript "^5.0.1" - webpack-sources "^1.4.3" - -core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -cosmiconfig@^5.0.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" - integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== - dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.1" - parse-json "^4.0.0" - -cosmiconfig@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3" - integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA== - 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" - -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - -cross-spawn@^6.0.0: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^7.0.2, cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -css-blank-pseudo@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz#dfdefd3254bf8a82027993674ccf35483bfcb3c5" - integrity sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w== - dependencies: - postcss "^7.0.5" - -css-color-names@0.0.4, css-color-names@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" - integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= - -css-declaration-sorter@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" - integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== - dependencies: - postcss "^7.0.1" - timsort "^0.3.0" - -css-has-pseudo@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz#3c642ab34ca242c59c41a125df9105841f6966ee" - integrity sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ== - dependencies: - postcss "^7.0.6" - postcss-selector-parser "^5.0.0-rc.4" - -css-loader@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.0.1.tgz#9e4de0d6636a6266a585bd0900b422c85539d25f" - integrity sha512-cXc2ti9V234cq7rJzFKhirb2L2iPy8ZjALeVJAozXYz9te3r4eqLSixNAbMDJSgJEQywqXzs8gonxaboeKqwiw== - dependencies: - camelcase "^6.2.0" - cssesc "^3.0.0" - icss-utils "^5.0.0" - loader-utils "^2.0.0" - postcss "^8.1.4" - postcss-modules-extract-imports "^3.0.0" - postcss-modules-local-by-default "^4.0.0" - postcss-modules-scope "^3.0.0" - postcss-modules-values "^4.0.0" - postcss-value-parser "^4.1.0" - schema-utils "^3.0.0" - semver "^7.3.2" - -css-prefers-color-scheme@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz#6f830a2714199d4f0d0d0bb8a27916ed65cff1f4" - integrity sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg== - dependencies: - postcss "^7.0.5" - -css-select-base-adapter@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" - integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== - -css-select@^2.0.0, css-select@^2.0.2: - version "2.1.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" - integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== - dependencies: - boolbase "^1.0.0" - css-what "^3.2.1" - domutils "^1.7.0" - nth-check "^1.0.2" - -css-tree@1.0.0-alpha.37: - version "1.0.0-alpha.37" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" - integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== - dependencies: - mdn-data "2.0.4" - source-map "^0.6.1" - -css-tree@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.2.tgz#9ae393b5dafd7dae8a622475caec78d3d8fbd7b5" - integrity sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ== - dependencies: - mdn-data "2.0.14" - source-map "^0.6.1" - -css-unit-converter@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.2.tgz#4c77f5a1954e6dbff60695ecb214e3270436ab21" - integrity sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA== - -css-what@^3.2.1: - version "3.4.2" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" - integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== - -cssdb@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-4.4.0.tgz#3bf2f2a68c10f5c6a08abd92378331ee803cddb0" - integrity sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ== - -cssesc@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703" - integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg== - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -cssnano-preset-default@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76" - integrity sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA== - dependencies: - css-declaration-sorter "^4.0.1" - cssnano-util-raw-cache "^4.0.1" - postcss "^7.0.0" - postcss-calc "^7.0.1" - postcss-colormin "^4.0.3" - postcss-convert-values "^4.0.1" - postcss-discard-comments "^4.0.2" - postcss-discard-duplicates "^4.0.2" - postcss-discard-empty "^4.0.1" - postcss-discard-overridden "^4.0.1" - postcss-merge-longhand "^4.0.11" - postcss-merge-rules "^4.0.3" - postcss-minify-font-values "^4.0.2" - postcss-minify-gradients "^4.0.2" - postcss-minify-params "^4.0.2" - postcss-minify-selectors "^4.0.2" - postcss-normalize-charset "^4.0.1" - postcss-normalize-display-values "^4.0.2" - postcss-normalize-positions "^4.0.2" - postcss-normalize-repeat-style "^4.0.2" - postcss-normalize-string "^4.0.2" - postcss-normalize-timing-functions "^4.0.2" - postcss-normalize-unicode "^4.0.1" - postcss-normalize-url "^4.0.1" - postcss-normalize-whitespace "^4.0.2" - postcss-ordered-values "^4.1.2" - postcss-reduce-initial "^4.0.3" - postcss-reduce-transforms "^4.0.2" - postcss-svgo "^4.0.2" - postcss-unique-selectors "^4.0.1" - -cssnano-util-get-arguments@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" - integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= - -cssnano-util-get-match@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" - integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= - -cssnano-util-raw-cache@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" - integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== - dependencies: - postcss "^7.0.0" - -cssnano-util-same-parent@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" - integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== - -cssnano@^4.1.10: - version "4.1.10" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2" - integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ== - dependencies: - cosmiconfig "^5.0.0" - cssnano-preset-default "^4.0.7" - is-resolvable "^1.0.0" - postcss "^7.0.0" - -csso@^4.0.2: - version "4.2.0" - resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" - integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== - dependencies: - css-tree "^1.1.2" - -csstype@^3.0.2: - version "3.0.6" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.6.tgz#865d0b5833d7d8d40f4e5b8a6d76aea3de4725ef" - integrity sha512-+ZAmfyWMT7TiIlzdqJgjMb7S4f1beorDbWbsocyK4RaiqA5RTX3K14bnBWmmA9QEM0gRdsjyyrEmcyga8Zsxmw== - -d3-array@^2.3.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-2.11.0.tgz#5ed6a2869bc7d471aec8df9ff6ed9fef798facc4" - integrity sha512-26clcwmHQEdsLv34oNKq5Ia9tQ26Y/4HqS3dQzF42QBUqymZJ+9PORcN1G52bt37NsL2ABoX4lvyYZc+A9Y0zw== - dependencies: - internmap "^1.0.0" - -"d3-color@1 - 2": - version "2.0.0" - resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-2.0.0.tgz#8d625cab42ed9b8f601a1760a389f7ea9189d62e" - integrity sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ== - -"d3-format@1 - 2": - version "2.0.0" - resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-2.0.0.tgz#a10bcc0f986c372b729ba447382413aabf5b0767" - integrity sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA== - -"d3-interpolate@1.2.0 - 2", d3-interpolate@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-2.0.1.tgz#98be499cfb8a3b94d4ff616900501a64abc91163" - integrity sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ== - dependencies: - d3-color "1 - 2" - -"d3-path@1 - 2": - version "2.0.0" - resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-2.0.0.tgz#55d86ac131a0548adae241eebfb56b4582dd09d8" - integrity sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA== - -d3-scale@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-3.2.3.tgz#be380f57f1f61d4ff2e6cbb65a40593a51649cfd" - integrity sha512-8E37oWEmEzj57bHcnjPVOBS3n4jqakOeuv1EDdQSiSrYnMCBdMd3nc4HtKk7uia8DUHcY/CGuJ42xxgtEYrX0g== - dependencies: - d3-array "^2.3.0" - d3-format "1 - 2" - d3-interpolate "1.2.0 - 2" - d3-time "1 - 2" - d3-time-format "2 - 3" - -d3-shape@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-2.0.0.tgz#2331b62fa784a2a1daac47a7233cfd69301381fd" - integrity sha512-djpGlA779ua+rImicYyyjnOjeubyhql1Jyn1HK0bTyawuH76UQRWXd+pftr67H6Fa8hSwetkgb/0id3agKWykw== - dependencies: - d3-path "1 - 2" - -"d3-time-format@2 - 3": - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-3.0.0.tgz#df8056c83659e01f20ac5da5fdeae7c08d5f1bb6" - integrity sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag== - dependencies: - d3-time "1 - 2" - -"d3-time@1 - 2": - version "2.0.0" - resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-2.0.0.tgz#ad7c127d17c67bd57a4c61f3eaecb81108b1e0ab" - integrity sha512-2mvhstTFcMvwStWd9Tj3e6CEqtOivtD8AUiHT8ido/xmzrI9ijrUUihZ6nHuf/vsScRBonagOdj0Vv+SEL5G3Q== - -date-fns@^2.15.0: - version "2.16.1" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.16.1.tgz#05775792c3f3331da812af253e1a935851d3834b" - integrity sha512-sAJVKx/FqrLYHAQeN7VpJrPhagZc9R4ImZIWYRFZaaohR3KzmuK88touwsSwSVT8Qcbd4zoDsnGfX4GFB4imyQ== - -dayjs@^1.8.30, dayjs@^1.9.3: - version "1.10.4" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.10.4.tgz#8e544a9b8683f61783f570980a8a80eaf54ab1e2" - integrity sha512-RI/Hh4kqRc1UKLOAf/T5zdMMX5DQIlDxwUe3wSyMMnEbGunnpENCdbUgM+dW7kXidZqCttBrmw7BhN4TMddkCw== - -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^3.1.1, debug@^3.2.6: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== - dependencies: - ms "2.1.2" - -decamelize-keys@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" - integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= - dependencies: - decamelize "^1.1.0" - map-obj "^1.0.0" - -decamelize@^1.1.0, decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -decimal.js-light@^2.4.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/decimal.js-light/-/decimal.js-light-2.5.1.tgz#134fd32508f19e208f4fb2f8dac0d2626a867934" - integrity sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg== - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - -deep-equal@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" - integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== - 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" - -deep-is@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= - -deepmerge@^2.1.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.2.1.tgz#5d3ff22a01c00f645405a2fbc17d0778a1801170" - integrity sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA== - -default-gateway@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" - integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== - dependencies: - execa "^1.0.0" - ip-regex "^2.1.0" - -define-properties@^1.1.2, define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -del@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" - integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== - dependencies: - "@types/glob" "^7.1.1" - globby "^6.1.0" - is-path-cwd "^2.0.0" - is-path-in-cwd "^2.0.0" - p-map "^2.0.0" - pify "^4.0.1" - rimraf "^2.6.3" - -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= - -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= - -detect-node@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" - integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== - -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -dns-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" - integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= - -dns-packet@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" - integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg== - dependencies: - ip "^1.1.0" - safe-buffer "^5.0.1" - -dns-txt@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" - integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= - dependencies: - buffer-indexof "^1.0.0" - -doctrine@1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" - integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= - dependencies: - esutils "^2.0.2" - isarray "^1.0.0" - -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== - dependencies: - esutils "^2.0.2" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -dom-align@^1.7.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/dom-align/-/dom-align-1.12.0.tgz#56fb7156df0b91099830364d2d48f88963f5a29c" - integrity sha512-YkoezQuhp3SLFGdOlr5xkqZ640iXrnHAwVYcDg8ZKRUtO7mSzSC2BA5V0VuyAwPSJA4CLIc6EDDJh4bEsD2+zA== - -dom-converter@^0.2: - version "0.2.0" - resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" - integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== - dependencies: - utila "~0.4" - -dom-helpers@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.4.0.tgz#e9b369700f959f62ecde5a6babde4bccd9169af8" - integrity sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA== - dependencies: - "@babel/runtime" "^7.1.2" - -dom-serializer@0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" - integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== - dependencies: - domelementtype "^2.0.1" - entities "^2.0.0" - -dom-serializer@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" - integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== - dependencies: - domelementtype "^1.3.0" - entities "^1.1.1" - -domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" - integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== - -domelementtype@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.1.0.tgz#a851c080a6d1c3d94344aed151d99f669edf585e" - integrity sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w== - -domhandler@^2.3.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" - integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== - dependencies: - domelementtype "1" - -domutils@^1.5.1, domutils@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== - dependencies: - dom-serializer "0" - domelementtype "1" - -dot-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" - integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - -dot-prop@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" - integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== - dependencies: - is-obj "^2.0.0" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - -electron-to-chromium@^1.3.634: - version "1.3.645" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.645.tgz#c0b269ae2ecece5aedc02dd4586397d8096affb1" - integrity sha512-T7mYop3aDpRHIQaUYcmzmh6j9MAe560n6ukqjJMbVC6bVTau7dSpvB18bcsBPPtOSe10cKxhJFtlbEzLa0LL1g== - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emojis-list@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" - integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - -end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -enhanced-resolve@^4.0.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" - integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.5.0" - tapable "^1.0.0" - -enhanced-resolve@^5.7.0: - version "5.7.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.7.0.tgz#525c5d856680fbd5052de453ac83e32049958b5c" - integrity sha512-6njwt/NsZFUKhM6j9U8hzVyD4E4r0x7NQzhTCbcWOJ0IQjNSAoalWmb0AE51Wn+fwan5qVESWi7t2ToBxs9vrw== - dependencies: - graceful-fs "^4.2.4" - tapable "^2.2.0" - -enquirer@^2.3.5, enquirer@^2.3.6: - version "2.3.6" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" - integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== - dependencies: - ansi-colors "^4.1.1" - -entities@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" - integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== - -entities@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" - integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== - -envinfo@^7.7.3: - version "7.7.3" - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.7.3.tgz#4b2d8622e3e7366afb8091b23ed95569ea0208cc" - integrity sha512-46+j5QxbPWza0PB1i15nZx0xQ4I/EfQxg9J8Had3b408SV63nEtor2e+oiY63amTo9KTuh2a3XLObNwduxYwwA== - -errno@^0.1.1, errno@^0.1.3: - version "0.1.8" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" - integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== - dependencies: - prr "~1.0.1" - -error-ex@^1.2.0, error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.17.2: - version "1.17.7" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.7.tgz#a4de61b2f66989fc7421676c1cb9787573ace54c" - integrity sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g== - dependencies: - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.2.2" - is-regex "^1.1.1" - object-inspect "^1.8.0" - object-keys "^1.1.1" - object.assign "^4.1.1" - string.prototype.trimend "^1.0.1" - string.prototype.trimstart "^1.0.1" - -es-abstract@^1.18.0-next.1: - version "1.18.0-next.2" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.2.tgz#088101a55f0541f595e7e057199e27ddc8f3a5c2" - integrity sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw== - dependencies: - call-bind "^1.0.2" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.2.2" - is-negative-zero "^2.0.1" - is-regex "^1.1.1" - object-inspect "^1.9.0" - object-keys "^1.1.1" - object.assign "^4.1.2" - string.prototype.trimend "^1.0.3" - string.prototype.trimstart "^1.0.3" - -es-module-lexer@^0.3.26: - version "0.3.26" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.3.26.tgz#7b507044e97d5b03b01d4392c74ffeb9c177a83b" - integrity sha512-Va0Q/xqtrss45hWzP8CZJwzGSZJjDM5/MJRE3IXXnUCcVLElR9BRaE9F62BopysASyc4nM3uwhSW7FFB9nlWAA== - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= - -escape-string-regexp@^1.0.3, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -eslint-config-airbnb-base@14.2.0: - version "14.2.0" - resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.0.tgz#fe89c24b3f9dc8008c9c0d0d88c28f95ed65e9c4" - integrity sha512-Snswd5oC6nJaevs3nZoLSTvGJBvzTfnBqOIArkf3cbyTyq9UD79wOk8s+RiL6bhca0p/eRO6veczhf6A/7Jy8Q== - dependencies: - confusing-browser-globals "^1.0.9" - object.assign "^4.1.0" - object.entries "^1.1.2" - -eslint-config-airbnb-base@^14.2.0: - version "14.2.1" - resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz#8a2eb38455dc5a312550193b319cdaeef042cd1e" - integrity sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA== - dependencies: - confusing-browser-globals "^1.0.10" - object.assign "^4.1.2" - object.entries "^1.1.2" - -eslint-config-airbnb-typescript@^12.0.0: - version "12.0.0" - resolved "https://registry.yarnpkg.com/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-12.0.0.tgz#4bb6b4b72b1cfc45ef1fa0607735679ceb9a3814" - integrity sha512-TUCVru1Z09eKnVAX5i3XoNzjcCOU3nDQz2/jQGkg1jVYm+25fKClveziSl16celfCq+npU0MBPW/ZnXdGFZ9lw== - dependencies: - "@typescript-eslint/parser" "4.4.1" - eslint-config-airbnb "18.2.0" - eslint-config-airbnb-base "14.2.0" - -eslint-config-airbnb@18.2.0: - version "18.2.0" - resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-18.2.0.tgz#8a82168713effce8fc08e10896a63f1235499dcd" - integrity sha512-Fz4JIUKkrhO0du2cg5opdyPKQXOI2MvF8KUvN2710nJMT6jaRUpRE2swrJftAjVGL7T1otLM5ieo5RqS1v9Udg== - dependencies: - eslint-config-airbnb-base "^14.2.0" - object.assign "^4.1.0" - object.entries "^1.1.2" - -eslint-import-resolver-node@^0.3.4: - version "0.3.4" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717" - integrity sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA== - dependencies: - debug "^2.6.9" - resolve "^1.13.1" - -eslint-import-resolver-typescript@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.3.0.tgz#0870988098bc6c6419c87705e6b42bee89425445" - integrity sha512-MHSXvmj5e0SGOOBhBbt7C+fWj1bJbtSYFAD85Xeg8nvUtuooTod2HQb8bfhE9f5QyyNxEfgzqOYFCvmdDIcCuw== - dependencies: - debug "^4.1.1" - glob "^7.1.6" - is-glob "^4.0.1" - resolve "^1.17.0" - tsconfig-paths "^3.9.0" - -eslint-loader@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-4.0.2.tgz#386a1e21bcb613b3cf2d252a3b708023ccfb41ec" - integrity sha512-EDpXor6lsjtTzZpLUn7KmXs02+nIjGcgees9BYjNkWra3jVq5vVa8IoCKgzT2M7dNNeoMBtaSG83Bd40N3poLw== - dependencies: - find-cache-dir "^3.3.1" - fs-extra "^8.1.0" - loader-utils "^2.0.0" - object-hash "^2.0.3" - schema-utils "^2.6.5" - -eslint-module-utils@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" - integrity sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== - dependencies: - debug "^2.6.9" - pkg-dir "^2.0.0" - -eslint-plugin-import@^2.22.1: - version "2.22.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz#0896c7e6a0cf44109a2d97b95903c2bb689d7702" - integrity sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw== - dependencies: - array-includes "^3.1.1" - array.prototype.flat "^1.2.3" - contains-path "^0.1.0" - debug "^2.6.9" - doctrine "1.5.0" - eslint-import-resolver-node "^0.3.4" - eslint-module-utils "^2.6.0" - has "^1.0.3" - minimatch "^3.0.4" - object.values "^1.1.1" - read-pkg-up "^2.0.0" - resolve "^1.17.0" - tsconfig-paths "^3.9.0" - -eslint-plugin-react-hooks@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz#8c229c268d468956334c943bb45fc860280f5556" - integrity sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ== - -eslint-plugin-react@^7.21.5: - version "7.22.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.22.0.tgz#3d1c542d1d3169c45421c1215d9470e341707269" - integrity sha512-p30tuX3VS+NWv9nQot9xIGAHBXR0+xJVaZriEsHoJrASGCJZDJ8JLNM0YqKqI0AKm6Uxaa1VUHoNEibxRCMQHA== - dependencies: - array-includes "^3.1.1" - array.prototype.flatmap "^1.2.3" - doctrine "^2.1.0" - has "^1.0.3" - jsx-ast-utils "^2.4.1 || ^3.0.0" - object.entries "^1.1.2" - object.fromentries "^2.0.2" - object.values "^1.1.1" - prop-types "^15.7.2" - resolve "^1.18.1" - string.prototype.matchall "^4.0.2" - -eslint-scope@^5.0.0, eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-utils@^2.0.0, eslint-utils@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" - integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== - dependencies: - eslint-visitor-keys "^1.1.0" - -eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" - integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== - -eslint-visitor-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" - integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== - -eslint@^7.11.0: - version "7.18.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.18.0.tgz#7fdcd2f3715a41fe6295a16234bd69aed2c75e67" - integrity sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ== - dependencies: - "@babel/code-frame" "^7.0.0" - "@eslint/eslintrc" "^0.3.0" - ajv "^6.10.0" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.0.1" - doctrine "^3.0.0" - enquirer "^2.3.5" - eslint-scope "^5.1.1" - eslint-utils "^2.1.0" - eslint-visitor-keys "^2.0.0" - espree "^7.3.1" - esquery "^1.2.0" - esutils "^2.0.2" - file-entry-cache "^6.0.0" - functional-red-black-tree "^1.0.1" - glob-parent "^5.0.0" - globals "^12.1.0" - ignore "^4.0.6" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - js-yaml "^3.13.1" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash "^4.17.20" - minimatch "^3.0.4" - natural-compare "^1.4.0" - optionator "^0.9.1" - progress "^2.0.0" - regexpp "^3.1.0" - semver "^7.2.1" - strip-ansi "^6.0.0" - strip-json-comments "^3.1.0" - table "^6.0.4" - text-table "^0.2.0" - v8-compile-cache "^2.0.3" - -espree@^7.3.0, espree@^7.3.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" - integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== - dependencies: - acorn "^7.4.0" - acorn-jsx "^5.3.1" - eslint-visitor-keys "^1.3.0" - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esquery@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" - integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.1.0, estraverse@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" - integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= - -eventemitter3@^4.0.0, eventemitter3@^4.0.1: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -events@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" - integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg== - -eventsource@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" - integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ== - dependencies: - original "^1.0.0" - -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -execa@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.0.0.tgz#4029b0007998a841fbd1032e5f4de86a3c1e3376" - integrity sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -execall@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/execall/-/execall-2.0.0.tgz#16a06b5fe5099df7d00be5d9c06eecded1663b45" - integrity sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow== - dependencies: - clone-regexp "^2.1.0" - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -express@^4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" - integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== - dependencies: - accepts "~1.3.7" - array-flatten "1.1.1" - body-parser "1.19.0" - content-disposition "0.5.3" - content-type "~1.0.4" - cookie "0.4.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "~1.1.2" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "~1.1.2" - fresh "0.5.2" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "~2.3.0" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.5" - qs "6.7.0" - range-parser "~1.2.1" - safe-buffer "5.1.2" - send "0.17.1" - serve-static "1.14.1" - setprototypeof "1.1.1" - statuses "~1.5.0" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extend@^3.0.0, extend@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -fast-deep-equal@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-glob@^3.1.1, fast-glob@^3.2.4, fast-glob@^3.2.5: - version "3.2.5" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.5.tgz#7939af2a656de79a4f1901903ee8adcaa7cb9661" - integrity sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.0" - merge2 "^1.3.0" - micromatch "^4.0.2" - picomatch "^2.2.1" - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= - -fastest-levenshtein@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2" - integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow== - -fastq@^1.6.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.10.0.tgz#74dbefccade964932cdf500473ef302719c652bb" - integrity sha512-NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA== - dependencies: - reusify "^1.0.4" - -faye-websocket@^0.11.3: - version "0.11.3" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" - integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== - dependencies: - websocket-driver ">=0.5.1" - -file-entry-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.0.tgz#7921a89c391c6d93efec2169ac6bf300c527ea0a" - integrity sha512-fqoO76jZ3ZnYrXLDRxBR1YvOvc0k844kcOg40bgsPrE25LAb/PDqTY+ho64Xh2c8ZXgIKldchCFHczG2UVRcWA== - dependencies: - flat-cache "^3.0.4" - -file-loader@^6.1.1: - version "6.2.0" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" - integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== - dependencies: - loader-utils "^2.0.0" - schema-utils "^3.0.0" - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -finalhandler@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.3" - statuses "~1.5.0" - unpipe "~1.0.0" - -find-cache-dir@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" - integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== - dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" - -find-up@^2.0.0, find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -find-up@^4.0.0, find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== - dependencies: - flatted "^3.1.0" - rimraf "^3.0.2" - -flatted@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469" - integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== - -flatten@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b" - integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg== - -follow-redirects@^1.0.0: - version "1.13.2" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.2.tgz#dd73c8effc12728ba5cf4259d760ea5fb83e3147" - integrity sha512-6mPTgLxYm3r6Bkkg0vNM0HTjfGrOEtsfbhagQvbxDEsEkpNhw582upBaoRZylzen6krEmxXJgt9Ju6HiI4O7BA== - -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - -formik@^2.2.0: - version "2.2.6" - resolved "https://registry.yarnpkg.com/formik/-/formik-2.2.6.tgz#378a4bafe4b95caf6acf6db01f81f3fe5147559d" - integrity sha512-Kxk2zQRafy56zhLmrzcbryUpMBvT0tal5IvcifK5+4YNGelKsnrODFJ0sZQRMQboblWNym4lAW3bt+tf2vApSA== - dependencies: - deepmerge "^2.1.1" - hoist-non-react-statics "^3.3.0" - lodash "^4.17.14" - lodash-es "^4.17.14" - react-fast-compare "^2.0.1" - tiny-warning "^1.0.2" - tslib "^1.10.0" - -forwarded@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" - integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= - -fraction.js@^4.0.13: - version "4.0.13" - resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.0.13.tgz#3c1c315fa16b35c85fffa95725a36fa729c69dfe" - integrity sha512-E1fz2Xs9ltlUp+qbiyx9wmt2n9dRzPsS11Jtdb8D2o+cC7wr9xkkKsVKJuBX0ST+LVS+LhLO+SbLJNtfWcJvXA== - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: - map-cache "^0.2.2" - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= - -fs-extra@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-extra@^9.0.1: - version "9.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== - dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs-minipass@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" - integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== - dependencies: - minipass "^3.0.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@^1.2.7: - version "1.2.13" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" - integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== - dependencies: - bindings "^1.5.0" - nan "^2.12.1" - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= - -generic-names@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/generic-names/-/generic-names-2.0.1.tgz#f8a378ead2ccaa7a34f0317b05554832ae41b872" - integrity sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ== - dependencies: - loader-utils "^1.1.0" - -gensync@^1.0.0-beta.1: - version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - -get-caller-file@^2.0.1: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-intrinsic@^1.0.1, get-intrinsic@^1.0.2, get-intrinsic@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.0.tgz#892e62931e6938c8a23ea5aaebcfb67bd97da97e" - integrity sha512-M11rgtQp5GZMZzDL7jLTNxbDfurpzuau5uqRWDPvlHjfvg3TdScAZo96GLvhMjImrmR8uAt0FS2RLoMrfWGKlg== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - -get-stdin@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53" - integrity sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg== - -get-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-stream@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.0.tgz#3e0012cb6827319da2706e601a1583e8629a6718" - integrity sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg== - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" - integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== - dependencies: - is-glob "^4.0.1" - -glob-to-regexp@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" - integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== - -glob@^7.0.3, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== - 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" - -global-modules@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" - integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== - dependencies: - global-prefix "^3.0.0" - -global-prefix@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" - integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== - dependencies: - ini "^1.3.5" - kind-of "^6.0.2" - which "^1.3.1" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globals@^12.1.0: - version "12.4.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" - integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== - dependencies: - type-fest "^0.8.1" - -globby@^11.0.1, globby@^11.0.2: - version "11.0.2" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.2.tgz#1af538b766a3b540ebfb58a32b2e2d5897321d83" - integrity sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.1.1" - ignore "^5.1.4" - merge2 "^1.3.0" - slash "^3.0.0" - -globby@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" - integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= - dependencies: - array-union "^1.0.1" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -globjoin@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz#2f4494ac8919e3767c5cbb691e9f463324285d43" - integrity sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM= - -gonzales-pe@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/gonzales-pe/-/gonzales-pe-4.3.0.tgz#fe9dec5f3c557eead09ff868c65826be54d067b3" - integrity sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ== - dependencies: - minimist "^1.2.5" - -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: - version "4.2.4" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" - integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== - -handle-thing@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" - integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== - -hard-rejection@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" - integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-symbols@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" - integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has@^1.0.0, has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -he@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -hex-color-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" - integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== - -history@^4.9.0: - version "4.10.1" - resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" - integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew== - dependencies: - "@babel/runtime" "^7.1.2" - loose-envify "^1.2.0" - resolve-pathname "^3.0.0" - tiny-invariant "^1.0.2" - tiny-warning "^1.0.0" - value-equal "^1.0.1" - -hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" - integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== - dependencies: - react-is "^16.7.0" - -hosted-git-info@^2.1.4: - version "2.8.8" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" - integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== - -hosted-git-info@^3.0.6: - version "3.0.7" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.7.tgz#a30727385ea85acfcee94e0aad9e368c792e036c" - integrity sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ== - dependencies: - lru-cache "^6.0.0" - -hpack.js@^2.1.6: - version "2.1.6" - resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" - integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= - dependencies: - inherits "^2.0.1" - obuf "^1.0.0" - readable-stream "^2.0.1" - wbuf "^1.1.0" - -hsl-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" - integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= - -hsla-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" - integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= - -html-comment-regex@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" - integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== - -html-entities@^1.3.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" - integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== - -html-minifier-terser@^5.0.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#922e96f1f3bb60832c2634b79884096389b1f054" - integrity sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg== - dependencies: - camel-case "^4.1.1" - clean-css "^4.2.3" - commander "^4.1.1" - he "^1.2.0" - param-case "^3.0.3" - relateurl "^0.2.7" - terser "^4.6.3" - -html-tags@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.1.0.tgz#7b5e6f7e665e9fb41f30007ed9e0d41e97fb2140" - integrity sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg== - -html-webpack-plugin@^4.5.0: - version "4.5.1" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.5.1.tgz#40aaf1b5cb78f2f23a83333999625c20929cda65" - integrity sha512-yzK7RQZwv9xB+pcdHNTjcqbaaDZ+5L0zJHXfi89iWIZmb/FtzxhLk0635rmJihcQbs3ZUF27Xp4oWGx6EK56zg== - dependencies: - "@types/html-minifier-terser" "^5.0.0" - "@types/tapable" "^1.0.5" - "@types/webpack" "^4.41.8" - html-minifier-terser "^5.0.1" - loader-utils "^1.2.3" - lodash "^4.17.20" - pretty-error "^2.1.1" - tapable "^1.1.3" - util.promisify "1.0.0" - -htmlparser2@^3.10.0, htmlparser2@^3.10.1: - version "3.10.1" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" - integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== - dependencies: - domelementtype "^1.3.1" - domhandler "^2.3.0" - domutils "^1.5.1" - entities "^1.1.1" - inherits "^2.0.1" - readable-stream "^3.1.1" - -http-deceiver@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" - integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= - -http-errors@1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" - integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - -http-errors@~1.7.2: - version "1.7.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" - integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-parser-js@>=0.5.1: - version "0.5.3" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.3.tgz#01d2709c79d41698bb01d4decc5e9da4e4a033d9" - integrity sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg== - -http-proxy-middleware@0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" - integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== - dependencies: - http-proxy "^1.17.0" - is-glob "^4.0.0" - lodash "^4.17.11" - micromatch "^3.1.10" - -http-proxy-middleware@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-1.0.6.tgz#0618557722f450375d3796d701a8ac5407b3b94e" - integrity sha512-NyL6ZB6cVni7pl+/IT2W0ni5ME00xR0sN27AQZZrpKn1b+qRh+mLbBxIq9Cq1oGfmTc7BUq4HB77mxwCaxAYNg== - dependencies: - "@types/http-proxy" "^1.17.4" - http-proxy "^1.18.1" - is-glob "^4.0.1" - lodash "^4.17.20" - micromatch "^4.0.2" - -http-proxy@^1.17.0, http-proxy@^1.18.1: - version "1.18.1" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" - integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== - dependencies: - eventemitter3 "^4.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" - -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -icss-replace-symbols@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" - integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= - -icss-utils@^4.0.0, icss-utils@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" - integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== - dependencies: - postcss "^7.0.14" - -icss-utils@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" - integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== - -ignore@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== - -ignore@^5.1.4, ignore@^5.1.8: - version "5.1.8" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" - integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== - -image-size@~0.5.0: - version "0.5.5" - resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" - integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w= - -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - -import-fresh@^3.0.0, import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-lazy@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" - integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== - -import-local@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" - integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== - dependencies: - pkg-dir "^3.0.0" - resolve-cwd "^2.0.0" - -import-local@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" - integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== - dependencies: - pkg-dir "^4.2.0" - resolve-cwd "^3.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= - -infer-owner@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" - integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - -ini@^1.3.5: - version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - -insert-css@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/insert-css/-/insert-css-2.0.0.tgz#eb5d1097b7542f4c79ea3060d3aee07d053880f4" - integrity sha1-610Ql7dUL0x56jBg067gfQU4gPQ= - -internal-ip@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" - integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== - dependencies: - default-gateway "^4.2.0" - ipaddr.js "^1.9.0" - -internal-slot@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" - integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== - dependencies: - get-intrinsic "^1.1.0" - has "^1.0.3" - side-channel "^1.0.4" - -internmap@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/internmap/-/internmap-1.0.0.tgz#3c6bf0944b0eae457698000412108752bbfddb56" - integrity sha512-SdoDWwNOTE2n4JWUsLn4KXZGuZPjPF9yyOGc8bnfWnBQh7BD/l80rzSznKc/r4Y0aQ7z3RTk9X+tV4tHBpu+dA== - -interpret@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" - integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== - -ip-regex@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" - integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= - -ip@^1.1.0, ip@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" - integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= - -ipaddr.js@1.9.1, ipaddr.js@^1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -is-absolute-url@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" - integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= - -is-absolute-url@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" - integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== - -is-absolute@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" - integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== - dependencies: - is-relative "^1.0.0" - is-windows "^1.0.1" - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - -is-alphabetical@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" - integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== - -is-alphanumerical@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf" - integrity sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A== - dependencies: - is-alphabetical "^1.0.0" - is-decimal "^1.0.0" - -is-arguments@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.0.tgz#62353031dfbee07ceb34656a6bde59efecae8dd9" - integrity sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg== - dependencies: - call-bind "^1.0.0" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= - dependencies: - binary-extensions "^1.0.0" - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-buffer@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" - integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== - -is-callable@^1.1.4, is-callable@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9" - integrity sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA== - -is-color-stop@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" - integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= - dependencies: - css-color-names "^0.0.4" - hex-color-regex "^1.1.0" - hsl-regex "^1.0.0" - hsla-regex "^1.0.0" - rgb-regex "^1.0.1" - rgba-regex "^1.0.0" - -is-core-module@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" - integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== - dependencies: - has "^1.0.3" - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - -is-date-object@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" - integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== - -is-decimal@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" - integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.0, is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0, is-glob@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== - dependencies: - is-extglob "^2.1.1" - -is-hexadecimal@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" - integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== - -is-negated-glob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-negated-glob/-/is-negated-glob-1.0.0.tgz#6910bca5da8c95e784b5751b976cf5a10fee36d2" - integrity sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI= - -is-negative-zero@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" - integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: - kind-of "^3.0.2" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - -is-path-cwd@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" - integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== - -is-path-in-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" - integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== - dependencies: - is-path-inside "^2.1.0" - -is-path-inside@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" - integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== - dependencies: - path-is-inside "^1.0.2" - -is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= - -is-plain-obj@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" - integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== - -is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-regex@^1.0.4, is-regex@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" - integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== - dependencies: - has-symbols "^1.0.1" - -is-regexp@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-2.1.0.tgz#cd734a56864e23b956bf4e7c66c396a4c0b22c2d" - integrity sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA== - -is-relative@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" - integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== - dependencies: - is-unc-path "^1.0.0" - -is-resolvable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== - -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - -is-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" - integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== - -is-string@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" - integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== - -is-svg@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75" - integrity sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ== - dependencies: - html-comment-regex "^1.1.0" - -is-symbol@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" - integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== - dependencies: - has-symbols "^1.0.1" - -is-typedarray@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - -is-unc-path@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" - integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== - dependencies: - unc-path-regex "^0.1.2" - -is-what@^3.7.1: - version "3.12.0" - resolved "https://registry.yarnpkg.com/is-what/-/is-what-3.12.0.tgz#f4405ce4bd6dd420d3ced51a026fb90e03705e55" - integrity sha512-2ilQz5/f/o9V7WRWJQmpFYNmQFZ9iM+OXRonZKcYgTkCzjb949Vi4h282PD1UfmgHk666rcWonbRJ++KI41VGw== - -is-windows@^1.0.1, is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - -jest-worker@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" - integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^7.0.0" - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= - -json2mq@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/json2mq/-/json2mq-0.2.0.tgz#b637bd3ba9eabe122c83e9720483aeb10d2c904a" - integrity sha1-tje9O6nqvhIsg+lyBIOusQ0skEo= - dependencies: - string-convert "^0.2.0" - -json3@^3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" - integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== - -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - -json5@^2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" - integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== - dependencies: - minimist "^1.2.5" - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= - optionalDependencies: - graceful-fs "^4.1.6" - -jsonfile@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== - dependencies: - universalify "^2.0.0" - optionalDependencies: - graceful-fs "^4.1.6" - -"jsx-ast-utils@^2.4.1 || ^3.0.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz#41108d2cec408c3453c1bbe8a4aae9e1e2bd8f82" - integrity sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q== - dependencies: - array-includes "^3.1.2" - object.assign "^4.1.2" - -killable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" - integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -klona@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0" - integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA== - -known-css-properties@^0.20.0: - version "0.20.0" - resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.20.0.tgz#0570831661b47dd835293218381166090ff60e96" - integrity sha512-URvsjaA9ypfreqJ2/ylDr5MUERhJZ+DhguoWRr2xgS5C7aGCalXo+ewL+GixgKBfhT2vuL02nbIgNGqVWgTOYw== - -last-call-webpack-plugin@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555" - integrity sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w== - dependencies: - lodash "^4.17.5" - webpack-sources "^1.1.0" - -less-loader@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-5.0.0.tgz#498dde3a6c6c4f887458ee9ed3f086a12ad1b466" - integrity sha512-bquCU89mO/yWLaUq0Clk7qCsKhsF/TZpJUzETRvJa9KSVEL9SO3ovCvdEHISBhrC81OwC8QSVX7E0bzElZj9cg== - dependencies: - clone "^2.1.1" - loader-utils "^1.1.0" - pify "^4.0.1" - -less@^3.12.2: - version "3.13.1" - resolved "https://registry.yarnpkg.com/less/-/less-3.13.1.tgz#0ebc91d2a0e9c0c6735b83d496b0ab0583077909" - integrity sha512-SwA1aQXGUvp+P5XdZslUOhhLnClSLIjWvJhmd+Vgib5BFIr9lMNlQwmwUNOjXThF/A0x+MCYYPeWEfeWiLRnTw== - dependencies: - copy-anything "^2.0.1" - tslib "^1.10.0" - optionalDependencies: - errno "^0.1.1" - graceful-fs "^4.1.2" - image-size "~0.5.0" - make-dir "^2.1.0" - mime "^1.4.1" - native-request "^1.0.5" - source-map "~0.6.0" - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -lines-and-columns@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" - integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= - -load-json-file@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" - integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - strip-bom "^3.0.0" - -loader-runner@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384" - integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw== - -loader-utils@^1.1.0, loader-utils@^1.2.3: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" - integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^1.0.1" - -loader-utils@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" - integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^2.1.2" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -lodash-es@^4.17.14: - version "4.17.20" - resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.20.tgz#29f6332eefc60e849f869c264bc71126ad61e8f7" - integrity sha512-JD1COMZsq8maT6mnuz1UMV0jvYD0E0aUsSOdrr1/nAG3dhqQXwRRgeW0cSqH1U43INKcqxaiVIQNOUDld7gRDA== - -lodash._reinterpolate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" - integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= - -lodash.camelcase@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" - integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= - -lodash.difference@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" - integrity sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw= - -lodash.forown@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.forown/-/lodash.forown-4.4.0.tgz#85115cf04f73ef966eced52511d3893cc46683af" - integrity sha1-hRFc8E9z75ZuztUlEdOJPMRmg68= - -lodash.get@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" - integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= - -lodash.groupby@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.groupby/-/lodash.groupby-4.6.0.tgz#0b08a1dcf68397c397855c3239783832df7403d1" - integrity sha1-Cwih3PaDl8OXhVwyOXg4Mt90A9E= - -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= - -lodash.sortby@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" - integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= - -lodash.template@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" - integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== - dependencies: - lodash._reinterpolate "^3.0.0" - lodash.templatesettings "^4.0.0" - -lodash.templatesettings@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" - integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== - dependencies: - lodash._reinterpolate "^3.0.0" - -lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= - -lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.5, lodash@~4.17.4: - version "4.17.20" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" - integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== - -log-symbols@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" - integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== - dependencies: - chalk "^4.0.0" - -loglevel@^1.6.8: - version "1.7.1" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197" - integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw== - -longest-streak@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz#b8599957da5b5dab64dee3fe316fa774597d90e4" - integrity sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg== - -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -lower-case@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" - integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== - dependencies: - tslib "^2.0.3" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -make-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - -make-dir@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - -map-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= - -map-obj@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.1.0.tgz#b91221b542734b9f14256c0132c897c5d7256fd5" - integrity sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g== - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= - dependencies: - object-visit "^1.0.0" - -mathml-tag-names@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz#4ddadd67308e780cf16a47685878ee27b736a0a3" - integrity sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg== - -mdast-util-from-markdown@^0.8.0: - version "0.8.4" - resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.4.tgz#2882100c1b9fc967d3f83806802f303666682d32" - integrity sha512-jj891B5pV2r63n2kBTFh8cRI2uR9LQHsXG1zSDqfhXkIlDzrTcIlbB5+5aaYEkl8vOPIOPLf8VT7Ere1wWTMdw== - dependencies: - "@types/mdast" "^3.0.0" - mdast-util-to-string "^2.0.0" - micromark "~2.11.0" - parse-entities "^2.0.0" - unist-util-stringify-position "^2.0.0" - -mdast-util-to-markdown@^0.6.0: - version "0.6.2" - resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.2.tgz#8fe6f42a2683c43c5609dfb40407c095409c85b4" - integrity sha512-iRczns6WMvu0hUw02LXsPDJshBIwtUPbvHBWo19IQeU0YqmzlA8Pd30U8V7uiI0VPkxzS7A/NXBXH6u+HS87Zg== - dependencies: - "@types/unist" "^2.0.0" - longest-streak "^2.0.0" - mdast-util-to-string "^2.0.0" - parse-entities "^2.0.0" - repeat-string "^1.0.0" - zwitch "^1.0.0" - -mdast-util-to-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz#b8cfe6a713e1091cb5b728fc48885a4767f8b97b" - integrity sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w== - -mdn-data@2.0.14: - version "2.0.14" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" - integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== - -mdn-data@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" - integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= - -memory-fs@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -memory-fs@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" - integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -meow@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-9.0.0.tgz#cd9510bc5cac9dee7d03c73ee1f9ad959f4ea364" - integrity sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ== - dependencies: - "@types/minimist" "^1.2.0" - camelcase-keys "^6.2.2" - decamelize "^1.2.0" - decamelize-keys "^1.1.0" - hard-rejection "^2.1.0" - minimist-options "4.1.0" - normalize-package-data "^3.0.0" - read-pkg-up "^7.0.1" - redent "^3.0.0" - trim-newlines "^3.0.0" - type-fest "^0.18.0" - yargs-parser "^20.2.3" - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -merge2@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= - -micromark@~2.11.0: - version "2.11.2" - resolved "https://registry.yarnpkg.com/micromark/-/micromark-2.11.2.tgz#e8b6a05f54697d2d3d27fc89600c6bc40dd05f35" - integrity sha512-IXuP76p2uj8uMg4FQc1cRE7lPCLsfAXuEfdjtdO55VRiFO1asrCSQ5g43NmPqFtRwzEnEhafRVzn2jg0UiKArQ== - dependencies: - debug "^4.0.0" - parse-entities "^2.0.0" - -micromatch@^3.1.10, micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -micromatch@^4.0.0, micromatch@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" - integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== - dependencies: - braces "^3.0.1" - picomatch "^2.0.5" - -mime-db@1.45.0, "mime-db@>= 1.43.0 < 2": - version "1.45.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.45.0.tgz#cceeda21ccd7c3a745eba2decd55d4b73e7879ea" - integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w== - -mime-types@^2.1.27, mime-types@~2.1.17, mime-types@~2.1.24: - version "2.1.28" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.28.tgz#1160c4757eab2c5363888e005273ecf79d2a0ecd" - integrity sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ== - dependencies: - mime-db "1.45.0" - -mime@1.6.0, mime@^1.4.1: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mime@^2.4.4: - version "2.5.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.0.tgz#2b4af934401779806ee98026bb42e8c1ae1876b1" - integrity sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag== - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -min-indent@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" - integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== - -mini-create-react-context@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz#072171561bfdc922da08a60c2197a497cc2d1d5e" - integrity sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ== - dependencies: - "@babel/runtime" "^7.12.1" - tiny-warning "^1.0.3" - -mini-css-extract-plugin@^1.1.1: - version "1.3.4" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.3.4.tgz#706e69632cdcdb8b15bf8e638442a0dba304a9c8" - integrity sha512-dNjqyeogUd8ucUgw5sxm1ahvSfSUgef7smbmATRSbDm4EmNx5kQA6VdUEhEeCKSjX6CTYjb5vxgMUvRjqP3uHg== - dependencies: - loader-utils "^2.0.0" - schema-utils "^3.0.0" - webpack-sources "^1.1.0" - -mini-store@^3.0.1: - version "3.0.6" - resolved "https://registry.yarnpkg.com/mini-store/-/mini-store-3.0.6.tgz#44b86be5b2877271224ce0689b3a35a2dffb1ca9" - integrity sha512-YzffKHbYsMQGUWQRKdsearR79QsMzzJcDDmZKlJBqt5JNkqpyJHYlK6gP61O36X+sLf76sO9G6mhKBe83gIZIQ== - dependencies: - hoist-non-react-statics "^3.3.2" - shallowequal "^1.0.2" - -minimalistic-assert@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimist-options@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" - integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== - dependencies: - arrify "^1.0.1" - is-plain-obj "^1.1.0" - kind-of "^6.0.3" - -minimist@^1.2.0, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -minipass-collect@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" - integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== - dependencies: - minipass "^3.0.0" - -minipass-flush@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" - integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== - dependencies: - minipass "^3.0.0" - -minipass-pipeline@^1.2.2: - version "1.2.4" - resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" - integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== - dependencies: - minipass "^3.0.0" - -minipass@^3.0.0, minipass@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" - integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== - dependencies: - yallist "^4.0.0" - -minizlib@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" - integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== - dependencies: - minipass "^3.0.0" - yallist "^4.0.0" - -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mkdirp@^0.5.1, mkdirp@^0.5.5, mkdirp@~0.5.1: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - -mkdirp@^1.0.3, mkdirp@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -mobx-react-lite@^3.0.1: - version "3.1.7" - resolved "https://registry.yarnpkg.com/mobx-react-lite/-/mobx-react-lite-3.1.7.tgz#8896e9ec4f3d2117ddc0a5bfc60802c39a5258f4" - integrity sha512-G6kgur98RrEpoi563ERzxlSwn606xY6Ay4BOtfYXl/QaHZYXbhbCe3YJGROPU2ao4f2bfhnt8iZW3YnBW2BqXQ== - -mobx@^6.0.1: - version "6.0.5" - resolved "https://registry.yarnpkg.com/mobx/-/mobx-6.0.5.tgz#617e716b7aa81d5b700598af3bb1643ff2144410" - integrity sha512-Q3/GiSj/QyazDn1n44PjdiMlokCE6gVs85BnFR0xCJmkF2d34k/ZnWAEG7wGbnJYEi+0f5CdvzDquBiKeo56bA== - -moment@^2.24.0, moment@^2.25.3: - version "2.29.1" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3" - integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -multicast-dns-service-types@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" - integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= - -multicast-dns@^6.0.1: - version "6.2.3" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" - integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== - dependencies: - dns-packet "^1.3.1" - thunky "^1.0.2" - -multimatch@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-4.0.0.tgz#8c3c0f6e3e8449ada0af3dd29efb491a375191b3" - integrity sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ== - dependencies: - "@types/minimatch" "^3.0.3" - array-differ "^3.0.0" - array-union "^2.1.0" - arrify "^2.0.1" - minimatch "^3.0.4" - -nan@^2.12.1: - version "2.14.2" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" - integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== - -nanoid@^3.1.20: - version "3.1.20" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788" - integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw== - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -native-request@^1.0.5: - version "1.0.8" - resolved "https://registry.yarnpkg.com/native-request/-/native-request-1.0.8.tgz#8f66bf606e0f7ea27c0e5995eb2f5d03e33ae6fb" - integrity sha512-vU2JojJVelUGp6jRcLwToPoWGxSx23z/0iX+I77J3Ht17rf2INGjrhOoQnjVo60nQd8wVsgzKkPfRXBiVdD2ag== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= - -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== - -neo-async@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== - -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -no-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" - integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== - dependencies: - lower-case "^2.0.2" - tslib "^2.0.3" - -node-forge@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" - integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== - -node-releases@^1.1.69: - version "1.1.70" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.70.tgz#66e0ed0273aa65666d7fe78febe7634875426a08" - integrity sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw== - -normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-package-data@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.0.tgz#1f8a7c423b3d2e85eb36985eaf81de381d01301a" - integrity sha512-6lUjEI0d3v6kFrtgA/lOx4zHCWULXsFNIjHolnZCKCTLA6m/G625cdn3O7eNmT0iD3jfo6HZ9cdImGZwf21prw== - dependencies: - hosted-git-info "^3.0.6" - resolve "^1.17.0" - semver "^7.3.2" - validate-npm-package-license "^3.0.1" - -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= - -normalize-selector@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/normalize-selector/-/normalize-selector-0.2.0.tgz#d0b145eb691189c63a78d201dc4fdb1293ef0c03" - integrity sha1-0LFF62kRicY6eNIB3E/bEpPvDAM= - -normalize-url@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" - integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - path-key "^2.0.0" - -npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -nth-check@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" - integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== - dependencies: - boolbase "~1.0.0" - -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= - -object-assign@^4.0.1, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-hash@^2.0.3: - version "2.1.1" - resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-2.1.1.tgz#9447d0279b4fcf80cff3259bf66a1dc73afabe09" - integrity sha512-VOJmgmS+7wvXf8CjbQmimtCnEx3IAoLxI3fp2fbWehxrWBcAQFbk+vcwb6vzR0VZv/eNCJ/27j151ZTwqW/JeQ== - -object-inspect@^1.8.0, object-inspect@^1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a" - integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== - -object-is@^1.0.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.4.tgz#63d6c83c00a43f4cbc9434eb9757c8a5b8565068" - integrity sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - -object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: - isobject "^3.0.0" - -object.assign@^4.1.0, object.assign@^4.1.1, object.assign@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" - object-keys "^1.1.1" - -object.entries@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.3.tgz#c601c7f168b62374541a07ddbd3e2d5e4f7711a6" - integrity sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" - has "^1.0.3" - -object.fromentries@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.3.tgz#13cefcffa702dc67750314a3305e8cb3fad1d072" - integrity sha512-IDUSMXs6LOSJBWE++L0lzIbSqHl9KDCfff2x/JSEIDtEUavUnyMYC2ZGay/04Zq4UT8lvd4xNhU4/YHKibAOlw== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" - has "^1.0.3" - -object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz#0dfda8d108074d9c563e80490c883b6661091544" - integrity sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - dependencies: - isobject "^3.0.1" - -object.values@^1.1.0, object.values@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.2.tgz#7a2015e06fcb0f546bd652486ce8583a4731c731" - integrity sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" - has "^1.0.3" - -obuf@^1.0.0, obuf@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" - integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== - -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= - dependencies: - ee-first "1.1.1" - -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -onetime@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -opn@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" - integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== - dependencies: - is-wsl "^1.1.0" - -optimize-css-assets-webpack-plugin@^5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.4.tgz#85883c6528aaa02e30bbad9908c92926bb52dc90" - integrity sha512-wqd6FdI2a5/FdoiCNNkEvLeA//lHHfG24Ln2Xm2qqdIk4aOlsR18jwpyOihqQ8849W3qu2DX8fOYxpvTMj+93A== - dependencies: - cssnano "^4.1.10" - last-call-webpack-plugin "^3.0.0" - -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - 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" - -original@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" - integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== - dependencies: - url-parse "^1.4.3" - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - -p-limit@^2.0.0, p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-limit@^3.0.2, p-limit@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -p-map@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" - integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== - -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" - -p-retry@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" - integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== - dependencies: - retry "^0.12.0" - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -param-case@^3.0.3: - version "3.0.4" - resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" - integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== - dependencies: - dot-case "^3.0.4" - tslib "^2.0.3" - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-entities@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8" - integrity sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ== - dependencies: - character-entities "^1.0.0" - character-entities-legacy "^1.0.0" - character-reference-invalid "^1.0.0" - is-alphanumerical "^1.0.0" - is-decimal "^1.0.0" - is-hexadecimal "^1.0.0" - -parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= - dependencies: - error-ex "^1.2.0" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -parse-json@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -parseurl@~1.3.2, parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -pascal-case@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" - integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-is-inside@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= - -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= - -path-to-regexp@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" - integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== - dependencies: - isarray "0.0.1" - -path-type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" - integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= - dependencies: - pify "^2.0.0" - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= - -picomatch@^2.0.5, picomatch@^2.2.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" - integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== - -pify@^2.0.0, pify@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= - -pkg-dir@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" - integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= - dependencies: - find-up "^2.1.0" - -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - -pkg-dir@^4.1.0, pkg-dir@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -pkg-dir@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-5.0.0.tgz#a02d6aebe6ba133a928f74aec20bafdfe6b8e760" - integrity sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA== - dependencies: - find-up "^5.0.0" - -portfinder@^1.0.26: - version "1.0.28" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" - integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== - dependencies: - async "^2.6.2" - debug "^3.1.1" - mkdirp "^0.5.5" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= - -postcss-attribute-case-insensitive@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz#d93e46b504589e94ac7277b0463226c68041a880" - integrity sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA== - dependencies: - postcss "^7.0.2" - postcss-selector-parser "^6.0.2" - -postcss-calc@^7.0.1, postcss-calc@^7.0.5: - version "7.0.5" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e" - integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg== - dependencies: - postcss "^7.0.27" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.0.2" - -postcss-color-functional-notation@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz#5efd37a88fbabeb00a2966d1e53d98ced93f74e0" - integrity sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-color-gray@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz#532a31eb909f8da898ceffe296fdc1f864be8547" - integrity sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw== - dependencies: - "@csstools/convert-colors" "^1.4.0" - postcss "^7.0.5" - postcss-values-parser "^2.0.0" - -postcss-color-hex-alpha@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz#a8d9ca4c39d497c9661e374b9c51899ef0f87388" - integrity sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw== - dependencies: - postcss "^7.0.14" - postcss-values-parser "^2.0.1" - -postcss-color-mod-function@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz#816ba145ac11cc3cb6baa905a75a49f903e4d31d" - integrity sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ== - dependencies: - "@csstools/convert-colors" "^1.4.0" - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-color-rebeccapurple@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz#c7a89be872bb74e45b1e3022bfe5748823e6de77" - integrity sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-colormin@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" - integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== - dependencies: - browserslist "^4.0.0" - color "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-convert-values@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" - integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-css-variables@^0.17.0: - version "0.17.0" - resolved "https://registry.yarnpkg.com/postcss-css-variables/-/postcss-css-variables-0.17.0.tgz#56cba1d9f0360609136cfbfda8bbd2c1ed2e4082" - integrity sha512-/ZpFnJgksNOrQA72b3DKhExYh+0e2P5nEc3aPZ62G7JLmdDjWRFv3k/q4LxV7uzXFnmvkhXRbdVIiH5tKgfFNA== - dependencies: - balanced-match "^1.0.0" - escape-string-regexp "^1.0.3" - extend "^3.0.1" - postcss "^6.0.8" - -postcss-custom-media@^7.0.8: - version "7.0.8" - resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz#fffd13ffeffad73621be5f387076a28b00294e0c" - integrity sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg== - dependencies: - postcss "^7.0.14" - -postcss-custom-properties@^8.0.11: - version "8.0.11" - resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz#2d61772d6e92f22f5e0d52602df8fae46fa30d97" - integrity sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA== - dependencies: - postcss "^7.0.17" - postcss-values-parser "^2.0.1" - -postcss-custom-selectors@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz#64858c6eb2ecff2fb41d0b28c9dd7b3db4de7fba" - integrity sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w== - dependencies: - postcss "^7.0.2" - postcss-selector-parser "^5.0.0-rc.3" - -postcss-dir-pseudo-class@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz#6e3a4177d0edb3abcc85fdb6fbb1c26dabaeaba2" - integrity sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw== - dependencies: - postcss "^7.0.2" - postcss-selector-parser "^5.0.0-rc.3" - -postcss-discard-comments@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" - integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== - dependencies: - postcss "^7.0.0" - -postcss-discard-duplicates@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" - integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== - dependencies: - postcss "^7.0.0" - -postcss-discard-empty@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" - integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== - dependencies: - postcss "^7.0.0" - -postcss-discard-overridden@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" - integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== - dependencies: - postcss "^7.0.0" - -postcss-double-position-gradients@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz#fc927d52fddc896cb3a2812ebc5df147e110522e" - integrity sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA== - dependencies: - postcss "^7.0.5" - postcss-values-parser "^2.0.0" - -postcss-env-function@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-2.0.2.tgz#0f3e3d3c57f094a92c2baf4b6241f0b0da5365d7" - integrity sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-focus-visible@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz#477d107113ade6024b14128317ade2bd1e17046e" - integrity sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g== - dependencies: - postcss "^7.0.2" - -postcss-focus-within@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz#763b8788596cee9b874c999201cdde80659ef680" - integrity sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w== - dependencies: - postcss "^7.0.2" - -postcss-font-variant@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-4.0.1.tgz#42d4c0ab30894f60f98b17561eb5c0321f502641" - integrity sha512-I3ADQSTNtLTTd8uxZhtSOrTCQ9G4qUVKPjHiDk0bV75QSxXjVWiJVJ2VLdspGUi9fbW9BcjKJoRvxAH1pckqmA== - dependencies: - postcss "^7.0.2" - -postcss-gap-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz#431c192ab3ed96a3c3d09f2ff615960f902c1715" - integrity sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg== - dependencies: - postcss "^7.0.2" - -postcss-html@^0.36.0: - version "0.36.0" - resolved "https://registry.yarnpkg.com/postcss-html/-/postcss-html-0.36.0.tgz#b40913f94eaacc2453fd30a1327ad6ee1f88b204" - integrity sha512-HeiOxGcuwID0AFsNAL0ox3mW6MHH5cstWN1Z3Y+n6H+g12ih7LHdYxWwEA/QmrebctLjo79xz9ouK3MroHwOJw== - dependencies: - htmlparser2 "^3.10.0" - -postcss-image-set-function@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz#28920a2f29945bed4c3198d7df6496d410d3f288" - integrity sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-import@^13.0.0: - version "13.0.0" - resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-13.0.0.tgz#d6960cd9e3de5464743b04dd8cd9d870662f8b8c" - integrity sha512-LPUbm3ytpYopwQQjqgUH4S3EM/Gb9QsaSPP/5vnoi+oKVy3/mIk2sc0Paqw7RL57GpScm9MdIMUypw2znWiBpg== - dependencies: - postcss-value-parser "^4.0.0" - read-cache "^1.0.0" - resolve "^1.1.7" - -postcss-initial@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-3.0.2.tgz#f018563694b3c16ae8eaabe3c585ac6319637b2d" - integrity sha512-ugA2wKonC0xeNHgirR4D3VWHs2JcU08WAi1KFLVcnb7IN89phID6Qtg2RIctWbnvp1TM2BOmDtX8GGLCKdR8YA== - dependencies: - lodash.template "^4.5.0" - postcss "^7.0.2" - -postcss-inline-svg@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/postcss-inline-svg/-/postcss-inline-svg-4.1.0.tgz#54e9199632242cc181af5b55f0f0691ad1020f95" - integrity sha512-0pYBJyoQ9/sJViYRc1cNOOTM7DYh0/rmASB0TBeRmWkG8YFK2tmgdkfjHkbRma1iFtBFKFHZFsHwRTDZTMKzSQ== - dependencies: - css-select "^2.0.2" - dom-serializer "^0.1.1" - htmlparser2 "^3.10.1" - postcss "^7.0.17" - postcss-value-parser "^4.0.0" - -postcss-js@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-3.0.3.tgz#2f0bd370a2e8599d45439f6970403b5873abda33" - integrity sha512-gWnoWQXKFw65Hk/mi2+WTQTHdPD5UJdDXZmX073EY/B3BWnYjO4F4t0VneTCnCGQ5E5GsCdMkzPaTXwl3r5dJw== - dependencies: - camelcase-css "^2.0.1" - postcss "^8.1.6" - -postcss-lab-function@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz#bb51a6856cd12289ab4ae20db1e3821ef13d7d2e" - integrity sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg== - dependencies: - "@csstools/convert-colors" "^1.4.0" - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-less@^3.1.4: - version "3.1.4" - resolved "https://registry.yarnpkg.com/postcss-less/-/postcss-less-3.1.4.tgz#369f58642b5928ef898ffbc1a6e93c958304c5ad" - integrity sha512-7TvleQWNM2QLcHqvudt3VYjULVB49uiW6XzEUFmvwHzvsOEF5MwBrIXZDJQvJNFGjJQTzSzZnDoCJ8h/ljyGXA== - dependencies: - postcss "^7.0.14" - -postcss-loader@^4.0.4: - version "4.2.0" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-4.2.0.tgz#f6993ea3e0f46600fb3ee49bbd010448123a7db4" - integrity sha512-mqgScxHqbiz1yxbnNcPdKYo/6aVt+XExURmEbQlviFVWogDbM4AJ0A/B+ZBpYsJrTRxKw7HyRazg9x0Q9SWwLA== - dependencies: - cosmiconfig "^7.0.0" - klona "^2.0.4" - loader-utils "^2.0.0" - schema-utils "^3.0.0" - semver "^7.3.4" - -postcss-logical@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-3.0.0.tgz#2495d0f8b82e9f262725f75f9401b34e7b45d5b5" - integrity sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA== - dependencies: - postcss "^7.0.2" - -postcss-media-minmax@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz#b75bb6cbc217c8ac49433e12f22048814a4f5ed5" - integrity sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw== - dependencies: - postcss "^7.0.2" - -postcss-media-query-parser@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz#27b39c6f4d94f81b1a73b8f76351c609e5cef244" - integrity sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ= - -postcss-merge-longhand@^4.0.11: - version "4.0.11" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" - integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== - dependencies: - css-color-names "0.0.4" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - stylehacks "^4.0.0" - -postcss-merge-rules@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" - integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - cssnano-util-same-parent "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - vendors "^1.0.0" - -postcss-minify-font-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" - integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-gradients@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" - integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - is-color-stop "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-params@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" - integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== - dependencies: - alphanum-sort "^1.0.0" - browserslist "^4.0.0" - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - uniqs "^2.0.0" - -postcss-minify-selectors@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" - integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== - dependencies: - alphanum-sort "^1.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -postcss-mixins@^7.0.1: - version "7.0.2" - resolved "https://registry.yarnpkg.com/postcss-mixins/-/postcss-mixins-7.0.2.tgz#9c5b9db70aa74095402062b3cf38431259b58971" - integrity sha512-er22AZ/2C1P+jZOL4ZExVEz0XuPWJWWy7SySbb2HWFmAgXG8F4qaOmMaRTdLfSK1AbgWxRT+KQ8GQ2i5kOn1aw== - dependencies: - globby "^11.0.1" - postcss-js "^3.0.3" - postcss-simple-vars "^6.0.1" - sugarss "^3.0.3" - -postcss-modules-extract-imports@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" - integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== - dependencies: - postcss "^7.0.5" - -postcss-modules-extract-imports@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" - integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== - -postcss-modules-local-by-default@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0" - integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw== - dependencies: - icss-utils "^4.1.1" - postcss "^7.0.32" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.1.0" - -postcss-modules-local-by-default@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c" - integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== - dependencies: - icss-utils "^5.0.0" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.1.0" - -postcss-modules-scope@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" - integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== - dependencies: - postcss "^7.0.6" - postcss-selector-parser "^6.0.0" - -postcss-modules-scope@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" - integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== - dependencies: - postcss-selector-parser "^6.0.4" - -postcss-modules-values@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" - integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== - dependencies: - icss-utils "^4.0.0" - postcss "^7.0.6" - -postcss-modules-values@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" - integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== - dependencies: - icss-utils "^5.0.0" - -postcss-modules@^3.2.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/postcss-modules/-/postcss-modules-3.2.2.tgz#ee390de0f9f18e761e1778dfb9be26685c02c51f" - integrity sha512-JQ8IAqHELxC0N6tyCg2UF40pACY5oiL6UpiqqcIFRWqgDYO8B0jnxzoQ0EOpPrWXvcpu6BSbQU/3vSiq7w8Nhw== - dependencies: - generic-names "^2.0.1" - icss-replace-symbols "^1.1.0" - lodash.camelcase "^4.3.0" - postcss "^7.0.32" - postcss-modules-extract-imports "^2.0.0" - postcss-modules-local-by-default "^3.0.2" - postcss-modules-scope "^2.2.0" - postcss-modules-values "^3.0.0" - string-hash "^1.1.1" - -postcss-nested@^5.0.1: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-5.0.3.tgz#2f46d77a06fc98d9c22344fd097396f5431386db" - integrity sha512-R2LHPw+u5hFfDgJG748KpGbJyTv7Yr33/2tIMWxquYuHTd9EXu27PYnKi7BxMXLtzKC0a0WVsqHtd7qIluQu/g== - dependencies: - postcss-selector-parser "^6.0.4" - -postcss-nesting@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-7.0.1.tgz#b50ad7b7f0173e5b5e3880c3501344703e04c052" - integrity sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg== - dependencies: - postcss "^7.0.2" - -postcss-normalize-charset@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" - integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== - dependencies: - postcss "^7.0.0" - -postcss-normalize-display-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" - integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-positions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" - integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== - dependencies: - cssnano-util-get-arguments "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-repeat-style@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" - integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-string@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" - integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== - dependencies: - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-timing-functions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" - integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-unicode@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" - integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-url@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" - integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== - dependencies: - is-absolute-url "^2.0.0" - normalize-url "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-whitespace@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" - integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-ordered-values@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" - integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== - dependencies: - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-overflow-shorthand@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz#31ecf350e9c6f6ddc250a78f0c3e111f32dd4c30" - integrity sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g== - dependencies: - postcss "^7.0.2" - -postcss-page-break@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-2.0.0.tgz#add52d0e0a528cabe6afee8b46e2abb277df46bf" - integrity sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ== - dependencies: - postcss "^7.0.2" - -postcss-place@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-4.0.1.tgz#e9f39d33d2dc584e46ee1db45adb77ca9d1dcc62" - integrity sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-preset-env@^6.7.0: - version "6.7.0" - resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz#c34ddacf8f902383b35ad1e030f178f4cdf118a5" - integrity sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg== - dependencies: - autoprefixer "^9.6.1" - browserslist "^4.6.4" - caniuse-lite "^1.0.30000981" - css-blank-pseudo "^0.1.4" - css-has-pseudo "^0.10.0" - css-prefers-color-scheme "^3.1.1" - cssdb "^4.4.0" - postcss "^7.0.17" - postcss-attribute-case-insensitive "^4.0.1" - postcss-color-functional-notation "^2.0.1" - postcss-color-gray "^5.0.0" - postcss-color-hex-alpha "^5.0.3" - postcss-color-mod-function "^3.0.3" - postcss-color-rebeccapurple "^4.0.1" - postcss-custom-media "^7.0.8" - postcss-custom-properties "^8.0.11" - postcss-custom-selectors "^5.1.2" - postcss-dir-pseudo-class "^5.0.0" - postcss-double-position-gradients "^1.0.0" - postcss-env-function "^2.0.2" - postcss-focus-visible "^4.0.0" - postcss-focus-within "^3.0.0" - postcss-font-variant "^4.0.0" - postcss-gap-properties "^2.0.0" - postcss-image-set-function "^3.0.1" - postcss-initial "^3.0.0" - postcss-lab-function "^2.0.1" - postcss-logical "^3.0.0" - postcss-media-minmax "^4.0.0" - postcss-nesting "^7.0.0" - postcss-overflow-shorthand "^2.0.0" - postcss-page-break "^2.0.0" - postcss-place "^4.0.1" - postcss-pseudo-class-any-link "^6.0.0" - postcss-replace-overflow-wrap "^3.0.0" - postcss-selector-matches "^4.0.0" - postcss-selector-not "^4.0.0" - -postcss-pseudo-class-any-link@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz#2ed3eed393b3702879dec4a87032b210daeb04d1" - integrity sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew== - dependencies: - postcss "^7.0.2" - postcss-selector-parser "^5.0.0-rc.3" - -postcss-reduce-initial@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" - integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - -postcss-reduce-transforms@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" - integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== - dependencies: - cssnano-util-get-match "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-replace-overflow-wrap@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz#61b360ffdaedca84c7c918d2b0f0d0ea559ab01c" - integrity sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw== - dependencies: - postcss "^7.0.2" - -postcss-reporter@^7.0.1: - version "7.0.2" - resolved "https://registry.yarnpkg.com/postcss-reporter/-/postcss-reporter-7.0.2.tgz#03e9e7381c1afe40646f9c22e7aeeb860e051065" - integrity sha512-JyQ96NTQQsso42y6L1H1RqHfWH1C3Jr0pt91mVv5IdYddZAE9DUZxuferNgk6q0o6vBVOrfVJb10X1FgDzjmDw== - dependencies: - colorette "^1.2.1" - lodash.difference "^4.5.0" - lodash.forown "^4.4.0" - lodash.get "^4.4.2" - lodash.groupby "^4.6.0" - lodash.sortby "^4.7.0" - -postcss-resolve-nested-selector@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz#29ccbc7c37dedfac304e9fff0bf1596b3f6a0e4e" - integrity sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4= - -postcss-safe-parser@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz#a6d4e48f0f37d9f7c11b2a581bf00f8ba4870b96" - integrity sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g== - dependencies: - postcss "^7.0.26" - -postcss-sass@^0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/postcss-sass/-/postcss-sass-0.4.4.tgz#91f0f3447b45ce373227a98b61f8d8f0785285a3" - integrity sha512-BYxnVYx4mQooOhr+zer0qWbSPYnarAy8ZT7hAQtbxtgVf8gy+LSLT/hHGe35h14/pZDTw1DsxdbrwxBN++H+fg== - dependencies: - gonzales-pe "^4.3.0" - postcss "^7.0.21" - -postcss-scss@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-2.1.1.tgz#ec3a75fa29a55e016b90bf3269026c53c1d2b383" - integrity sha512-jQmGnj0hSGLd9RscFw9LyuSVAa5Bl1/KBPqG1NQw9w8ND55nY4ZEsdlVuYJvLPpV+y0nwTV5v/4rHPzZRihQbA== - dependencies: - postcss "^7.0.6" - -postcss-selector-matches@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz#71c8248f917ba2cc93037c9637ee09c64436fcff" - integrity sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww== - dependencies: - balanced-match "^1.0.0" - postcss "^7.0.2" - -postcss-selector-not@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-4.0.1.tgz#263016eef1cf219e0ade9a913780fc1f48204cbf" - integrity sha512-YolvBgInEK5/79C+bdFMyzqTg6pkYqDbzZIST/PDMqa/o3qtXenD05apBG2jLgT0/BQ77d4U2UK12jWpilqMAQ== - dependencies: - balanced-match "^1.0.0" - postcss "^7.0.2" - -postcss-selector-parser@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" - integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== - dependencies: - dot-prop "^5.2.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c" - integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ== - dependencies: - cssesc "^2.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: - version "6.0.4" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3" - integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw== - dependencies: - cssesc "^3.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - util-deprecate "^1.0.2" - -postcss-simple-vars@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-simple-vars/-/postcss-simple-vars-6.0.2.tgz#cc0cc7745fb53c83245df99aaf4452475b454eda" - integrity sha512-tABK0OVtCa88TgJjgosa/1aLgiF4hTJBJxUjVE5idTGA0597OVdzWZvbySAF+HKo/sZidxSSpnWhUycDrxO8LA== - -postcss-svgo@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258" - integrity sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw== - dependencies: - is-svg "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - svgo "^1.0.0" - -postcss-syntax@^0.36.2: - version "0.36.2" - resolved "https://registry.yarnpkg.com/postcss-syntax/-/postcss-syntax-0.36.2.tgz#f08578c7d95834574e5593a82dfbfa8afae3b51c" - integrity sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w== - -postcss-unique-selectors@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" - integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== - dependencies: - alphanum-sort "^1.0.0" - postcss "^7.0.0" - uniqs "^2.0.0" - -postcss-value-parser@^3.0.0, postcss-value-parser@^3.3.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" - integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== - -postcss-value-parser@^4.0.0, postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" - integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== - -postcss-values-parser@^2.0.0, postcss-values-parser@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz#da8b472d901da1e205b47bdc98637b9e9e550e5f" - integrity sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg== - dependencies: - flatten "^1.0.2" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-variables@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/postcss-variables/-/postcss-variables-1.1.1.tgz#f86856acd0583b0c493767f22f7258509d37f9e0" - integrity sha512-a9b2ZXoy60xl28m+jedXYvbXLdYSLPXOqvgkLUHhOUbhIRlVoSHRGhGtpMLkcgVc05lu3JUBEypLVcTYNcltMw== - dependencies: - postcss "^6.0.9" - -postcss@^6.0.8, postcss@^6.0.9: - version "6.0.23" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" - integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== - dependencies: - chalk "^2.4.1" - source-map "^0.6.1" - supports-color "^5.4.0" - -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.21, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.35, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.35" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24" - integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg== - dependencies: - chalk "^2.4.2" - source-map "^0.6.1" - supports-color "^6.1.0" - -postcss@^8.1.2, postcss@^8.1.4, postcss@^8.1.6: - version "8.2.4" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.4.tgz#20a98a39cf303d15129c2865a9ec37eda0031d04" - integrity sha512-kRFftRoExRVXZlwUuay9iC824qmXPcQQVzAjbCCgjpXnkdMCJYBu2gTwAaFBzv8ewND6O8xFb3aELmEkh9zTzg== - dependencies: - colorette "^1.2.1" - nanoid "^3.1.20" - source-map "^0.6.1" - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -pretty-error@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.2.tgz#be89f82d81b1c86ec8fdfbc385045882727f93b6" - integrity sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw== - dependencies: - lodash "^4.17.20" - renderkid "^2.0.4" - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -progress@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= - -prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2: - version "15.7.2" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" - integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== - dependencies: - loose-envify "^1.4.0" - object-assign "^4.1.1" - react-is "^16.8.1" - -proxy-addr@~2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" - integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== - dependencies: - forwarded "~0.1.2" - ipaddr.js "1.9.1" - -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= - -punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -q@^1.1.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= - -qs@6.7.0: - version "6.7.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" - integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== - -qs@^6.9.4: - version "6.9.6" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.6.tgz#26ed3c8243a431b2924aca84cc90471f35d5a0ee" - integrity sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ== - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= - -querystringify@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" - integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== - -quick-lru@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" - integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== - -raf-schd@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/raf-schd/-/raf-schd-4.0.2.tgz#bd44c708188f2e84c810bf55fcea9231bcaed8a0" - integrity sha512-VhlMZmGy6A6hrkJWHLNTGl5gtgMUm+xfGza6wbwnE914yeQ5Ybm18vgM734RZhMgfw4tacUrWseGZlpUrrakEQ== - -raf@^3.4.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" - integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== - dependencies: - performance-now "^2.1.0" - -randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -range-parser@^1.2.1, range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" - integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== - dependencies: - bytes "3.1.0" - http-errors "1.7.2" - iconv-lite "0.4.24" - unpipe "1.0.0" - -rc-align@^4.0.0: - version "4.0.9" - resolved "https://registry.yarnpkg.com/rc-align/-/rc-align-4.0.9.tgz#46d8801c4a139ff6a65ad1674e8efceac98f85f2" - integrity sha512-myAM2R4qoB6LqBul0leaqY8gFaiECDJ3MtQDmzDo9xM9NRT/04TvWOYd2YHU9zvGzqk9QXF6S9/MifzSKDZeMw== - dependencies: - "@babel/runtime" "^7.10.1" - classnames "2.x" - dom-align "^1.7.0" - rc-util "^5.3.0" - resize-observer-polyfill "^1.5.1" - -rc-cascader@~1.4.0: - version "1.4.2" - resolved "https://registry.yarnpkg.com/rc-cascader/-/rc-cascader-1.4.2.tgz#caa81098e3ef4d5f823f9156f6d8d6dbd6321afa" - integrity sha512-JVuLGrSi+3G8DZyPvlKlGVWJjhoi9NTz6REHIgRspa5WnznRkKGm2ejb0jJtz0m2IL8Q9BG4ZA2sXuqAu71ltQ== - dependencies: - "@babel/runtime" "^7.12.5" - array-tree-filter "^2.1.0" - rc-trigger "^5.0.4" - rc-util "^5.0.1" - warning "^4.0.1" - -rc-checkbox@~2.3.0: - version "2.3.2" - resolved "https://registry.yarnpkg.com/rc-checkbox/-/rc-checkbox-2.3.2.tgz#f91b3678c7edb2baa8121c9483c664fa6f0aefc1" - integrity sha512-afVi1FYiGv1U0JlpNH/UaEXdh6WUJjcWokj/nUN2TgG80bfG+MDdbfHKlLcNNba94mbjy2/SXJ1HDgrOkXGAjg== - dependencies: - "@babel/runtime" "^7.10.1" - classnames "^2.2.1" - -rc-collapse@~3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/rc-collapse/-/rc-collapse-3.1.0.tgz#4ce5e612568c5fbeaf368cc39214471c1461a1a1" - integrity sha512-EwpNPJcLe7b+5JfyaxM9ZNnkCgqArt3QQO0Cr5p5plwz/C9h8liAmjYY5I4+hl9lAjBqb7ZwLu94+z+rt5g1WQ== - dependencies: - "@babel/runtime" "^7.10.1" - classnames "2.x" - rc-motion "^2.3.4" - rc-util "^5.2.1" - shallowequal "^1.1.0" - -rc-dialog@~8.5.0, rc-dialog@~8.5.1: - version "8.5.1" - resolved "https://registry.yarnpkg.com/rc-dialog/-/rc-dialog-8.5.1.tgz#df316dd93e1685d7df1f5e4164ee35cba4a9af88" - integrity sha512-EcLgHHjF3Jp4C+TFceO2j7gIrpx0YIhY6ronki5QJDL/z+qWYozY5RNh4rnv4a6R21SPVhV+SK+gMMlMHZ/YRQ== - dependencies: - "@babel/runtime" "^7.10.1" - classnames "^2.2.6" - rc-motion "^2.3.0" - rc-util "^5.6.1" - -rc-drawer@~4.2.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/rc-drawer/-/rc-drawer-4.2.2.tgz#5fd8b18ce20575ff22b36e0c5ddbe363c13db555" - integrity sha512-zw48FATkAmJrEnfeRWiMqvKAzqGzUDLN1UXlluB7q7GgbR6mJFvc+QsmNrgxsFuMz86Lh9mKSIi7rXlPINmuzw== - dependencies: - "@babel/runtime" "^7.10.1" - classnames "^2.2.6" - rc-util "^5.7.0" - -rc-dropdown@^3.1.3, rc-dropdown@~3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/rc-dropdown/-/rc-dropdown-3.2.0.tgz#da6c2ada403842baee3a9e909a0b1a91ba3e1090" - integrity sha512-j1HSw+/QqlhxyTEF6BArVZnTmezw2LnSmRk6I9W7BCqNCKaRwleRmMMs1PHbuaG8dKHVqP6e21RQ7vPBLVnnNw== - dependencies: - "@babel/runtime" "^7.10.1" - classnames "^2.2.6" - rc-trigger "^5.0.4" - -rc-field-form@~1.18.0: - version "1.18.1" - resolved "https://registry.yarnpkg.com/rc-field-form/-/rc-field-form-1.18.1.tgz#41027816c80d1acf6f51db085d34c2c35213a701" - integrity sha512-/YRnelnHLxygl/ROGhFqfCT+uAZ5xLvu3qjtlETOneb7fXKk7tqp+RGfYqZ4uNViXlsfxox3qqMMTVet6wYfEA== - dependencies: - "@babel/runtime" "^7.8.4" - async-validator "^3.0.3" - rc-util "^5.0.0" - -rc-image@~5.1.1: - version "5.1.4" - resolved "https://registry.yarnpkg.com/rc-image/-/rc-image-5.1.4.tgz#e251101159db80c3e33276aaa4669a991c7486c0" - integrity sha512-hilxwwEAYJXocY6i+lEdEibvHVOLgN43EQFfjKFiiruRNiUQzGWcdCseyaeTZgInTDrf+QWZP6MujlZjtEbpkA== - dependencies: - "@babel/runtime" "^7.11.2" - classnames "^2.2.6" - rc-dialog "~8.5.0" - rc-util "^5.0.6" - -rc-input-number@~6.1.0: - version "6.1.3" - resolved "https://registry.yarnpkg.com/rc-input-number/-/rc-input-number-6.1.3.tgz#d558be65793429807cc2cdc360af407599d80283" - integrity sha512-qCLWK9NuuKGTsPXjRU/XvSOX7EKdnHlOpg59nPjYSDdH/czsAHZyYq50O6b6RF2TMPOjVpmsZQoMjNJYcnn6JA== - dependencies: - "@babel/runtime" "^7.10.1" - classnames "^2.2.5" - rc-util "^5.0.1" - -rc-mentions@~1.5.0: - version "1.5.3" - resolved "https://registry.yarnpkg.com/rc-mentions/-/rc-mentions-1.5.3.tgz#b92bebadf8ad9fb3586ba1af922d63b49d991c67" - integrity sha512-NG/KB8YiKBCJPHHvr/QapAb4f9YzLJn7kDHtmI1K6t7ZMM5YgrjIxNNhoRKKP9zJvb9PdPts69Hbg4ZMvLVIFQ== - dependencies: - "@babel/runtime" "^7.10.1" - classnames "^2.2.6" - rc-menu "^8.0.1" - rc-textarea "^0.3.0" - rc-trigger "^5.0.4" - rc-util "^5.0.1" - -rc-menu@^8.0.1, rc-menu@^8.6.1, rc-menu@~8.10.0: - version "8.10.5" - resolved "https://registry.yarnpkg.com/rc-menu/-/rc-menu-8.10.5.tgz#44b7381c650cc76020dfd65753b535f415012179" - integrity sha512-8Ets93wQFy9IysmgRUm1VGdrEz6XfZTM0jQOqOPLYNXah5HgAmCh4xT0UOygfHB3IWiQeqDgr2uPB4uVhwI2+Q== - dependencies: - "@babel/runtime" "^7.10.1" - classnames "2.x" - mini-store "^3.0.1" - rc-motion "^2.0.1" - rc-trigger "^5.1.2" - rc-util "^5.7.0" - resize-observer-polyfill "^1.5.0" - shallowequal "^1.1.0" - -rc-motion@^2.0.0, rc-motion@^2.0.1, rc-motion@^2.2.0, rc-motion@^2.3.0, rc-motion@^2.3.4, rc-motion@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/rc-motion/-/rc-motion-2.4.1.tgz#323f47c8635e6b2bc0cba2dfad25fc415b58e1dc" - integrity sha512-TWLvymfMu8SngPx5MDH8dQ0D2RYbluNTfam4hY/dNNx9RQ3WtGuZ/GXHi2ymLMzH+UNd6EEFYkOuR5JTTtm8Xg== - dependencies: - "@babel/runtime" "^7.11.1" - classnames "^2.2.1" - rc-util "^5.2.1" - -rc-notification@~4.5.2: - version "4.5.4" - resolved "https://registry.yarnpkg.com/rc-notification/-/rc-notification-4.5.4.tgz#1292e163003db4b9162c856a4630e5d0f1359356" - integrity sha512-VsN0ouF4uglE5g3C9oDsXLNYX0Sz++ZNUFYCswkxhpImYJ9u6nJOpyA71uOYDVCu6bAF54Y5Hi/b+EcnMzkepg== - dependencies: - "@babel/runtime" "^7.10.1" - classnames "2.x" - rc-motion "^2.2.0" - rc-util "^5.0.1" - -rc-overflow@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/rc-overflow/-/rc-overflow-1.0.2.tgz#f56bcd920029979989f576d55084b81f9632c19c" - integrity sha512-GXj4DAyNxm4f57LvXLwhJaZoJHzSge2l2lQq64MZP7NJAfLpQqOLD+v9JMV9ONTvDPZe8kdzR+UMmkAn7qlzFA== - dependencies: - "@babel/runtime" "^7.11.1" - classnames "^2.2.1" - rc-resize-observer "^1.0.0" - rc-util "^5.5.1" - -rc-pagination@~3.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/rc-pagination/-/rc-pagination-3.1.3.tgz#afd779839fefab2cb14248d5e7b74027960bb48b" - integrity sha512-Z7CdC4xGkedfAwcUHPtfqNhYwVyDgkmhkvfsmoByCOwAd89p42t5O5T3ORar1wRmVWf3jxk/Bf4k0atenNvlFA== - dependencies: - "@babel/runtime" "^7.10.1" - classnames "^2.2.1" - -rc-picker@~2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/rc-picker/-/rc-picker-2.5.2.tgz#36d91b8cdddbf8b2474af29c2853b77502a7fb01" - integrity sha512-rQLgvjyFrxjiWlR+Q7CyXdTOP/gHbiXlBca7irOtuEb6HMRLdm+/OfIB7xaaPHgdkv1ZOsxCk8zCEX6j0qf24g== - dependencies: - "@babel/runtime" "^7.10.1" - classnames "^2.2.1" - date-fns "^2.15.0" - dayjs "^1.8.30" - moment "^2.24.0" - rc-trigger "^5.0.4" - rc-util "^5.4.0" - shallowequal "^1.1.0" - -rc-progress@~3.1.0: - version "3.1.3" - resolved "https://registry.yarnpkg.com/rc-progress/-/rc-progress-3.1.3.tgz#d77d8fd26d9d948d72c2a28b64b71a6e86df2426" - integrity sha512-Jl4fzbBExHYMoC6HBPzel0a9VmhcSXx24LVt/mdhDM90MuzoMCJjXZAlhA0V0CJi+SKjMhfBoIQ6Lla1nD4QNw== - dependencies: - "@babel/runtime" "^7.10.1" - classnames "^2.2.6" - -rc-rate@~2.9.0: - version "2.9.1" - resolved "https://registry.yarnpkg.com/rc-rate/-/rc-rate-2.9.1.tgz#e43cb95c4eb90a2c1e0b16ec6614d8c43530a731" - integrity sha512-MmIU7FT8W4LYRRHJD1sgG366qKtSaKb67D0/vVvJYR0lrCuRrCiVQ5qhfT5ghVO4wuVIORGpZs7ZKaYu+KMUzA== - dependencies: - "@babel/runtime" "^7.10.1" - classnames "^2.2.5" - rc-util "^5.0.1" - -rc-resize-observer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/rc-resize-observer/-/rc-resize-observer-1.0.0.tgz#97fb89856f62fec32ab6e40933935cf58e2e102d" - integrity sha512-RgKGukg1mlzyGdvzF7o/LGFC8AeoMH9aGzXTUdp6m+OApvmRdUuOscq/Y2O45cJA+rXt1ApWlpFoOIioXL3AGg== - dependencies: - "@babel/runtime" "^7.10.1" - classnames "^2.2.1" - rc-util "^5.0.0" - resize-observer-polyfill "^1.5.1" - -rc-select@^12.0.0, rc-select@~12.1.0: - version "12.1.2" - resolved "https://registry.yarnpkg.com/rc-select/-/rc-select-12.1.2.tgz#7f5f06838b8a8c86516acb66ead26adbc55fbc16" - integrity sha512-WEcqj4ljz5kgp/yPN4RDQEZRvjGkwdk1PugpFrtd6tY+YqwKZs7vSZt6xphVIvWlmtwmZMe7e9G1U8XykUN0+g== - dependencies: - "@babel/runtime" "^7.10.1" - classnames "2.x" - rc-motion "^2.0.1" - rc-overflow "^1.0.0" - rc-trigger "^5.0.4" - rc-util "^5.0.1" - rc-virtual-list "^3.2.0" - -rc-slider@~9.7.1: - version "9.7.1" - resolved "https://registry.yarnpkg.com/rc-slider/-/rc-slider-9.7.1.tgz#63535177a74a3ee44f090909e8c6f98426eb9dba" - integrity sha512-r9r0dpFA3PEvxBhIfVi1lVzxuSogWxeY+tGvi2AqMM1rPgaOXQ7WbtT+9kVFkJ9K8TntA/vYPgiCCKfN29KTkw== - dependencies: - "@babel/runtime" "^7.10.1" - classnames "^2.2.5" - rc-tooltip "^5.0.1" - rc-util "^5.0.0" - shallowequal "^1.1.0" - -rc-steps@~4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/rc-steps/-/rc-steps-4.1.3.tgz#208580e22db619e3830ddb7fa41bc886c65d9803" - integrity sha512-GXrMfWQOhN3sVze3JnzNboHpQdNHcdFubOETUHyDpa/U3HEKBZC3xJ8XK4paBgF4OJ3bdUVLC+uBPc6dCxvDYA== - dependencies: - "@babel/runtime" "^7.10.2" - classnames "^2.2.3" - rc-util "^5.0.1" - -rc-switch@~3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/rc-switch/-/rc-switch-3.2.2.tgz#d001f77f12664d52595b4f6fb425dd9e66fba8e8" - integrity sha512-+gUJClsZZzvAHGy1vZfnwySxj+MjLlGRyXKXScrtCTcmiYNPzxDFOxdQ/3pK1Kt/0POvwJ/6ALOR8gwdXGhs+A== - dependencies: - "@babel/runtime" "^7.10.1" - classnames "^2.2.1" - rc-util "^5.0.1" - -rc-table@~7.12.0: - version "7.12.3" - resolved "https://registry.yarnpkg.com/rc-table/-/rc-table-7.12.3.tgz#c86e93b40dc3e2b8aae9e54ad7aa5a64ff7d261e" - integrity sha512-R87lx28os4Ftm/9x+MamwzLw+Dtp9yxihceAgLA/9JS9QP/sqej1qlO+3T/Uw4paZqCg9SpW0XzLI1MandviWA== - dependencies: - "@babel/runtime" "^7.10.1" - classnames "^2.2.5" - rc-resize-observer "^1.0.0" - rc-util "^5.4.0" - shallowequal "^1.1.0" - -rc-tabs@~11.7.0: - version "11.7.3" - resolved "https://registry.yarnpkg.com/rc-tabs/-/rc-tabs-11.7.3.tgz#32a30e59c6992d60fb58115ba0bf2652b337ed43" - integrity sha512-5nd2NVss9TprPRV9r8N05SjQyAE7zDrLejxFLcbJ+BdLxSwnGnk3ws/Iq0smqKZUnPQC0XEvnpF3+zlllUUT2w== - dependencies: - "@babel/runtime" "^7.11.2" - classnames "2.x" - rc-dropdown "^3.1.3" - rc-menu "^8.6.1" - rc-resize-observer "^1.0.0" - rc-util "^5.5.0" - -rc-textarea@^0.3.0, rc-textarea@~0.3.0: - version "0.3.4" - resolved "https://registry.yarnpkg.com/rc-textarea/-/rc-textarea-0.3.4.tgz#1408a64c87b5e76db5c847699ef9ab5ee97dd6f9" - integrity sha512-ILUYx831ZukQPv3m7R4RGRtVVWmL1LV4ME03L22mvT56US0DGCJJaRTHs4vmpcSjFHItph5OTmhodY4BOwy81A== - dependencies: - "@babel/runtime" "^7.10.1" - classnames "^2.2.1" - rc-resize-observer "^1.0.0" - rc-util "^5.7.0" - -rc-tooltip@^5.0.1, rc-tooltip@~5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/rc-tooltip/-/rc-tooltip-5.0.2.tgz#e48258fc9931bd9281102b2d9eacc5b986cf3258" - integrity sha512-A4FejSG56PzYtSNUU4H1pVzfhtkV/+qMT2clK0CsSj+9mbc4USEtpWeX6A/jjVL+goBOMKj8qlH7BCZmZWh/Nw== - dependencies: - "@babel/runtime" "^7.11.2" - rc-trigger "^5.0.0" - -rc-tree-select@~4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/rc-tree-select/-/rc-tree-select-4.3.0.tgz#714a4fe658aa73f2a7b0aa4bd6e43be63194a6ce" - integrity sha512-EEXB9dKBsJNJuKIU5NERZsaJ71GDGIj5uWLl7A4XiYr2jXM4JICfScvvp3O5jHMDfhqmgpqNc0z90mHkgh3hKg== - dependencies: - "@babel/runtime" "^7.10.1" - classnames "2.x" - rc-select "^12.0.0" - rc-tree "^4.0.0" - rc-util "^5.0.5" - -rc-tree@^4.0.0, rc-tree@~4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/rc-tree/-/rc-tree-4.1.1.tgz#d40f418b31b75e61886e3969481df1444232c98b" - integrity sha512-ufq7CkWfvTQa+xMPzEWYfOjTfsEALlPr0/IyujEG4+4d8NdaR3e+0dc8LkkVWoe1VCcXV2FQqAsgr2z/ThFUrQ== - dependencies: - "@babel/runtime" "^7.10.1" - classnames "2.x" - rc-motion "^2.0.1" - rc-util "^5.0.0" - rc-virtual-list "^3.0.1" - -rc-trigger@^5.0.0, rc-trigger@^5.0.4, rc-trigger@^5.1.2, rc-trigger@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/rc-trigger/-/rc-trigger-5.2.1.tgz#54686220b884ed1e0750c4f2411fbb34d4928c99" - integrity sha512-XZilSlSDnb0L/R3Ff2xo9C0Fho2aBDoAn8u3coM60XdLqTCo24nsOh1bfAMm0uIB1qVjh5eqeyFqnBPmXi8pJg== - dependencies: - "@babel/runtime" "^7.11.2" - classnames "^2.2.6" - rc-align "^4.0.0" - rc-motion "^2.0.0" - rc-util "^5.5.0" - -rc-upload@~3.3.4: - version "3.3.4" - resolved "https://registry.yarnpkg.com/rc-upload/-/rc-upload-3.3.4.tgz#b0668d18661595c69c0621cec220fd116cc79952" - integrity sha512-v2sirR4JL31UTHD/f0LGUdd+tpFaOVUTPeIEjAXRP9kRN8TFhqOgcXl5ixtyqj90FmtRUmKmafCv0EmhBQUHqQ== - dependencies: - "@babel/runtime" "^7.10.1" - classnames "^2.2.5" - rc-util "^5.2.0" - -rc-util@^5.0.0, rc-util@^5.0.1, rc-util@^5.0.5, rc-util@^5.0.6, rc-util@^5.0.7, rc-util@^5.2.0, rc-util@^5.2.1, rc-util@^5.3.0, rc-util@^5.4.0, rc-util@^5.5.0, rc-util@^5.5.1, rc-util@^5.6.1, rc-util@^5.7.0: - version "5.7.0" - resolved "https://registry.yarnpkg.com/rc-util/-/rc-util-5.7.0.tgz#776b14cf5bbfc24f419fd40c42ffadddda0718fc" - integrity sha512-0hh5XkJ+vBDeMJsHElqT1ijMx+gC3gpClwQ10h/5hccrrgrMx8VUem183KLlH1YrWCfMMPmDXWWNnwsn+p6URw== - dependencies: - "@babel/runtime" "^7.12.5" - react-is "^16.12.0" - shallowequal "^1.1.0" - -rc-virtual-list@^3.0.1, rc-virtual-list@^3.2.0: - version "3.2.6" - resolved "https://registry.yarnpkg.com/rc-virtual-list/-/rc-virtual-list-3.2.6.tgz#2c92a40f4425e19881b38134d6bd286a11137d2d" - integrity sha512-8FiQLDzm3c/tMX0d62SQtKDhLH7zFlSI6pWBAPt+TUntEqd3Lz9zFAmpvTu8gkvUom/HCsDSZs4wfV4wDPWC0Q== - dependencies: - classnames "^2.2.6" - rc-resize-observer "^1.0.0" - rc-util "^5.0.7" - -react-dom@^17.0.0: - version "17.0.1" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.1.tgz#1de2560474ec9f0e334285662ede52dbc5426fc6" - integrity sha512-6eV150oJZ9U2t9svnsspTMrWNyHc6chX0KzDeAOXftRa8bNeOKTTfCJ7KorIwenkHd2xqVTBTCZd79yk/lx/Ug== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - scheduler "^0.20.1" - -react-fast-compare@^2.0.1: - version "2.0.4" - resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-2.0.4.tgz#e84b4d455b0fec113e0402c329352715196f81f9" - integrity sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw== - -react-is@^16.12.0, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" - integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== - -react-lifecycles-compat@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" - integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== - -react-resize-detector@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/react-resize-detector/-/react-resize-detector-5.2.0.tgz#992083834432308c551a8251a2c52306d9d16718" - integrity sha512-PQAc03J2eyhvaiWgEdQ8+bKbbyGJzLEr70KuivBd1IEmP/iewNakLUMkxm6MWnDqsRPty85pioyg8MvGb0qC8A== - dependencies: - lodash "^4.17.20" - prop-types "^15.7.2" - raf-schd "^4.0.2" - resize-observer-polyfill "^1.5.1" - -react-router-dom@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.2.0.tgz#9e65a4d0c45e13289e66c7b17c7e175d0ea15662" - integrity sha512-gxAmfylo2QUjcwxI63RhQ5G85Qqt4voZpUXSEqCwykV0baaOTQDR1f0PmY8AELqIyVc0NEZUj0Gov5lNGcXgsA== - dependencies: - "@babel/runtime" "^7.1.2" - history "^4.9.0" - loose-envify "^1.3.1" - prop-types "^15.6.2" - react-router "5.2.0" - tiny-invariant "^1.0.2" - tiny-warning "^1.0.0" - -react-router@5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.2.0.tgz#424e75641ca8747fbf76e5ecca69781aa37ea293" - integrity sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw== - dependencies: - "@babel/runtime" "^7.1.2" - history "^4.9.0" - hoist-non-react-statics "^3.1.0" - loose-envify "^1.3.1" - mini-create-react-context "^0.4.0" - path-to-regexp "^1.7.0" - prop-types "^15.6.2" - react-is "^16.6.0" - tiny-invariant "^1.0.2" - tiny-warning "^1.0.0" - -react-smooth@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/react-smooth/-/react-smooth-1.0.6.tgz#18b964f123f7bca099e078324338cd8739346d0a" - integrity sha512-B2vL4trGpNSMSOzFiAul9kFAsxTukL9Wyy9EXtkQy3GJr6sZqW9e1nShdVOJ3hRYamPZ94O17r3Q0bjSw3UYtg== - dependencies: - lodash "~4.17.4" - prop-types "^15.6.0" - raf "^3.4.0" - react-transition-group "^2.5.0" - -react-transition-group@^2.5.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-2.9.0.tgz#df9cdb025796211151a436c69a8f3b97b5b07c8d" - integrity sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg== - dependencies: - dom-helpers "^3.4.0" - loose-envify "^1.4.0" - prop-types "^15.6.2" - react-lifecycles-compat "^3.0.4" - -react@^17.0.0: - version "17.0.1" - resolved "https://registry.yarnpkg.com/react/-/react-17.0.1.tgz#6e0600416bd57574e3f86d92edba3d9008726127" - integrity sha512-lG9c9UuMHdcAexXtigOZLX8exLWkW0Ku29qPRU8uhF2R9BN96dLCt0psvzPLlHc5OWkgymP3qwTRgbnw5BKx3w== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - -read-cache@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" - integrity sha1-5mTvMRYRZsl1HNvo28+GtftY93Q= - dependencies: - pify "^2.3.0" - -read-pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" - integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= - dependencies: - find-up "^2.0.0" - read-pkg "^2.0.0" - -read-pkg-up@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" - integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== - dependencies: - find-up "^4.1.0" - read-pkg "^5.2.0" - type-fest "^0.8.1" - -read-pkg@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" - integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= - dependencies: - load-json-file "^2.0.0" - normalize-package-data "^2.3.2" - path-type "^2.0.0" - -read-pkg@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" - integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== - dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^2.5.0" - parse-json "^5.0.0" - type-fest "^0.6.0" - -readable-stream@^2.0.1, readable-stream@^2.0.2: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - 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" - -readable-stream@^3.0.6, readable-stream@^3.1.1: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - -recharts-scale@^0.4.2: - version "0.4.3" - resolved "https://registry.yarnpkg.com/recharts-scale/-/recharts-scale-0.4.3.tgz#040b4f638ed687a530357292ecac880578384b59" - integrity sha512-t8p5sccG9Blm7c1JQK/ak9O8o95WGhNXD7TXg/BW5bYbVlr6eCeRBNpgyigD4p6pSSMehC5nSvBUPj6F68rbFA== - dependencies: - decimal.js-light "^2.4.1" - -recharts@^2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/recharts/-/recharts-2.0.4.tgz#0ffaa9437762ed0bf021968af42154777f97c94c" - integrity sha512-XwFRhyOW6APMKvrCqN8e1IPHAQi7lmrOqp48LKi40NFI8WjFWHgTaTfwBBMsGCnTJSezJEEd/41L3bo/tfevkw== - dependencies: - classnames "^2.2.5" - d3-interpolate "^2.0.1" - d3-scale "^3.2.3" - d3-shape "^2.0.0" - eventemitter3 "^4.0.1" - lodash "^4.17.19" - react-resize-detector "^5.2.0" - react-smooth "^1.0.6" - recharts-scale "^0.4.2" - reduce-css-calc "^2.1.7" - -rechoir@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.0.tgz#32650fd52c21ab252aa5d65b19310441c7e03aca" - integrity sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q== - dependencies: - resolve "^1.9.0" - -redent@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" - integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== - dependencies: - indent-string "^4.0.0" - strip-indent "^3.0.0" - -reduce-css-calc@^2.1.7: - version "2.1.8" - resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-2.1.8.tgz#7ef8761a28d614980dc0c982f772c93f7a99de03" - integrity sha512-8liAVezDmUcH+tdzoEGrhfbGcP7nOV4NkGE3a74+qqvE7nt9i4sKLGBuZNOnpI4WiGksiNPklZxva80061QiPg== - dependencies: - css-unit-converter "^1.1.1" - postcss-value-parser "^3.3.0" - -redux@^4.0.0: - version "4.0.5" - resolved "https://registry.yarnpkg.com/redux/-/redux-4.0.5.tgz#4db5de5816e17891de8a80c424232d06f051d93f" - integrity sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w== - dependencies: - loose-envify "^1.4.0" - symbol-observable "^1.2.0" - -regenerator-runtime@^0.13.4: - version "0.13.7" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" - integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" - integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -regexpp@^3.0.0, regexpp@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" - integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== - -relateurl@^0.2.7: - version "0.2.7" - resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" - integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= - -remark-parse@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-9.0.0.tgz#4d20a299665880e4f4af5d90b7c7b8a935853640" - integrity sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw== - dependencies: - mdast-util-from-markdown "^0.8.0" - -remark-stringify@^9.0.0: - version "9.0.1" - resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-9.0.1.tgz#576d06e910548b0a7191a71f27b33f1218862894" - integrity sha512-mWmNg3ZtESvZS8fv5PTvaPckdL4iNlCHTt8/e/8oN08nArHRHjNZMKzA/YW3+p7/lYqIw4nx1XsjCBo/AxNChg== - dependencies: - mdast-util-to-markdown "^0.6.0" - -remark@^13.0.0: - version "13.0.0" - resolved "https://registry.yarnpkg.com/remark/-/remark-13.0.0.tgz#d15d9bf71a402f40287ebe36067b66d54868e425" - integrity sha512-HDz1+IKGtOyWN+QgBiAT0kn+2s6ovOxHyPAFGKVE81VSzJ+mq7RwHFledEvB5F1p4iJvOah/LOKdFuzvRnNLCA== - dependencies: - remark-parse "^9.0.0" - remark-stringify "^9.0.0" - unified "^9.1.0" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -renderkid@^2.0.4: - version "2.0.5" - resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.5.tgz#483b1ac59c6601ab30a7a596a5965cabccfdd0a5" - integrity sha512-ccqoLg+HLOHq1vdfYNm4TBeaCDIi1FLt3wGojTDSvdewUv65oTmI3cnT2E4hRjl1gzKZIPK+KZrXzlUYKnR+vQ== - dependencies: - css-select "^2.0.2" - dom-converter "^0.2" - htmlparser2 "^3.10.1" - lodash "^4.17.20" - strip-ansi "^3.0.0" - -repeat-element@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== - -repeat-string@^1.0.0, repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= - -resize-observer-polyfill@^1.5.0, resize-observer-polyfill@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" - integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== - -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= - dependencies: - resolve-from "^3.0.0" - -resolve-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" - integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== - dependencies: - resolve-from "^5.0.0" - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve-pathname@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" - integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= - -resolve@^1.1.7, resolve@^1.10.0, resolve@^1.13.1, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.9.0: - version "1.19.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" - integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== - dependencies: - is-core-module "^2.1.0" - path-parse "^1.0.6" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rgb-regex@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" - integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= - -rgba-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" - integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= - -rimraf@^2.6.3, rimraf@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -run-parallel@^1.1.9: - version "1.1.10" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.10.tgz#60a51b2ae836636c81377df16cb107351bcd13ef" - integrity sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw== - -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sax@~1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - -scheduler@^0.20.1: - version "0.20.1" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.1.tgz#da0b907e24026b01181ecbc75efdc7f27b5a000c" - integrity sha512-LKTe+2xNJBNxu/QhHvDR14wUXHRQbVY5ZOYpOGWRzhydZUqrLb2JBvLPY7cAqFmqrWuDED0Mjk7013SZiOz6Bw== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - -schema-utils@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" - integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== - dependencies: - ajv "^6.1.0" - ajv-errors "^1.0.0" - ajv-keywords "^3.1.0" - -schema-utils@^2.6.5: - version "2.7.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" - integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== - dependencies: - "@types/json-schema" "^7.0.5" - ajv "^6.12.4" - ajv-keywords "^3.5.2" - -schema-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz#67502f6aa2b66a2d4032b4279a2944978a0913ef" - integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA== - dependencies: - "@types/json-schema" "^7.0.6" - ajv "^6.12.5" - ajv-keywords "^3.5.2" - -scroll-into-view-if-needed@^2.2.25: - version "2.2.26" - resolved "https://registry.yarnpkg.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.26.tgz#e4917da0c820135ff65ad6f7e4b7d7af568c4f13" - integrity sha512-SQ6AOKfABaSchokAmmaxVnL9IArxEnLEX9j4wAZw+x4iUTb40q7irtHG3z4GtAWz5veVZcCnubXDBRyLVQaohw== - dependencies: - compute-scroll-into-view "^1.0.16" - -select-hose@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" - integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= - -selfsigned@^1.10.8: - version "1.10.8" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.8.tgz#0d17208b7d12c33f8eac85c41835f27fc3d81a30" - integrity sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w== - dependencies: - node-forge "^0.10.0" - -"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@^6.0.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@^7.2.1, semver@^7.3.2, semver@^7.3.4: - version "7.3.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" - integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== - dependencies: - lru-cache "^6.0.0" - -send@0.17.1: - version "0.17.1" - resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" - integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "~1.7.2" - mime "1.6.0" - ms "2.1.1" - on-finished "~2.3.0" - range-parser "~1.2.1" - statuses "~1.5.0" - -serialize-javascript@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" - integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== - dependencies: - randombytes "^2.1.0" - -serve-index@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" - integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= - 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" - -serve-static@1.14.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" - integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.17.1" - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== - -setprototypeof@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" - integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== - -shallow-clone@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" - integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== - dependencies: - kind-of "^6.0.2" - -shallowequal@^1.0.2, shallowequal@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" - integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - dependencies: - shebang-regex "^1.0.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -side-channel@^1.0.3, side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" - integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== - -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= - dependencies: - is-arrayish "^0.3.1" - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -slice-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" - integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -sockjs-client@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.5.0.tgz#2f8ff5d4b659e0d092f7aba0b7c386bd2aa20add" - integrity sha512-8Dt3BDi4FYNrCFGTL/HtwVzkARrENdwOUf1ZoW/9p3M8lZdFT35jVdrHza+qgxuG9H3/shR4cuX/X9umUrjP8Q== - dependencies: - debug "^3.2.6" - eventsource "^1.0.7" - faye-websocket "^0.11.3" - inherits "^2.0.4" - json3 "^3.3.3" - url-parse "^1.4.7" - -sockjs@^0.3.21: - version "0.3.21" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.21.tgz#b34ffb98e796930b60a0cfa11904d6a339a7d417" - integrity sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw== - dependencies: - faye-websocket "^0.11.3" - uuid "^3.4.0" - websocket-driver "^0.7.4" - -source-list-map@^2.0.0, source-list-map@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" - integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== - -source-map-resolve@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@^0.5.17, source-map-support@~0.5.12, source-map-support@~0.5.19: - version "0.5.19" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" - integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= - -source-map@^0.5.0, source-map@^0.5.6: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@^0.7.3, source-map@~0.7.2: - version "0.7.3" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== - -spdx-correct@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" - integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.7" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65" - integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== - -spdy-transport@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" - integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== - 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" - -spdy@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" - integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== - 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" - -specificity@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/specificity/-/specificity-0.4.1.tgz#aab5e645012db08ba182e151165738d00887b019" - integrity sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg== - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -ssri@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.0.tgz#79ca74e21f8ceaeddfcb4b90143c458b8d988808" - integrity sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA== - dependencies: - minipass "^3.1.1" - -stable@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" - integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= - -string-convert@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/string-convert/-/string-convert-0.2.1.tgz#6982cc3049fbb4cd85f8b24568b9d9bf39eeff97" - integrity sha1-aYLMMEn7tM2F+LJFaLnZvznu/5c= - -string-hash@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" - integrity sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs= - -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string-width@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" - integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" - -string.prototype.matchall@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.3.tgz#24243399bc31b0a49d19e2b74171a15653ec996a" - integrity sha512-OBxYDA2ifZQ2e13cP82dWFMaCV9CGF8GzmN4fljBVw5O5wep0lu4gacm1OL6MjROoUnB8VbkWRThqkV2YFLNxw== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" - has-symbols "^1.0.1" - internal-slot "^1.0.2" - regexp.prototype.flags "^1.3.0" - side-channel "^1.0.3" - -string.prototype.trimend@^1.0.1, string.prototype.trimend@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz#a22bd53cca5c7cf44d7c9d5c732118873d6cd18b" - integrity sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - -string.prototype.trimstart@^1.0.1, string.prototype.trimstart@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz#9b4cb590e123bb36564401d59824298de50fd5aa" - integrity sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - -strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== - dependencies: - ansi-regex "^5.0.0" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-indent@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" - integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== - dependencies: - min-indent "^1.0.0" - -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -style-loader@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-2.0.0.tgz#9669602fd4690740eaaec137799a03addbbc393c" - integrity sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ== - dependencies: - loader-utils "^2.0.0" - schema-utils "^3.0.0" - -style-search@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/style-search/-/style-search-0.1.0.tgz#7958c793e47e32e07d2b5cafe5c0bf8e12e77902" - integrity sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI= - -stylehacks@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" - integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -stylelint-webpack-plugin@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/stylelint-webpack-plugin/-/stylelint-webpack-plugin-2.1.1.tgz#1c8ae72a4e5818f7e5925e3fff10502ad34a52a5" - integrity sha512-WHdaWCp4NANcTcltuRjZCjM7jVhdaSg7ag/sQLE22Bf84g5nQC4nBBK8FBdHAssJsho0fDRiwyrzGsIPO+b94A== - dependencies: - arrify "^2.0.1" - micromatch "^4.0.2" - schema-utils "^3.0.0" - -stylelint@^13.7.2: - version "13.9.0" - resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-13.9.0.tgz#93921ee6e11d4556b9f31131f485dc813b68e32a" - integrity sha512-VVWH2oixOAxpWL1vH+V42ReCzBjW2AeqskSAbi8+3OjV1Xg3VZkmTcAqBZfRRvJeF4BvYuDLXebW3tIHxgZDEg== - dependencies: - "@stylelint/postcss-css-in-js" "^0.37.2" - "@stylelint/postcss-markdown" "^0.36.2" - autoprefixer "^9.8.6" - balanced-match "^1.0.0" - chalk "^4.1.0" - cosmiconfig "^7.0.0" - debug "^4.3.1" - execall "^2.0.0" - fast-glob "^3.2.5" - fastest-levenshtein "^1.0.12" - file-entry-cache "^6.0.0" - get-stdin "^8.0.0" - global-modules "^2.0.0" - globby "^11.0.2" - globjoin "^0.1.4" - html-tags "^3.1.0" - ignore "^5.1.8" - import-lazy "^4.0.0" - imurmurhash "^0.1.4" - known-css-properties "^0.20.0" - lodash "^4.17.20" - log-symbols "^4.0.0" - mathml-tag-names "^2.1.3" - meow "^9.0.0" - micromatch "^4.0.2" - normalize-selector "^0.2.0" - postcss "^7.0.35" - postcss-html "^0.36.0" - postcss-less "^3.1.4" - postcss-media-query-parser "^0.2.3" - postcss-resolve-nested-selector "^0.1.1" - postcss-safe-parser "^4.0.2" - postcss-sass "^0.4.4" - postcss-scss "^2.1.1" - postcss-selector-parser "^6.0.4" - postcss-syntax "^0.36.2" - postcss-value-parser "^4.1.0" - resolve-from "^5.0.0" - slash "^3.0.0" - specificity "^0.4.1" - string-width "^4.2.0" - strip-ansi "^6.0.0" - style-search "^0.1.0" - sugarss "^2.0.0" - svg-tags "^1.0.0" - table "^6.0.7" - v8-compile-cache "^2.2.0" - write-file-atomic "^3.0.3" - -sugarss@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/sugarss/-/sugarss-2.0.0.tgz#ddd76e0124b297d40bf3cca31c8b22ecb43bc61d" - integrity sha512-WfxjozUk0UVA4jm+U1d736AUpzSrNsQcIbyOkoE364GrtWmIrFdk5lksEupgWMD4VaT/0kVx1dobpiDumSgmJQ== - dependencies: - postcss "^7.0.2" - -sugarss@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/sugarss/-/sugarss-3.0.3.tgz#bb2489961b98fbd15e4e35d6b9f4f2ee5547a6cb" - integrity sha512-uxa2bbuc+w7ov7DyYIhF6bM0qZF3UkFT5/nE8AJgboiVnKsBDbwxs++dehEIe1JNhpMaGJc37wGQ2QrrWey2Sg== - dependencies: - postcss "^8.1.6" - -supports-color@^5.3.0, supports-color@^5.4.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.0.0, supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -svg-tags@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" - integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q= - -svgo@^1.0.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" - integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== - dependencies: - chalk "^2.4.1" - coa "^2.0.2" - css-select "^2.0.0" - css-select-base-adapter "^0.1.1" - css-tree "1.0.0-alpha.37" - csso "^4.0.2" - js-yaml "^3.13.1" - mkdirp "~0.5.1" - object.values "^1.1.0" - sax "~1.2.4" - stable "^0.1.8" - unquote "~1.1.1" - util.promisify "~1.0.0" - -symbol-observable@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" - integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== - -table@^6.0.4, table@^6.0.7: - version "6.0.7" - resolved "https://registry.yarnpkg.com/table/-/table-6.0.7.tgz#e45897ffbcc1bcf9e8a87bf420f2c9e5a7a52a34" - integrity sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g== - dependencies: - ajv "^7.0.2" - lodash "^4.17.20" - slice-ansi "^4.0.0" - string-width "^4.2.0" - -tapable@^1.0.0, tapable@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" - integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== - -tapable@^2.1.1, tapable@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.0.tgz#5c373d281d9c672848213d0e037d1c4165ab426b" - integrity sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw== - -tar@^6.0.2: - version "6.1.0" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.0.tgz#d1724e9bcc04b977b18d5c573b333a2207229a83" - integrity sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA== - 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" - -terser-webpack-plugin@^5.0.0, terser-webpack-plugin@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.1.1.tgz#7effadee06f7ecfa093dbbd3e9ab23f5f3ed8673" - integrity sha512-5XNNXZiR8YO6X6KhSGXfY0QrGrCRlSwAEjIIrlRQR4W8nP69TaJUlh3bkuac6zzgspiGPfKEHcY295MMVExl5Q== - dependencies: - jest-worker "^26.6.2" - p-limit "^3.1.0" - schema-utils "^3.0.0" - serialize-javascript "^5.0.1" - source-map "^0.6.1" - terser "^5.5.1" - -terser@^4.6.3: - version "4.8.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" - integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== - dependencies: - commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" - -terser@^5.5.1: - version "5.5.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.5.1.tgz#540caa25139d6f496fdea056e414284886fb2289" - integrity sha512-6VGWZNVP2KTUcltUQJ25TtNjx/XgdDsBDKGt8nN0MpydU36LmbPPcMBd2kmtZNNGVVDLg44k7GKeHHj+4zPIBQ== - dependencies: - commander "^2.20.0" - source-map "~0.7.2" - source-map-support "~0.5.19" - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= - -thunky@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" - integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== - -timsort@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" - integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= - -tiny-invariant@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875" - integrity sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw== - -tiny-warning@^1.0.0, tiny-warning@^1.0.2, tiny-warning@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" - integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -toggle-selection@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32" - integrity sha1-bkWxJj8gF/oKzH2J14sVuL932jI= - -toidentifier@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" - integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== - -trim-newlines@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.0.tgz#79726304a6a898aa8373427298d54c2ee8b1cb30" - integrity sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA== - -trough@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" - integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== - -ts-loader@^8.0.6: - version "8.0.14" - resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-8.0.14.tgz#e46ac1f8dcb88808d0b1335d2eae65b74bd78fe8" - integrity sha512-Jt/hHlUnApOZjnSjTmZ+AbD5BGlQFx3f1D0nYuNKwz0JJnuDGHJas6az+FlWKwwRTu+26GXpv249A8UAnYUpqA== - dependencies: - chalk "^4.1.0" - enhanced-resolve "^4.0.0" - loader-utils "^2.0.0" - micromatch "^4.0.0" - semver "^7.3.4" - -ts-morph@^8.1.2: - version "8.2.0" - resolved "https://registry.yarnpkg.com/ts-morph/-/ts-morph-8.2.0.tgz#41d83cd501cbd897eb029ac489d6d5b927555c57" - integrity sha512-NHHWu+7I2/AOZiTni5w3f+xCfIxrkzPCcQbTGa81Yk3pr23a4h9xLLEE6tIGuYIubWjkjr9QVC3ITqgmA5touQ== - dependencies: - "@dsherret/to-absolute-glob" "^2.0.2" - "@ts-morph/common" "~0.6.0" - code-block-writer "^10.1.0" - -ts-node@^9.0.0: - version "9.1.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d" - integrity sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg== - dependencies: - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - source-map-support "^0.5.17" - yn "3.1.1" - -tsconfig-paths@^3.9.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz#098547a6c4448807e8fcb8eae081064ee9a3c90b" - integrity sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw== - dependencies: - "@types/json5" "^0.0.29" - json5 "^1.0.1" - minimist "^1.2.0" - strip-bom "^3.0.0" - -tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tslib@^2.0.3: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" - integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== - -tsutils@^3.17.1: - version "3.20.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.20.0.tgz#ea03ea45462e146b53d70ce0893de453ff24f698" - integrity sha512-RYbuQuvkhuqVeXweWT3tJLKOEJ/UUw9GjNEZGWdrLLlM+611o1gwLHBpxoFJKKl25fLprp2eVthtKs5JOrNeXg== - dependencies: - tslib "^1.8.1" - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-fest@^0.18.0: - version "0.18.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" - integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== - -type-fest@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" - integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== - -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - -type-is@~1.6.17, type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - -typescript@^4.0.3: - version "4.1.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.3.tgz#519d582bd94cba0cf8934c7d8e8467e473f53bb7" - integrity sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg== - -typescript@~4.0.2: - version "4.0.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.0.5.tgz#ae9dddfd1069f1cb5beb3ef3b2170dd7c1332389" - integrity sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ== - -unc-path-regex@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" - integrity sha1-5z3T17DXxe2G+6xrCufYxqadUPo= - -unified@^9.1.0: - version "9.2.0" - resolved "https://registry.yarnpkg.com/unified/-/unified-9.2.0.tgz#67a62c627c40589edebbf60f53edfd4d822027f8" - integrity sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg== - dependencies: - bail "^1.0.0" - extend "^3.0.0" - is-buffer "^2.0.0" - is-plain-obj "^2.0.0" - trough "^1.0.0" - vfile "^4.0.0" - -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= - -uniqs@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" - integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= - -unique-filename@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" - integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== - dependencies: - imurmurhash "^0.1.4" - -unist-util-find-all-after@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/unist-util-find-all-after/-/unist-util-find-all-after-3.0.2.tgz#fdfecd14c5b7aea5e9ef38d5e0d5f774eeb561f6" - integrity sha512-xaTC/AGZ0rIM2gM28YVRAFPIZpzbpDtU3dRmp7EXlNVA8ziQc4hY3H7BHXM1J49nEmiqc3svnqMReW+PGqbZKQ== - dependencies: - unist-util-is "^4.0.0" - -unist-util-is@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.0.4.tgz#3e9e8de6af2eb0039a59f50c9b3e99698a924f50" - integrity sha512-3dF39j/u423v4BBQrk1AQ2Ve1FxY5W3JKwXxVFzBODQ6WEvccguhgp802qQLKSnxPODE6WuRZtV+ohlUg4meBA== - -unist-util-stringify-position@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da" - integrity sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g== - dependencies: - "@types/unist" "^2.0.2" - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= - -unquote@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" - integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -upath@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" - integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - -url-loader@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz#28505e905cae158cf07c92ca622d7f237e70a4e2" - integrity sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA== - dependencies: - loader-utils "^2.0.0" - mime-types "^2.1.27" - schema-utils "^3.0.0" - -url-parse@^1.4.3, url-parse@^1.4.7: - version "1.4.7" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" - integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - -url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -util.promisify@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" - integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== - dependencies: - define-properties "^1.1.2" - object.getownpropertydescriptors "^2.0.3" - -util.promisify@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" - integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.2" - has-symbols "^1.0.1" - object.getownpropertydescriptors "^2.1.0" - -utila@~0.4: - version "0.4.0" - resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" - integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= - -uuid@^3.3.2, uuid@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -v8-compile-cache@^2.0.3, v8-compile-cache@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132" - integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q== - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -value-equal@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" - integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== - -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= - -vendors@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" - integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== - -vfile-message@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.4.tgz#5b43b88171d409eae58477d13f23dd41d52c371a" - integrity sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ== - dependencies: - "@types/unist" "^2.0.0" - unist-util-stringify-position "^2.0.0" - -vfile@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.2.1.tgz#03f1dce28fc625c625bc6514350fbdb00fa9e624" - integrity sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA== - dependencies: - "@types/unist" "^2.0.0" - is-buffer "^2.0.0" - unist-util-stringify-position "^2.0.0" - vfile-message "^2.0.0" - -warning@^4.0.1, warning@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" - integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== - dependencies: - loose-envify "^1.0.0" - -watchpack@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.1.0.tgz#e63194736bf3aa22026f7b191cd57907b0f9f696" - integrity sha512-UjgD1mqjkG99+3lgG36at4wPnUXNvis2v1utwTgQ43C22c4LD71LsYMExdWXh4HZ+RmW+B0t1Vrg2GpXAkTOQw== - dependencies: - glob-to-regexp "^0.4.1" - graceful-fs "^4.1.2" - -wbuf@^1.1.0, wbuf@^1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" - integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== - dependencies: - minimalistic-assert "^1.0.0" - -webpack-cli@^4.2.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.4.0.tgz#38c7fa01ea31510f5c490245dd1bb28018792f1b" - integrity sha512-/Qh07CXfXEkMu5S8wEpjuaw2Zj/CC0hf/qbTDp6N8N7JjdGuaOjZ7kttz+zhuJO/J5m7alQEhNk9lsc4rC6xgQ== - dependencies: - "@discoveryjs/json-ext" "^0.5.0" - "@webpack-cli/configtest" "^1.0.0" - "@webpack-cli/info" "^1.2.1" - "@webpack-cli/serve" "^1.2.2" - colorette "^1.2.1" - commander "^6.2.0" - enquirer "^2.3.6" - execa "^5.0.0" - fastest-levenshtein "^1.0.12" - import-local "^3.0.2" - interpret "^2.2.0" - rechoir "^0.7.0" - v8-compile-cache "^2.2.0" - webpack-merge "^5.7.3" - -webpack-dev-middleware@^3.7.2: - version "3.7.3" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz#0639372b143262e2b84ab95d3b91a7597061c2c5" - integrity sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ== - dependencies: - memory-fs "^0.4.1" - mime "^2.4.4" - mkdirp "^0.5.1" - range-parser "^1.2.1" - webpack-log "^2.0.0" - -webpack-dev-server@^3.11.0: - version "3.11.2" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz#695ebced76a4929f0d5de7fd73fafe185fe33708" - integrity sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ== - dependencies: - ansi-html "0.0.7" - bonjour "^3.5.0" - chokidar "^2.1.8" - compression "^1.7.4" - connect-history-api-fallback "^1.6.0" - debug "^4.1.1" - del "^4.1.1" - express "^4.17.1" - html-entities "^1.3.1" - http-proxy-middleware "0.19.1" - import-local "^2.0.0" - internal-ip "^4.3.0" - ip "^1.1.5" - is-absolute-url "^3.0.3" - killable "^1.0.1" - loglevel "^1.6.8" - opn "^5.5.0" - p-retry "^3.0.1" - portfinder "^1.0.26" - schema-utils "^1.0.0" - selfsigned "^1.10.8" - semver "^6.3.0" - serve-index "^1.9.1" - sockjs "^0.3.21" - sockjs-client "^1.5.0" - spdy "^4.0.2" - strip-ansi "^3.0.1" - supports-color "^6.1.0" - url "^0.11.0" - webpack-dev-middleware "^3.7.2" - webpack-log "^2.0.0" - ws "^6.2.1" - yargs "^13.3.2" - -webpack-log@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" - integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== - dependencies: - ansi-colors "^3.0.0" - uuid "^3.3.2" - -webpack-merge@^5.2.0, webpack-merge@^5.7.3: - version "5.7.3" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.7.3.tgz#2a0754e1877a25a8bbab3d2475ca70a052708213" - integrity sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA== - dependencies: - clone-deep "^4.0.1" - wildcard "^2.0.0" - -webpack-sources@^1.1.0, webpack-sources@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" - integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack-sources@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.2.0.tgz#058926f39e3d443193b6c31547229806ffd02bac" - integrity sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w== - dependencies: - source-list-map "^2.0.1" - source-map "^0.6.1" - -webpack@^5.10.0: - version "5.18.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.18.0.tgz#bbcf13094aa0da0534d513f27d7ee72d74e499c6" - integrity sha512-RmiP/iy6ROvVe/S+u0TrvL/oOmvP+2+Bs8MWjvBwwY/j82Q51XJyDJ75m0QAGntL1Wx6B//Xc0+4VPP/hlNHmw== - dependencies: - "@types/eslint-scope" "^3.7.0" - "@types/estree" "^0.0.46" - "@webassemblyjs/ast" "1.11.0" - "@webassemblyjs/wasm-edit" "1.11.0" - "@webassemblyjs/wasm-parser" "1.11.0" - acorn "^8.0.4" - browserslist "^4.14.5" - chrome-trace-event "^1.0.2" - enhanced-resolve "^5.7.0" - es-module-lexer "^0.3.26" - eslint-scope "^5.1.1" - events "^3.2.0" - glob-to-regexp "^0.4.1" - graceful-fs "^4.2.4" - json-parse-better-errors "^1.0.2" - loader-runner "^4.2.0" - mime-types "^2.1.27" - neo-async "^2.6.2" - pkg-dir "^5.0.0" - schema-utils "^3.0.0" - tapable "^2.1.1" - terser-webpack-plugin "^5.1.1" - watchpack "^2.0.0" - webpack-sources "^2.1.1" - -websocket-driver@>=0.5.1, websocket-driver@^0.7.4: - version "0.7.4" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" - integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== - dependencies: - http-parser-js ">=0.5.1" - safe-buffer ">=5.1.0" - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.4" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" - integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - -which@^1.2.9, which@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -wildcard@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec" - integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== - -word-wrap@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -write-file-atomic@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" - integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== - dependencies: - imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - -ws@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" - integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== - dependencies: - async-limiter "~1.0.0" - -y18n@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" - integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yaml@^1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" - integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== - -yargs-parser@^13.1.2: - version "13.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" - integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^20.2.3: - version "20.2.4" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" - integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== - -yargs@^13.3.2: - version "13.3.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" - integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.2" - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== - -zwitch@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920" - integrity sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw== diff --git a/internal/home/config.go b/internal/home/config.go index dd2f0730635..d5b8fdf34ef 100644 --- a/internal/home/config.go +++ b/internal/home/config.go @@ -90,9 +90,6 @@ type configuration struct { BindHost netip.Addr `yaml:"bind_host"` // BindPort is the port for the web interface server to listen on. BindPort int `yaml:"bind_port"` - // BetaBindPort is the port for the new client's web interface server to - // listen on. - BetaBindPort int `yaml:"beta_bind_port"` // Users are the clients capable for accessing the web interface. Users []webUser `yaml:"users"` @@ -230,7 +227,6 @@ type tlsConfigSettings struct { // TODO(a.garipov, e.burkov): This global is awful and must be removed. var config = &configuration{ BindPort: 3000, - BetaBindPort: 0, BindHost: netip.IPv4Unspecified(), AuthAttempts: 5, AuthBlockMin: 15, @@ -372,7 +368,7 @@ func parseConfig() (err error) { } tcpPorts := aghalg.UniqChecker[tcpPort]{} - addPorts(tcpPorts, tcpPort(config.BindPort), tcpPort(config.BetaBindPort)) + addPorts(tcpPorts, tcpPort(config.BindPort)) udpPorts := aghalg.UniqChecker[udpPort]{} addPorts(udpPorts, udpPort(config.DNS.Port)) diff --git a/internal/home/controlinstall.go b/internal/home/controlinstall.go index 0cbddf007ad..7b053f14ae5 100644 --- a/internal/home/controlinstall.go +++ b/internal/home/controlinstall.go @@ -11,7 +11,6 @@ import ( "os/exec" "path/filepath" "runtime" - "strings" "time" "unicode/utf8" @@ -99,7 +98,7 @@ func (req *checkConfReq) validateWeb(tcpPorts aghalg.UniqChecker[tcpPort]) (err portInt := req.Web.Port port := tcpPort(portInt) - addPorts(tcpPorts, tcpPort(config.BetaBindPort), port) + addPorts(tcpPorts, port) if err = tcpPorts.Validate(); err != nil { // Reset the value for the port to 1 to make sure that validateDNS // doesn't throw the same error, unless the same TCP port is set there @@ -321,7 +320,6 @@ type applyConfigReq struct { func copyInstallSettings(dst, src *configuration) { dst.BindHost = src.BindHost dst.BindPort = src.BindPort - dst.BetaBindPort = src.BetaBindPort dst.DNS.BindHosts = src.DNS.BindHosts dst.DNS.Port = src.DNS.Port } @@ -472,7 +470,6 @@ func (web *Web) handleInstallConfigure(w http.ResponseWriter, r *http.Request) { defer cancel() shutdownSrv(ctx, web.httpServer) - shutdownSrv(ctx, web.httpServerBeta) }(shutdownTimeout) } @@ -511,191 +508,3 @@ func (web *Web) registerInstallHandlers() { Context.mux.HandleFunc("/control/install/check_config", preInstall(ensurePOST(web.handleInstallCheckConfig))) Context.mux.HandleFunc("/control/install/configure", preInstall(ensurePOST(web.handleInstallConfigure))) } - -// checkConfigReqEntBeta is a struct representing new client's config check -// request entry. It supports multiple IP values unlike the checkConfigReqEnt. -// -// TODO(e.burkov): This should removed with the API v1 when the appropriate -// functionality will appear in default checkConfigReqEnt. -type checkConfigReqEntBeta struct { - IP []netip.Addr `json:"ip"` - Port int `json:"port"` - Autofix bool `json:"autofix"` -} - -// checkConfigReqBeta is a struct representing new client's config check request -// body. It uses checkConfigReqEntBeta instead of checkConfigReqEnt. -// -// TODO(e.burkov): This should removed with the API v1 when the appropriate -// functionality will appear in default checkConfigReq. -type checkConfigReqBeta struct { - Web checkConfigReqEntBeta `json:"web"` - DNS checkConfigReqEntBeta `json:"dns"` - SetStaticIP bool `json:"set_static_ip"` -} - -// handleInstallCheckConfigBeta is a substitution of /install/check_config -// handler for new client. -// -// TODO(e.burkov): This should removed with the API v1 when the appropriate -// functionality will appear in default handleInstallCheckConfig. -func (web *Web) handleInstallCheckConfigBeta(w http.ResponseWriter, r *http.Request) { - reqData := checkConfigReqBeta{} - err := json.NewDecoder(r.Body).Decode(&reqData) - if err != nil { - aghhttp.Error(r, w, http.StatusBadRequest, "Failed to parse 'check_config' JSON data: %s", err) - - return - } - - if len(reqData.DNS.IP) == 0 || len(reqData.Web.IP) == 0 { - aghhttp.Error(r, w, http.StatusBadRequest, http.StatusText(http.StatusBadRequest)) - - return - } - - nonBetaReqData := checkConfReq{ - Web: checkConfReqEnt{ - IP: reqData.Web.IP[0], - Port: reqData.Web.Port, - Autofix: reqData.Web.Autofix, - }, - DNS: checkConfReqEnt{ - IP: reqData.DNS.IP[0], - Port: reqData.DNS.Port, - Autofix: reqData.DNS.Autofix, - }, - SetStaticIP: reqData.SetStaticIP, - } - - nonBetaReqBody := &strings.Builder{} - - err = json.NewEncoder(nonBetaReqBody).Encode(nonBetaReqData) - if err != nil { - aghhttp.Error(r, w, http.StatusBadRequest, "encoding check_config: %s", err) - - return - } - - body := nonBetaReqBody.String() - r.Body = io.NopCloser(strings.NewReader(body)) - r.ContentLength = int64(len(body)) - - web.handleInstallCheckConfig(w, r) -} - -// applyConfigReqEntBeta is a struct representing new client's config setting -// request entry. It supports multiple IP values unlike the applyConfigReqEnt. -// -// TODO(e.burkov): This should removed with the API v1 when the appropriate -// functionality will appear in default applyConfigReqEnt. -type applyConfigReqEntBeta struct { - IP []netip.Addr `json:"ip"` - Port int `json:"port"` -} - -// applyConfigReqBeta is a struct representing new client's config setting -// request body. It uses applyConfigReqEntBeta instead of applyConfigReqEnt. -// -// TODO(e.burkov): This should removed with the API v1 when the appropriate -// functionality will appear in default applyConfigReq. -type applyConfigReqBeta struct { - Username string `json:"username"` - Password string `json:"password"` - - Web applyConfigReqEntBeta `json:"web"` - DNS applyConfigReqEntBeta `json:"dns"` -} - -// handleInstallConfigureBeta is a substitution of /install/configure handler -// for new client. -// -// TODO(e.burkov): This should removed with the API v1 when the appropriate -// functionality will appear in default handleInstallConfigure. -func (web *Web) handleInstallConfigureBeta(w http.ResponseWriter, r *http.Request) { - reqData := applyConfigReqBeta{} - err := json.NewDecoder(r.Body).Decode(&reqData) - if err != nil { - aghhttp.Error(r, w, http.StatusBadRequest, "Failed to parse 'check_config' JSON data: %s", err) - - return - } - - if len(reqData.DNS.IP) == 0 || len(reqData.Web.IP) == 0 { - aghhttp.Error(r, w, http.StatusBadRequest, http.StatusText(http.StatusBadRequest)) - - return - } - - nonBetaReqData := applyConfigReq{ - Web: applyConfigReqEnt{ - IP: reqData.Web.IP[0], - Port: reqData.Web.Port, - }, - DNS: applyConfigReqEnt{ - IP: reqData.DNS.IP[0], - Port: reqData.DNS.Port, - }, - Username: reqData.Username, - Password: reqData.Password, - } - - nonBetaReqBody := &strings.Builder{} - - err = json.NewEncoder(nonBetaReqBody).Encode(nonBetaReqData) - if err != nil { - aghhttp.Error(r, w, http.StatusBadRequest, "encoding configure: %s", err) - - return - } - body := nonBetaReqBody.String() - r.Body = io.NopCloser(strings.NewReader(body)) - r.ContentLength = int64(len(body)) - - web.handleInstallConfigure(w, r) -} - -// getAddrsResponseBeta is a struct representing new client's getting addresses -// request body. It uses array of structs instead of map. -// -// TODO(e.burkov): This should removed with the API v1 when the appropriate -// functionality will appear in default firstRunData. -type getAddrsResponseBeta struct { - Interfaces []*aghnet.NetInterface `json:"interfaces"` - WebPort int `json:"web_port"` - DNSPort int `json:"dns_port"` -} - -// handleInstallConfigureBeta is a substitution of /install/get_addresses -// handler for new client. -// -// TODO(e.burkov): This should removed with the API v1 when the appropriate -// functionality will appear in default handleInstallGetAddresses. -func (web *Web) handleInstallGetAddressesBeta(w http.ResponseWriter, r *http.Request) { - data := getAddrsResponseBeta{ - WebPort: defaultPortHTTP, - DNSPort: defaultPortDNS, - } - - ifaces, err := aghnet.GetValidNetInterfacesForWeb() - if err != nil { - aghhttp.Error(r, w, http.StatusInternalServerError, "Couldn't get interfaces: %s", err) - - return - } - - data.Interfaces = ifaces - - _ = aghhttp.WriteJSONResponse(w, r, data) -} - -// registerBetaInstallHandlers registers the install handlers for new client -// with the structures it supports. -// -// TODO(e.burkov): This should removed with the API v1 when the appropriate -// functionality will appear in default handlers. -func (web *Web) registerBetaInstallHandlers() { - Context.mux.HandleFunc("/control/install/get_addresses_beta", preInstall(ensureGET(web.handleInstallGetAddressesBeta))) - Context.mux.HandleFunc("/control/install/check_config_beta", preInstall(ensurePOST(web.handleInstallCheckConfigBeta))) - Context.mux.HandleFunc("/control/install/configure_beta", preInstall(ensurePOST(web.handleInstallConfigureBeta))) -} diff --git a/internal/home/home.go b/internal/home/home.go index ce464060ca0..2fb74b3c279 100644 --- a/internal/home/home.go +++ b/internal/home/home.go @@ -148,13 +148,6 @@ func Main(clientBuildFS fs.FS) { func setupContext(opts options) { setupContextFlags(opts) - switch version.Channel() { - case version.ChannelEdge, version.ChannelDevelopment: - config.BetaBindPort = 3001 - default: - // Go on. - } - Context.tlsRoots = aghtls.SystemRootCAs() Context.transport = &http.Transport{ DialContext: customDialContext, @@ -339,7 +332,7 @@ func setupConfig(opts options) (err error) { if opts.bindPort != 0 { tcpPorts := aghalg.UniqChecker[tcpPort]{} - addPorts(tcpPorts, tcpPort(opts.bindPort), tcpPort(config.BetaBindPort)) + addPorts(tcpPorts, tcpPort(opts.bindPort)) udpPorts := aghalg.UniqChecker[udpPort]{} addPorts(udpPorts, udpPort(config.DNS.Port)) @@ -376,36 +369,28 @@ func setupConfig(opts options) (err error) { } func initWeb(opts options, clientBuildFS fs.FS) (web *Web, err error) { - var clientFS, clientBetaFS fs.FS + var clientFS fs.FS if opts.localFrontend { log.Info("warning: using local frontend files") clientFS = os.DirFS("build/static") - clientBetaFS = os.DirFS("build2/static") } else { clientFS, err = fs.Sub(clientBuildFS, "build/static") if err != nil { return nil, fmt.Errorf("getting embedded client subdir: %w", err) } - - clientBetaFS, err = fs.Sub(clientBuildFS, "build2/static") - if err != nil { - return nil, fmt.Errorf("getting embedded beta client subdir: %w", err) - } } webConf := webConfig{ - firstRun: Context.firstRun, - BindHost: config.BindHost, - BindPort: config.BindPort, - BetaBindPort: config.BetaBindPort, + firstRun: Context.firstRun, + BindHost: config.BindHost, + BindPort: config.BindPort, ReadTimeout: readTimeout, ReadHeaderTimeout: readHdrTimeout, WriteTimeout: writeTimeout, - clientFS: clientFS, - clientBetaFS: clientBetaFS, + clientFS: clientFS, serveHTTP3: config.DNS.ServeHTTP3, } @@ -804,23 +789,12 @@ func loadCmdLineOpts() (opts options) { } // printWebAddrs prints addresses built from proto, addr, and an appropriate -// port. At least one address is printed with the value of port. If the value -// of betaPort is 0, the second address is not printed. Output example: +// port. At least one address is printed with the value of port. Output +// example: // -// Go to http://127.0.0.1:80 -// Go to http://127.0.0.1:3000 (BETA) -func printWebAddrs(proto, addr string, port, betaPort int) { - const ( - hostMsg = "Go to %s://%s" - hostBetaMsg = hostMsg + " (BETA)" - ) - - log.Printf(hostMsg, proto, netutil.JoinHostPort(addr, port)) - if betaPort == 0 { - return - } - - log.Printf(hostBetaMsg, proto, netutil.JoinHostPort(addr, config.BetaBindPort)) +// go to http://127.0.0.1:80 +func printWebAddrs(proto, addr string, port int) { + log.Printf("go to %s://%s", proto, netutil.JoinHostPort(addr, port)) } // printHTTPAddresses prints the IP addresses which user can use to access the @@ -838,14 +812,14 @@ func printHTTPAddresses(proto string) { // TODO(e.burkov): Inspect and perhaps merge with the previous condition. if proto == aghhttp.SchemeHTTPS && tlsConf.ServerName != "" { - printWebAddrs(proto, tlsConf.ServerName, tlsConf.PortHTTPS, 0) + printWebAddrs(proto, tlsConf.ServerName, tlsConf.PortHTTPS) return } bindhost := config.BindHost if !bindhost.IsUnspecified() { - printWebAddrs(proto, bindhost.String(), port, config.BetaBindPort) + printWebAddrs(proto, bindhost.String(), port) return } @@ -856,14 +830,14 @@ func printHTTPAddresses(proto string) { // That's weird, but we'll ignore it. // // TODO(e.burkov): Find out when it happens. - printWebAddrs(proto, bindhost.String(), port, config.BetaBindPort) + printWebAddrs(proto, bindhost.String(), port) return } for _, iface := range ifaces { for _, addr := range iface.Addresses { - printWebAddrs(proto, addr.String(), config.BindPort, config.BetaBindPort) + printWebAddrs(proto, addr.String(), config.BindPort) } } } diff --git a/internal/home/middlewares.go b/internal/home/middlewares.go index 73e1566ed38..5ad02ee00c3 100644 --- a/internal/home/middlewares.go +++ b/internal/home/middlewares.go @@ -75,18 +75,3 @@ func limitRequestBody(h http.Handler) (limited http.Handler) { h.ServeHTTP(w, rr) }) } - -// wrapIndexBeta returns handler that deals with new client. -func (web *Web) wrapIndexBeta(http.Handler) (wrapped http.Handler) { - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - h, pattern := Context.mux.Handler(r) - switch pattern { - case "/": - web.handlerBeta.ServeHTTP(w, r) - case "/install.html": - web.installerBeta.ServeHTTP(w, r) - default: - h.ServeHTTP(w, r) - } - }) -} diff --git a/internal/home/tls.go b/internal/home/tls.go index 4be63d9d87c..741df5489dd 100644 --- a/internal/home/tls.go +++ b/internal/home/tls.go @@ -301,7 +301,6 @@ func (m *tlsManager) handleTLSValidate(w http.ResponseWriter, r *http.Request) { if setts.Enabled { err = validatePorts( tcpPort(config.BindPort), - tcpPort(config.BetaBindPort), tcpPort(setts.PortHTTPS), tcpPort(setts.PortDNSOverTLS), tcpPort(setts.PortDNSCrypt), @@ -389,7 +388,6 @@ func (m *tlsManager) handleTLSConfigure(w http.ResponseWriter, r *http.Request) if req.Enabled { err = validatePorts( tcpPort(config.BindPort), - tcpPort(config.BetaBindPort), tcpPort(req.PortHTTPS), tcpPort(req.PortDNSOverTLS), tcpPort(req.PortDNSCrypt), @@ -464,14 +462,13 @@ func (m *tlsManager) handleTLSConfigure(w http.ResponseWriter, r *http.Request) // validatePorts validates the uniqueness of TCP and UDP ports for AdGuard Home // DNS protocols. func validatePorts( - bindPort, betaBindPort, dohPort, dotPort, dnscryptTCPPort tcpPort, + bindPort, dohPort, dotPort, dnscryptTCPPort tcpPort, dnsPort, doqPort udpPort, ) (err error) { tcpPorts := aghalg.UniqChecker[tcpPort]{} addPorts( tcpPorts, tcpPort(bindPort), - tcpPort(betaBindPort), tcpPort(dohPort), tcpPort(dotPort), tcpPort(dnscryptTCPPort), diff --git a/internal/home/web.go b/internal/home/web.go index 7836355f6ee..96c0a6a927f 100644 --- a/internal/home/web.go +++ b/internal/home/web.go @@ -33,13 +33,11 @@ const ( ) type webConfig struct { - clientFS fs.FS - clientBetaFS fs.FS + clientFS fs.FS - BindHost netip.Addr - BindPort int - BetaBindPort int - PortHTTPS int + BindHost netip.Addr + BindPort int + PortHTTPS int // ReadTimeout is an option to pass to http.Server for setting an // appropriate field. @@ -81,15 +79,6 @@ type Web struct { // TODO(a.garipov): Refactor all these servers. httpServer *http.Server - // httpServerBeta is a server for new client. - httpServerBeta *http.Server - - // handlerBeta is the handler for new client. - handlerBeta http.Handler - - // installerBeta is the pre-install handler for new client. - installerBeta http.Handler - // httpsServer is the server that handles HTTPS traffic. If it is not nil, // [Web.http3Server] must also not be nil. httpsServer httpsServer @@ -106,20 +95,15 @@ func newWeb(conf *webConfig) (w *Web) { } clientFS := http.FileServer(http.FS(conf.clientFS)) - betaClientFS := http.FileServer(http.FS(conf.clientBetaFS)) // if not configured, redirect / to /install.html, otherwise redirect /install.html to / Context.mux.Handle("/", withMiddlewares(clientFS, gziphandler.GzipHandler, optionalAuthHandler, postInstallHandler)) - w.handlerBeta = withMiddlewares(betaClientFS, gziphandler.GzipHandler, optionalAuthHandler, postInstallHandler) // add handlers for /install paths, we only need them when we're not configured yet if conf.firstRun { log.Info("This is the first launch of AdGuard Home, redirecting everything to /install.html ") Context.mux.Handle("/install.html", preInstallHandler(clientFS)) - w.installerBeta = preInstallHandler(betaClientFS) w.registerInstallHandlers() - // This must be removed in API v1. - w.registerBetaInstallHandlers() } else { registerControlHandlers() } @@ -208,8 +192,6 @@ func (web *Web) Start() { errs <- web.httpServer.ListenAndServe() }() - web.startBetaServer(hostStr) - err := <-errs if !errors.Is(err, http.ErrServerClosed) { cleanupAlways() @@ -221,36 +203,6 @@ func (web *Web) Start() { } } -// startBetaServer starts the beta HTTP server if necessary. -func (web *Web) startBetaServer(hostStr string) { - if web.conf.BetaBindPort == 0 { - return - } - - // Use an h2c handler to support unencrypted HTTP/2, e.g. for proxies. - hdlr := h2c.NewHandler( - withMiddlewares(Context.mux, limitRequestBody, web.wrapIndexBeta), - &http2.Server{}, - ) - - web.httpServerBeta = &http.Server{ - ErrorLog: log.StdLog("web: plain: beta", log.DEBUG), - Addr: netutil.JoinHostPort(hostStr, web.conf.BetaBindPort), - Handler: hdlr, - ReadTimeout: web.conf.ReadTimeout, - ReadHeaderTimeout: web.conf.ReadHeaderTimeout, - WriteTimeout: web.conf.WriteTimeout, - } - go func() { - defer log.OnPanic("web: plain: beta") - - betaErr := web.httpServerBeta.ListenAndServe() - if betaErr != nil && !errors.Is(betaErr, http.ErrServerClosed) { - log.Error("starting beta http server: %s", betaErr) - } - }() -} - // Close gracefully shuts down the HTTP servers. func (web *Web) Close(ctx context.Context) { log.Info("stopping http server...") @@ -266,7 +218,6 @@ func (web *Web) Close(ctx context.Context) { shutdownSrv(ctx, web.httpsServer.server) shutdownSrv3(web.httpsServer.server3) shutdownSrv(ctx, web.httpServer) - shutdownSrv(ctx, web.httpServerBeta) log.Info("stopped http server") } diff --git a/main.go b/main.go index 615a8a8636f..6246b19eea4 100644 --- a/main.go +++ b/main.go @@ -13,7 +13,7 @@ import ( // internal directory and the embed package is unable to embed files located // outside of the same or underlying directory. -//go:embed build build2 +//go:embed build var clientBuildFS embed.FS func main() { diff --git a/main_next.go b/main_next.go index 0006e87bf1c..d9773d4750b 100644 --- a/main_next.go +++ b/main_next.go @@ -13,7 +13,7 @@ import ( // internal directory and the embed package is unable to embed files located // outside of the same or underlying directory. -//go:embed build2 +//go:embed build var clientBuildFS embed.FS func main() { diff --git a/openapi/CHANGELOG.md b/openapi/CHANGELOG.md index b583ad60c5d..20dde66252f 100644 --- a/openapi/CHANGELOG.md +++ b/openapi/CHANGELOG.md @@ -6,6 +6,21 @@ +## v0.107.23: API changes + +### Experimental “beta” APIs removed + +The following experimental beta APIs have been removed: + + * `GET /control/install/get_addresses_beta`; + * `POST /control/install/check_config_beta`; + * `POST /control/install/configure_beta`. + +They never quite worked properly, and the future new version of AdGuard Home API +will probably be different. + + + ## v0.107.22: API changes ### `POST /control/i18n/change_language` is deprecated diff --git a/openapi/openapi.yaml b/openapi/openapi.yaml index 68401830ea0..0bbac1e012b 100644 --- a/openapi/openapi.yaml +++ b/openapi/openapi.yaml @@ -999,20 +999,6 @@ 'application/json': 'schema': '$ref': '#/components/schemas/LanguageSettings' - '/install/get_addresses_beta': - 'get': - 'tags': - - 'install' - 'operationId': 'installGetAddressesBeta' - 'summary': > - 'UNSTABLE!: Gets the network interfaces information.' - 'responses': - '200': - 'description': 'OK.' - 'content': - 'application/json': - 'schema': - '$ref': '#/components/schemas/AddressesInfoBeta' '/install/get_addresses': 'get': 'tags': @@ -1026,30 +1012,6 @@ 'application/json': 'schema': '$ref': '#/components/schemas/AddressesInfo' - '/install/check_config_beta': - 'post': - 'tags': - - 'install' - 'operationId': 'installCheckConfigBeta' - 'summary': > - 'UNSTABLE!: Checks configuration' - 'requestBody': - 'content': - 'application/json': - 'schema': - '$ref': '#/components/schemas/CheckConfigRequestBeta' - 'description': 'Configuration to be checked' - 'required': true - 'responses': - '200': - 'description': 'OK.' - 'content': - 'application/json': - 'schema': - '$ref': '#/components/schemas/CheckConfigResponse' - '400': - 'description': > - Failed to parse JSON or cannot listen on the specified address. '/install/check_config': 'post': 'tags': @@ -1073,29 +1035,6 @@ '400': 'description': > Failed to parse JSON or cannot listen on the specified address. - '/install/configure_beta': - 'post': - 'tags': - - 'install' - 'operationId': 'installConfigureBeta' - 'summary': > - 'UNSTABLE!: Applies the initial configuration.' - 'requestBody': - 'content': - 'application/json': - 'schema': - '$ref': '#/components/schemas/InitialConfigurationBeta' - 'description': 'Initial configuration JSON' - 'required': true - 'responses': - '200': - 'description': 'OK.' - '400': - 'description': > - Failed to parse initial configuration or cannot listen to the - specified addresses. - '500': - 'description': 'Cannot start the DNS server' '/install/configure': 'post': 'tags': @@ -2273,24 +2212,6 @@ 'type': 'string' 'mtu': 'type': 'integer' - 'AddressInfoBeta': - 'type': 'object' - 'description': 'Port information' - 'required': - - 'ip' - - 'port' - 'properties': - 'ip': - 'type': 'array' - 'items': - 'type': 'string' - 'minItems': 1 - 'example': - - '127.0.0.1' - 'port': - 'type': 'integer' - 'format': 'uint16' - 'example': 53 'AddressInfo': 'type': 'object' 'description': 'Port information' @@ -2327,28 +2248,6 @@ 'type': 'integer' 'format': 'uint16' 'example': 80 - 'AddressesInfoBeta': - 'type': 'object' - 'description': 'AdGuard Home addresses configuration' - 'required': - - 'dns_port' - - 'web_port' - - 'interfaces' - 'properties': - 'dns_port': - 'type': 'integer' - 'format': 'uint16' - 'example': 53 - 'web_port': - 'type': 'integer' - 'format': 'uint16' - 'example': 80 - 'interfaces': - 'type': 'array' - 'description': > - Network interfaces dictionary, keys are interface names. - 'items': - '$ref': '#/components/schemas/NetInterface' 'ProfileInfo': 'type': 'object' 'description': 'Information about the current user' @@ -2633,17 +2532,6 @@ - 'name' - 'rules' 'type': 'object' - 'CheckConfigRequestBeta': - 'type': 'object' - 'description': 'Configuration to be checked' - 'properties': - 'dns': - '$ref': '#/components/schemas/CheckConfigRequestInfoBeta' - 'web': - '$ref': '#/components/schemas/CheckConfigRequestInfoBeta' - 'set_static_ip': - 'type': 'boolean' - 'example': false 'CheckConfigRequest': 'type': 'object' 'description': 'Configuration to be checked' @@ -2655,23 +2543,6 @@ 'set_static_ip': 'type': 'boolean' 'example': false - 'CheckConfigRequestInfoBeta': - 'type': 'object' - 'properties': - 'ip': - 'type': 'array' - 'items': - 'type': 'string' - 'minItems': 1 - 'example': - - '127.0.0.1' - 'port': - 'type': 'integer' - 'format': 'uint16' - 'example': 53 - 'autofix': - 'type': 'boolean' - 'example': false 'CheckConfigRequestInfo': 'type': 'object' 'properties': @@ -2732,28 +2603,6 @@ 'type': 'string' 'default': '' 'description': 'Error text. Set if static=error' - 'InitialConfigurationBeta': - 'type': 'object' - 'description': > - AdGuard Home initial configuration for the first-install wizard. - 'required': - - 'dns' - - 'web' - - 'username' - - 'password' - 'properties': - 'dns': - '$ref': '#/components/schemas/AddressInfoBeta' - 'web': - '$ref': '#/components/schemas/AddressInfoBeta' - 'username': - 'type': 'string' - 'description': 'Basic auth username' - 'example': 'admin' - 'password': - 'type': 'string' - 'description': 'Basic auth password' - 'example': 'password' 'InitialConfiguration': 'type': 'object' 'description': > diff --git a/scripts/hooks/pre-commit b/scripts/hooks/pre-commit index 9866e3ed6c1..a76639af1e4 100755 --- a/scripts/hooks/pre-commit +++ b/scripts/hooks/pre-commit @@ -77,11 +77,6 @@ then make VERBOSE="$verbose" js-lint js-test fi -if [ "$( git diff --cached --name-only -- 'client2/*.js' 'client2/*.ts' 'client2/*.tsx' )" ] -then - make VERBOSE="$verbose" js-beta-lint js-beta-test -fi - if [ "$( git diff --cached --name-only -- '*.go' '*.mod' '*.sh' 'Makefile' )" ] then make VERBOSE="$verbose" go-os-check go-lint go-test diff --git a/scripts/make/build-release.sh b/scripts/make/build-release.sh index 72ba8aeb8f2..6194d87b096 100644 --- a/scripts/make/build-release.sh +++ b/scripts/make/build-release.sh @@ -320,7 +320,7 @@ done log "packing frontend" build_archive="./${dist}/AdGuardHome_frontend.tar.gz" -tar -c -f - ./build ./build2 | gzip -9 - > "$build_archive" +tar -c -f - ./build | gzip -9 - > "$build_archive" log "$build_archive" log "calculating checksums" diff --git a/scripts/make/clean.sh b/scripts/make/clean.sh index f7384641dc1..666af7e2490 100644 --- a/scripts/make/clean.sh +++ b/scripts/make/clean.sh @@ -23,9 +23,7 @@ $sudo_cmd rm -f\ $sudo_cmd rm -f -r\ ./bin/\ ./build/static/\ - ./build2/static/\ ./client/node_modules/\ - ./client2/node_modules/\ ./data/\ "./${dist_dir}/"\ ;