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 2d3d46fc..3873fd3d 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 225bb68b..add4b3e9 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 cca89017..ad895f16 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 e67b104b..00000000 --- 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 d30c2950..00000000 --- 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 86f6ae47..00000000 --- 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 87c53150..00000000 --- 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 a28282e3..00000000 --- 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 ee95a234..00000000 --- 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 2e2d1e33..00000000 --- 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 e0b70d14..00000000 --- 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 38145e15..00000000 --- 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 bbec9361..00000000 --- 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 19ac2256..00000000 --- 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 4201da2b..00000000 --- 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 7ace9fa1..00000000 --- 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 5183b6c5..00000000 --- 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 6634f65b..00000000 --- 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 759fa44f..00000000 --- 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 33784298..00000000 --- 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 f31bae1f..00000000 --- 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 2a72e0b6..00000000 --- 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 babb4f54..00000000 --- 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 2d5c1c8a..00000000 --- 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 d9057ef1..00000000 --- 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 f01e3253..00000000 --- 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 ccc61315..00000000 --- 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 cddb50c6..00000000 --- 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 02846ca1..00000000 --- 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 62eb6b4f..00000000 --- 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 b962db01..00000000 --- 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 085552ae..00000000 --- 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 7520f474..00000000 --- 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 7b8eec9d..00000000 --- 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 019ab9c9..00000000 --- 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 cc8003da..00000000 --- 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 1ec98476..00000000 --- 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 98228599..00000000 --- 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 d4b4b01a..00000000 --- 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 9e743964..00000000 --- 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 b495d493..00000000 --- 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 b61ab72a..00000000 --- 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 35fe686f..00000000 --- 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 79fcc1b8..00000000 --- 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 9fc2523c..00000000 --- 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 449ae567..00000000 --- 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 42204783..00000000 --- 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 92e6f908..00000000 --- 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 e5d6dda2..00000000 --- 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 78f6f067..00000000 --- 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 d5da7456..00000000 --- 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 579f1ac2..00000000 --- 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 f19b8a60..00000000 --- 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 ae887cd9..00000000 --- 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 844e03f9..00000000 --- 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 3da6e50e..00000000 --- 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 f722a790..00000000 --- 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 e1561e76..00000000 --- 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 ad6df6cd..00000000 --- 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 edc668a3..00000000 --- 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 00a273bb..00000000 --- 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 e1570e85..00000000 --- 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 72847496..00000000 --- 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 c13bf599..00000000 --- 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 7b6e2112..00000000 --- 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 872b4789..00000000 --- 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 103dbe79..00000000 --- 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 dfb1ece8..00000000 --- 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 c4ac60c5..00000000 --- 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 f4c5a760..00000000 --- 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 97a2bb20..00000000 --- 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 6942d66a..00000000 --- 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 f7485bc7..00000000 --- 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 e842a859..00000000 --- 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 9122fa1a..00000000 --- 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 3e7d797e..00000000 --- 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 1a4b3757..00000000 --- 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 e0f7b851..00000000 --- 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 fe346328..00000000 --- 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 b1dea29b..00000000 --- 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 fc305adf..00000000 --- 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 928cdfa0..00000000 --- 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 60db1260..00000000 --- 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 95d67c54..00000000 --- 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 d5875eac..00000000 --- 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 a4875a80..00000000 --- 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 3f6f3a0d..00000000 --- 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 29950ca8..00000000 --- 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 2fb2a1bd..00000000 --- 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 baa81184..00000000 --- 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 7cc4be19..00000000 --- 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 6808555d..00000000 --- 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 667b9abd..00000000 --- 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 efe8c800..00000000 --- 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 2b7503bb..00000000 --- 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 b4d38647..00000000 --- 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 ebbce092..00000000 --- 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 5b816858..00000000 --- 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 61c95671..00000000 --- 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 bb762eec..00000000 --- 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 4f1eea55..00000000 --- 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 3746e6fe..00000000 --- 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 60de648c..00000000 --- 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 a04cce3c..00000000 --- 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 14e0cad5..00000000 --- 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 7b1322b1..00000000 --- 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 68b39915..00000000 --- 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 e69de29b..00000000 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 a935fe21..00000000 --- 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 261852b3..00000000 --- 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 c1c8457b..00000000 --- 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 a77a74a7..00000000 --- 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 dcf0e338..00000000 --- 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 1342ea34..00000000 --- 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 24bc15b2..00000000 --- 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 25f35f87..00000000 --- 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 5abbc0a1..00000000 --- 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 7c7e1930..00000000 --- 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 162b2349..00000000 --- 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 7933fa49..00000000 --- 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 69c284eb..00000000 --- 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 6a5da09b..00000000 --- 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 c505ed48..00000000 --- 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 e0c73cb3..00000000 --- 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 8e62049e..00000000 --- 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 503b858c..00000000 --- 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 4ecab818..00000000 --- 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 3751f879..00000000 --- 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 c0c98671..00000000 --- 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 b3937d8d..00000000 --- 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 a0d55dfe..00000000 --- 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 0b110210..00000000 --- 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 1de4b6e5..00000000 --- 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 a4e7d2ec..00000000 --- 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 9fd16b8d..00000000 --- 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 7daa3344..00000000 --- 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 187bcc9c..00000000 --- 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 2d2df29f..00000000 --- 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 cdaf1e91..00000000 --- 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 d66e7139..00000000 --- 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 045ea104..00000000 --- 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 6de0d230..00000000 --- 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 f0aa37fb..00000000 --- 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 5abeffa0..00000000 --- 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 61f693f5..00000000 --- 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 eded5c97..00000000 --- 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 9d82a5a1..00000000 --- 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 e36e79f9..00000000 --- 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 630f17c0..00000000 --- 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 c9f064d7..00000000 --- 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 668536b0..00000000 --- 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 85b4220d..00000000 --- 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 fcc3904f..00000000 --- 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 7d127465..00000000 --- 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 c4443f0a..00000000 --- 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 45ebbab1..00000000 --- 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 076dd4d2..00000000 --- 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 1afdecb4..00000000 --- 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 8b5073a3..00000000 --- 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 af864b17..00000000 --- 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 603adafe..00000000 --- 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 6c175abe..00000000 --- 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 dba0f741..00000000 --- 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 b34c855f..00000000 --- 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 c8da0cf3..00000000 --- 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 d086e771..00000000 --- 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 74d45519..00000000 --- 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 09d9d2a9..00000000 --- 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 b7c7a34c..00000000 --- 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 9609e1ec..00000000 --- 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 c86a9d8f..00000000 --- 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 2696a4c2..00000000 --- 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 6a009c03..00000000 --- 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 8d067549..00000000 --- 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 2a817b3a..00000000 --- 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 8ba5a8e8..00000000 --- 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 774e162b..00000000 --- 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 855c9e8a..00000000 --- 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 8b220a78..00000000 --- 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 63685be6..00000000 --- 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 d56883e5..00000000 --- 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 61874da0..00000000 --- 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 ae4ebdc2..00000000 --- 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 cf7d6763..00000000 --- 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 b285496b..00000000 --- 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 c168a244..00000000 --- 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 be50bbdd..00000000 --- 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 f3fc2155..00000000 --- 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 01af4419..00000000 --- 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 e02134a5..00000000 --- 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 a365f3b6..00000000 --- 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 604daf95..00000000 --- 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 d3351be3..00000000 --- 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 42849b17..00000000 --- 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 79d16b5c..00000000 --- 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 c7f3ff87..00000000 --- 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 2f0daa9a..00000000 --- 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 b1691de1..00000000 --- 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 3b274ddb..00000000 --- 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 96d45b09..00000000 --- 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 92eccfc7..00000000 --- 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 be63d512..00000000 --- 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 8677bb11..00000000 --- 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 1bb32c3c..00000000 --- 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 bbf09595..00000000 --- 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 808c6f6e..00000000 --- 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 c11d7a2c..00000000 --- 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 29a33304..00000000 --- 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 0a8f099c..00000000 --- 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 da2b7761..00000000 --- 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 e767d72c..00000000 --- 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 6dffead3..00000000 --- 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 b45571a0..00000000 --- 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 d0f03c98..00000000 --- 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 31612b57..00000000 --- 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 a92ff328..00000000 --- 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 d70f0adf..00000000 --- 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 bae0e1b5..00000000 --- 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 516105ea..00000000 --- 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 be3ecad1..00000000 --- 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 2720683a..00000000 --- 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 5b9c0a6b..00000000 --- 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 5d827a7e..00000000 --- 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 59d4b937..00000000 --- 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 aa5ee628..00000000 --- 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 c1916e1f..00000000 --- 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 a4258402..00000000 --- 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 8f2246df..00000000 --- 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 f4988df6..00000000 --- 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 39b5d682..00000000 --- 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 b0751d90..00000000 --- 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 55a5f4e3..00000000 --- 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 09b157b8..00000000 --- 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 c215d1a0..00000000 --- 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 a5a02eae..00000000 --- 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 a0094f6a..00000000 --- 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 98266112..00000000 --- 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 af53fc02..00000000 --- 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 9d7573ba..00000000 --- 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 a1c7b93b..00000000 --- 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 dfe7bfd7..00000000 --- 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 4debd161..00000000 --- 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 c4aa3062..00000000 --- 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 6b5e8287..00000000 --- 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 92b2ff06..00000000 --- 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 b1534731..00000000 --- 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 41652998..00000000 --- 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 c0d0377e..00000000 --- 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 df679d58..00000000 --- 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 fa3398ad..00000000 --- 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 d171bb54..00000000 --- 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 dd2f0730..d5b8fdf3 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 0cbddf00..7b053f14 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 ce464060..2fb74b3c 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 73e1566e..5ad02ee0 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 4be63d9d..741df548 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 7836355f..96c0a6a9 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 615a8a86..6246b19e 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 0006e87b..d9773d47 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 b583ad60..20dde662 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 68401830..0bbac1e0 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 9866e3ed..a76639af 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 72ba8aeb..6194d87b 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 f7384641..666af7e2 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}/"\ ;