From 0121aaea49683bf1ecf5ecbc9223f6d730b636f3 Mon Sep 17 00:00:00 2001 From: Walid Saleh Date: Wed, 29 Nov 2023 12:14:45 +0100 Subject: [PATCH] initial commit --- .gitattributes | 148 + .gitignore | 73 + .gitmodules | 3 + .yarnrc | 1 + LICENSE.txt | 621 ++ README.md | 48 + build/64x64.png | Bin 0 -> 2821 bytes build/icon.icns | Bin 0 -> 253561 bytes build/icon.ico | Bin 0 -> 244199 bytes build/icon.svg | 1497 ++++ index.js | 109 + package.json | 93 + preload.js | 25 + scripts/gen-version.js | 16 + scripts/reset-version.js | 6 + scripts/set-version.js | 6 + server/.eslintignore | 1 + server/.eslintrc.yml | 16 + server/.gitignore | 68 + server/.prettierrc.yml | 8 + server/jest.config.js | 7 + server/package.json | 83 + server/src/app.ts | 400 + server/src/helpers/errors.ts | 55 + server/src/helpers/logger.ts | 51 + server/src/helpers/loginStorage.ts | 45 + server/src/helpers/paths.ts | 5 + server/src/helpers/port.ts | 22 + server/src/helpers/primitive-checks.ts | 1 + server/src/helpers/server-callbacks.ts | 51 + server/src/index.ts | 27 + server/src/middlewares.ts | 36 + server/src/routes/api/delete/index.ts | 3 + server/src/routes/api/get/albumSearch.spec.ts | 51 + server/src/routes/api/get/albumSearch.ts | 92 + server/src/routes/api/get/analyzeLink.spec.ts | 30 + server/src/routes/api/get/analyzeLink.ts | 47 + server/src/routes/api/get/checkForUpdates.ts | 16 + server/src/routes/api/get/connect.ts | 50 + server/src/routes/api/get/getChartTracks.ts | 45 + server/src/routes/api/get/getCharts.ts | 33 + server/src/routes/api/get/getHome.ts | 22 + server/src/routes/api/get/getQueue.ts | 16 + server/src/routes/api/get/getSettings.ts | 12 + server/src/routes/api/get/getTracklist.ts | 105 + server/src/routes/api/get/getUserAlbums.ts | 24 + server/src/routes/api/get/getUserArtists.ts | 24 + server/src/routes/api/get/getUserFavorites.ts | 30 + server/src/routes/api/get/getUserPlaylists.ts | 24 + .../routes/api/get/getUserSpotifyPlaylists.ts | 41 + server/src/routes/api/get/getUserTracks.ts | 23 + server/src/routes/api/get/index.ts | 43 + server/src/routes/api/get/mainSearch.ts | 160 + server/src/routes/api/get/newReleases.ts | 74 + server/src/routes/api/get/search.ts | 61 + server/src/routes/api/get/spotifyStatus.ts | 12 + server/src/routes/api/patch/index.ts | 3 + server/src/routes/api/post/addToQueue.ts | 43 + .../src/routes/api/post/cancelAllDownloads.ts | 13 + .../src/routes/api/post/changeAccount.spec.ts | 15 + server/src/routes/api/post/changeAccount.ts | 31 + server/src/routes/api/post/index.ts | 23 + server/src/routes/api/post/loginArl.spec.ts | 40 + server/src/routes/api/post/loginArl.ts | 87 + server/src/routes/api/post/loginEmail.ts | 30 + server/src/routes/api/post/logout.ts | 17 + .../api/post/removeFinishedDownloads.ts | 13 + server/src/routes/api/post/removeFromQueue.ts | 18 + server/src/routes/api/post/retryDownload.ts | 56 + server/src/routes/api/post/saveSettings.ts | 20 + server/src/routes/api/register.ts | 46 + server/src/routes/index.spec.ts | 35 + server/src/routes/index.ts | 4 + server/src/server.ts | 125 + server/src/types.ts | 252 + server/src/websocket/index.ts | 27 + .../websocket/modules/cancelAllDownloads.ts | 12 + server/src/websocket/modules/index.ts | 6 + .../modules/removeFinishedDownloads.ts | 12 + .../src/websocket/modules/removeFromQueue.ts | 12 + server/src/websocket/modules/saveSettings.ts | 20 + server/tests/cookie-parser.spec.ts | 30 + server/tests/utils.ts | 9 + server/tsconfig.json | 76 + server/webpack.config.js | 50 + server/yarn.lock | 7049 +++++++++++++++++ webui/.eslintrc.yml | 17 + webui/.gitattributes | 148 + webui/.gitignore | 37 + webui/.prettierrc.yml | 10 + webui/COMPILE-UI.md | 104 + webui/LICENSE.txt | 621 ++ webui/README.md | 32 + webui/babel.config.js | 7 + webui/jest.config.js | 13 + webui/package.json | 61 + webui/postcss.config.js | 6 + webui/public/favicon.ico | Bin 0 -> 244199 bytes webui/public/fonts/OpenSans/LICENSE.txt | 202 + .../mem5YaGs126MiZpBA-UN7rgOUehpOqc.woff2 | Bin 0 -> 8104 bytes .../mem5YaGs126MiZpBA-UN7rgOUuhp.woff2 | Bin 0 -> 15056 bytes .../mem5YaGs126MiZpBA-UN7rgOVuhpOqc.woff2 | Bin 0 -> 9560 bytes .../mem5YaGs126MiZpBA-UN7rgOX-hpOqc.woff2 | Bin 0 -> 17568 bytes .../mem5YaGs126MiZpBA-UN7rgOXOhpOqc.woff2 | Bin 0 -> 11708 bytes .../mem5YaGs126MiZpBA-UN7rgOXehpOqc.woff2 | Bin 0 -> 6236 bytes .../mem5YaGs126MiZpBA-UN7rgOXuhpOqc.woff2 | Bin 0 -> 2348 bytes .../mem5YaGs126MiZpBA-UN8rsOUehpOqc.woff2 | Bin 0 -> 8012 bytes .../mem5YaGs126MiZpBA-UN8rsOUuhp.woff2 | Bin 0 -> 15088 bytes .../mem5YaGs126MiZpBA-UN8rsOVuhpOqc.woff2 | Bin 0 -> 9696 bytes .../mem5YaGs126MiZpBA-UN8rsOX-hpOqc.woff2 | Bin 0 -> 17168 bytes .../mem5YaGs126MiZpBA-UN8rsOXOhpOqc.woff2 | Bin 0 -> 11936 bytes .../mem5YaGs126MiZpBA-UN8rsOXehpOqc.woff2 | Bin 0 -> 6320 bytes .../mem5YaGs126MiZpBA-UN8rsOXuhpOqc.woff2 | Bin 0 -> 2416 bytes .../mem5YaGs126MiZpBA-UN_r8OUehpOqc.woff2 | Bin 0 -> 7840 bytes .../mem5YaGs126MiZpBA-UN_r8OUuhp.woff2 | Bin 0 -> 14932 bytes .../mem5YaGs126MiZpBA-UN_r8OVuhpOqc.woff2 | Bin 0 -> 9588 bytes .../mem5YaGs126MiZpBA-UN_r8OX-hpOqc.woff2 | Bin 0 -> 17364 bytes .../mem5YaGs126MiZpBA-UN_r8OXOhpOqc.woff2 | Bin 0 -> 11588 bytes .../mem5YaGs126MiZpBA-UN_r8OXehpOqc.woff2 | Bin 0 -> 6040 bytes .../mem5YaGs126MiZpBA-UN_r8OXuhpOqc.woff2 | Bin 0 -> 2392 bytes .../mem5YaGs126MiZpBA-UNirkOUehpOqc.woff2 | Bin 0 -> 7884 bytes .../mem5YaGs126MiZpBA-UNirkOUuhp.woff2 | Bin 0 -> 14880 bytes .../mem5YaGs126MiZpBA-UNirkOVuhpOqc.woff2 | Bin 0 -> 9604 bytes .../mem5YaGs126MiZpBA-UNirkOX-hpOqc.woff2 | Bin 0 -> 17420 bytes .../mem5YaGs126MiZpBA-UNirkOXOhpOqc.woff2 | Bin 0 -> 11724 bytes .../mem5YaGs126MiZpBA-UNirkOXehpOqc.woff2 | Bin 0 -> 6148 bytes .../mem5YaGs126MiZpBA-UNirkOXuhpOqc.woff2 | Bin 0 -> 2352 bytes .../mem6YaGs126MiZpBA-UFUK0Udc1UAw.woff2 | Bin 0 -> 16028 bytes .../mem6YaGs126MiZpBA-UFUK0Vdc1UAw.woff2 | Bin 0 -> 2308 bytes .../mem6YaGs126MiZpBA-UFUK0Wdc1UAw.woff2 | Bin 0 -> 5856 bytes .../mem6YaGs126MiZpBA-UFUK0Xdc1UAw.woff2 | Bin 0 -> 10908 bytes .../mem6YaGs126MiZpBA-UFUK0Zdc0.woff2 | Bin 0 -> 13780 bytes .../mem6YaGs126MiZpBA-UFUK0adc1UAw.woff2 | Bin 0 -> 7264 bytes .../mem6YaGs126MiZpBA-UFUK0ddc1UAw.woff2 | Bin 0 -> 9392 bytes .../mem8YaGs126MiZpBA-UFUZ0bbck.woff2 | Bin 0 -> 9400 bytes .../OpenSans/mem8YaGs126MiZpBA-UFVZ0b.woff2 | Bin 0 -> 14380 bytes .../mem8YaGs126MiZpBA-UFVp0bbck.woff2 | Bin 0 -> 7704 bytes .../mem8YaGs126MiZpBA-UFW50bbck.woff2 | Bin 0 -> 11316 bytes .../mem8YaGs126MiZpBA-UFWJ0bbck.woff2 | Bin 0 -> 16688 bytes .../mem8YaGs126MiZpBA-UFWZ0bbck.woff2 | Bin 0 -> 2344 bytes .../mem8YaGs126MiZpBA-UFWp0bbck.woff2 | Bin 0 -> 6028 bytes .../memnYaGs126MiZpBA-UFUKW-U9hkIqOjjg.woff2 | Bin 0 -> 5984 bytes .../memnYaGs126MiZpBA-UFUKW-U9hlIqOjjg.woff2 | Bin 0 -> 10984 bytes .../memnYaGs126MiZpBA-UFUKW-U9hmIqOjjg.woff2 | Bin 0 -> 15744 bytes .../memnYaGs126MiZpBA-UFUKW-U9hnIqOjjg.woff2 | Bin 0 -> 2392 bytes .../memnYaGs126MiZpBA-UFUKW-U9hoIqOjjg.woff2 | Bin 0 -> 7516 bytes .../memnYaGs126MiZpBA-UFUKW-U9hrIqM.woff2 | Bin 0 -> 13960 bytes .../memnYaGs126MiZpBA-UFUKW-U9hvIqOjjg.woff2 | Bin 0 -> 9356 bytes .../memnYaGs126MiZpBA-UFUKWiUNhkIqOjjg.woff2 | Bin 0 -> 5944 bytes .../memnYaGs126MiZpBA-UFUKWiUNhlIqOjjg.woff2 | Bin 0 -> 10752 bytes .../memnYaGs126MiZpBA-UFUKWiUNhmIqOjjg.woff2 | Bin 0 -> 15680 bytes .../memnYaGs126MiZpBA-UFUKWiUNhnIqOjjg.woff2 | Bin 0 -> 2372 bytes .../memnYaGs126MiZpBA-UFUKWiUNhoIqOjjg.woff2 | Bin 0 -> 7352 bytes .../memnYaGs126MiZpBA-UFUKWiUNhrIqM.woff2 | Bin 0 -> 13880 bytes .../memnYaGs126MiZpBA-UFUKWiUNhvIqOjjg.woff2 | Bin 0 -> 9400 bytes .../memnYaGs126MiZpBA-UFUKWyV9hkIqOjjg.woff2 | Bin 0 -> 5824 bytes .../memnYaGs126MiZpBA-UFUKWyV9hlIqOjjg.woff2 | Bin 0 -> 10944 bytes .../memnYaGs126MiZpBA-UFUKWyV9hmIqOjjg.woff2 | Bin 0 -> 15776 bytes .../memnYaGs126MiZpBA-UFUKWyV9hnIqOjjg.woff2 | Bin 0 -> 2360 bytes .../memnYaGs126MiZpBA-UFUKWyV9hoIqOjjg.woff2 | Bin 0 -> 7448 bytes .../memnYaGs126MiZpBA-UFUKWyV9hrIqM.woff2 | Bin 0 -> 13860 bytes .../memnYaGs126MiZpBA-UFUKWyV9hvIqOjjg.woff2 | Bin 0 -> 9452 bytes .../memnYaGs126MiZpBA-UFUKXGUdhkIqOjjg.woff2 | Bin 0 -> 6116 bytes .../memnYaGs126MiZpBA-UFUKXGUdhlIqOjjg.woff2 | Bin 0 -> 11148 bytes .../memnYaGs126MiZpBA-UFUKXGUdhmIqOjjg.woff2 | Bin 0 -> 16368 bytes .../memnYaGs126MiZpBA-UFUKXGUdhnIqOjjg.woff2 | Bin 0 -> 2340 bytes .../memnYaGs126MiZpBA-UFUKXGUdhoIqOjjg.woff2 | Bin 0 -> 7448 bytes .../memnYaGs126MiZpBA-UFUKXGUdhrIqM.woff2 | Bin 0 -> 13852 bytes .../memnYaGs126MiZpBA-UFUKXGUdhvIqOjjg.woff2 | Bin 0 -> 9660 bytes .../fonts/icons/MaterialIcons-Regular.ttf | Bin 0 -> 337868 bytes webui/public/index.ejs | 55 + .../InfoSpotifyFeatures/ClientIdSecret.png | Bin 0 -> 9746 bytes .../res/InfoSpotifyFeatures/CreateApp.png | Bin 0 -> 2023 bytes .../res/InfoSpotifyFeatures/CreateAppForm.png | Bin 0 -> 32216 bytes webui/rollup.config.js | 52 + webui/src/App.vue | 86 + webui/src/app.js | 275 + webui/src/assets/deemix-icon.svg | 240 + webui/src/assets/paypal.svg | 44 + webui/src/components/TheContent.vue | 107 + webui/src/components/TheSearchBar.vue | 250 + webui/src/components/TheSidebar.vue | 142 + webui/src/components/downloads/QueueItem.vue | 348 + .../components/downloads/TheDownloadBar.vue | 441 ++ webui/src/components/globals/BackButton.vue | 14 + .../src/components/globals/BaseAccordion.vue | 33 + .../globals/BaseLoadingPlaceholder.vue | 56 + webui/src/components/globals/BaseTabs.js | 34 + webui/src/components/globals/ConfirmModal.vue | 86 + .../src/components/globals/CoverContainer.vue | 81 + .../src/components/globals/DeezerWarning.vue | 34 + .../components/globals/PreviewControls.vue | 21 + .../src/components/globals/TheContextMenu.vue | 308 + .../components/globals/TheQualityModal.vue | 105 + .../components/globals/TheTrackPreview.vue | 163 + webui/src/components/pages/About.vue | 263 + webui/src/components/pages/Artist.vue | 203 + webui/src/components/pages/Charts.vue | 185 + webui/src/components/pages/Errors.vue | 83 + webui/src/components/pages/Favorites.vue | 316 + webui/src/components/pages/Home.vue | 109 + webui/src/components/pages/InfoArl.vue | 58 + .../components/pages/InfoSpotifyFeatures.vue | 44 + webui/src/components/pages/LinkAnalyzer.vue | 262 + webui/src/components/pages/Search.vue | 312 + webui/src/components/pages/Settings.vue | 1188 +++ webui/src/components/pages/Tracklist.vue | 310 + webui/src/components/search/ResultsAlbums.vue | 85 + webui/src/components/search/ResultsAll.vue | 122 + .../src/components/search/ResultsArtists.vue | 73 + webui/src/components/search/ResultsError.vue | 17 + .../components/search/ResultsPlaylists.vue | 78 + webui/src/components/search/ResultsTracks.vue | 142 + webui/src/components/search/TopResult.vue | 63 + .../settings/TemplateVariablesList.vue | 32 + webui/src/constants.js | 4 + webui/src/data/artist.js | 43 + webui/src/data/charts.js | 9 + webui/src/data/file-templates.js | 62 + webui/src/data/home.js | 17 + webui/src/data/qualities.js | 32 + webui/src/data/search.js | 111 + webui/src/data/settings.js | 57 + webui/src/data/sidebar.js | 51 + webui/src/data/standardize.js | 20 + webui/src/jsconfig.json | 11 + webui/src/lang/ar.mjs | 337 + webui/src/lang/de.mjs | 524 ++ webui/src/lang/el.mjs | 527 ++ webui/src/lang/en.mjs | 515 ++ webui/src/lang/es.mjs | 394 + webui/src/lang/fil.mjs | 389 + webui/src/lang/fr.mjs | 529 ++ webui/src/lang/hr.mjs | 359 + webui/src/lang/id.mjs | 357 + webui/src/lang/index.js | 44 + webui/src/lang/it.mjs | 517 ++ webui/src/lang/ko.mjs | 406 + webui/src/lang/pl.mjs | 384 + webui/src/lang/pt-br.mjs | 517 ++ webui/src/lang/pt-pt.mjs | 509 ++ webui/src/lang/ru.mjs | 516 ++ webui/src/lang/sr.mjs | 421 + webui/src/lang/th.mjs | 419 + webui/src/lang/tr.mjs | 356 + webui/src/lang/vi.mjs | 357 + webui/src/lang/zh-tw.mjs | 400 + webui/src/plugins/composition-api.js | 4 + webui/src/plugins/i18n.js | 44 + webui/src/router.js | 178 + webui/src/store/index.js | 17 + webui/src/store/modules/appInfo.js | 199 + webui/src/store/modules/errors.js | 44 + webui/src/store/modules/login.js | 153 + webui/src/styles/css/base.css | 111 + webui/src/styles/css/components.css | 79 + webui/src/styles/css/helpers.css | 36 + webui/src/styles/css/icons.css | 25 + webui/src/styles/css/normalize.css | 66 + webui/src/styles/css/tables.css | 140 + webui/src/styles/css/tailwind.css | 3 + webui/src/styles/css/toasts.css | 26 + webui/src/styles/css/typography.css | 21 + webui/src/styles/vendor/OpenSans.css | 630 ++ webui/src/styles/vendor/animate.css | 3625 +++++++++ webui/src/styles/vendor/material-icons.css | 24 + webui/src/use/favorites.js | 77 + webui/src/use/main-search.js | 17 + webui/src/use/online.js | 13 + webui/src/use/search.js | 22 + webui/src/use/theme.js | 46 + webui/src/utils/EventBus.js | 4 + webui/src/utils/adjust-volume.js | 27 + webui/src/utils/api.js | 47 + webui/src/utils/countries.js | 251 + webui/src/utils/dates.js | 14 + webui/src/utils/downloads.js | 21 + webui/src/utils/flags.js | 43 + webui/src/utils/forms.js | 12 + webui/src/utils/socket.js | 37 + webui/src/utils/texts.js | 4 + webui/src/utils/toasts.js | 118 + webui/src/utils/utils.js | 157 + webui/tailwind.config.js | 64 + webui/tests/testlang.js | 52 + webui/tests/unit/utils/dates.spec.js | 16 + webui/tests/unit/utils/downloads.spec.js | 12 + webui/tests/unit/utils/texts.spec.js | 17 + webui/tests/unit/utils/utils.spec.js | 33 + webui/yarn.lock | 6406 +++++++++++++++ yarn.lock | 2315 ++++++ 291 files changed, 45356 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 .gitmodules create mode 100644 .yarnrc create mode 100644 LICENSE.txt create mode 100644 README.md create mode 100644 build/64x64.png create mode 100644 build/icon.icns create mode 100644 build/icon.ico create mode 100755 build/icon.svg create mode 100644 index.js create mode 100644 package.json create mode 100644 preload.js create mode 100644 scripts/gen-version.js create mode 100644 scripts/reset-version.js create mode 100644 scripts/set-version.js create mode 100644 server/.eslintignore create mode 100644 server/.eslintrc.yml create mode 100644 server/.gitignore create mode 100644 server/.prettierrc.yml create mode 100644 server/jest.config.js create mode 100644 server/package.json create mode 100644 server/src/app.ts create mode 100644 server/src/helpers/errors.ts create mode 100644 server/src/helpers/logger.ts create mode 100644 server/src/helpers/loginStorage.ts create mode 100644 server/src/helpers/paths.ts create mode 100644 server/src/helpers/port.ts create mode 100644 server/src/helpers/primitive-checks.ts create mode 100644 server/src/helpers/server-callbacks.ts create mode 100644 server/src/index.ts create mode 100644 server/src/middlewares.ts create mode 100644 server/src/routes/api/delete/index.ts create mode 100644 server/src/routes/api/get/albumSearch.spec.ts create mode 100644 server/src/routes/api/get/albumSearch.ts create mode 100644 server/src/routes/api/get/analyzeLink.spec.ts create mode 100644 server/src/routes/api/get/analyzeLink.ts create mode 100644 server/src/routes/api/get/checkForUpdates.ts create mode 100644 server/src/routes/api/get/connect.ts create mode 100644 server/src/routes/api/get/getChartTracks.ts create mode 100644 server/src/routes/api/get/getCharts.ts create mode 100644 server/src/routes/api/get/getHome.ts create mode 100644 server/src/routes/api/get/getQueue.ts create mode 100644 server/src/routes/api/get/getSettings.ts create mode 100644 server/src/routes/api/get/getTracklist.ts create mode 100644 server/src/routes/api/get/getUserAlbums.ts create mode 100644 server/src/routes/api/get/getUserArtists.ts create mode 100644 server/src/routes/api/get/getUserFavorites.ts create mode 100644 server/src/routes/api/get/getUserPlaylists.ts create mode 100644 server/src/routes/api/get/getUserSpotifyPlaylists.ts create mode 100644 server/src/routes/api/get/getUserTracks.ts create mode 100644 server/src/routes/api/get/index.ts create mode 100644 server/src/routes/api/get/mainSearch.ts create mode 100644 server/src/routes/api/get/newReleases.ts create mode 100644 server/src/routes/api/get/search.ts create mode 100644 server/src/routes/api/get/spotifyStatus.ts create mode 100644 server/src/routes/api/patch/index.ts create mode 100644 server/src/routes/api/post/addToQueue.ts create mode 100644 server/src/routes/api/post/cancelAllDownloads.ts create mode 100644 server/src/routes/api/post/changeAccount.spec.ts create mode 100644 server/src/routes/api/post/changeAccount.ts create mode 100644 server/src/routes/api/post/index.ts create mode 100644 server/src/routes/api/post/loginArl.spec.ts create mode 100644 server/src/routes/api/post/loginArl.ts create mode 100644 server/src/routes/api/post/loginEmail.ts create mode 100644 server/src/routes/api/post/logout.ts create mode 100644 server/src/routes/api/post/removeFinishedDownloads.ts create mode 100644 server/src/routes/api/post/removeFromQueue.ts create mode 100644 server/src/routes/api/post/retryDownload.ts create mode 100644 server/src/routes/api/post/saveSettings.ts create mode 100644 server/src/routes/api/register.ts create mode 100644 server/src/routes/index.spec.ts create mode 100644 server/src/routes/index.ts create mode 100644 server/src/server.ts create mode 100644 server/src/types.ts create mode 100644 server/src/websocket/index.ts create mode 100644 server/src/websocket/modules/cancelAllDownloads.ts create mode 100644 server/src/websocket/modules/index.ts create mode 100644 server/src/websocket/modules/removeFinishedDownloads.ts create mode 100644 server/src/websocket/modules/removeFromQueue.ts create mode 100644 server/src/websocket/modules/saveSettings.ts create mode 100644 server/tests/cookie-parser.spec.ts create mode 100644 server/tests/utils.ts create mode 100644 server/tsconfig.json create mode 100644 server/webpack.config.js create mode 100644 server/yarn.lock create mode 100644 webui/.eslintrc.yml create mode 100644 webui/.gitattributes create mode 100644 webui/.gitignore create mode 100644 webui/.prettierrc.yml create mode 100644 webui/COMPILE-UI.md create mode 100644 webui/LICENSE.txt create mode 100644 webui/README.md create mode 100644 webui/babel.config.js create mode 100644 webui/jest.config.js create mode 100644 webui/package.json create mode 100644 webui/postcss.config.js create mode 100644 webui/public/favicon.ico create mode 100644 webui/public/fonts/OpenSans/LICENSE.txt create mode 100644 webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN7rgOUehpOqc.woff2 create mode 100644 webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN7rgOUuhp.woff2 create mode 100644 webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN7rgOVuhpOqc.woff2 create mode 100644 webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN7rgOX-hpOqc.woff2 create mode 100644 webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN7rgOXOhpOqc.woff2 create mode 100644 webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN7rgOXehpOqc.woff2 create mode 100644 webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN7rgOXuhpOqc.woff2 create mode 100644 webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN8rsOUehpOqc.woff2 create mode 100644 webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN8rsOUuhp.woff2 create mode 100644 webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN8rsOVuhpOqc.woff2 create mode 100644 webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN8rsOX-hpOqc.woff2 create mode 100644 webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN8rsOXOhpOqc.woff2 create mode 100644 webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN8rsOXehpOqc.woff2 create mode 100644 webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN8rsOXuhpOqc.woff2 create mode 100644 webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN_r8OUehpOqc.woff2 create mode 100644 webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN_r8OUuhp.woff2 create mode 100644 webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN_r8OVuhpOqc.woff2 create mode 100644 webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN_r8OX-hpOqc.woff2 create mode 100644 webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN_r8OXOhpOqc.woff2 create mode 100644 webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN_r8OXehpOqc.woff2 create mode 100644 webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN_r8OXuhpOqc.woff2 create mode 100644 webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UNirkOUehpOqc.woff2 create mode 100644 webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UNirkOUuhp.woff2 create mode 100644 webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UNirkOVuhpOqc.woff2 create mode 100644 webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UNirkOX-hpOqc.woff2 create mode 100644 webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UNirkOXOhpOqc.woff2 create mode 100644 webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UNirkOXehpOqc.woff2 create mode 100644 webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UNirkOXuhpOqc.woff2 create mode 100644 webui/public/fonts/OpenSans/mem6YaGs126MiZpBA-UFUK0Udc1UAw.woff2 create mode 100644 webui/public/fonts/OpenSans/mem6YaGs126MiZpBA-UFUK0Vdc1UAw.woff2 create mode 100644 webui/public/fonts/OpenSans/mem6YaGs126MiZpBA-UFUK0Wdc1UAw.woff2 create mode 100644 webui/public/fonts/OpenSans/mem6YaGs126MiZpBA-UFUK0Xdc1UAw.woff2 create mode 100644 webui/public/fonts/OpenSans/mem6YaGs126MiZpBA-UFUK0Zdc0.woff2 create mode 100644 webui/public/fonts/OpenSans/mem6YaGs126MiZpBA-UFUK0adc1UAw.woff2 create mode 100644 webui/public/fonts/OpenSans/mem6YaGs126MiZpBA-UFUK0ddc1UAw.woff2 create mode 100644 webui/public/fonts/OpenSans/mem8YaGs126MiZpBA-UFUZ0bbck.woff2 create mode 100644 webui/public/fonts/OpenSans/mem8YaGs126MiZpBA-UFVZ0b.woff2 create mode 100644 webui/public/fonts/OpenSans/mem8YaGs126MiZpBA-UFVp0bbck.woff2 create mode 100644 webui/public/fonts/OpenSans/mem8YaGs126MiZpBA-UFW50bbck.woff2 create mode 100644 webui/public/fonts/OpenSans/mem8YaGs126MiZpBA-UFWJ0bbck.woff2 create mode 100644 webui/public/fonts/OpenSans/mem8YaGs126MiZpBA-UFWZ0bbck.woff2 create mode 100644 webui/public/fonts/OpenSans/mem8YaGs126MiZpBA-UFWp0bbck.woff2 create mode 100644 webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKW-U9hkIqOjjg.woff2 create mode 100644 webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKW-U9hlIqOjjg.woff2 create mode 100644 webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKW-U9hmIqOjjg.woff2 create mode 100644 webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKW-U9hnIqOjjg.woff2 create mode 100644 webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKW-U9hoIqOjjg.woff2 create mode 100644 webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKW-U9hrIqM.woff2 create mode 100644 webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKW-U9hvIqOjjg.woff2 create mode 100644 webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKWiUNhkIqOjjg.woff2 create mode 100644 webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKWiUNhlIqOjjg.woff2 create mode 100644 webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKWiUNhmIqOjjg.woff2 create mode 100644 webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKWiUNhnIqOjjg.woff2 create mode 100644 webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKWiUNhoIqOjjg.woff2 create mode 100644 webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKWiUNhrIqM.woff2 create mode 100644 webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKWiUNhvIqOjjg.woff2 create mode 100644 webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKWyV9hkIqOjjg.woff2 create mode 100644 webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKWyV9hlIqOjjg.woff2 create mode 100644 webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKWyV9hmIqOjjg.woff2 create mode 100644 webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKWyV9hnIqOjjg.woff2 create mode 100644 webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKWyV9hoIqOjjg.woff2 create mode 100644 webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKWyV9hrIqM.woff2 create mode 100644 webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKWyV9hvIqOjjg.woff2 create mode 100644 webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKXGUdhkIqOjjg.woff2 create mode 100644 webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKXGUdhlIqOjjg.woff2 create mode 100644 webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKXGUdhmIqOjjg.woff2 create mode 100644 webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKXGUdhnIqOjjg.woff2 create mode 100644 webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKXGUdhoIqOjjg.woff2 create mode 100644 webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKXGUdhrIqM.woff2 create mode 100644 webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKXGUdhvIqOjjg.woff2 create mode 100644 webui/public/fonts/icons/MaterialIcons-Regular.ttf create mode 100644 webui/public/index.ejs create mode 100644 webui/public/res/InfoSpotifyFeatures/ClientIdSecret.png create mode 100644 webui/public/res/InfoSpotifyFeatures/CreateApp.png create mode 100644 webui/public/res/InfoSpotifyFeatures/CreateAppForm.png create mode 100644 webui/rollup.config.js create mode 100644 webui/src/App.vue create mode 100644 webui/src/app.js create mode 100644 webui/src/assets/deemix-icon.svg create mode 100644 webui/src/assets/paypal.svg create mode 100644 webui/src/components/TheContent.vue create mode 100644 webui/src/components/TheSearchBar.vue create mode 100644 webui/src/components/TheSidebar.vue create mode 100644 webui/src/components/downloads/QueueItem.vue create mode 100644 webui/src/components/downloads/TheDownloadBar.vue create mode 100644 webui/src/components/globals/BackButton.vue create mode 100644 webui/src/components/globals/BaseAccordion.vue create mode 100644 webui/src/components/globals/BaseLoadingPlaceholder.vue create mode 100644 webui/src/components/globals/BaseTabs.js create mode 100644 webui/src/components/globals/ConfirmModal.vue create mode 100644 webui/src/components/globals/CoverContainer.vue create mode 100644 webui/src/components/globals/DeezerWarning.vue create mode 100644 webui/src/components/globals/PreviewControls.vue create mode 100644 webui/src/components/globals/TheContextMenu.vue create mode 100644 webui/src/components/globals/TheQualityModal.vue create mode 100644 webui/src/components/globals/TheTrackPreview.vue create mode 100644 webui/src/components/pages/About.vue create mode 100644 webui/src/components/pages/Artist.vue create mode 100644 webui/src/components/pages/Charts.vue create mode 100644 webui/src/components/pages/Errors.vue create mode 100644 webui/src/components/pages/Favorites.vue create mode 100644 webui/src/components/pages/Home.vue create mode 100644 webui/src/components/pages/InfoArl.vue create mode 100644 webui/src/components/pages/InfoSpotifyFeatures.vue create mode 100644 webui/src/components/pages/LinkAnalyzer.vue create mode 100644 webui/src/components/pages/Search.vue create mode 100644 webui/src/components/pages/Settings.vue create mode 100644 webui/src/components/pages/Tracklist.vue create mode 100644 webui/src/components/search/ResultsAlbums.vue create mode 100644 webui/src/components/search/ResultsAll.vue create mode 100644 webui/src/components/search/ResultsArtists.vue create mode 100644 webui/src/components/search/ResultsError.vue create mode 100644 webui/src/components/search/ResultsPlaylists.vue create mode 100644 webui/src/components/search/ResultsTracks.vue create mode 100644 webui/src/components/search/TopResult.vue create mode 100644 webui/src/components/settings/TemplateVariablesList.vue create mode 100644 webui/src/constants.js create mode 100644 webui/src/data/artist.js create mode 100644 webui/src/data/charts.js create mode 100644 webui/src/data/file-templates.js create mode 100644 webui/src/data/home.js create mode 100644 webui/src/data/qualities.js create mode 100644 webui/src/data/search.js create mode 100644 webui/src/data/settings.js create mode 100644 webui/src/data/sidebar.js create mode 100644 webui/src/data/standardize.js create mode 100644 webui/src/jsconfig.json create mode 100644 webui/src/lang/ar.mjs create mode 100644 webui/src/lang/de.mjs create mode 100644 webui/src/lang/el.mjs create mode 100644 webui/src/lang/en.mjs create mode 100644 webui/src/lang/es.mjs create mode 100644 webui/src/lang/fil.mjs create mode 100644 webui/src/lang/fr.mjs create mode 100644 webui/src/lang/hr.mjs create mode 100644 webui/src/lang/id.mjs create mode 100644 webui/src/lang/index.js create mode 100644 webui/src/lang/it.mjs create mode 100644 webui/src/lang/ko.mjs create mode 100644 webui/src/lang/pl.mjs create mode 100644 webui/src/lang/pt-br.mjs create mode 100644 webui/src/lang/pt-pt.mjs create mode 100644 webui/src/lang/ru.mjs create mode 100644 webui/src/lang/sr.mjs create mode 100644 webui/src/lang/th.mjs create mode 100644 webui/src/lang/tr.mjs create mode 100644 webui/src/lang/vi.mjs create mode 100644 webui/src/lang/zh-tw.mjs create mode 100644 webui/src/plugins/composition-api.js create mode 100644 webui/src/plugins/i18n.js create mode 100644 webui/src/router.js create mode 100644 webui/src/store/index.js create mode 100644 webui/src/store/modules/appInfo.js create mode 100644 webui/src/store/modules/errors.js create mode 100644 webui/src/store/modules/login.js create mode 100644 webui/src/styles/css/base.css create mode 100644 webui/src/styles/css/components.css create mode 100644 webui/src/styles/css/helpers.css create mode 100644 webui/src/styles/css/icons.css create mode 100644 webui/src/styles/css/normalize.css create mode 100644 webui/src/styles/css/tables.css create mode 100644 webui/src/styles/css/tailwind.css create mode 100644 webui/src/styles/css/toasts.css create mode 100644 webui/src/styles/css/typography.css create mode 100644 webui/src/styles/vendor/OpenSans.css create mode 100644 webui/src/styles/vendor/animate.css create mode 100644 webui/src/styles/vendor/material-icons.css create mode 100644 webui/src/use/favorites.js create mode 100644 webui/src/use/main-search.js create mode 100644 webui/src/use/online.js create mode 100644 webui/src/use/search.js create mode 100644 webui/src/use/theme.js create mode 100644 webui/src/utils/EventBus.js create mode 100644 webui/src/utils/adjust-volume.js create mode 100644 webui/src/utils/api.js create mode 100644 webui/src/utils/countries.js create mode 100644 webui/src/utils/dates.js create mode 100644 webui/src/utils/downloads.js create mode 100644 webui/src/utils/flags.js create mode 100644 webui/src/utils/forms.js create mode 100644 webui/src/utils/socket.js create mode 100644 webui/src/utils/texts.js create mode 100644 webui/src/utils/toasts.js create mode 100644 webui/src/utils/utils.js create mode 100644 webui/tailwind.config.js create mode 100644 webui/tests/testlang.js create mode 100644 webui/tests/unit/utils/dates.spec.js create mode 100644 webui/tests/unit/utils/downloads.spec.js create mode 100644 webui/tests/unit/utils/texts.spec.js create mode 100644 webui/tests/unit/utils/utils.spec.js create mode 100644 webui/yarn.lock create mode 100644 yarn.lock diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..ee783f9 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,148 @@ +## Source: https://github.com/ptkdev-boilerplate/node-cli-boilerplate/blob/main/.gitattributes + +## AUTO-DETECT +* text=auto + +## SOURCE CODE +*.bat text eol=crlf +*.css text eol=lf +*.html text diff=html eol=lf +*.ini text eol=crlf +*.js text eol=lf +*.json text eol=lf +*.php text diff=php eol=lf +*.py text diff=python eol=lf +*.rb text diff=ruby +*.sass text eol=lf +*.scss text eol=lf +*.sh text eol=lf +*.sql text eol=lf +*.ts text eol=lf +*.vue text eol=lf +*.svelte text eol=lf +*.xml text eol=lf +*.xhtml text diff=html eol=lf + +## DOCKER +*.dockerignore text eol=lf +Dockerfile text eol=lf + +## DOCUMENTATION +*.md text eol=lf +*.txt text eol=lf +AUTHORS text eol=lf +CHANGELOG text eol=lf +CHANGES text eol=lf +CONTRIBUTING text eol=lf +COPYING text eol=lf +INSTALL text eol=lf +license text eol=lf +LICENSE text eol=lf +NEWS text eol=lf +README text eol=lf +TODO text eol=lf + +## TEMPLATES +*.dot text eol=lf +*.tpl text eol=lf +*.twig text eol=lf + +## LINTERS +.csslintrc text eol=lf +.eslintrc text eol=lf +.htmlhintrc text eol=lf +.jscsrc text eol=lf +.jshintrc text eol=lf +.jshintignore text eol=lf +.stylelintrc text eol=lf +.npmignore text eol=lf + +## CONFIGS +*.bowerrc text eol=lf +*.cnf text eol=lf +*.conf text eol=lf +*.config text eol=lf +.babelrc text eol=lf +.browserslistrc text eol=lf +.editorconfig text eol=lf +.env text eol=lf +.gitattributes text eol=lf +.gitconfig text eol=lf +.htaccess text eol=lf +*.lock text eol=lf +*.npmignore text eol=lf +*.yaml text eol=lf +*.yml text eol=lf +browserslist text eol=lf +Makefile text eol=lf +makefile text eol=lf + +## GRAPHICS +*.ai binary +*.bmp binary +*.eps binary +*.gif binary +*.ico binary +*.jng binary +*.jp2 binary +*.jpg binary +*.jpeg binary +*.jpx binary +*.jxr binary +*.pdf binary +*.png binary +*.psb binary +*.psd binary +*.svg text +*.svgz binary +*.tif binary +*.tiff binary +*.wbmp binary +*.webp binary + +## AUDIO +*.kar binary +*.m4a binary +*.mid binary +*.midi binary +*.mp3 binary +*.ogg binary +*.ra binary + +## VIDEO +*.3gpp binary +*.3gp binary +*.as binary +*.asf binary +*.asx binary +*.fla binary +*.flv binary +*.m4v binary +*.mng binary +*.mov binary +*.mp4 binary +*.mpeg binary +*.mpg binary +*.ogv binary +*.swc binary +*.swf binary +*.webm binary + +## ARCHIVES +*.7z binary +*.gz binary +*.jar binary +*.rar binary +*.tar binary +*.zip binary + +## FONTS +*.ttf binary +*.eot binary +*.otf binary +*.woff binary +*.woff2 binary + +## EXECUTABLES +*.exe binary +*.pyc binary diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e1d3b45 --- /dev/null +++ b/.gitignore @@ -0,0 +1,73 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Typescript v1 declaration files +typings/ + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env + +# next.js build output +.next + +# IDE +.vscode +.idea + +# development +*.map +dev.sh + +# distribution +dist/* +server-dist/* diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..4937b8e --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "webui"] + path = webui + url = ../deemix-webui diff --git a/.yarnrc b/.yarnrc new file mode 100644 index 0000000..a5395f5 --- /dev/null +++ b/.yarnrc @@ -0,0 +1 @@ +save-prefix: "" diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..810fce6 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,621 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS diff --git a/README.md b/README.md new file mode 100644 index 0000000..4bbd9cf --- /dev/null +++ b/README.md @@ -0,0 +1,48 @@ +# deemix-gui +An electron app that wraps deemix-webui and lets you use the deemix-js library + +## Downloads +Downloads are available [here](https://www.reddit.com/r/deemix/comments/hmrhhs/download_links/) + +## Running from source +You need to use nodejs 16.x, using `yarn` is recommended. + +If you're using git to get this repo you should use `git submodule update --init --recursive` as well. If you're just downloading the archive.zip, make sure you download and extract deemix-webui into the webui folder. + +Install the dependencies using `yarn install-all` for production. +Install the dependencies using `yarn install-all-dev` for development. +Then you should be able to run the app with `yarn start`. +If you want to further develop deemix-gui and propose a PR, use `yarn dev` + +Commands for easy setup: + +```sh +# Production +git clone https://gitlab.com/waLplanet/deemix-gui.git . && git submodule update --init --recursive && yarn install-all +# Development +git clone https://gitlab.com/waLplanet/deemix-gui.git . && git submodule update --init --recursive && yarn install-all-dev +``` + +You can change the default port by setting the environment variable `PORT` to any other number before starting the app. + +## Building the app +To build the app you need to have git installed and the repo cloned with `git`. +Make sure you've installed the dependencies for all packages (the root folder, `server` and `webui`). +Then from the root folder run `yarn dist` to make a distributable package for your current OS or `yarn dist-server` to make an executable for only the server. + +## Feature requests +Before asking for a feature make sure it isn't an already open issue on the repo + +# License +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . diff --git a/build/64x64.png b/build/64x64.png new file mode 100644 index 0000000000000000000000000000000000000000..dc7ba217cf47b0042974ce35b19384da3a916bb4 GIT binary patch literal 2821 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%0A~&Y~-oQ3(6>I%h~K#9zA<*5Lv^P`~oJxk#YGE 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 literal 0 HcmV?d00001 diff --git a/build/icon.ico b/build/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..7c07bf81407a995d30cf51533ab39efa91efec3f GIT binary patch literal 244199 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

3kq!Kqk$#9RbBD{)X*x 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
bg=or|Qd4zvN23G$0^){qgxvf3(GPYk)?O4s(S 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�x_3$vma<|0V_bm3A-K_k7c-j9`90`g@&8#(MpM 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%0Aq*nP)G4=y?#Yb*i* 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + diff --git a/index.js b/index.js new file mode 100644 index 0000000..802b810 --- /dev/null +++ b/index.js @@ -0,0 +1,109 @@ +const { app, BrowserWindow, ipcMain, shell, dialog, Menu, MenuItem } = require('electron') +const contextMenu = require('electron-context-menu') +const WindowStateManager = require('electron-window-state-manager') +const path = require('path') +const os = require('os') +const yargs = require('yargs/yargs') +const { hideBin } = require('yargs/helpers') +const argv = yargs(hideBin(process.argv)).options({ + port: { type: 'string', default: '6595' }, + host: { type: 'string', default: '127.0.0.1' }, + dev: { type: 'boolean', default: false} +}).argv +const { DeemixServer }= require('./server/dist/app.js') + +const PORT = process.env.DEEMIX_SERVER_PORT || argv.port +process.env.DEEMIX_SERVER_PORT = PORT +process.env.DEEMIX_HOST = argv.host + +const server = new DeemixServer(argv.host, PORT, '/', false) +server.init() + +let win +const windowState = new WindowStateManager('mainWindow', { + defaultWidth: 800, + defaultHeight: 600 +}) + +function createWindow () { + win = new BrowserWindow({ + width: windowState.width, + height: windowState.height, + x: windowState.x, + y: windowState.y, + useContentSize: true, + autoHideMenuBar: true, + icon: path.join(__dirname, os.platform() === 'win32' ? 'build/icon.ico' : 'build/64x64.png'), + webPreferences: { + preload: path.join(__dirname, 'preload.js') + } + }) + + win.setMenu(null) + + if (argv.dev){ + const menu = new Menu() + menu.append(new MenuItem({ + label: 'DevTools', + submenu: [ + { role: 'reload', accelerator: 'f5', click: () => { win.reload() } }, + { role: 'devtools', accelerator: 'f12', click: () => { win.webContents.toggleDevTools() } } + ] + })) + Menu.setApplicationMenu(menu) + } + + // Open links in external browser + win.webContents.on('new-window', function(e, url) { + e.preventDefault() + shell.openExternal(url) + }) + + win.loadURL(`http://${argv.host}:${PORT}`) + + if (windowState.maximized) { + win.maximize(); + } + + win.on('close', (event)=>{ + windowState.saveState(win); + if (server.deemixApp.getSettings().settings.clearQueueOnExit){ + server.deemixApp.cancelAllDownloads() + } + }) +} + +app.whenReady().then(() => { + createWindow() + contextMenu({ + showLookUpSelection: false, + showSearchWithGoogle: false, + showInspectElement: false + }) + + // Only one istance per time + app.on('activate', () => { + if (BrowserWindow.getAllWindows().length === 0) { + createWindow() + } + }) +}) + +app.on('window-all-closed', () => { + if (process.platform !== 'darwin') { + app.quit() + } +}) + +ipcMain.on('openDownloadsFolder', (event)=>{ + const { downloadLocation } = server.deemixApp.getSettings().settings + shell.openPath(downloadLocation) +}) + +ipcMain.on('selectDownloadFolder', async (event, downloadLocation)=>{ + let path = await dialog.showOpenDialog(win, { + defaultPath: downloadLocation, + properties: ["openDirectory", "createDirectory"] + }) + if (path.filePaths[0]) win.webContents.send("downloadFolderSelected", path.filePaths[0]) +}) diff --git a/package.json b/package.json new file mode 100644 index 0000000..6f14f93 --- /dev/null +++ b/package.json @@ -0,0 +1,93 @@ +{ + "name": "deemix-gui", + "description": "An electron app that wraps deemix-webui and lets you use the deemix-js library", + "version": "0.0.0", + "main": "index.js", + "repository": "https://gitlab.com/waLplanet/deemix-gui.git", + "author": "waLplanet ", + "license": "GPL-3.0-only", + "scripts": { + "install-all": "yarn install && yarn --cwd server install --production && yarn --cwd webui install --production", + "install-all-dev": "yarn install && yarn --cwd server install && yarn --cwd webui install", + "dev": "yarn --cwd webui dev", + "start": "electron . --dev", + "predist": "yarn build-server && yarn build-webui", + "dist": "yarn set-version && electron-builder && yarn reset-version", + "dist:dir": "yarn set-version && yarn predist && electron-builder --dir && yarn reset-version", + "dist-server": "yarn set-version && yarn predist && ./node_modules/.bin/pkg --out-dir dist ./server/package.json && yarn reset-version", + "start-server": "yarn --cwd server start", + "build-server": "yarn --cwd server build", + "build-webui": "yarn --cwd webui build", + "set-version": "node scripts/set-version.js", + "reset-version": "node scripts/reset-version.js" + }, + "devDependencies": { + "electron": "^27.1.2", + "electron-builder": "^24.9.1", + "pkg": "^5.8.1" + }, + "dependencies": { + "electron-context-menu": "^3.6.1", + "electron-window-state-manager": "^0.3.2", + "yargs": "^17.7.2" + }, + "build": { + "appId": "app.deemix.gui", + "productName": "deemix-gui", + "files": [ + "index.js", + "preload.js", + "server/dist/**/*", + "webui/public/**/*", + "build/**/*", + "package.json" + ], + "mac": { + "target": [ + { + "target": "dmg", + "arch": "x64" + }, + { + "target": "dmg", + "arch": "arm64" + } + ], + "artifactName": "deemix-gui_${arch}.${ext}", + "category": "public.app-category.music" + }, + "win": { + "target": [ + { + "target": "nsis", + "arch": "x64" + }, + { + "target": "portable", + "arch": "x64" + } + ] + }, + "linux": { + "target": [ + "appimage", + "deb" + ], + "artifactName": "deemix-gui.${ext}", + "category": "AudioVideo,Audio", + "icon": "build/icon.icns" + }, + "nsis": { + "artifactName": "${productName}_setup.${ext}", + "oneClick": false, + "license": "LICENSE.txt", + "allowToChangeInstallationDirectory": true, + "uninstallDisplayName": "${productName}", + "deleteAppDataOnUninstall": true + }, + "portable": { + "artifactName": "${productName}.${ext}", + "requestExecutionLevel": "user" + } + } +} diff --git a/preload.js b/preload.js new file mode 100644 index 0000000..7ea935b --- /dev/null +++ b/preload.js @@ -0,0 +1,25 @@ +const { + contextBridge, + ipcRenderer +} = require("electron"); + +// Expose protected methods that allow the renderer process to use +// the ipcRenderer without exposing the entire object +contextBridge.exposeInMainWorld( + "api", { + send: (channel, data) => { + // whitelist channels + let validChannels = ["openDownloadsFolder", "selectDownloadFolder"]; + if (validChannels.includes(channel)) { + ipcRenderer.send(channel, data); + } + }, + receive: (channel, func) => { + let validChannels = ["downloadFolderSelected"]; + if (validChannels.includes(channel)) { + // Deliberately strip event as it includes `sender` + ipcRenderer.on(channel, (event, ...args) => func(...args)); + } + } + } +); diff --git a/scripts/gen-version.js b/scripts/gen-version.js new file mode 100644 index 0000000..71383f1 --- /dev/null +++ b/scripts/gen-version.js @@ -0,0 +1,16 @@ +const { execSync } = require('child_process') +function generateVersion(){ + const now = new Date(); + const year = now.getFullYear(); + const month = now.getMonth()+1; + const day = now.getDate(); + + const commitsNumber = String(execSync('git rev-list --count HEAD')).trim() + const commitHash = String(execSync('git rev-parse --short=10 HEAD')).trim() + + return `${year}.${month}.${day}-r${commitsNumber}.${commitHash}` +} + +console.log(generateVersion()) + +module.exports = generateVersion diff --git a/scripts/reset-version.js b/scripts/reset-version.js new file mode 100644 index 0000000..755e390 --- /dev/null +++ b/scripts/reset-version.js @@ -0,0 +1,6 @@ +const { execSync } = require('child_process') +const fs = require('fs') + +let package = JSON.parse(fs.readFileSync('package.json')) +package.version = "0.0.0" +fs.writeFileSync('package.json', JSON.stringify(package, null, 2)+"\n") diff --git a/scripts/set-version.js b/scripts/set-version.js new file mode 100644 index 0000000..3b087a4 --- /dev/null +++ b/scripts/set-version.js @@ -0,0 +1,6 @@ +const fs = require('fs') +const generateVersion = require('./gen-version.js') + +let package = JSON.parse(fs.readFileSync('package.json')) +package.version = generateVersion() +fs.writeFileSync('package.json', JSON.stringify(package, null, 2)+"\n") diff --git a/server/.eslintignore b/server/.eslintignore new file mode 100644 index 0000000..849ddff --- /dev/null +++ b/server/.eslintignore @@ -0,0 +1 @@ +dist/ diff --git a/server/.eslintrc.yml b/server/.eslintrc.yml new file mode 100644 index 0000000..e7eab88 --- /dev/null +++ b/server/.eslintrc.yml @@ -0,0 +1,16 @@ +--- +extends: + - "@nuxtjs" + - plugin:prettier/recommended +plugins: + - "@typescript-eslint" +parserOptions: + parser: "@typescript-eslint/parser" +rules: + "@typescript-eslint/no-unused-vars": + - error + - args: all + argsIgnorePattern: ^_ + no-unused-vars: off + no-console: off + camelcase: off diff --git a/server/.gitignore b/server/.gitignore new file mode 100644 index 0000000..cddc23c --- /dev/null +++ b/server/.gitignore @@ -0,0 +1,68 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Typescript v1 declaration files +typings/ + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env + +# next.js build output +.next + +# IDE +.vscode +.idea + +# development +dist/* diff --git a/server/.prettierrc.yml b/server/.prettierrc.yml new file mode 100644 index 0000000..b794b8b --- /dev/null +++ b/server/.prettierrc.yml @@ -0,0 +1,8 @@ +tabWidth: 2 +printWidth: 120 +useTabs: true +semi: false +singleQuote: true +bracketSpacing: true +arrowParens: avoid +trailingComma: none diff --git a/server/jest.config.js b/server/jest.config.js new file mode 100644 index 0000000..9abdfbc --- /dev/null +++ b/server/jest.config.js @@ -0,0 +1,7 @@ +module.exports = { + clearMocks: true, + roots: ['/src', '/tests'], + testEnvironment: 'node', + preset: 'ts-jest', + setupFiles: ['dotenv/config'] +} diff --git a/server/package.json b/server/package.json new file mode 100644 index 0000000..75dfb85 --- /dev/null +++ b/server/package.json @@ -0,0 +1,83 @@ +{ + "name": "@deemix-gui/deemix-server", + "version": "0.0.0", + "private": true, + "scripts": { + "start": "node dist/app.js", + "build": "webpack --env production", + "sourcemap": "webpack --env production sourcemap", + "prewatch": "yarn lint-build", + "watch": "webpack --watch", + "lint": "eslint \"./{src, tests}/**\" --fix", + "lint-build": "eslint \"./src/**\" --fix", + "test": "jest", + "test-watch": "jest --watch" + }, + "bin": "./dist/app.js", + "pkg": { + "scripts": "./dist/**/*.js", + "assets": [ + "../webui/public/**/*", + "../package.json" + ], + "targets": [ + "node16-linux-x64", + "node16-win-x64", + "node16-macos-x64" + ] + }, + "dependencies": { + "@types/cookie-parser": "1.4.2", + "@types/dateformat": "5.0.0", + "@types/debug": "4.1.5", + "@types/ejs": "3.1.1", + "@types/express": "4.17.11", + "@types/express-session": "^1.17.3", + "@types/morgan": "1.9.2", + "@types/node": "14.14.37", + "@types/ramda": "0.27.40", + "@types/uuid": "8.3.0", + "@types/ws": "7.4.1", + "@types/yargs": "17.0.0", + "bufferutil": "4.0.3", + "cookie-parser": "1.4.5", + "dateformat": "5.0.3", + "debug": "2.6.9", + "deemix": "^3.6.0", + "deezer-js": "^1.3.0", + "dotenv": "8.2.0", + "ejs": "3.1.8", + "express": "4.17.1", + "express-session": "^1.17.1", + "memorystore": "1.6.6", + "morgan": "1.10.0", + "nodemon": "2.0.7", + "nodemon-webpack-plugin": "4.8.1", + "ramda": "0.27.1", + "ts-loader": "9.4.2", + "utf-8-validate": "5.0.5", + "uuid": "8.3.2", + "webpack": "5.75.0", + "webpack-cli": "5.0.1", + "winston": "3.6.0", + "ws": "7.4.5", + "yargs": "17.0.1" + }, + "devDependencies": { + "@nuxtjs/eslint-config": "6.0.0", + "@types/jest": "26.0.22", + "@types/supertest": "2.0.11", + "@typescript-eslint/eslint-plugin": "4.21.0", + "@typescript-eslint/parser": "4.21.0", + "eslint": "7.23.0", + "eslint-config-prettier": "8.1.0", + "eslint-plugin-prettier": "3.3.1", + "jest": "26.6.3", + "prettier": "2.2.1", + "supertest": "6.1.3", + "ts-jest": "26.5.4", + "ts-node": "9.1.1", + "ts-node-dev": "1.1.6", + "typescript": "4.2.4" + } +} diff --git a/server/src/app.ts b/server/src/app.ts new file mode 100644 index 0000000..0ee763b --- /dev/null +++ b/server/src/app.ts @@ -0,0 +1,400 @@ +import fs from 'fs' +import { sep } from 'path' +import { v4 as uuidv4 } from 'uuid' +// @ts-expect-error +import deemix from 'deemix' +import got from 'got' +import { Settings, Listener } from './types' +import { NotLoggedIn, CantStream } from './helpers/errors' + +import { GUI_PACKAGE } from './helpers/paths' +import { logger } from './helpers/logger' + +// Types +const Downloader = deemix.downloader.Downloader +const { Single, Collection, Convertable } = deemix.types.downloadObjects + +// Functions +export const getAccessToken = deemix.utils.deezer.getAccessToken +export const getArlFromAccessToken = deemix.utils.deezer.getArlFromAccessToken + +// Constants +export const configFolder: string = deemix.utils.localpaths.getConfigFolder() +export const defaultSettings: Settings = deemix.settings.DEFAULTS +export const deemixVersion = require('../node_modules/deemix/package.json').version +const currentVersionTemp = JSON.parse(String(fs.readFileSync(GUI_PACKAGE))).version +export const currentVersion = currentVersionTemp === '0.0.0' ? 'continuous' : currentVersionTemp + +export const sessionDZ: any = {} + +export class DeemixApp { + queueOrder: string[] + queue: any + currentJob: any + + deezerAvailable: string | null + latestVersion: string | null + + plugins: any + settings: any + + listener: Listener + + constructor(listener: Listener) { + this.settings = deemix.settings.load(configFolder) + + this.queueOrder = [] + this.queue = {} + this.currentJob = null + + this.plugins = { + // eslint-disable-next-line new-cap + spotify: new deemix.plugins.spotify() + } + this.deezerAvailable = null + this.latestVersion = null + this.listener = listener + + this.plugins.spotify.setup() + this.restoreQueueFromDisk() + } + + async isDeezerAvailable(): Promise { + if (this.deezerAvailable === null) { + let response + try { + response = await got.get('https://www.deezer.com/', { + headers: { Cookie: 'dz_lang=en; Domain=deezer.com; Path=/; Secure; hostOnly=false;' }, + https: { + rejectUnauthorized: false + }, + retry: 5 + }) + } catch (e) { + logger.error(e) + this.deezerAvailable = 'no-network' + return this.deezerAvailable + } + const title = (response.body.match(/]*>([^<]+)<\/title>/)![1] || '').trim() + this.deezerAvailable = title !== 'Deezer will soon be available in your country.' ? 'yes' : 'no' + } + return this.deezerAvailable + } + + async getLatestVersion(force = false): Promise { + if ((this.latestVersion === null || force) && !this.settings.disableUpdateCheck) { + let response + try { + response = await got.get('https://deemix.app/gui/latest', { + https: { + rejectUnauthorized: false + } + }) + } catch (e) { + logger.error(e) + this.latestVersion = 'NotFound' + return this.latestVersion + } + this.latestVersion = response.body.trim() + } + return this.latestVersion + } + + parseVersion(version: string | null): any { + if (version === null || version === 'continuous' || version === 'NotFound') return null + try { + const matchResult = version.match(/(\d+)\.(\d+)\.(\d+)-r(\d+)\.(.+)/) || [] + return { + year: parseInt(matchResult[1]), + month: parseInt(matchResult[2]), + day: parseInt(matchResult[3]), + revision: parseInt(matchResult[4]), + commit: matchResult[5] || '' + } + } catch (e) { + logger.error(e) + return null + } + } + + isUpdateAvailable(): boolean { + const currentVersionObj: any = this.parseVersion(currentVersion) + const latestVersionObj: any = this.parseVersion(this.latestVersion) + if (currentVersionObj === null || latestVersionObj === null) return false + if (latestVersionObj.year > currentVersionObj.year) return true + let sameDate = latestVersionObj.year === currentVersionObj.year + if (sameDate && latestVersionObj.month > currentVersionObj.month) return true + sameDate = sameDate && latestVersionObj.month === currentVersionObj.month + if (sameDate && latestVersionObj.day > currentVersionObj.day) return true + sameDate = sameDate && latestVersionObj.day === currentVersionObj.day + if (sameDate && latestVersionObj.revision > currentVersionObj.revision) return true + if ( + latestVersionObj.revision === currentVersionObj.revision && + latestVersionObj.commit !== currentVersionObj.commit + ) + return true + return false + } + + getSettings(): any { + return { settings: this.settings, defaultSettings, spotifySettings: this.plugins.spotify.getSettings() } + } + + saveSettings(newSettings: any, newSpotifySettings: any) { + newSettings.executeCommand = this.settings.executeCommand + deemix.settings.save(newSettings, configFolder) + this.settings = newSettings + this.plugins.spotify.saveSettings(newSpotifySettings) + } + + getQueue() { + const result: any = { + queue: this.queue, + queueOrder: this.queueOrder + } + if (this.currentJob && this.currentJob !== true) { + result.current = this.currentJob.downloadObject.getSlimmedDict() + } + return result + } + + async addToQueue(dz: any, url: string[], bitrate: number, retry: boolean = false) { + if (!dz.logged_in) throw new NotLoggedIn() + if ( + !this.settings.feelingLucky && + ((!dz.current_user.can_stream_lossless && bitrate === 9) || (!dz.current_user.can_stream_hq && bitrate === 3)) + ) + throw new CantStream(bitrate) + + let downloadObjs: any[] = [] + const downloadErrors: any[] = [] + let link: string = '' + const requestUUID = uuidv4() + + if (url.length > 1) { + this.listener.send('startGeneratingItems', { uuid: requestUUID, total: url.length }) + } + + for (let i = 0; i < url.length; i++) { + link = url[i] + logger.info(`Adding ${link} to queue`) + let downloadObj + try { + downloadObj = await deemix.generateDownloadObject(dz, link, bitrate, this.plugins, this.listener) + } catch (e) { + downloadErrors.push(e) + } + if (Array.isArray(downloadObj)) { + downloadObjs = downloadObjs.concat(downloadObj) + } else if (downloadObj) downloadObjs.push(downloadObj) + } + + if (downloadErrors.length) { + downloadErrors.forEach((e: any) => { + if (!e.errid) logger.error(e) + this.listener.send('queueError', { link: e.link, error: e.message, errid: e.errid }) + }) + } + + if (url.length > 1) { + this.listener.send('finishGeneratingItems', { uuid: requestUUID, total: downloadObjs.length }) + } + + const slimmedObjects: any[] = [] + + downloadObjs.forEach((downloadObj: any) => { + // Check if element is already in queue + if (Object.keys(this.queue).includes(downloadObj.uuid) && !retry) { + this.listener.send('alreadyInQueue', downloadObj.getEssentialDict()) + return + } + + // Save queue status when adding something to the queue + if (!fs.existsSync(configFolder + 'queue')) fs.mkdirSync(configFolder + 'queue') + + this.queueOrder.push(downloadObj.uuid) + fs.writeFileSync(configFolder + `queue${sep}order.json`, JSON.stringify(this.queueOrder)) + this.queue[downloadObj.uuid] = downloadObj.getEssentialDict() + this.queue[downloadObj.uuid].status = 'inQueue' + + const savedObject = downloadObj.toDict() + savedObject.status = 'inQueue' + fs.writeFileSync(configFolder + `queue${sep}${downloadObj.uuid}.json`, JSON.stringify(savedObject)) + + slimmedObjects.push(downloadObj.getSlimmedDict()) + }) + if (slimmedObjects.length === 1) this.listener.send('addedToQueue', slimmedObjects[0]) + else this.listener.send('addedToQueue', slimmedObjects) + + this.startQueue(dz) + return slimmedObjects + } + + async startQueue(dz: any): Promise { + do { + if (this.currentJob !== null || this.queueOrder.length === 0) { + // Should not start another download + return null + } + this.currentJob = true // lock currentJob + + let currentUUID: string + do { + currentUUID = this.queueOrder.shift() || '' + } while (this.queue[currentUUID] === undefined && this.queueOrder.length) + if (this.queue[currentUUID] === undefined) { + fs.writeFileSync(configFolder + `queue${sep}order.json`, JSON.stringify(this.queueOrder)) + this.currentJob = null + return null + } + this.queue[currentUUID].status = 'downloading' + const currentItem: any = JSON.parse(fs.readFileSync(configFolder + `queue${sep}${currentUUID}.json`).toString()) + let downloadObject: any + switch (currentItem.__type__) { + case 'Single': + downloadObject = new Single(currentItem) + break + case 'Collection': + downloadObject = new Collection(currentItem) + break + case 'Convertable': + downloadObject = new Convertable(currentItem) + downloadObject = await this.plugins[downloadObject.plugin].convert( + dz, + downloadObject, + this.settings, + this.listener + ) + fs.writeFileSync( + configFolder + `queue${sep}${downloadObject.uuid}.json`, + JSON.stringify({ ...downloadObject.toDict(), status: 'inQueue' }) + ) + break + } + this.currentJob = new Downloader(dz, downloadObject, this.settings, this.listener) + this.listener.send('startDownload', currentUUID) + await this.currentJob.start() + + if (!downloadObject.isCanceled) { + // Set status + if (downloadObject.failed === downloadObject.size && downloadObject.size !== 0) { + this.queue[currentUUID].status = 'failed' + } else if (downloadObject.failed > 0) { + this.queue[currentUUID].status = 'withErrors' + } else { + this.queue[currentUUID].status = 'completed' + } + + const savedObject = downloadObject.getSlimmedDict() + savedObject.status = this.queue[currentUUID].status + + // Save queue status + this.queue[currentUUID] = savedObject + fs.writeFileSync(configFolder + `queue${sep}${currentUUID}.json`, JSON.stringify(savedObject)) + } + logger.info(this.queueOrder) + fs.writeFileSync(configFolder + `queue${sep}order.json`, JSON.stringify(this.queueOrder)) + + this.currentJob = null + } while (this.queueOrder.length) + } + + cancelDownload(uuid: string) { + if (Object.keys(this.queue).includes(uuid)) { + switch (this.queue[uuid].status) { + case 'downloading': + this.currentJob.downloadObject.isCanceled = true + this.listener.send('cancellingCurrentItem', uuid) + break + case 'inQueue': + this.queueOrder.splice(this.queueOrder.indexOf(uuid), 1) + fs.writeFileSync(configFolder + `queue${sep}order.json`, JSON.stringify(this.queueOrder)) + // break + // eslint-disable-next-line no-fallthrough + default: + // This gets called even in the 'inQueue' case. Is this the expected behaviour? If no, de-comment the break + this.listener.send('removedFromQueue', uuid) + break + } + fs.unlinkSync(configFolder + `queue${sep}${uuid}.json`) + delete this.queue[uuid] + } + } + + cancelAllDownloads() { + this.queueOrder = [] + let currentItem: string | null = null + Object.values(this.queue).forEach((downloadObject: any) => { + if (downloadObject.status === 'downloading') { + this.currentJob.downloadObject.isCanceled = true + this.listener.send('cancellingCurrentItem', downloadObject.uuid) + currentItem = downloadObject.uuid + } + fs.unlinkSync(configFolder + `queue${sep}${downloadObject.uuid}.json`) + delete this.queue[downloadObject.uuid] + }) + fs.writeFileSync(configFolder + `queue${sep}order.json`, JSON.stringify(this.queueOrder)) + this.listener.send('removedAllDownloads', currentItem) + } + + clearCompletedDownloads() { + Object.values(this.queue).forEach((downloadObject: any) => { + if (downloadObject.status === 'completed') { + fs.unlinkSync(configFolder + `queue${sep}${downloadObject.uuid}.json`) + delete this.queue[downloadObject.uuid] + } + }) + this.listener.send('removedFinishedDownloads') + } + + restoreQueueFromDisk() { + if (!fs.existsSync(configFolder + 'queue')) fs.mkdirSync(configFolder + 'queue') + const allItems: string[] = fs.readdirSync(configFolder + 'queue') + allItems.forEach((filename: string) => { + if (filename === 'order.json') { + try { + this.queueOrder = JSON.parse(fs.readFileSync(configFolder + `queue${sep}order.json`).toString()) + } catch { + this.queueOrder = [] + fs.writeFileSync(configFolder + `queue${sep}order.json`, JSON.stringify(this.queueOrder)) + } + } else { + let currentItem: any + try { + currentItem = JSON.parse(fs.readFileSync(configFolder + `queue${sep}${filename}`).toString()) + } catch { + fs.unlinkSync(configFolder + `queue${sep}${filename}`) + return + } + if (currentItem.status === 'inQueue') { + let downloadObject: any + switch (currentItem.__type__) { + case 'Single': + downloadObject = new Single(currentItem) + // Remove old incompatible queue items + if (downloadObject.single.trackAPI_gw) { + fs.unlinkSync(configFolder + `queue${sep}${filename}`) + return + } + break + case 'Collection': + downloadObject = new Collection(currentItem) + // Remove old incompatible queue items + if (downloadObject.collection.tracks_gw) { + fs.unlinkSync(configFolder + `queue${sep}${filename}`) + return + } + break + case 'Convertable': + downloadObject = new Convertable(currentItem) + break + } + this.queue[downloadObject.uuid] = downloadObject.getEssentialDict() + this.queue[downloadObject.uuid].status = 'inQueue' + } else { + this.queue[currentItem.uuid] = currentItem + } + } + }) + } +} diff --git a/server/src/helpers/errors.ts b/server/src/helpers/errors.ts new file mode 100644 index 0000000..67bfa44 --- /dev/null +++ b/server/src/helpers/errors.ts @@ -0,0 +1,55 @@ +const { TrackFormats } = require('deezer-js') + +const bitrateLabels = { + [TrackFormats.MP4_RA3]: '360 HQ', + [TrackFormats.MP4_RA2]: '360 MQ', + [TrackFormats.MP4_RA1]: '360 LQ', + [TrackFormats.FLAC]: 'FLAC', + [TrackFormats.MP3_320]: '320kbps', + [TrackFormats.MP3_128]: '128kbps', + [TrackFormats.DEFAULT]: '128kbps', + [TrackFormats.LOCAL]: 'MP3' +} + +export class BadRequestError extends Error { + constructor() { + super() + this.message = 'Bad request!' + } +} + +export const isBadRequestError = (error: any) => error instanceof BadRequestError + +export class QueueError extends Error { + constructor(message: string) { + super(message) + this.name = 'QueueError' + } +} + +export class AlreadyInQueue extends QueueError { + item: any + silent: boolean + constructor(dwObj: any, silent: boolean) { + super(`${dwObj.artist} - ${dwObj.title} is already in queue.`) + this.name = 'AlreadyInQueue' + this.item = dwObj + this.silent = silent + } +} + +export class NotLoggedIn extends QueueError { + constructor() { + super(`You must be logged in to start a download.`) + this.name = 'NotLoggedIn' + } +} + +export class CantStream extends QueueError { + bitrate: number + constructor(bitrate: number) { + super(`Your account can't stream at ${bitrateLabels[bitrate]}.`) + this.name = 'CantStream' + this.bitrate = bitrate + } +} diff --git a/server/src/helpers/logger.ts b/server/src/helpers/logger.ts new file mode 100644 index 0000000..7aa3572 --- /dev/null +++ b/server/src/helpers/logger.ts @@ -0,0 +1,51 @@ +import fs from 'fs' +import { join as joinPath } from 'path' +import os from 'os' +import dateFormat from 'dateformat' +import { createLogger, format, transports } from 'winston' +// @ts-expect-error +import deemix from 'deemix' +const { combine, timestamp, errors, colorize, printf } = format + +const logFolder: string = joinPath(deemix.utils.localpaths.getConfigFolder(), 'logs') +const logFilename = joinPath(logFolder, `${dateFormat(new Date(), 'yyyy-mm-dd-HH.MM.ss')}.log`) + +const logFormat = printf(error => { + const { level, message, timestamp, stack } = error + let result = `${timestamp} [${level}] ${message}` + if (stack && !message.startsWith('uncaughtException')) result += '\n' + stack + '\n' + return result +}) + +export const logger = createLogger({ + format: combine(errors({ stack: true }), timestamp(), logFormat), + transports: [ + new transports.File({ + handleExceptions: true, + handleRejections: true, + format: combine(errors({ stack: true }), timestamp(), logFormat), + filename: logFilename + }), + new transports.Console({ + handleExceptions: true, + handleRejections: true, + format: combine(errors({ stack: true }), colorize(), timestamp(), logFormat) + }) + ] +}) + +export function removeOldLogs(logFilesNumber: number) { + if (!fs.existsSync(logFolder)) fs.mkdirSync(logFolder, { recursive: true }) + fs.appendFileSync(logFilename, `${os.platform()} - ${os.type()} ${os.release()} ${os.arch()}\n\n`) + const files = fs.readdirSync(logFolder) + const logs: Array = [] + files.forEach(function (file) { + logs.push(file.substring(0, file.length - 4)) + }) + logs.sort() + if (logs.length > logFilesNumber) { + for (let i = 0; i < logs.length - logFilesNumber; i++) { + fs.unlinkSync(joinPath(logFolder, logs[i] + '.log')) + } + } +} diff --git a/server/src/helpers/loginStorage.ts b/server/src/helpers/loginStorage.ts new file mode 100644 index 0000000..d034b18 --- /dev/null +++ b/server/src/helpers/loginStorage.ts @@ -0,0 +1,45 @@ +import fs from 'fs' +// @ts-expect-error +import deemix from 'deemix' +import { LoginFile } from '../types' + +const configFolder = deemix.utils.localpaths.getConfigFolder() + +const DEFAULTS: LoginFile = { + accessToken: null, + arl: null +} + +let loginData: LoginFile = { + accessToken: null, + arl: null +} + +export function loadLoginCredentials() { + if (!fs.existsSync(configFolder)) fs.mkdirSync(configFolder) + if (!fs.existsSync(configFolder + 'login.json')) resetLoginCredentials() + + try { + loginData = JSON.parse(fs.readFileSync(configFolder + 'login.json').toString()) + } catch (e) { + if (e.name === 'SyntaxError') resetLoginCredentials() + } +} + +export function getLoginCredentials(): LoginFile { + if (!loginData.arl) loadLoginCredentials() + return loginData +} + +export function saveLoginCredentials(newLogin: LoginFile) { + if (newLogin.arl) loginData.arl = newLogin.arl + if (newLogin.accessToken) loginData.accessToken = newLogin.accessToken + if (!fs.existsSync(configFolder)) fs.mkdirSync(configFolder) + fs.writeFileSync(configFolder + 'login.json', JSON.stringify(loginData, null, 2)) +} + +export function resetLoginCredentials() { + if (!fs.existsSync(configFolder)) fs.mkdirSync(configFolder) + fs.writeFileSync(configFolder + 'login.json', JSON.stringify(DEFAULTS, null, 2)) + loginData = JSON.parse(JSON.stringify(DEFAULTS)) +} diff --git a/server/src/helpers/paths.ts b/server/src/helpers/paths.ts new file mode 100644 index 0000000..e6ea82c --- /dev/null +++ b/server/src/helpers/paths.ts @@ -0,0 +1,5 @@ +import path from 'path' + +export const ROOT_DIR = path.resolve(path.join(__dirname, '..', '..')) +export const WEBUI_DIR = path.join(ROOT_DIR, 'webui', 'public') +export const GUI_PACKAGE = path.join(ROOT_DIR, 'package.json') diff --git a/server/src/helpers/port.ts b/server/src/helpers/port.ts new file mode 100644 index 0000000..cadece8 --- /dev/null +++ b/server/src/helpers/port.ts @@ -0,0 +1,22 @@ +import { Port } from '../types' + +/** + * Normalize a port into a number, string, or false. + * + * @since 0.0.0 + */ +export function normalizePort(portString: string): Port { + const port = parseInt(portString, 10) + + if (isNaN(port)) { + // named pipe + return portString + } + + if (port >= 0) { + // port number + return port + } + + return false +} diff --git a/server/src/helpers/primitive-checks.ts b/server/src/helpers/primitive-checks.ts new file mode 100644 index 0000000..9d0b73a --- /dev/null +++ b/server/src/helpers/primitive-checks.ts @@ -0,0 +1 @@ +export const isObjectEmpy = (obj: any) => Object.keys(obj).length === 0 diff --git a/server/src/helpers/server-callbacks.ts b/server/src/helpers/server-callbacks.ts new file mode 100644 index 0000000..3faf2d0 --- /dev/null +++ b/server/src/helpers/server-callbacks.ts @@ -0,0 +1,51 @@ +import http from 'http' +import type { Debugger } from 'debug' +import { logger } from './logger' + +/** + * Event listener for HTTP server "error" event. + * + * @since 0.0.0 + */ +export function getErrorCb(port: number | string | boolean) { + return (error: any) => { + if (error.syscall !== 'listen') { + throw error + } + + const bind = typeof port === 'string' ? 'Pipe ' + port : 'Port ' + port + + // handle specific listen errors with friendly messages + switch (error.code) { + case 'EACCES': { + logger.error(bind + ' requires elevated privileges') + process.exit(1) + } + case 'EADDRINUSE': { + logger.error(bind + ' is already in use') + process.exit(1) + } + default: + throw error + } + } +} + +/** + * Event listener for HTTP server "listening" event. + * + * @since 0.0.0 + */ +export function getListeningCb(server: http.Server, debug: Debugger) { + return () => { + const addr = server.address() + + if (addr) { + const ip = typeof addr === 'string' ? 'pipe ' + addr : addr.address + const port = typeof addr === 'string' ? 'pipe ' + addr : addr.port + + debug(`Listening on ${ip}:${port}`) + logger.info(`Listening on ${ip}:${port}`) + } + } +} diff --git a/server/src/index.ts b/server/src/index.ts new file mode 100644 index 0000000..8efb0db --- /dev/null +++ b/server/src/index.ts @@ -0,0 +1,27 @@ +import yargs from 'yargs' +import { hideBin } from 'yargs/helpers' +import type { Arguments } from './types' + +import { DeemixServer } from './server' + +const isModule = process.mainModule && process.mainModule.parent + +if (!isModule) { + // TODO: Remove type assertion while keeping correct types + const argv = yargs(hideBin(process.argv)).options({ + port: { type: 'string', default: '6595' }, + host: { type: 'string', default: '127.0.0.1' }, + locationbase: { type: 'string', default: '/' }, + singleuser: { type: 'boolean', default: false } + }).argv as Arguments + + const DEEMIX_SERVER_PORT = process.env.DEEMIX_SERVER_PORT ?? argv.port + const DEEMIX_HOST = process.env.DEEMIX_HOST ?? argv.host + const DEEMIX_LOCATION_BASE = process.env.DEEMIX_LOCATION_BASE ?? argv.locationbase + const IS_SINGLE_USER = !!process.env.DEEMIX_SINGLE_USER ?? !!argv.singleuser + + const server = new DeemixServer(DEEMIX_HOST, DEEMIX_SERVER_PORT, DEEMIX_LOCATION_BASE, IS_SINGLE_USER) + server.init() +} + +export { DeemixServer } diff --git a/server/src/middlewares.ts b/server/src/middlewares.ts new file mode 100644 index 0000000..11e3c16 --- /dev/null +++ b/server/src/middlewares.ts @@ -0,0 +1,36 @@ +import type { Application } from 'express' +import express from 'express' +import logger from 'morgan' +import cookieParser from 'cookie-parser' +import session from 'express-session' + +import { WEBUI_DIR } from './helpers/paths' + +const MemoryStore = require('memorystore')(session) + +declare module 'express-session' { + export interface SessionData { + dz: any + } +} + +export function registerMiddlewares(app: Application) { + app.use(express.json()) + app.use(express.urlencoded({ extended: false })) + app.use(cookieParser()) + app.use( + session({ + store: new MemoryStore({ + checkPeriod: 86400000 // prune expired entries every 24h + }), + secret: 'U2hoLCBpdHMgYSBzZWNyZXQh', + resave: true, + saveUninitialized: true + }) + ) + app.use(express.static(WEBUI_DIR)) + + if (process.env.NODE_ENV === 'development') { + app.use(logger('dev')) + } +} diff --git a/server/src/routes/api/delete/index.ts b/server/src/routes/api/delete/index.ts new file mode 100644 index 0000000..a24ea15 --- /dev/null +++ b/server/src/routes/api/delete/index.ts @@ -0,0 +1,3 @@ +import { ApiHandler } from '../../../types' + +export default [] as ApiHandler[] diff --git a/server/src/routes/api/get/albumSearch.spec.ts b/server/src/routes/api/get/albumSearch.spec.ts new file mode 100644 index 0000000..db54e89 --- /dev/null +++ b/server/src/routes/api/get/albumSearch.spec.ts @@ -0,0 +1,51 @@ +import { appSendGet } from '../../../../tests/utils' + +describe('albumSearch requests', () => { + it('should respond 200 to calls with term', async () => { + const responseStatusCollector: number[] = [] + const batchCalls = [ + '/api/album-search/?term=eminem', + '/api/album-search/?term=eminem?start=10', + '/api/album-search/?term=eminem?ack=aa', + '/api/album-search/?term=eminem?ack=aa?start=10', + '/api/album-search/?term=eminem?ack=aa?start=10?nb=34' + ] + + for (const uri of batchCalls) { + responseStatusCollector.push((await appSendGet(uri)).status) + } + + expect(responseStatusCollector).toMatchObject(new Array(batchCalls.length).fill(200)) + expect(responseStatusCollector).toMatchObject(new Array(responseStatusCollector.length).fill(200)) + }) + + it('should respond 400 to calls without term', async () => { + const responseStatusCollector: number[] = [] + const batchCalls = [ + '/api/album-search/', + '/api/album-search/?start=10', + '/api/album-search/?ack=aa', + '/api/album-search/?ack=aa?start=10', + '/api/album-search/?ack=aa?start=10?nb=34' + ] + + for (const uri of batchCalls) { + responseStatusCollector.push((await appSendGet(uri)).status) + } + + expect(responseStatusCollector).toMatchObject(new Array(responseStatusCollector.length).fill(400)) + }) + + it('should respond the desired search result', async () => { + const res = (await appSendGet('/api/album-search/?term=eminem')).body + + expect(res.data.data.length).not.toBe(0) + }) + + // TODO Understand whic should be the correct response + it.skip('should respond the desired search result with a start parameter', async () => { + const res = (await appSendGet('/api/album-search/?term=eminem?start=10')).body + + expect(res.data.data.length).not.toBe(0) + }) +}) diff --git a/server/src/routes/api/get/albumSearch.ts b/server/src/routes/api/get/albumSearch.ts new file mode 100644 index 0000000..e2ed63f --- /dev/null +++ b/server/src/routes/api/get/albumSearch.ts @@ -0,0 +1,92 @@ +import type { RequestHandler } from 'express' +// @ts-expect-error +import { Deezer } from 'deezer-js' + +import type { ApiHandler } from '../../../types' +import { sessionDZ } from '../../../app' + +export interface RawAlbumQuery { + term: string + start?: string + nb?: string +} + +export interface AlbumSearchParams extends Omit { + start: number + nb: number +} + +export interface AlbumResponse { + data: any[] + total: number +} + +const path: ApiHandler['path'] = '/album-search/' + +const handler: RequestHandler<{}, {}, {}, RawAlbumQuery> = async (req, res) => { + if (!sessionDZ[req.session.id]) sessionDZ[req.session.id] = new Deezer() + const dz = sessionDZ[req.session.id] + + if (!req.query) { + return res.status(400).send() + } + + const { term, start, nb } = parseQuery(req.query) + + if (!term || term.trim() === '') { + return res.status(400).send() + } + + const results = await dz.gw.search_music(term, 'ALBUM', { index: start, limit: nb }) + + const albums = await Promise.all(results.data.map((c: any) => getAlbumDetails(dz, c.ALB_ID))) + + const output: AlbumResponse = { + data: albums, + total: albums.length + } + + return res.send(output) +} + +const apiHandler = { path, handler } + +function parseQuery(query: RawAlbumQuery): AlbumSearchParams { + let startingPoint = 0 + + if (typeof query.start !== 'undefined') { + startingPoint = parseInt(query.start) + } + + let newNb = 30 + + if (typeof query.nb !== 'undefined') { + newNb = parseInt(query.nb) + } + + return { + term: query.term, + start: startingPoint, + nb: newNb + } +} + +async function getAlbumDetails(dz: any, albumId: string): Promise { + const result = await dz.gw.get_album_page(albumId) + const output = result.DATA + + let duration = 0 + result.SONGS.data.forEach((s: any) => { + if ('DURATION' in s) { + duration += parseInt(s.DURATION) + } + }) + + output.DURATION = duration + output.NUMBER_TRACK = result.SONGS.total + output.LINK = `https://deezer.com/album/${output.ALB_ID}` + + return output +} + +export { apiHandler, getAlbumDetails } diff --git a/server/src/routes/api/get/analyzeLink.spec.ts b/server/src/routes/api/get/analyzeLink.spec.ts new file mode 100644 index 0000000..5810501 --- /dev/null +++ b/server/src/routes/api/get/analyzeLink.spec.ts @@ -0,0 +1,30 @@ +import { appSendGet } from '../../../../tests/utils' + +describe('analyzeLink requests', () => { + it('should respond 200 to calls with supported term', async () => { + const res = await appSendGet('/api/analyzeLink/?term=https://www.deezer.com/en/album/100896762') + + expect(res.status).toBe(200) + }) + + it('should respond with an error to calls with not supported term', async () => { + const res = await appSendGet('/api/analyzeLink/?term=https://www.deezer.com/en/artist/15166511') + + expect(res.status).toBe(400) + expect(res.body.errorMessage).toBe('Not supported') + }) + + it('should respond album analyzed data', async () => { + const res = await appSendGet('/api/analyzeLink/?term=https://www.deezer.com/en/album/100896762') + + expect(res.body.type).toBe('album') + expect(res.body.artist.name).toBe('Lil Nas X') + }) + + it('should respond track analyzed data', async () => { + const res = await appSendGet('/api/analyzeLink/?term=https://www.deezer.com/en/track/1283264142') + + expect(res.body.type).toBe('track') + expect(res.body.artist.name).toBe('Lil Nas X') + }) +}) diff --git a/server/src/routes/api/get/analyzeLink.ts b/server/src/routes/api/get/analyzeLink.ts new file mode 100644 index 0000000..8694a1c --- /dev/null +++ b/server/src/routes/api/get/analyzeLink.ts @@ -0,0 +1,47 @@ +import type { RequestHandler } from 'express' +// @ts-expect-error +import deemix from 'deemix' +// @ts-expect-error +import { Deezer } from 'deezer-js' + +import type { ApiHandler, GetTrackResponse, GetAlbumResponse } from '../../../types' +import { sessionDZ } from '../../../app' + +export interface AnalyzeQuery { + term?: string +} + +type ResBody = GetAlbumResponse | GetTrackResponse + +const path: ApiHandler['path'] = '/analyzeLink' + +const handler: RequestHandler = async (req, res) => { + try { + if (!req.query || !req.query.term) { + return res.status(400).send({ errorMessage: 'No term specified', errorCode: 'AL01' }) + } + + const { term: linkToAnalyze } = req.query + const [, linkType, linkId] = await deemix.parseLink(linkToAnalyze) + const isTrackOrAlbum = ['track', 'album'].includes(linkType) + + if (isTrackOrAlbum) { + if (!sessionDZ[req.session.id]) sessionDZ[req.session.id] = new Deezer() + const dz = sessionDZ[req.session.id] + const apiMethod = linkType === 'track' ? 'get_track' : 'get_album' + const resBody: ResBody = await dz.api[apiMethod](linkId) + + return res.status(200).send(resBody) + } + + return res.status(400).send({ errorMessage: 'Not supported', errorCode: 'AL02' }) + } catch (error) { + return res + .status(500) + .send({ errorMessage: 'The server had a problem. Please try again', errorObject: error, errorCode: 'AL03' }) + } +} + +const apiHandler: ApiHandler = { path, handler } + +export default apiHandler diff --git a/server/src/routes/api/get/checkForUpdates.ts b/server/src/routes/api/get/checkForUpdates.ts new file mode 100644 index 0000000..5307665 --- /dev/null +++ b/server/src/routes/api/get/checkForUpdates.ts @@ -0,0 +1,16 @@ +import { ApiHandler } from '../../../types' + +const path: ApiHandler['path'] = '/checkForUpdates' + +const handler: ApiHandler['handler'] = async (req, res) => { + const deemix = req.app.get('deemix') + const latestCommit = await deemix.getLatestVersion() + res.send({ + latestCommit, + updateAvailable: deemix.isUpdateAvailable() + }) +} + +const apiHandler: ApiHandler = { path, handler } + +export default apiHandler diff --git a/server/src/routes/api/get/connect.ts b/server/src/routes/api/get/connect.ts new file mode 100644 index 0000000..f5f9180 --- /dev/null +++ b/server/src/routes/api/get/connect.ts @@ -0,0 +1,50 @@ +// @ts-expect-error +import { Deezer } from 'deezer-js' +import { ApiHandler } from '../../../types' +import { logger } from '../../../helpers/logger' +import { getLoginCredentials } from '../../../helpers/loginStorage' +import { sessionDZ, deemixVersion, currentVersion } from '../../../app' + +const path: ApiHandler['path'] = '/connect' +let update: any = null + +const handler: ApiHandler['handler'] = async (req, res) => { + if (!sessionDZ[req.session.id]) sessionDZ[req.session.id] = new Deezer() + const dz = sessionDZ[req.session.id] + const deemix = req.app.get('deemix') + const isSingleUser = req.app.get('isSingleUser') + + if (!update) { + logger.info(`Currently running deemix-gui version ${currentVersion}`) + logger.info(`deemix-lib version ${deemixVersion}`) + update = { + currentCommit: currentVersion, + deemixVersion + } + } + + const result: any = { + update, + autologin: !dz.logged_in, + currentUser: dz.current_user, + deezerAvailable: await deemix.isDeezerAvailable(), + spotifyEnabled: deemix.plugins.spotify.enabled, + settingsData: deemix.getSettings() + } + + if (isSingleUser && result.autologin) result.singleUser = getLoginCredentials() + + if (result.settingsData.settings.autoCheckForUpdates) result.checkForUpdates = true + + const queue = deemix.getQueue() + + if (Object.keys(queue.queue).length > 0) { + result.queue = queue + } + + res.send(result) +} + +const apiHandler: ApiHandler = { path, handler } + +export default apiHandler diff --git a/server/src/routes/api/get/getChartTracks.ts b/server/src/routes/api/get/getChartTracks.ts new file mode 100644 index 0000000..0bcc173 --- /dev/null +++ b/server/src/routes/api/get/getChartTracks.ts @@ -0,0 +1,45 @@ +import { RequestHandler } from 'express' +// @ts-expect-error +import { Deezer } from 'deezer-js' +import { ApiHandler } from '../../../types' +import { sessionDZ } from '../../../app' + +import { isObjectEmpy } from '../../../helpers/primitive-checks' +import { BadRequestError, isBadRequestError } from '../../../helpers/errors' +import { logger } from '../../../helpers/logger' + +export interface RawChartTracksQuery { + id: string + index?: number + limit?: number +} + +const path: ApiHandler['path'] = '/getChartTracks' + +const handler: RequestHandler<{}, {}, {}, RawChartTracksQuery> = async (req, res, next) => { + try { + if (!sessionDZ[req.session.id]) sessionDZ[req.session.id] = new Deezer() + const dz = sessionDZ[req.session.id] + + if (isObjectEmpy(req.query) || !req.query.id) { + throw new BadRequestError() + } + + const playlistId = req.query.id + const index = req.query.index + const limit = req.query.limit + + const response = await dz.api.get_playlist_tracks(playlistId, { index, limit }) + return res.status(200).send(response) + } catch (error) { + if (isBadRequestError(error)) { + logger.error(error.message) + res.status(400).send() + return next() + } + } +} + +const apiHandler: ApiHandler = { path, handler } + +export default apiHandler diff --git a/server/src/routes/api/get/getCharts.ts b/server/src/routes/api/get/getCharts.ts new file mode 100644 index 0000000..91a87ed --- /dev/null +++ b/server/src/routes/api/get/getCharts.ts @@ -0,0 +1,33 @@ +// @ts-expect-error +import { Deezer } from 'deezer-js' +import { ApiHandler } from '../../../types' +import { sessionDZ } from '../../../app' + +const path: ApiHandler['path'] = '/getCharts' + +let chartsCache: any + +const handler: ApiHandler['handler'] = async (req, res) => { + if (!chartsCache) { + if (!sessionDZ[req.session.id]) sessionDZ[req.session.id] = new Deezer() + const dz = sessionDZ[req.session.id] + + const chartsData = await dz.api.get_countries_charts() + const countries: any[] = [] + chartsData.forEach((country: any) => { + countries.push({ + title: country.title.replace('Top ', ''), + id: country.id, + picture_small: country.picture_small, + picture_medium: country.picture_medium, + picture_big: country.picture_big + }) + }) + chartsCache = { data: countries } + } + res.send(chartsCache) +} + +const apiHandler: ApiHandler = { path, handler } + +export default apiHandler diff --git a/server/src/routes/api/get/getHome.ts b/server/src/routes/api/get/getHome.ts new file mode 100644 index 0000000..e0155a1 --- /dev/null +++ b/server/src/routes/api/get/getHome.ts @@ -0,0 +1,22 @@ +// @ts-expect-error +import { Deezer } from 'deezer-js' +import { ApiHandler } from '../../../types' +import { sessionDZ } from '../../../app' + +const path: ApiHandler['path'] = '/getHome' + +let homeCache: any + +const handler: ApiHandler['handler'] = async (req, res) => { + if (!sessionDZ[req.session.id]) sessionDZ[req.session.id] = new Deezer() + const dz = sessionDZ[req.session.id] + + if (!homeCache) { + homeCache = await dz.api.get_chart(0, { limit: 30 }) + } + res.send(homeCache) +} + +const apiHandler: ApiHandler = { path, handler } + +export default apiHandler diff --git a/server/src/routes/api/get/getQueue.ts b/server/src/routes/api/get/getQueue.ts new file mode 100644 index 0000000..6a0959b --- /dev/null +++ b/server/src/routes/api/get/getQueue.ts @@ -0,0 +1,16 @@ +// import { Deezer } from 'deezer-js' +import { ApiHandler } from '../../../types' + +const path: ApiHandler['path'] = '/getQueue' + +// let homeCache: any + +const handler: ApiHandler['handler'] = (req, res) => { + const deemix = req.app.get('deemix') + const result: any = deemix.getQueue() + res.send(result) +} + +const apiHandler: ApiHandler = { path, handler } + +export default apiHandler diff --git a/server/src/routes/api/get/getSettings.ts b/server/src/routes/api/get/getSettings.ts new file mode 100644 index 0000000..9558d1f --- /dev/null +++ b/server/src/routes/api/get/getSettings.ts @@ -0,0 +1,12 @@ +import { ApiHandler } from '../../../types' + +const path: ApiHandler['path'] = '/getSettings' + +const handler: ApiHandler['handler'] = (req, res) => { + const deemix = req.app.get('deemix') + res.send(deemix.getSettings()) +} + +const apiHandler: ApiHandler = { path, handler } + +export default apiHandler diff --git a/server/src/routes/api/get/getTracklist.ts b/server/src/routes/api/get/getTracklist.ts new file mode 100644 index 0000000..4605658 --- /dev/null +++ b/server/src/routes/api/get/getTracklist.ts @@ -0,0 +1,105 @@ +// @ts-expect-error +import { Deezer, utils as dzUtils } from 'deezer-js' +import { ApiHandler } from '../../../types' +import { sessionDZ } from '../../../app' + +const path: ApiHandler['path'] = '/getTracklist' + +const handler: ApiHandler['handler'] = async (req, res) => { + if (!sessionDZ[req.session.id]) sessionDZ[req.session.id] = new Deezer() + const dz = sessionDZ[req.session.id] + const deemix = req.app.get('deemix') + + const list_id = String(req.query.id) + const list_type = String(req.query.type) + switch (list_type) { + case 'artist': { + const artistAPI = await dz.api.get_artist(list_id) + artistAPI.releases = await dz.gw.get_artist_discography_tabs(list_id, { limit: 100 }) + res.send(artistAPI) + break + } + case 'spotifyplaylist': + case 'spotify_playlist': { + if (!deemix.plugins.spotify.enabled) { + res.send({ + collaborative: false, + description: '', + external_urls: { spotify: null }, + followers: { total: 0, href: null }, + id: null, + images: [], + name: 'Something went wrong', + owner: { + display_name: 'Error', + id: null + }, + public: true, + tracks: [], + type: 'playlist', + uri: null + }) + break + } + const sp = deemix.plugins.spotify.sp + let playlist = await sp.getPlaylist(list_id) + playlist = playlist.body + let tracklist = playlist.tracks.items + while (playlist.tracks.next) { + const regExec = /offset=(\d+)&limit=(\d+)/g.exec(playlist.tracks.next) + const offset = regExec![1] + const limit = regExec![2] + const playlistTracks = await sp.getPlaylistTracks(list_id, { offset, limit }) + playlist.tracks = playlistTracks.body + tracklist = tracklist.concat(playlist.tracks.items) + } + tracklist.forEach((item: any, i: number) => { + tracklist[i] = item.track + tracklist[i].selected = false + }) + playlist.tracks = tracklist + res.send(playlist) + break + } + default: { + let releaseAPI, releaseTracksAPI + try { + releaseAPI = await dz.api[`get_${list_type}`](list_id) + releaseTracksAPI = await dz.api[`get_${list_type}_tracks`](list_id) + releaseTracksAPI = releaseTracksAPI.data + } catch { + if (list_type === 'playlist') { + releaseAPI = dzUtils.map_playlist(await (await dz.gw.get_playlist_page(list_id)).DATA) + releaseTracksAPI = await dz.gw.get_playlist_tracks(list_id) + } else { + releaseAPI = {} + releaseTracksAPI = [] + } + } + + const tracks: any[] = [] + const showdiscs = + list_type === 'album' && + releaseTracksAPI.length && + releaseTracksAPI[releaseTracksAPI.length - 1].disk_number !== 1 + let current_disk = 0 + + releaseTracksAPI.forEach((track: any) => { + if (track.SNG_ID) track = dzUtils.map_track(track) + if (showdiscs && parseInt(track.disk_number) !== current_disk) { + current_disk = parseInt(track.disk_number) + tracks.push({ type: 'disc_separator', number: current_disk }) + } + track.selected = false + tracks.push(track) + }) + releaseAPI.tracks = tracks + res.send(releaseAPI) + break + } + } +} + +const apiHandler: ApiHandler = { path, handler } + +export default apiHandler diff --git a/server/src/routes/api/get/getUserAlbums.ts b/server/src/routes/api/get/getUserAlbums.ts new file mode 100644 index 0000000..2353eec --- /dev/null +++ b/server/src/routes/api/get/getUserAlbums.ts @@ -0,0 +1,24 @@ +// @ts-expect-error +import { Deezer } from 'deezer-js' +import { ApiHandler } from '../../../types' +import { sessionDZ } from '../../../app' + +const path: ApiHandler['path'] = '/getUserAlbums' + +const handler: ApiHandler['handler'] = async (req, res) => { + if (!sessionDZ[req.session.id]) sessionDZ[req.session.id] = new Deezer() + const dz = sessionDZ[req.session.id] + let data + + if (dz.logged_in) { + const userID = dz.current_user.id + data = await dz.gw.get_user_albums(userID, { limit: -1 }) + } else { + data = { error: 'notLoggedIn' } + } + res.send(data) +} + +const apiHandler: ApiHandler = { path, handler } + +export default apiHandler diff --git a/server/src/routes/api/get/getUserArtists.ts b/server/src/routes/api/get/getUserArtists.ts new file mode 100644 index 0000000..fd4878c --- /dev/null +++ b/server/src/routes/api/get/getUserArtists.ts @@ -0,0 +1,24 @@ +// @ts-expect-error +import { Deezer } from 'deezer-js' +import { ApiHandler } from '../../../types' +import { sessionDZ } from '../../../app' + +const path: ApiHandler['path'] = '/getUserArtists' + +const handler: ApiHandler['handler'] = async (req, res) => { + if (!sessionDZ[req.session.id]) sessionDZ[req.session.id] = new Deezer() + const dz = sessionDZ[req.session.id] + let data + + if (dz.logged_in) { + const userID = dz.current_user.id + data = await dz.gw.get_user_artists(userID, { limit: -1 }) + } else { + data = { error: 'notLoggedIn' } + } + res.send(data) +} + +const apiHandler: ApiHandler = { path, handler } + +export default apiHandler diff --git a/server/src/routes/api/get/getUserFavorites.ts b/server/src/routes/api/get/getUserFavorites.ts new file mode 100644 index 0000000..5336a08 --- /dev/null +++ b/server/src/routes/api/get/getUserFavorites.ts @@ -0,0 +1,30 @@ +// @ts-expect-error +import { Deezer } from 'deezer-js' +import { ApiHandler } from '../../../types' +import { sessionDZ } from '../../../app' + +const path: ApiHandler['path'] = '/getUserFavorites' + +const handler: ApiHandler['handler'] = async (req, res) => { + if (!sessionDZ[req.session.id]) sessionDZ[req.session.id] = new Deezer() + const dz = sessionDZ[req.session.id] + + let result: any = {} + + if (dz.logged_in) { + const userID = dz.current_user.id + + result.playlists = await dz.gw.get_user_playlists(userID, { limit: -1 }) + result.albums = await dz.gw.get_user_albums(userID, { limit: -1 }) + result.artists = await dz.gw.get_user_artists(userID, { limit: -1 }) + result.tracks = await dz.gw.get_my_favorite_tracks({ limit: -1 }) + result.lovedTracks = `https://deezer.com/playlist/${dz.current_user.loved_tracks}` + } else { + result = { error: 'notLoggedIn' } + } + res.send(result) +} + +const apiHandler: ApiHandler = { path, handler } + +export default apiHandler diff --git a/server/src/routes/api/get/getUserPlaylists.ts b/server/src/routes/api/get/getUserPlaylists.ts new file mode 100644 index 0000000..ec0e31b --- /dev/null +++ b/server/src/routes/api/get/getUserPlaylists.ts @@ -0,0 +1,24 @@ +// @ts-expect-error +import { Deezer } from 'deezer-js' +import { ApiHandler } from '../../../types' +import { sessionDZ } from '../../../app' + +const path: ApiHandler['path'] = '/getUserPlaylists' + +const handler: ApiHandler['handler'] = async (req, res) => { + if (!sessionDZ[req.session.id]) sessionDZ[req.session.id] = new Deezer() + const dz = sessionDZ[req.session.id] + let data + + if (dz.logged_in) { + const userID = dz.current_user.id + data = await dz.gw.get_user_playlists(userID, { limit: -1 }) + } else { + data = { error: 'notLoggedIn' } + } + res.send(data) +} + +const apiHandler: ApiHandler = { path, handler } + +export default apiHandler diff --git a/server/src/routes/api/get/getUserSpotifyPlaylists.ts b/server/src/routes/api/get/getUserSpotifyPlaylists.ts new file mode 100644 index 0000000..04057be --- /dev/null +++ b/server/src/routes/api/get/getUserSpotifyPlaylists.ts @@ -0,0 +1,41 @@ +import { ApiHandler } from '../../../types' + +const path: ApiHandler['path'] = '/getUserSpotifyPlaylists' + +const handler: ApiHandler['handler'] = async (req, res) => { + let data + const deemix = req.app.get('deemix') + + if (deemix.plugins.spotify.enabled) { + const sp = deemix.plugins.spotify.sp + const username = req.query.spotifyUser + data = [] + let playlists + try { + playlists = await sp.getUserPlaylists(username) + } catch (e) { + res.send({ error: 'wrongSpotifyUsername', username }) + return + } + playlists = playlists.body + let playlistList = playlists.items + while (playlists.next) { + const regExec = /offset=(\d+)&limit=(\d+)/g.exec(playlists.next) + const offset = regExec![1] + const limit = regExec![2] + const newPlaylists = await sp.getUserPlaylists(username, { offset, limit }) + playlists = newPlaylists.body + playlistList = playlistList.concat(playlists.items) + } + playlistList.forEach((playlist: any) => { + data.push(deemix.plugins.spotify._convertPlaylistStructure(playlist)) + }) + } else { + data = { error: 'spotifyNotEnabled' } + } + res.send(data) +} + +const apiHandler: ApiHandler = { path, handler } + +export default apiHandler diff --git a/server/src/routes/api/get/getUserTracks.ts b/server/src/routes/api/get/getUserTracks.ts new file mode 100644 index 0000000..fd927a4 --- /dev/null +++ b/server/src/routes/api/get/getUserTracks.ts @@ -0,0 +1,23 @@ +// @ts-expect-error +import { Deezer } from 'deezer-js' +import { ApiHandler } from '../../../types' +import { sessionDZ } from '../../../app' + +const path: ApiHandler['path'] = '/getUserTracks' + +const handler: ApiHandler['handler'] = async (req, res) => { + if (!sessionDZ[req.session.id]) sessionDZ[req.session.id] = new Deezer() + const dz = sessionDZ[req.session.id] + let data + + if (dz.logged_in) { + data = await dz.gw.get_my_favorite_tracks({ limit: -1 }) + } else { + data = { error: 'notLoggedIn' } + } + res.send(data) +} + +const apiHandler: ApiHandler = { path, handler } + +export default apiHandler diff --git a/server/src/routes/api/get/index.ts b/server/src/routes/api/get/index.ts new file mode 100644 index 0000000..8a5e49e --- /dev/null +++ b/server/src/routes/api/get/index.ts @@ -0,0 +1,43 @@ +import connect from './connect' +import analyzeLink from './analyzeLink' +import getHome from './getHome' +import getCharts from './getCharts' +import mainSearch from './mainSearch' +import search from './search' +import newReleases from './newReleases' +import getTracklist from './getTracklist' +import { apiHandler as albumSearch } from './albumSearch' +import getChartTracks from './getChartTracks' +import getSettings from './getSettings' +import getUserTracks from './getUserTracks' +import getUserAlbums from './getUserAlbums' +import getUserArtists from './getUserArtists' +import getUserPlaylists from './getUserPlaylists' +import getUserSpotifyPlaylists from './getUserSpotifyPlaylists' +import getUserFavorites from './getUserFavorites' +import getQueue from './getQueue' +import spotifyStatus from './spotifyStatus' +import checkForUpdates from './checkForUpdates' + +export default [ + connect, + albumSearch, + analyzeLink, + getHome, + getCharts, + getChartTracks, + mainSearch, + search, + newReleases, + getTracklist, + getSettings, + getUserTracks, + getUserAlbums, + getUserArtists, + getUserPlaylists, + getUserSpotifyPlaylists, + getUserFavorites, + getQueue, + spotifyStatus, + checkForUpdates +] diff --git a/server/src/routes/api/get/mainSearch.ts b/server/src/routes/api/get/mainSearch.ts new file mode 100644 index 0000000..c115943 --- /dev/null +++ b/server/src/routes/api/get/mainSearch.ts @@ -0,0 +1,160 @@ +// @ts-expect-error +import { Deezer } from 'deezer-js' +import { ApiHandler } from '../../../types' +import { sessionDZ } from '../../../app' + +const path: ApiHandler['path'] = '/mainSearch' + +const emptyResult = { + QUERY: '', + FUZZINNESS: true, + AUTOCORRECT: false, + ORDER: ['TOP_RESULT', 'TRACK', 'ARTIST', 'ALBUM', 'PLAYLIST'], + TOP_RESULT: [], + ARTIST: { + data: [], + count: 0, + total: 0, + filtered_count: 0, + filtered_items: [], + next: 20 + }, + ALBUM: { + data: [], + count: 0, + total: 0, + filtered_count: 0, + filtered_items: [], + next: 20 + }, + TRACK: { + data: [], + count: 0, + total: 0, + filtered_count: 0, + filtered_items: [], + next: 10 + }, + PLAYLIST: { + data: [], + count: 0, + total: 0, + filtered_count: 0, + filtered_items: [], + next: 20 + }, + RADIO: { + data: [], + count: 0, + total: 0, + filtered_count: 0, + filtered_items: [], + next: 20 + }, + USER: { + data: [], + count: 0, + total: 0, + filtered_count: 0, + filtered_items: [], + next: 20 + }, + SHOW: { + data: [], + count: 0, + total: 0, + filtered_count: 0, + filtered_items: [], + next: 20 + }, + CHANNEL: { + data: [], + count: 0, + total: 0 + }, + LIVESTREAM: { + data: [], + count: 0, + total: 0, + filtered_count: 0, + filtered_items: [], + next: 20 + }, + EPISODE: { + data: [], + count: 0, + total: 0, + filtered_count: 0, + filtered_items: [], + next: 20 + }, + LYRICS: { + data: [], + count: 0, + total: 0, + filtered_count: 0, + filtered_items: [], + next: 20 + }, + ERROR: '' +} + +const handler: ApiHandler['handler'] = async (req, res) => { + if (!sessionDZ[req.session.id]) sessionDZ[req.session.id] = new Deezer() + const dz = sessionDZ[req.session.id] + + const term = String(req.query.term) + let results + try { + results = await dz.gw.search(term) + } catch (e) { + results = { ...emptyResult } + results.QUERY = term + results.ERROR = e.message + } + const order: string[] = [] + results.ORDER.forEach((element: string) => { + if (['TOP_RESULT', 'TRACK', 'ALBUM', 'ARTIST', 'PLAYLIST'].includes(element)) order.push(element) + }) + if (results.TOP_RESULT && results.TOP_RESULT.length) { + const originalTopResult = results.TOP_RESULT[0] + const topResult: any = { + type: originalTopResult.__TYPE__ + } + switch (topResult.type) { + case 'artist': + topResult.id = originalTopResult.ART_ID + topResult.picture = `https://e-cdns-images.dzcdn.net/images/artist/${originalTopResult.ART_PICTURE}` + topResult.title = originalTopResult.ART_NAME + topResult.nb_fan = originalTopResult.NB_FAN + break + case 'album': + topResult.id = originalTopResult.ALB_ID + topResult.picture = `https://e-cdns-images.dzcdn.net/images/cover/${originalTopResult.ALB_PICTURE}` + topResult.title = originalTopResult.ALB_TITLE + topResult.artist = originalTopResult.ART_NAME + topResult.nb_song = originalTopResult.NUMBER_TRACK + break + case 'playlist': + topResult.id = originalTopResult.PLAYLIST_ID + topResult.picture = `https://e-cdns-images.dzcdn.net/images/${originalTopResult.PICTURE_TYPE}/${originalTopResult.PLAYLIST_PICTURE}` + topResult.title = originalTopResult.TITLE + topResult.artist = originalTopResult.PARENT_USERNAME + topResult.nb_song = originalTopResult.NB_SONG + break + default: + topResult.id = '0' + topResult.picture = 'https://e-cdns-images.dzcdn.net/images/cover' + break + } + topResult.picture += '/156x156-000000-80-0-0.jpg' + topResult.link = `https://deezer.com/${topResult.type}/${topResult.id}` + results.TOP_RESULT = [topResult] + } + results.ORDER = order + res.send(results) +} + +const apiHandler: ApiHandler = { path, handler } + +export default apiHandler diff --git a/server/src/routes/api/get/newReleases.ts b/server/src/routes/api/get/newReleases.ts new file mode 100644 index 0000000..50959cf --- /dev/null +++ b/server/src/routes/api/get/newReleases.ts @@ -0,0 +1,74 @@ +// @ts-expect-error +import { Deezer } from 'deezer-js' +import { ApiHandler } from '../../../types' +import { sessionDZ } from '../../../app' +import { getAlbumDetails } from './albumSearch' + +const path: ApiHandler['path'] = '/newReleases' + +const handler: ApiHandler['handler'] = async (req, res) => { + if (!sessionDZ[req.session.id]) sessionDZ[req.session.id] = new Deezer() + const dz = sessionDZ[req.session.id] + + const results = await dz.gw.get_page('channels/explore') + + const music_section = results.sections.find((e: any) => + e.section_id.includes('module_id=83718b7b-5503-4062-b8b9-3530e2e2cefa') + ) + + const channels = music_section.items.map((e: any) => e.target) + + const newReleasesByChannel = await Promise.all(channels.map((c: string) => channelNewReleases(dz, c))) + + const seen = new Set() + const distinct: any[] = [] + + newReleasesByChannel.forEach(l => { + l.forEach(r => { + if (!seen.has(r.ALB_ID)) { + seen.add(r.ALB_ID) + distinct.push(r) + } + }) + }) + + distinct.sort((a, b) => + a.DIGITAL_RELEASE_DATE < b.DIGITAL_RELEASE_DATE ? 1 : b.DIGITAL_RELEASE_DATE < a.DIGITAL_RELEASE_DATE ? -1 : 0 + ) + + const now = Date.now() + const delta = 8 * 24 * 60 * 60 * 1000 + + const recent = distinct.filter((x: any) => now - Date.parse(x.DIGITAL_RELEASE_DATE) < delta) + + const albums = await Promise.all(recent.map((c: any) => getAlbumDetails(dz, c.ALB_ID))) + + const output = { + data: albums, + total: albums.length + } + + return res.send(output) +} + +const apiHandler: ApiHandler = { path, handler } + +export default apiHandler + +async function channelNewReleases(dz: any, channelName: string): Promise { + const channelData = await dz.gw.get_page(channelName) + const re = /^New.*releases$/ + + const newReleases = channelData.sections.find((e: any) => re.test(e.title)) + + if (!newReleases) { + return [] + } else if ('target' in newReleases) { + const showAll = await dz.gw.get_page(newReleases.target) + return showAll.sections[0].items.map((e: any) => e.data) + } else if ('items' in newReleases) { + return newReleases.items.map((e: any) => e.data) + } else { + return [] + } +} diff --git a/server/src/routes/api/get/search.ts b/server/src/routes/api/get/search.ts new file mode 100644 index 0000000..1292058 --- /dev/null +++ b/server/src/routes/api/get/search.ts @@ -0,0 +1,61 @@ +// @ts-expect-error +import { Deezer } from 'deezer-js' +import { ApiHandler } from '../../../types' +import { sessionDZ } from '../../../app' + +const path: ApiHandler['path'] = '/search' + +const emptyResult = { + data: [], + total: 0, + type: '', + error: '' +} + +const handler: ApiHandler['handler'] = async (req, res) => { + if (!sessionDZ[req.session.id]) sessionDZ[req.session.id] = new Deezer() + const dz = sessionDZ[req.session.id] + + const term = String(req.query.term) + const type = String(req.query.type) + const start = parseInt(String(req.query.start)) + const nb = parseInt(String(req.query.nb)) + + let data + + try { + switch (type) { + case 'track': + data = await dz.api.search_track(term, { limit: nb, index: start }) + break + case 'album': + data = await dz.api.search_album(term, { limit: nb, index: start }) + break + case 'artist': + data = await dz.api.search_artist(term, { limit: nb, index: start }) + break + case 'playlist': + data = await dz.api.search_playlist(term, { limit: nb, index: start }) + break + case 'radio': + data = await dz.api.search_radio(term, { limit: nb, index: start }) + break + case 'user': + data = await dz.api.search_user(term, { limit: nb, index: start }) + break + default: + data = await dz.api.search(term, { limit: nb, index: start }) + break + } + } catch (e) { + data = { ...emptyResult } + data.error = e.message + } + + data.type = type + res.send(data) +} + +const apiHandler: ApiHandler = { path, handler } + +export default apiHandler diff --git a/server/src/routes/api/get/spotifyStatus.ts b/server/src/routes/api/get/spotifyStatus.ts new file mode 100644 index 0000000..e7f4854 --- /dev/null +++ b/server/src/routes/api/get/spotifyStatus.ts @@ -0,0 +1,12 @@ +import { ApiHandler } from '../../../types' + +const path: ApiHandler['path'] = '/spotifyStatus' + +const handler: ApiHandler['handler'] = (req, res) => { + const deemix = req.app.get('deemix') + res.send({ spotifyEnabled: deemix.plugins.spotify.enabled }) +} + +const apiHandler: ApiHandler = { path, handler } + +export default apiHandler diff --git a/server/src/routes/api/patch/index.ts b/server/src/routes/api/patch/index.ts new file mode 100644 index 0000000..a24ea15 --- /dev/null +++ b/server/src/routes/api/patch/index.ts @@ -0,0 +1,3 @@ +import { ApiHandler } from '../../../types' + +export default [] as ApiHandler[] diff --git a/server/src/routes/api/post/addToQueue.ts b/server/src/routes/api/post/addToQueue.ts new file mode 100644 index 0000000..d69cca0 --- /dev/null +++ b/server/src/routes/api/post/addToQueue.ts @@ -0,0 +1,43 @@ +// @ts-expect-error +import { Deezer } from 'deezer-js' +import { ApiHandler } from '../../../types' +import { sessionDZ } from '../../../app' +import { logger } from '../../../helpers/logger' + +const path: ApiHandler['path'] = '/addToQueue' + +const handler: ApiHandler['handler'] = async (req, res) => { + if (!sessionDZ[req.session.id]) sessionDZ[req.session.id] = new Deezer() + const deemix = req.app.get('deemix') + const dz = sessionDZ[req.session.id] + + const url = req.body.url.split(/[\s;]+/) + let bitrate = req.body.bitrate + if (bitrate === 'null' || bitrate === null) bitrate = deemix.getSettings().settings.maxBitrate + bitrate = Number(bitrate) + let obj: any + + try { + obj = await deemix.addToQueue(dz, url, bitrate) + } catch (e) { + res.send({ result: false, errid: e.name, data: { url, bitrate } }) + switch (e.name) { + case 'NotLoggedIn': + deemix.listener.send('queueError' + e.name) + break + case 'CantStream': + deemix.listener.send('queueError' + e.name, e.bitrate) + break + default: + logger.error(e) + break + } + return + } + + res.send({ result: true, data: { url, bitrate, obj } }) +} + +const apiHandler: ApiHandler = { path, handler } + +export default apiHandler diff --git a/server/src/routes/api/post/cancelAllDownloads.ts b/server/src/routes/api/post/cancelAllDownloads.ts new file mode 100644 index 0000000..1219d6d --- /dev/null +++ b/server/src/routes/api/post/cancelAllDownloads.ts @@ -0,0 +1,13 @@ +import { ApiHandler } from '../../../types' + +const path = '/cancelAllDownloads' + +const handler: ApiHandler['handler'] = (req, res) => { + const deemix = req.app.get('deemix') + deemix.cancelAllDownloads() + res.send({ result: true }) +} + +const apiHandler = { path, handler } + +export default apiHandler diff --git a/server/src/routes/api/post/changeAccount.spec.ts b/server/src/routes/api/post/changeAccount.spec.ts new file mode 100644 index 0000000..11c039a --- /dev/null +++ b/server/src/routes/api/post/changeAccount.spec.ts @@ -0,0 +1,15 @@ +import { appSendGet } from '../../../../tests/utils' + +describe('analyzeLink requests', () => { + it('should respond 200 to calls with supported child number', async () => { + const res = await appSendGet('/api/changeAccount/?child=1') + + expect(res.status).toBe(200) + }) + + it('should respond 400 to calls with not supported child number', async () => { + const res = await appSendGet('/api/changeAccount/') + + expect(res.status).toBe(400) + }) +}) diff --git a/server/src/routes/api/post/changeAccount.ts b/server/src/routes/api/post/changeAccount.ts new file mode 100644 index 0000000..cf01b7f --- /dev/null +++ b/server/src/routes/api/post/changeAccount.ts @@ -0,0 +1,31 @@ +import { RequestHandler } from 'express' +// @ts-expect-error +import { Deezer } from 'deezer-js' + +import { ApiHandler } from '../../../types' +import { sessionDZ } from '../../../app' + +const path: ApiHandler['path'] = '/changeAccount' + +interface ChangeAccountQuery { + child: number +} + +const handler: RequestHandler<{}, {}, {}, ChangeAccountQuery> = (req, res) => { + if (!req.query || !req.query.child) { + return res.status(400).send({ errorMessage: 'No child specified', errorCode: 'CA01' }) + } + + const { child: accountNum } = req.query + + if (!sessionDZ[req.session.id]) sessionDZ[req.session.id] = new Deezer() + const dz = sessionDZ[req.session.id] + + const accountData = dz.change_account(accountNum) + + return res.status(200).send(accountData) +} + +const apiHandler: ApiHandler = { path, handler } + +export default apiHandler diff --git a/server/src/routes/api/post/index.ts b/server/src/routes/api/post/index.ts new file mode 100644 index 0000000..4eab679 --- /dev/null +++ b/server/src/routes/api/post/index.ts @@ -0,0 +1,23 @@ +import changeAccount from './changeAccount' +import loginArl from './loginArl' +import addToQueue from './addToQueue' +import loginEmail from './loginEmail' +import cancelAllDownloads from './cancelAllDownloads' +import removeFinishedDownloads from './removeFinishedDownloads' +import removeFromQueue from './removeFromQueue' +import logout from './logout' +import saveSettings from './saveSettings' +import retryDownload from './retryDownload' + +export default [ + changeAccount, + loginArl, + addToQueue, + loginEmail, + cancelAllDownloads, + removeFinishedDownloads, + removeFromQueue, + logout, + saveSettings, + retryDownload +] diff --git a/server/src/routes/api/post/loginArl.spec.ts b/server/src/routes/api/post/loginArl.spec.ts new file mode 100644 index 0000000..dd5dde7 --- /dev/null +++ b/server/src/routes/api/post/loginArl.spec.ts @@ -0,0 +1,40 @@ +import { appSendPost } from '../../../../tests/utils' + +describe('loginArl requests', () => { + it('should respond 200 to calls with arl', async () => { + const responseStatusCollector: number[] = [] + const batchCalls = ['/api/loginArl/?arl=abcdef1234'] + + for (const uri of batchCalls) { + responseStatusCollector.push((await appSendPost(uri)).status) + } + + expect(responseStatusCollector).toMatchObject(new Array(batchCalls.length).fill(200)) + expect(responseStatusCollector).toMatchObject(new Array(responseStatusCollector.length).fill(200)) + }) + + it('should respond 400 to calls without arl', async () => { + const responseStatusCollector: number[] = [] + const batchCalls = ['/api/loginArl/', '/api/loginArl/?dummy=test', '/api/loginArl/?email=aaa@aa.com'] + + for (const uri of batchCalls) { + responseStatusCollector.push((await appSendPost(uri)).status) + } + + expect(responseStatusCollector).toMatchObject(new Array(responseStatusCollector.length).fill(400)) + }) + + it('should login using ARL', async () => { + const response = await appSendPost(`/api/loginArl/?arl=${process.env.DEEZER_ARL}`) + + expect(response.status).toBe(200) + expect(response.body.status).toBe(true) + }) + + it('should not login using wrong ARL', async () => { + const response = await appSendPost(`/api/loginArl/?arl=abcdef1234`) + + expect(response.status).toBe(200) + expect(response.body.status).toBe(false) + }) +}) diff --git a/server/src/routes/api/post/loginArl.ts b/server/src/routes/api/post/loginArl.ts new file mode 100644 index 0000000..92f649b --- /dev/null +++ b/server/src/routes/api/post/loginArl.ts @@ -0,0 +1,87 @@ +import { RequestHandler } from 'express' +// @ts-expect-error +import { Deezer } from 'deezer-js' +import { sessionDZ } from '../../../app' +import { ApiHandler } from '../../../types' +import { logger } from '../../../helpers/logger' +import { saveLoginCredentials, resetLoginCredentials } from '../../../helpers/loginStorage' + +export interface RawLoginArlBody { + arl: string + child?: number +} + +const LoginStatus = { + NOT_AVAILABLE: -1, + FAILED: 0, + SUCCESS: 1, + ALREADY_LOGGED: 2, + FORCED_SUCCESS: 3 +} + +const path: ApiHandler['path'] = '/loginArl' + +const handler: RequestHandler<{}, {}, RawLoginArlBody, {}> = async (req, res, _) => { + if (!sessionDZ[req.session.id]) sessionDZ[req.session.id] = new Deezer() + const deemix = req.app.get('deemix') + const dz = sessionDZ[req.session.id] + const isSingleUser = req.app.get('isSingleUser') + + if (!req.body) { + return res.status(400).send() + } + + if (!req.body.arl) { + return res.status(400).send() + } + + const loginParams: (string | number)[] = [req.body.arl] + + // TODO Handle the child === 0 case, don't want to rely on the login_via_arl default param (it may change in the + // future) + if (req.body.child) { + loginParams.push(req.body.child) + } + + let response + + if (process.env.NODE_ENV !== 'test') { + if (!dz.logged_in) { + try { + response = await dz.login_via_arl(...loginParams) + } catch (e) { + logger.error(e) + response = false + } + response = response ? 1 : 0 + } else { + response = LoginStatus.ALREADY_LOGGED + } + } else { + const testDz = new Deezer() + response = await testDz.login_via_arl(...loginParams) + } + if (response === LoginStatus.FAILED) sessionDZ[req.session.id] = new Deezer() + if (!(await deemix.isDeezerAvailable())) response = LoginStatus.NOT_AVAILABLE + const returnValue = { + status: response, + arl: req.body.arl, + user: dz.current_user, + childs: dz.childs, + currentChild: dz.selected_account + } + + if (response !== LoginStatus.NOT_AVAILABLE && response !== LoginStatus.FAILED) { + deemix.startQueue(dz) + if (isSingleUser) + saveLoginCredentials({ + accessToken: null, + arl: returnValue.arl + }) + } else if (isSingleUser) resetLoginCredentials() + return res.status(200).send(returnValue) +} + +const apiHandler = { path, handler } + +export default apiHandler diff --git a/server/src/routes/api/post/loginEmail.ts b/server/src/routes/api/post/loginEmail.ts new file mode 100644 index 0000000..256c254 --- /dev/null +++ b/server/src/routes/api/post/loginEmail.ts @@ -0,0 +1,30 @@ +import { ApiHandler } from '../../../types' +import { getAccessToken, getArlFromAccessToken } from '../../../app' +import { saveLoginCredentials } from '../../../helpers/loginStorage' + +const path = '/loginEmail' + +const handler: ApiHandler['handler'] = async (req, res) => { + const isSingleUser = req.app.get('isSingleUser') + const { email, password } = req.body + let accessToken = req.body.accessToken + + if (!accessToken) { + accessToken = await getAccessToken(email, password) + if (accessToken === 'undefined') accessToken = undefined + } + let arl + if (accessToken) arl = await getArlFromAccessToken(accessToken) + + if (isSingleUser && accessToken) + saveLoginCredentials({ + accessToken, + arl: arl || null + }) + + res.send({ accessToken, arl }) +} + +const apiHandler = { path, handler } + +export default apiHandler diff --git a/server/src/routes/api/post/logout.ts b/server/src/routes/api/post/logout.ts new file mode 100644 index 0000000..0e975c0 --- /dev/null +++ b/server/src/routes/api/post/logout.ts @@ -0,0 +1,17 @@ +// @ts-expect-error +import { Deezer } from 'deezer-js' +import { ApiHandler } from '../../../types' +import { sessionDZ } from '../../../app' +import { resetLoginCredentials } from '../../../helpers/loginStorage' + +const path: ApiHandler['path'] = '/logout' + +const handler: ApiHandler['handler'] = (req, res) => { + sessionDZ[req.session.id] = new Deezer() + res.send({ logged_out: true }) + if (req.app.get('isSingleUser')) resetLoginCredentials() +} + +const apiHandler: ApiHandler = { path, handler } + +export default apiHandler diff --git a/server/src/routes/api/post/removeFinishedDownloads.ts b/server/src/routes/api/post/removeFinishedDownloads.ts new file mode 100644 index 0000000..1a563c1 --- /dev/null +++ b/server/src/routes/api/post/removeFinishedDownloads.ts @@ -0,0 +1,13 @@ +import { ApiHandler } from '../../../types' + +const path = '/removeFinishedDownloads' + +const handler: ApiHandler['handler'] = (req, res) => { + const deemix = req.app.get('deemix') + deemix.clearCompletedDownloads() + res.send({ result: true }) +} + +const apiHandler = { path, handler } + +export default apiHandler diff --git a/server/src/routes/api/post/removeFromQueue.ts b/server/src/routes/api/post/removeFromQueue.ts new file mode 100644 index 0000000..fa60914 --- /dev/null +++ b/server/src/routes/api/post/removeFromQueue.ts @@ -0,0 +1,18 @@ +import { ApiHandler } from '../../../types' + +const path = '/removeFromQueue' + +const handler: ApiHandler['handler'] = (req, res) => { + const deemix = req.app.get('deemix') + const { uuid } = req.query + if (uuid) { + deemix.cancelDownload(uuid) + res.send({ result: true }) + } else { + res.send({ result: false }) + } +} + +const apiHandler = { path, handler } + +export default apiHandler diff --git a/server/src/routes/api/post/retryDownload.ts b/server/src/routes/api/post/retryDownload.ts new file mode 100644 index 0000000..6bed9db --- /dev/null +++ b/server/src/routes/api/post/retryDownload.ts @@ -0,0 +1,56 @@ +// @ts-expect-error +import { Deezer } from 'deezer-js' +import { ApiHandler } from '../../../types' +import { sessionDZ } from '../../../app' +import { logger } from '../../../helpers/logger' + +const path: ApiHandler['path'] = '/retryDownload' + +const handler: ApiHandler['handler'] = async (req, res) => { + if (!sessionDZ[req.session.id]) sessionDZ[req.session.id] = new Deezer() + const deemix = req.app.get('deemix') + const dz = sessionDZ[req.session.id] + + const uuid = req.body.uuid + const data = uuid.split('_') + let url = '' + let bitrate = 0 + if (data.lenght === 4) { + if (data[0] === 'spotify') { + url = `https://open.spotify.com/${data[1]}/${data[2]}` + bitrate = Number(data[3]) + } + } else { + if (data[0] === 'playlist' && data[1].endsWith('_top_track')) { + data[0] = 'artist' + data[1] = data[1].replace('_top_track', '/top_track') + } + url = `https://www.deezer.com/${data[0]}/${data[1]}` + bitrate = Number(data[2]) + } + let obj: any + + try { + obj = await deemix.addToQueue(dz, [url], bitrate, true) + } catch (e) { + res.send({ result: false, errid: e.name, data: { url, bitrate } }) + switch (e.name) { + case 'NotLoggedIn': + deemix.listener.send('queueError' + e.name) + break + case 'CantStream': + deemix.listener.send('queueError' + e.name, e.bitrate) + break + default: + logger.error(e) + break + } + return + } + + res.send({ result: true, data: { url, bitrate, obj } }) +} + +const apiHandler: ApiHandler = { path, handler } + +export default apiHandler diff --git a/server/src/routes/api/post/saveSettings.ts b/server/src/routes/api/post/saveSettings.ts new file mode 100644 index 0000000..fce59c5 --- /dev/null +++ b/server/src/routes/api/post/saveSettings.ts @@ -0,0 +1,20 @@ +import { ApiHandler, Settings, SpotifySettings } from '../../../types' + +const path = '/saveSettings' + +export interface SaveSettingsData { + settings: Settings + spotifySettings: SpotifySettings +} + +const handler: ApiHandler['handler'] = (req, res) => { + const deemix = req.app.get('deemix') + const { settings, spotifySettings }: SaveSettingsData = req.query + deemix.saveSettings(settings, spotifySettings) + deemix.listener.send('updateSettings', { settings, spotifySettings }) + res.send({ result: true }) +} + +const apiHandler = { path, handler } + +export default apiHandler diff --git a/server/src/routes/api/register.ts b/server/src/routes/api/register.ts new file mode 100644 index 0000000..663ec5f --- /dev/null +++ b/server/src/routes/api/register.ts @@ -0,0 +1,46 @@ +import type { Application } from 'express' +import type { ApiHandler } from '../../types' +import getEndpoints from './get' +import deleteEndpoints from './delete' +import postEndpoints from './post' +import patchEndpoints from './patch' + +const prependApiPath = (path: string) => `*/api${path}` + +interface Method { + method: string + endpoints: ApiHandler[] +} + +const methods: Method[] = [ + { + method: 'get', + endpoints: getEndpoints + }, + { + method: 'delete', + endpoints: deleteEndpoints + }, + { + method: 'post', + endpoints: postEndpoints + }, + { + method: 'patch', + endpoints: patchEndpoints + } +] + +export function registerApis(app: Application) { + methods.forEach(({ method, endpoints }) => { + endpoints.forEach(endpoint => { + // @ts-expect-error + app[method](prependApiPath(endpoint.path), endpoint.handler) + }) + }) + + // Fallback, for SPA mode + app.get('*/api*', (_, res) => { + res.send({ error: "API endpoint doesn't exist" }) + }) +} diff --git a/server/src/routes/index.spec.ts b/server/src/routes/index.spec.ts new file mode 100644 index 0000000..65966d2 --- /dev/null +++ b/server/src/routes/index.spec.ts @@ -0,0 +1,35 @@ +import request from 'supertest' +import { app } from '../app' + +describe('root path requests', () => { + it('responds 200 to the GET method', async () => { + const result = await request(app).get('/').send() + + expect(result.status).toBe(200) + }) + + it('responds 404 to the POST method', async () => { + const result = await request(app).post('/').send() + + expect(result.status).toBe(404) + }) + + it('responds 404 to the PATCH method', async () => { + const result = await request(app).patch('/').send() + + expect(result.status).toBe(404) + }) + + it('responds 404 to the DELETE method', async () => { + const result = await request(app).delete('/').send() + + expect(result.status).toBe(404) + }) + + it('redirects to root when a non existing server route is requested', async () => { + const result = await request(app).get('/settings').send() + + expect(result.header.location).toBe('/') + expect(result.status).toBe(302) + }) +}) diff --git a/server/src/routes/index.ts b/server/src/routes/index.ts new file mode 100644 index 0000000..dbbbb8d --- /dev/null +++ b/server/src/routes/index.ts @@ -0,0 +1,4 @@ +import express from 'express' + +const router = express.Router() +export default router diff --git a/server/src/server.ts b/server/src/server.ts new file mode 100644 index 0000000..5e6137a --- /dev/null +++ b/server/src/server.ts @@ -0,0 +1,125 @@ +import http, { Server } from 'http' +import path from 'path' +import fs from 'fs' +import express, { Application } from 'express' +import ejs from 'ejs' +import { Server as WsServer, OPEN as WsOpen } from 'ws' +import initDebug from 'debug' +// @ts-expect-error +import deemix from 'deemix' +import { registerMiddlewares } from './middlewares' +import indexRouter from './routes' +import { getErrorCb, getListeningCb } from './helpers/server-callbacks' +import { registerApis } from './routes/api/register' +import { registerWebsocket } from './websocket' +import { logger, removeOldLogs } from './helpers/logger' +import { loadLoginCredentials } from './helpers/loginStorage' +import { Port, Listener } from './types' +import { DeemixApp } from './app' +import { normalizePort } from './helpers/port' +import { WEBUI_DIR } from './helpers/paths' + +export class DeemixServer { + host: string + port: Port + locationBase: string + isSingleUser: boolean + + wss: WsServer + app: Application + server: Server + deemixApp: DeemixApp + + constructor(host: string, port: string, locationBase: string, singleuser: boolean = false) { + this.host = host + this.port = normalizePort(port) + this.locationBase = locationBase + this.isSingleUser = singleuser + + this.wss = new WsServer({ noServer: true }) + this.app = express() + this.server = http.createServer(this.app) + + const listener: Listener = { + send: (key: string, data?: any) => { + const logLine = deemix.utils.formatListener(key, data) + if (logLine) logger.info(logLine) + if (['downloadInfo', 'downloadWarn'].includes(key)) return + this.wss.clients.forEach(client => { + if (client.readyState === WsOpen) { + client.send(JSON.stringify({ key, data })) + } + }) + } + } + + this.deemixApp = new DeemixApp(listener) + if (this.isSingleUser) loadLoginCredentials() + } + + init() { + const debug = initDebug('deemix-gui:server') + this.app.set('deemix', this.deemixApp) + this.app.set('isSingleUser', this.isSingleUser) + + /* === Middlewares === */ + registerMiddlewares(this.app) + + /* === Routes === */ + this.app.use('/', indexRouter) + + /* === APIs === */ + registerApis(this.app) + + /* === Fallback === */ + this.app.get('*/favicon.ico', (_, res) => { + res.sendFile(path.join(WEBUI_DIR, 'favicon.ico')) + }) + this.app.get('*/js/*', (req, res) => { + const link = req.url.substr(req.url.indexOf('/js/')) + res.sendFile(path.join(WEBUI_DIR, link)) + }) + this.app.get('*/fonts/*', (req, res) => { + const link = req.url.substr(req.url.indexOf('/fonts/')) + res.sendFile(path.join(WEBUI_DIR, link)) + }) + this.app.get('*/res/*', (req, res) => { + const link = req.url.substr(req.url.indexOf('/res/')) + res.sendFile(path.join(WEBUI_DIR, link)) + }) + this.app.get('*', (req, res) => { + console.log(req.url) + fs.readFile(path.join(WEBUI_DIR, 'index.ejs'), (_, html) => { + res.send(ejs.render(html.toString(), { locationBase: this.locationBase })) + }) + }) + + /* === Config === */ + this.app.set('port', this.port) + + /* === Server port === */ + if (process.env.NODE_ENV !== 'test') { + this.server.listen({ port: this.port, host: this.host }) + } + + registerWebsocket(this.wss, this.deemixApp) + + /* === Server callbacks === */ + this.app.on('mount', a => { + logger.info(a) + }) + this.server.on('connect', () => { + logger.info('Server connected') + }) + this.server.on('upgrade', (request, socket, head) => { + this.wss.handleUpgrade(request, socket, head, socket => { + this.wss.emit('connection', socket, request) + }) + }) + this.server.on('error', getErrorCb(this.port)) + this.server.on('listening', getListeningCb(this.server, debug)) + + /* === Remove Old logs files === */ + removeOldLogs(5) + } +} diff --git a/server/src/types.ts b/server/src/types.ts new file mode 100644 index 0000000..a5fbd01 --- /dev/null +++ b/server/src/types.ts @@ -0,0 +1,252 @@ +import { RequestHandler } from 'express' + +/* === Utilities === */ +// https://github.com/Microsoft/TypeScript/issues/25760#issuecomment-614417742 +export type Optional = Omit & Partial + +export type Port = number | string | boolean + +export interface ApiHandler { + path: string + handler: RequestHandler +} + +export interface Tags { + title: boolean + artist: boolean + album: boolean + cover: boolean + trackNumber: boolean + trackTotal: boolean + discNumber: boolean + discTotal: boolean + albumArtist: boolean + genre: boolean + year: boolean + date: boolean + explicit: boolean + isrc: boolean + length: boolean + barcode: boolean + bpm: boolean + replayGain: boolean + label: boolean + lyrics: boolean + syncedLyrics: boolean + copyright: boolean + composer: boolean + involvedPeople: boolean + source: boolean + savePlaylistAsCompilation: boolean + useNullSeparator: boolean + saveID3v1: boolean + multiArtistSeparator: string + singleAlbumArtist: boolean + coverDescriptionUTF8: boolean +} + +export interface Settings { + downloadLocation: string + tracknameTemplate: string + albumTracknameTemplate: string + playlistTracknameTemplate: string + createPlaylistFolder: boolean + playlistNameTemplate: string + createArtistFolder: boolean + artistNameTemplate: string + createAlbumFolder: boolean + albumNameTemplate: string + createCDFolder: boolean + createStructurePlaylist: boolean + createSingleFolder: boolean + padTracks: boolean + paddingSize: string + illegalCharacterReplacer: string + queueConcurrency: number + maxBitrate: string + fallbackBitrate: boolean + fallbackSearch: boolean + logErrors: boolean + logSearched: boolean + saveDownloadQueue: boolean + overwriteFile: string + createM3U8File: boolean + playlistFilenameTemplate: string + syncedLyrics: boolean + embeddedArtworkSize: number + embeddedArtworkPNG: boolean + localArtworkSize: number + localArtworkFormat: string + saveArtwork: boolean + coverImageTemplate: string + saveArtworkArtist: boolean + artistImageTemplate: string + jpegImageQuality: number + dateFormat: string + albumVariousArtists: boolean + removeAlbumVersion: boolean + removeDuplicateArtists: boolean + tagsLanguage: string + featuredToTitle: string + titleCasing: string + artistCasing: string + executeCommand: string + tags: Tags +} + +// TODO +export interface SpotifySettings {} + +interface BaseDeezerObject { + id: number + type: string +} + +interface NamedDeezerObject extends BaseDeezerObject { + name: string +} + +interface PicturedDeezerObject extends BaseDeezerObject { + picture: string + picture_small: string + picture_medium: string + picture_big: string + picture_xl: string +} + +interface CoveredDeezerObject extends BaseDeezerObject { + cover: string + cover_small: string + cover_medium: string + cover_big: string + cover_xl: string +} + +interface DeezerWrapper { + data: Type[] +} + +export interface DeezerContributor extends NamedDeezerObject, PicturedDeezerObject { + link: string + share: string + radio: boolean + tracklist: string + role: string +} + +export interface DeezerTrackArtist extends NamedDeezerObject, PicturedDeezerObject { + link: string + share: string + radio: boolean + tracklist: string +} + +export interface DeezerAlbumArtist extends NamedDeezerObject, PicturedDeezerObject { + tracklist: string +} + +export interface DeezerAlbum extends BaseDeezerObject, CoveredDeezerObject { + title: string + link: string + md5_image: string + release_date: string + tracklist: string +} + +export interface DeezerGenre extends NamedDeezerObject { + picture: string +} + +type DeezerGenres = DeezerWrapper + +export interface GetAlbumTrackArtist extends NamedDeezerObject { + tracklist: string +} + +export interface DeezerTrack extends BaseDeezerObject { + readable: boolean + title: string + title_short: string + title_version: string + link: string + duration: number + rank: number + explicit_lyrics: boolean + explicit_content_lyrics: number + explicit_content_cover: number + preview: string + md5_image: string + artist: GetAlbumTrackArtist +} + +type DeezerTracks = DeezerWrapper + +export interface GetTrackResponse extends BaseDeezerObject { + readable: boolean + title: string + title_short: string + title_version: string + isrc: string + link: string + share: string + duration: number + track_position: number + disk_number: number + rank: number + release_date: string + explicit_lyrics: boolean + explicit_content_lyrics: number + explicit_content_cover: number + preview: string + bpm: number + gain: number + available_countries: string[] + contributors: DeezerContributor[] + md5_image: string + artist: DeezerTrackArtist + album: DeezerAlbum +} + +export interface GetAlbumResponse extends BaseDeezerObject, CoveredDeezerObject { + title: string + upc: string + link: string + share: string + md5_image: string + genre_id: number + genres: DeezerGenres + label: string + nb_tracks: number + duration: number + fans: number + rating: number + release_date: string + record_type: string + available: boolean + tracklist: string + explicit_lyrics: boolean + explicit_content_lyrics: number + explicit_content_cover: number + contributors: DeezerContributor[] + artist: DeezerAlbumArtist + tracks: DeezerTracks +} + +export interface Arguments { + port: string + host: string + locationbase: string + singleuser: boolean + + [x: string]: unknown + $0: string +} + +export interface Listener { + send: (key: string, data?: any) => void +} + +export interface LoginFile { + arl: string | null + accessToken: string | null +} diff --git a/server/src/websocket/index.ts b/server/src/websocket/index.ts new file mode 100644 index 0000000..c80efa7 --- /dev/null +++ b/server/src/websocket/index.ts @@ -0,0 +1,27 @@ +import { Server as WsServer } from 'ws' + +import { logger } from '../helpers/logger' +import { DeemixApp } from '../app' +import wsModules from './modules' + +export const registerWebsocket = (wss: WsServer, deemix: DeemixApp) => { + wss.on('connection', ws => { + ws.on('message', message => { + const data = JSON.parse(message.toString()) + + wsModules.forEach(module => { + if (data.key === module.eventName) { + module.cb(data.data, ws, wss, deemix) + } + }) + }) + }) + + wss.on('error', () => { + logger.error('An error occurred to the WebSocket server.') + }) + + wss.on('close', () => { + logger.info('Connection to the WebSocket server closed.') + }) +} diff --git a/server/src/websocket/modules/cancelAllDownloads.ts b/server/src/websocket/modules/cancelAllDownloads.ts new file mode 100644 index 0000000..4b30dd1 --- /dev/null +++ b/server/src/websocket/modules/cancelAllDownloads.ts @@ -0,0 +1,12 @@ +import { Server as WsServer } from 'ws' +import { logger } from '../../helpers/logger' +import { DeemixApp } from '../../app' + +const eventName = 'cancelAllDownloads' + +const cb = (_: any, __: any, ___: WsServer, deemix: DeemixApp) => { + deemix.cancelAllDownloads() + logger.info(`Queue cleared`) +} + +export default { eventName, cb } diff --git a/server/src/websocket/modules/index.ts b/server/src/websocket/modules/index.ts new file mode 100644 index 0000000..1f0c6f4 --- /dev/null +++ b/server/src/websocket/modules/index.ts @@ -0,0 +1,6 @@ +import saveSettings from './saveSettings' +import removeFinishedDownloads from './removeFinishedDownloads' +import removeFromQueue from './removeFromQueue' +import cancelAllDownloads from './cancelAllDownloads' + +export default [saveSettings, removeFinishedDownloads, removeFromQueue, cancelAllDownloads] diff --git a/server/src/websocket/modules/removeFinishedDownloads.ts b/server/src/websocket/modules/removeFinishedDownloads.ts new file mode 100644 index 0000000..cb271ad --- /dev/null +++ b/server/src/websocket/modules/removeFinishedDownloads.ts @@ -0,0 +1,12 @@ +import { Server as WsServer } from 'ws' +import { logger } from '../../helpers/logger' +import { DeemixApp } from '../../app' + +const eventName = 'removeFinishedDownloads' + +const cb = (_: any, __: any, ___: WsServer, deemix: DeemixApp) => { + deemix.clearCompletedDownloads() + logger.info('Completed downloads cleared') +} + +export default { eventName, cb } diff --git a/server/src/websocket/modules/removeFromQueue.ts b/server/src/websocket/modules/removeFromQueue.ts new file mode 100644 index 0000000..bd3711f --- /dev/null +++ b/server/src/websocket/modules/removeFromQueue.ts @@ -0,0 +1,12 @@ +import { Server as WsServer } from 'ws' +import { logger } from '../../helpers/logger' +import { DeemixApp } from '../../app' + +const eventName = 'removeFromQueue' + +const cb = (data: any, __: any, ___: WsServer, deemix: DeemixApp) => { + deemix.cancelDownload(data) + logger.info(`Cancelled ${data}`) +} + +export default { eventName, cb } diff --git a/server/src/websocket/modules/saveSettings.ts b/server/src/websocket/modules/saveSettings.ts new file mode 100644 index 0000000..301531d --- /dev/null +++ b/server/src/websocket/modules/saveSettings.ts @@ -0,0 +1,20 @@ +import { Server as WsServer } from 'ws' +import { logger } from '../../helpers/logger' +import { DeemixApp } from '../../app' +import { Settings, SpotifySettings } from '../../types' + +const eventName = 'saveSettings' + +export interface SaveSettingsData { + settings: Settings + spotifySettings: SpotifySettings +} + +const cb = (data: SaveSettingsData, _: any, __: WsServer, deemix: DeemixApp) => { + const { settings, spotifySettings } = data + deemix.saveSettings(settings, spotifySettings) + logger.info('Settings saved') + deemix.listener.send('updateSettings', { settings, spotifySettings }) +} + +export default { eventName, cb } diff --git a/server/tests/cookie-parser.spec.ts b/server/tests/cookie-parser.spec.ts new file mode 100644 index 0000000..a7650f1 --- /dev/null +++ b/server/tests/cookie-parser.spec.ts @@ -0,0 +1,30 @@ +// Taken from https://github.com/visionmedia/supertest + +import request from 'supertest' +import express from 'express' +import cookieParser from 'cookie-parser' + +describe('cookie parser', () => { + const app = express() + app.use(cookieParser()) + + app.get('/', (_, res) => { + res.cookie('cookie', 'hey') + res.send() + }) + + app.get('/return', (req, res) => { + if (req.cookies.cookie) res.send(req.cookies.cookie) + else res.send(':(') + }) + + const agent = request.agent(app) + + it('should save cookies', done => { + agent.get('/').expect('set-cookie', 'cookie=hey; Path=/', done) + }) + + it('should send cookies', done => { + agent.get('/return').expect('hey', done) + }) +}) diff --git a/server/tests/utils.ts b/server/tests/utils.ts new file mode 100644 index 0000000..0f10cbe --- /dev/null +++ b/server/tests/utils.ts @@ -0,0 +1,9 @@ +import { Application } from 'express' +import request from 'supertest' +import { app } from '../src/app' + +export const sendGet = (app: Application) => (uri: string) => request(app).get(uri).send() +export const sendPost = (app: Application) => (uri: string) => request(app).post(uri).send() + +export const appSendGet = sendGet(app) +export const appSendPost = sendPost(app) diff --git a/server/tsconfig.json b/server/tsconfig.json new file mode 100644 index 0000000..348b45e --- /dev/null +++ b/server/tsconfig.json @@ -0,0 +1,76 @@ +{ + "compilerOptions": { + /* Visit https://aka.ms/tsconfig.json to read more about this file */ + + /* Basic Options */ + // "incremental": true, /* Enable incremental compilation */ + "target": "es6", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */ + "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */ + // "lib": [], /* Specify library files to be included in the compilation. */ + // "allowJs": true, /* Allow javascript files to be compiled. */ + // "checkJs": true, /* Report errors in .js files. */ + // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', 'react', 'react-jsx' or 'react-jsxdev'. */ + // "declaration": true, /* Generates corresponding '.d.ts' file. */ + // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ + "sourceMap": true, /* Generates corresponding '.map' file. */ + // "outFile": "./", /* Concatenate and emit output to single file. */ + "outDir": "./dist", /* Redirect output structure to the directory. */ + "rootDir": "./src", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ + // "composite": true, /* Enable project compilation */ + // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */ + // "removeComments": true, /* Do not emit comments to output. */ + // "noEmit": true, /* Do not emit outputs. */ + // "importHelpers": true, /* Import emit helpers from 'tslib'. */ + // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ + // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ + + /* Strict Type-Checking Options */ + "strict": true, /* Enable all strict type-checking options. */ + // "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */ + // "strictNullChecks": true, /* Enable strict null checks. */ + // "strictFunctionTypes": true, /* Enable strict checking of function types. */ + // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ + // "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */ + // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ + // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ + + /* Additional Checks */ + // "noUnusedLocals": true, /* Report errors on unused locals. */ + // "noUnusedParameters": true, /* Report errors on unused parameters. */ + // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ + // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ + // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ + // "noPropertyAccessFromIndexSignature": true, /* Require undeclared properties from index signatures to use element accesses. */ + + /* Module Resolution Options */ + "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ + // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ + // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ + // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ + // "typeRoots": [], /* List of folders to include type definitions from. */ + // "types": [], /* Type declaration files to be included in compilation. */ + "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ + "esModuleInterop": true, /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */ + // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ + // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ + + /* Source Map Options */ + // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ + // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ + // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ + // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ + + /* Experimental Options */ + // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ + // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ + + /* Advanced Options */ + "skipLibCheck": true, /* Skip type checking of declaration files. */ + "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ + }, + "exclude": [ + "node_modules", + "**/*.spec.ts", + "tests/**" + ] +} diff --git a/server/webpack.config.js b/server/webpack.config.js new file mode 100644 index 0000000..de8129a --- /dev/null +++ b/server/webpack.config.js @@ -0,0 +1,50 @@ +const path = require('path') +const webpack = require('webpack') +const NodemonPlugin = require('nodemon-webpack-plugin') + +module.exports = env => { + const isProduction = !!env.production + const generateSourceMap = !!env.sourcemap + let devtool = 'eval' + if (isProduction) { + devtool = generateSourceMap ? 'source-map' : false + } + const config = { + mode: isProduction ? 'production' : 'development', + entry: './src/index.ts', + devtool, + module: { + rules: [ + { + test: /\.tsx?$/, + use: 'ts-loader', + exclude: /node_modules/ + } + ] + }, + resolve: { + extensions: ['.tsx', '.ts', '.js'] + }, + output: { + path: path.resolve(__dirname, 'dist'), + filename: 'app.js', + sourceMapFilename: '[file].map', + library: { + name: 'DeemixServer', + type: 'umd' + } + }, + target: 'node', + plugins: [ + new NodemonPlugin(), + new webpack.DefinePlugin({ 'global.GENTLY': false }), + new webpack.ContextReplacementPlugin(/[/\\](express|keyv)[/\\]/, data => { + delete data.dependencies[0].critical + return data + }), + new webpack.ContextReplacementPlugin(/yargs/) + ] + } + + return config +} diff --git a/server/yarn.lock b/server/yarn.lock new file mode 100644 index 0000000..2ef3219 --- /dev/null +++ b/server/yarn.lock @@ -0,0 +1,7049 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@ampproject/remapping@^2.1.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" + integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== + dependencies: + "@jridgewell/gen-mapping" "^0.1.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@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/code-frame@^7.0.0", "@babel/code-frame@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" + integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== + dependencies: + "@babel/highlight" "^7.18.6" + +"@babel/compat-data@^7.20.0": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.5.tgz#86f172690b093373a933223b4745deeb6049e733" + integrity sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g== + +"@babel/core@^7.1.0", "@babel/core@^7.12.16", "@babel/core@^7.12.3", "@babel/core@^7.7.5": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.5.tgz#45e2114dc6cd4ab167f81daf7820e8fa1250d113" + integrity sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ== + dependencies: + "@ampproject/remapping" "^2.1.0" + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.20.5" + "@babel/helper-compilation-targets" "^7.20.0" + "@babel/helper-module-transforms" "^7.20.2" + "@babel/helpers" "^7.20.5" + "@babel/parser" "^7.20.5" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.20.5" + "@babel/types" "^7.20.5" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.1" + semver "^6.3.0" + +"@babel/eslint-parser@^7.12.16": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz#4f68f6b0825489e00a24b41b6a1ae35414ecd2f4" + integrity sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ== + dependencies: + "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" + eslint-visitor-keys "^2.1.0" + semver "^6.3.0" + +"@babel/generator@^7.20.5": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.5.tgz#cb25abee3178adf58d6814b68517c62bdbfdda95" + integrity sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA== + dependencies: + "@babel/types" "^7.20.5" + "@jridgewell/gen-mapping" "^0.3.2" + jsesc "^2.5.1" + +"@babel/helper-compilation-targets@^7.20.0": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz#6bf5374d424e1b3922822f1d9bdaa43b1a139d0a" + integrity sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ== + dependencies: + "@babel/compat-data" "^7.20.0" + "@babel/helper-validator-option" "^7.18.6" + browserslist "^4.21.3" + semver "^6.3.0" + +"@babel/helper-environment-visitor@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" + integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== + +"@babel/helper-function-name@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" + integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== + dependencies: + "@babel/template" "^7.18.10" + "@babel/types" "^7.19.0" + +"@babel/helper-hoist-variables@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" + integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-module-imports@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" + integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-module-transforms@^7.20.2": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz#ac53da669501edd37e658602a21ba14c08748712" + integrity sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA== + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-simple-access" "^7.20.2" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/helper-validator-identifier" "^7.19.1" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.20.1" + "@babel/types" "^7.20.2" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.8.0": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629" + integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ== + +"@babel/helper-simple-access@^7.20.2": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9" + integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA== + dependencies: + "@babel/types" "^7.20.2" + +"@babel/helper-split-export-declaration@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" + integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-string-parser@^7.19.4": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" + integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== + +"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" + integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== + +"@babel/helper-validator-option@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" + integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== + +"@babel/helpers@^7.20.5": + version "7.20.6" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.6.tgz#e64778046b70e04779dfbdf924e7ebb45992c763" + integrity sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w== + dependencies: + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.20.5" + "@babel/types" "^7.20.5" + +"@babel/highlight@^7.10.4", "@babel/highlight@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== + dependencies: + "@babel/helper-validator-identifier" "^7.18.6" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.20.5": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.5.tgz#7f3c7335fe417665d929f34ae5dceae4c04015e8" + integrity sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA== + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.8.3": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-import-meta@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-top-level-await@^7.8.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/template@^7.18.10", "@babel/template@^7.3.3": + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" + integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/parser" "^7.18.10" + "@babel/types" "^7.18.10" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.20.1", "@babel/traverse@^7.20.5": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.5.tgz#78eb244bea8270fdda1ef9af22a5d5e5b7e57133" + integrity sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.20.5" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/parser" "^7.20.5" + "@babel/types" "^7.20.5" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.20.2", "@babel/types@^7.20.5", "@babel/types@^7.3.0", "@babel/types@^7.3.3": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.5.tgz#e206ae370b5393d94dfd1d04cd687cace53efa84" + integrity sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg== + dependencies: + "@babel/helper-string-parser" "^7.19.4" + "@babel/helper-validator-identifier" "^7.19.1" + to-fast-properties "^2.0.0" + +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@cnakazawa/watch@^1.0.3": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" + integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== + dependencies: + exec-sh "^0.3.2" + minimist "^1.2.0" + +"@colors/colors@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" + integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== + +"@dabh/diagnostics@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.3.tgz#7f7e97ee9a725dffc7808d93668cc984e1dc477a" + integrity sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA== + dependencies: + colorspace "1.1.x" + enabled "2.0.x" + kuler "^2.0.0" + +"@discoveryjs/json-ext@^0.5.0": + version "0.5.7" + resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" + integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== + +"@eslint/eslintrc@^0.4.0": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" + integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== + dependencies: + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^13.9.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" + +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + +"@jest/console@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.6.2.tgz#4e04bc464014358b03ab4937805ee36a0aeb98f2" + integrity sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^26.6.2" + jest-util "^26.6.2" + slash "^3.0.0" + +"@jest/core@^26.6.3": + version "26.6.3" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.6.3.tgz#7639fcb3833d748a4656ada54bde193051e45fad" + integrity sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw== + dependencies: + "@jest/console" "^26.6.2" + "@jest/reporters" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-changed-files "^26.6.2" + jest-config "^26.6.3" + jest-haste-map "^26.6.2" + jest-message-util "^26.6.2" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-resolve-dependencies "^26.6.3" + jest-runner "^26.6.3" + jest-runtime "^26.6.3" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + jest-watcher "^26.6.2" + micromatch "^4.0.2" + p-each-series "^2.1.0" + rimraf "^3.0.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + +"@jest/environment@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.6.2.tgz#ba364cc72e221e79cc8f0a99555bf5d7577cf92c" + integrity sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA== + dependencies: + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + +"@jest/fake-timers@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.6.2.tgz#459c329bcf70cee4af4d7e3f3e67848123535aad" + integrity sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA== + dependencies: + "@jest/types" "^26.6.2" + "@sinonjs/fake-timers" "^6.0.1" + "@types/node" "*" + jest-message-util "^26.6.2" + jest-mock "^26.6.2" + jest-util "^26.6.2" + +"@jest/globals@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.6.2.tgz#5b613b78a1aa2655ae908eba638cc96a20df720a" + integrity sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/types" "^26.6.2" + expect "^26.6.2" + +"@jest/reporters@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.6.2.tgz#1f518b99637a5f18307bd3ecf9275f6882a667f6" + integrity sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.2" + graceful-fs "^4.2.4" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^4.0.3" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.0.2" + jest-haste-map "^26.6.2" + jest-resolve "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" + slash "^3.0.0" + source-map "^0.6.0" + string-length "^4.0.1" + terminal-link "^2.0.0" + v8-to-istanbul "^7.0.0" + optionalDependencies: + node-notifier "^8.0.0" + +"@jest/source-map@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.6.2.tgz#29af5e1e2e324cafccc936f218309f54ab69d535" + integrity sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.2.4" + source-map "^0.6.0" + +"@jest/test-result@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.6.2.tgz#55da58b62df134576cc95476efa5f7949e3f5f18" + integrity sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ== + dependencies: + "@jest/console" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^26.6.3": + version "26.6.3" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz#98e8a45100863886d074205e8ffdc5a7eb582b17" + integrity sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw== + dependencies: + "@jest/test-result" "^26.6.2" + graceful-fs "^4.2.4" + jest-haste-map "^26.6.2" + jest-runner "^26.6.3" + jest-runtime "^26.6.3" + +"@jest/transform@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.6.2.tgz#5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b" + integrity sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^26.6.2" + babel-plugin-istanbul "^6.0.0" + chalk "^4.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.4" + jest-haste-map "^26.6.2" + jest-regex-util "^26.0.0" + jest-util "^26.6.2" + micromatch "^4.0.2" + pirates "^4.0.1" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" + +"@jest/types@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" + integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + +"@jridgewell/gen-mapping@^0.1.0": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" + integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== + dependencies: + "@jridgewell/set-array" "^1.0.0" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" + integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== + +"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + +"@jridgewell/source-map@^0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb" + integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== + +"@jridgewell/trace-mapping@^0.3.14", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.17" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" + integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== + dependencies: + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" + +"@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": + version "5.1.1-v1" + resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129" + integrity sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg== + dependencies: + eslint-scope "5.1.1" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@nuxtjs/eslint-config@6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@nuxtjs/eslint-config/-/eslint-config-6.0.0.tgz#bf8b7b1f72fc9080ba2a6c71f2447d4166d374e3" + integrity sha512-DQLyMS+A1lPeo3ajMEISz8rPzCU4DTIKQtv9HRy1A3w5583dXcbHMQzNg3qGHoTPJ/FzM1+WhV8Ak3+gQ+9uoQ== + dependencies: + eslint-config-standard "^16.0.2" + eslint-plugin-import "^2.22.1" + eslint-plugin-jest "^24.1.7" + eslint-plugin-node "^11.1.0" + eslint-plugin-promise "^4.3.1" + eslint-plugin-standard "^4.1.0" + eslint-plugin-unicorn "^28.0.2" + eslint-plugin-vue "^7.7.0" + +"@sindresorhus/is@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" + integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== + +"@sindresorhus/is@^4.0.0": + version "4.6.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" + integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== + +"@sinonjs/commons@^1.7.0": + version "1.8.6" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.6.tgz#80c516a4dc264c2a69115e7578d62581ff455ed9" + integrity sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" + integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA== + dependencies: + "@sinonjs/commons" "^1.7.0" + +"@szmarczak/http-timer@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" + integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== + dependencies: + defer-to-connect "^1.0.1" + +"@szmarczak/http-timer@^4.0.5": + version "4.0.6" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" + integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== + dependencies: + defer-to-connect "^2.0.0" + +"@tootallnate/once@1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" + integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== + +"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7": + version "7.1.20" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.20.tgz#e168cdd612c92a2d335029ed62ac94c95b362359" + integrity sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" + integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.1" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" + integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": + version "7.18.3" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.3.tgz#dfc508a85781e5698d5b33443416b6268c4b3e8d" + integrity sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w== + dependencies: + "@babel/types" "^7.3.0" + +"@types/body-parser@*": + version "1.19.2" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" + integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/cacheable-request@^6.0.1": + version "6.0.3" + resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.3.tgz#a430b3260466ca7b5ca5bfd735693b36e7a9d183" + integrity sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw== + dependencies: + "@types/http-cache-semantics" "*" + "@types/keyv" "^3.1.4" + "@types/node" "*" + "@types/responselike" "^1.0.0" + +"@types/connect@*": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" + integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== + dependencies: + "@types/node" "*" + +"@types/cookie-parser@1.4.2": + version "1.4.2" + resolved "https://registry.yarnpkg.com/@types/cookie-parser/-/cookie-parser-1.4.2.tgz#e4d5c5ffda82b80672a88a4281aaceefb1bd9df5" + integrity sha512-uwcY8m6SDQqciHsqcKDGbo10GdasYsPCYkH3hVegj9qAah6pX5HivOnOuI3WYmyQMnOATV39zv/Ybs0bC/6iVg== + dependencies: + "@types/express" "*" + +"@types/cookiejar@*": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@types/cookiejar/-/cookiejar-2.1.2.tgz#66ad9331f63fe8a3d3d9d8c6e3906dd10f6446e8" + integrity sha512-t73xJJrvdTjXrn4jLS9VSGRbz0nUY3cl2DMGDU48lKl+HR9dbbjW2A9r3g40VA++mQpy6uuHg33gy7du2BKpog== + +"@types/dateformat@5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@types/dateformat/-/dateformat-5.0.0.tgz#17ce64b0318f3f36d1c830c58a7a915445f1f93d" + integrity sha512-SZg4JdHIWHQGEokbYGZSDvo5wA4TLYPXaqhigs/wH+REDOejcJzgH+qyY+HtEUtWOZxEUkbhbdYPqQDiEgrXeA== + +"@types/debug@4.1.5": + version "4.1.5" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.5.tgz#b14efa8852b7768d898906613c23f688713e02cd" + integrity sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ== + +"@types/ejs@3.1.1": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@types/ejs/-/ejs-3.1.1.tgz#29c539826376a65e7f7d672d51301f37ed718f6d" + integrity sha512-RQul5wEfY7BjWm0sYY86cmUN/pcXWGyVxWX93DFFJvcrxax5zKlieLwA3T77xJGwNcZW0YW6CYG70p1m8xPFmA== + +"@types/eslint-scope@^3.7.3": + version "3.7.4" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" + integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*": + version "8.4.10" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.10.tgz#19731b9685c19ed1552da7052b6f668ed7eb64bb" + integrity sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" + integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== + +"@types/estree@^0.0.51": + version "0.0.51" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" + integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== + +"@types/express-serve-static-core@^4.17.18", "@types/express-serve-static-core@^4.17.31": + version "4.17.31" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz#a1139efeab4e7323834bb0226e62ac019f474b2f" + integrity sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + +"@types/express-session@^1.17.3": + version "1.17.5" + resolved "https://registry.yarnpkg.com/@types/express-session/-/express-session-1.17.5.tgz#13f48852b4aa60ff595835faeb4b4dda0ba0866e" + integrity sha512-l0DhkvNVfyUPEEis8fcwbd46VptfA/jmMwHfob2TfDMf3HyPLiB9mKD71LXhz5TMUobODXPD27zXSwtFQLHm+w== + dependencies: + "@types/express" "*" + +"@types/express@*": + version "4.17.15" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.15.tgz#9290e983ec8b054b65a5abccb610411953d417ff" + integrity sha512-Yv0k4bXGOH+8a+7bELd2PqHQsuiANB+A8a4gnQrkRWzrkKlb6KHaVvyXhqs04sVW/OWlbPyYxRgYlIXLfrufMQ== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.31" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/express@4.17.11": + version "4.17.11" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.11.tgz#debe3caa6f8e5fcda96b47bd54e2f40c4ee59545" + integrity sha512-no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.18" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/graceful-fs@^4.1.2": + version "4.1.5" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" + integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== + dependencies: + "@types/node" "*" + +"@types/http-cache-semantics@*": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" + integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" + integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== + +"@types/istanbul-lib-report@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" + integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/jest@26.0.22": + version "26.0.22" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.22.tgz#8308a1debdf1b807aa47be2838acdcd91e88fbe6" + integrity sha512-eeWwWjlqxvBxc4oQdkueW5OF/gtfSceKk4OnOAGlUSwS/liBRtZppbJuz1YkgbrbfGOoeBHun9fOvXnjNwrSOw== + dependencies: + jest-diff "^26.0.0" + pretty-format "^26.0.0" + +"@types/json-schema@*", "@types/json-schema@^7.0.3", "@types/json-schema@^7.0.7", "@types/json-schema@^7.0.8": + version "7.0.11" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" + integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== + +"@types/keyv@^3.1.4": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6" + integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== + dependencies: + "@types/node" "*" + +"@types/mime@*": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" + integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== + +"@types/morgan@1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@types/morgan/-/morgan-1.9.2.tgz#450f958a4d3fb0694a3ba012b09c8106f9a2885e" + integrity sha512-edtGMEdit146JwwIeyQeHHg9yID4WSolQPxpEorHmN3KuytuCHyn2ELNr5Uxy8SerniFbbkmgKMrGM933am5BQ== + dependencies: + "@types/node" "*" + +"@types/node@*": + version "18.11.15" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.15.tgz#de0e1fbd2b22b962d45971431e2ae696643d3f5d" + integrity sha512-VkhBbVo2+2oozlkdHXLrb3zjsRkpdnaU2bXmX8Wgle3PUi569eLRaHGlgETQHR7lLL1w7GiG3h9SnePhxNDecw== + +"@types/node@14.14.37": + version "14.14.37" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.37.tgz#a3dd8da4eb84a996c36e331df98d82abd76b516e" + integrity sha512-XYmBiy+ohOR4Lh5jE379fV2IU+6Jn4g5qASinhitfyO71b/sCo6MKsMLF5tc7Zf2CE8hViVQyYSobJNke8OvUw== + +"@types/nodemon@latest": + version "1.19.2" + resolved "https://registry.yarnpkg.com/@types/nodemon/-/nodemon-1.19.2.tgz#fbd06468631fa8b9946278a4037ee054735d109b" + integrity sha512-4GWiTN3HevkxMIxEQ7OpD3MAHhlVsX2tairCMRmf8oYZxmhHw9+UpQpIdGdJrjsMT2Ty26FtJzUUcP/qM5fR8A== + dependencies: + "@types/node" "*" + +"@types/normalize-package-data@^2.4.0": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" + integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== + +"@types/prettier@^2.0.0": + version "2.7.1" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.1.tgz#dfd20e2dc35f027cdd6c1908e80a5ddc7499670e" + integrity sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow== + +"@types/qs@*": + version "6.9.7" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" + integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== + +"@types/ramda@0.27.40": + version "0.27.40" + resolved "https://registry.yarnpkg.com/@types/ramda/-/ramda-0.27.40.tgz#99f307356fe553095ee4d3c2af2b0eb3af7a8413" + integrity sha512-V99ZfTH2tqVYdLDAlgh2uT+N074HPgqnAsMjALKSBqogYd0HbuuGMqNukJ6fk9Ml/Htaus76fsc4Yh3p7q1VdQ== + dependencies: + ts-toolbelt "^6.15.1" + +"@types/range-parser@*": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" + integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== + +"@types/responselike@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" + integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== + dependencies: + "@types/node" "*" + +"@types/serve-static@*": + version "1.15.0" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.0.tgz#c7930ff61afb334e121a9da780aac0d9b8f34155" + integrity sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg== + dependencies: + "@types/mime" "*" + "@types/node" "*" + +"@types/stack-utils@^2.0.0": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" + integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== + +"@types/strip-bom@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/strip-bom/-/strip-bom-3.0.0.tgz#14a8ec3956c2e81edb7520790aecf21c290aebd2" + integrity sha512-xevGOReSYGM7g/kUBZzPqCrR/KYAo+F0yiPc85WFTJa0MSLtyFTVTU6cJu/aV4mid7IffDIWqo69THF2o4JiEQ== + +"@types/strip-json-comments@0.0.30": + version "0.0.30" + resolved "https://registry.yarnpkg.com/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz#9aa30c04db212a9a0649d6ae6fd50accc40748a1" + integrity sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ== + +"@types/superagent@*": + version "4.1.16" + resolved "https://registry.yarnpkg.com/@types/superagent/-/superagent-4.1.16.tgz#12c9c16f232f9d89beab91d69368f96ce8e2d881" + integrity sha512-tLfnlJf6A5mB6ddqF159GqcDizfzbMUB1/DeT59/wBNqzRTNNKsaw79A/1TZ84X+f/EwWH8FeuSkjlCLyqS/zQ== + dependencies: + "@types/cookiejar" "*" + "@types/node" "*" + +"@types/supertest@2.0.11": + version "2.0.11" + resolved "https://registry.yarnpkg.com/@types/supertest/-/supertest-2.0.11.tgz#2e70f69f220bc77b4f660d72c2e1a4231f44a77d" + integrity sha512-uci4Esokrw9qGb9bvhhSVEjd6rkny/dk5PK/Qz4yxKiyppEI+dOPlNrZBahE3i+PoKFYyDxChVXZ/ysS/nrm1Q== + dependencies: + "@types/superagent" "*" + +"@types/uuid@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.0.tgz#215c231dff736d5ba92410e6d602050cce7e273f" + integrity sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ== + +"@types/ws@7.4.1": + version "7.4.1" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.1.tgz#49eacb15a0534663d53a36fbf5b4d98f5ae9a73a" + integrity sha512-ISCK1iFnR+jYv7+jLNX0wDqesZ/5RAeY3wUx6QaphmocphU61h+b+PHjS18TF4WIPTu/MMzxIq2PHr32o2TS5Q== + dependencies: + "@types/node" "*" + +"@types/yargs-parser@*": + version "21.0.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" + integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== + +"@types/yargs@17.0.0": + version "17.0.0" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.0.tgz#32f740934eedf0a5cd19470249f317755c91f1ae" + integrity sha512-RS7u2X7vdXjVQs160PWY1pjLBw6GJj04utojn0KU8p2rRZR37FSzzK6XOT+KLzT/DVbDYRyezroc0LHIvM5Z2A== + dependencies: + "@types/yargs-parser" "*" + +"@types/yargs@^15.0.0": + version "15.0.14" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.14.tgz#26d821ddb89e70492160b66d10a0eb6df8f6fb06" + integrity sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ== + dependencies: + "@types/yargs-parser" "*" + +"@typescript-eslint/eslint-plugin@4.21.0": + version "4.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.21.0.tgz#3fce2bfa76d95c00ac4f33dff369cb593aab8878" + integrity sha512-FPUyCPKZbVGexmbCFI3EQHzCZdy2/5f+jv6k2EDljGdXSRc0cKvbndd2nHZkSLqCNOPk0jB6lGzwIkglXcYVsQ== + dependencies: + "@typescript-eslint/experimental-utils" "4.21.0" + "@typescript-eslint/scope-manager" "4.21.0" + 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.21.0": + version "4.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.21.0.tgz#0b0bb7c15d379140a660c003bdbafa71ae9134b6" + integrity sha512-cEbgosW/tUFvKmkg3cU7LBoZhvUs+ZPVM9alb25XvR0dal4qHL3SiUqHNrzoWSxaXA9gsifrYrS1xdDV6w/gIA== + dependencies: + "@types/json-schema" "^7.0.3" + "@typescript-eslint/scope-manager" "4.21.0" + "@typescript-eslint/types" "4.21.0" + "@typescript-eslint/typescript-estree" "4.21.0" + eslint-scope "^5.0.0" + eslint-utils "^2.0.0" + +"@typescript-eslint/experimental-utils@^4.0.1": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz#6f2a786a4209fa2222989e9380b5331b2810f7fd" + integrity sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q== + dependencies: + "@types/json-schema" "^7.0.7" + "@typescript-eslint/scope-manager" "4.33.0" + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/typescript-estree" "4.33.0" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + +"@typescript-eslint/parser@4.21.0": + version "4.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.21.0.tgz#a227fc2af4001668c3e3f7415d4feee5093894c1" + integrity sha512-eyNf7QmE5O/l1smaQgN0Lj2M/1jOuNg2NrBm1dqqQN0sVngTLyw8tdCbih96ixlhbF1oINoN8fDCyEH9SjLeIA== + dependencies: + "@typescript-eslint/scope-manager" "4.21.0" + "@typescript-eslint/types" "4.21.0" + "@typescript-eslint/typescript-estree" "4.21.0" + debug "^4.1.1" + +"@typescript-eslint/scope-manager@4.21.0": + version "4.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.21.0.tgz#c81b661c4b8af1ec0c010d847a8f9ab76ab95b4d" + integrity sha512-kfOjF0w1Ix7+a5T1knOw00f7uAP9Gx44+OEsNQi0PvvTPLYeXJlsCJ4tYnDj5PQEYfpcgOH5yBlw7K+UEI9Agw== + dependencies: + "@typescript-eslint/types" "4.21.0" + "@typescript-eslint/visitor-keys" "4.21.0" + +"@typescript-eslint/scope-manager@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz#d38e49280d983e8772e29121cf8c6e9221f280a3" + integrity sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ== + dependencies: + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/visitor-keys" "4.33.0" + +"@typescript-eslint/types@4.21.0": + version "4.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.21.0.tgz#abdc3463bda5d31156984fa5bc316789c960edef" + integrity sha512-+OQaupjGVVc8iXbt6M1oZMwyKQNehAfLYJJ3SdvnofK2qcjfor9pEM62rVjBknhowTkh+2HF+/KdRAc/wGBN2w== + +"@typescript-eslint/types@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72" + integrity sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ== + +"@typescript-eslint/typescript-estree@4.21.0": + version "4.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.21.0.tgz#3817bd91857beeaeff90f69f1f112ea58d350b0a" + integrity sha512-ZD3M7yLaVGVYLw4nkkoGKumb7Rog7QID9YOWobFDMQKNl+vPxqVIW/uDk+MDeGc+OHcoG2nJ2HphwiPNajKw3w== + dependencies: + "@typescript-eslint/types" "4.21.0" + "@typescript-eslint/visitor-keys" "4.21.0" + debug "^4.1.1" + globby "^11.0.1" + is-glob "^4.0.1" + semver "^7.3.2" + tsutils "^3.17.1" + +"@typescript-eslint/typescript-estree@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz#0dfb51c2908f68c5c08d82aefeaf166a17c24609" + integrity sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA== + dependencies: + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/visitor-keys" "4.33.0" + debug "^4.3.1" + globby "^11.0.3" + is-glob "^4.0.1" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/visitor-keys@4.21.0": + version "4.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.21.0.tgz#990a9acdc124331f5863c2cf21c88ba65233cd8d" + integrity sha512-dH22dROWGi5Z6p+Igc8bLVLmwy7vEe8r+8c+raPQU0LxgogPUrRAtRGtvBWmlr9waTu3n+QLt/qrS/hWzk1x5w== + dependencies: + "@typescript-eslint/types" "4.21.0" + eslint-visitor-keys "^2.0.0" + +"@typescript-eslint/visitor-keys@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz#2a22f77a41604289b7a186586e9ec48ca92ef1dd" + integrity sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg== + dependencies: + "@typescript-eslint/types" "4.33.0" + eslint-visitor-keys "^2.0.0" + +"@webassemblyjs/ast@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" + integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== + dependencies: + "@webassemblyjs/helper-numbers" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + +"@webassemblyjs/floating-point-hex-parser@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" + integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== + +"@webassemblyjs/helper-api-error@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" + integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== + +"@webassemblyjs/helper-buffer@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" + integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== + +"@webassemblyjs/helper-numbers@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae" + integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.11.1" + "@webassemblyjs/helper-api-error" "1.11.1" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/helper-wasm-bytecode@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" + integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== + +"@webassemblyjs/helper-wasm-section@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" + integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + +"@webassemblyjs/ieee754@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" + integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" + integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" + integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== + +"@webassemblyjs/wasm-edit@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6" + integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/helper-wasm-section" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/wasm-opt" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + "@webassemblyjs/wast-printer" "1.11.1" + +"@webassemblyjs/wasm-gen@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76" + integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/ieee754" "1.11.1" + "@webassemblyjs/leb128" "1.11.1" + "@webassemblyjs/utf8" "1.11.1" + +"@webassemblyjs/wasm-opt@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2" + integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + +"@webassemblyjs/wasm-parser@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199" + integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-api-error" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/ieee754" "1.11.1" + "@webassemblyjs/leb128" "1.11.1" + "@webassemblyjs/utf8" "1.11.1" + +"@webassemblyjs/wast-printer@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0" + integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@xtuc/long" "4.2.2" + +"@webpack-cli/configtest@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-2.0.1.tgz#a69720f6c9bad6aef54a8fa6ba9c3533e7ef4c7f" + integrity sha512-njsdJXJSiS2iNbQVS0eT8A/KPnmyH4pv1APj2K0d1wrZcBLw+yppxOy4CGqa0OxDJkzfL/XELDhD8rocnIwB5A== + +"@webpack-cli/info@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-2.0.1.tgz#eed745799c910d20081e06e5177c2b2569f166c0" + integrity sha512-fE1UEWTwsAxRhrJNikE7v4EotYflkEhBL7EbajfkPlf6E37/2QshOy/D48Mw8G5XMFlQtS6YV42vtbG9zBpIQA== + +"@webpack-cli/serve@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-2.0.1.tgz#34bdc31727a1889198855913db2f270ace6d7bf8" + integrity sha512-0G7tNyS+yW8TdgHwZKlDWYXFA6OJQnoLCQvYKkQP0Q2X205PSQ6RNUj0M+1OB/9gRQaUZ/ccYfaxd0nhaWKfjw== + +"@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== + +abab@^2.0.3, abab@^2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" + integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +accepts@~1.3.7: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +acorn-globals@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" + integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== + dependencies: + acorn "^7.1.1" + acorn-walk "^7.1.1" + +acorn-import-assertions@^1.7.6: + version "1.8.0" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" + integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== + +acorn-jsx@^5.2.0, acorn-jsx@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn-walk@^7.1.1: + version "7.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" + integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== + +acorn@^7.1.1, 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.2.4, acorn@^8.5.0, acorn@^8.7.1: + version "8.8.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" + integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== + +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +ajv-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.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@^8.0.1: + version "8.11.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.2.tgz#aecb20b50607acf2569b6382167b65a96008bb78" + integrity sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +ansi-align@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" + integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== + dependencies: + string-width "^4.1.0" + +ansi-colors@^4.1.1: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== + +ansi-escapes@^4.2.1: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-regex@^5.0.0, ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +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" + +anymatch@^3.0.3, anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +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 sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA== + +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 sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q== + +array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + integrity sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw== + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + +array-includes@^3.1.4: + version "3.1.6" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" + integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + get-intrinsic "^1.1.3" + is-string "^1.0.7" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ== + +array.prototype.flat@^1.2.5: + version "1.3.1" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" + integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-shim-unscopables "^1.0.0" + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw== + +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@^3.2.0, async@^3.2.3: + version "3.2.4" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" + integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +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== + +babel-jest@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056" + integrity sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA== + dependencies: + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/babel__core" "^7.1.7" + babel-plugin-istanbul "^6.0.0" + babel-preset-jest "^26.6.2" + chalk "^4.0.0" + graceful-fs "^4.2.4" + slash "^3.0.0" + +babel-plugin-istanbul@^6.0.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" + integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^5.0.4" + test-exclude "^6.0.0" + +babel-plugin-jest-hoist@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz#8185bd030348d254c6d7dd974355e6a28b21e62d" + integrity sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.0.0" + "@types/babel__traverse" "^7.0.6" + +babel-preset-current-node-syntax@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" + integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-top-level-await" "^7.8.3" + +babel-preset-jest@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz#747872b1171df032252426586881d62d31798fee" + integrity sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ== + dependencies: + babel-plugin-jest-hoist "^26.6.2" + babel-preset-current-node-syntax "^1.0.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +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" + +basic-auth@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a" + integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg== + dependencies: + safe-buffer "5.1.2" + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +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" + +boxen@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64" + integrity sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ== + dependencies: + ansi-align "^3.0.0" + camelcase "^5.3.1" + chalk "^3.0.0" + cli-boxes "^2.2.0" + string-width "^4.1.0" + term-size "^2.1.0" + type-fest "^0.8.1" + widest-line "^3.1.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^2.3.1: + 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.2, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== + +browserslist@^4.14.5, browserslist@^4.21.3: + version "4.21.4" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" + integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== + dependencies: + caniuse-lite "^1.0.30001400" + electron-to-chromium "^1.4.251" + node-releases "^2.0.6" + update-browserslist-db "^1.0.9" + +bs-logger@0.x: + version "0.2.6" + resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" + integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== + dependencies: + fast-json-stable-stringify "2.x" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +buffer-from@1.x, buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +bufferutil@4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.3.tgz#66724b756bed23cd7c28c4d306d7994f9943cc6b" + integrity sha512-yEYTwGndELGvfXsImMBLop58eaGW+YdONi1fNjTINSY98tmMmFijBG6WXgdkfuLNt4imzQNtIE+eBp1PVpMCSw== + dependencies: + node-gyp-build "^4.2.0" + +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== + +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" + +cacheable-lookup@^5.0.3: + version "5.0.4" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" + integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== + +cacheable-request@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" + integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^3.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^1.0.2" + +cacheable-request@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.2.tgz#ea0d0b889364a25854757301ca12b2da77f91d27" + integrity sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^4.0.0" + lowercase-keys "^2.0.0" + normalize-url "^6.0.1" + responselike "^2.0.0" + +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" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + integrity sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ== + dependencies: + camelcase "^2.0.0" + map-obj "^1.0.0" + +camelcase@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + integrity sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw== + +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.0.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +caniuse-lite@^1.0.30001400: + version "1.0.30001439" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001439.tgz#ab7371faeb4adff4b74dad1718a6fd122e45d9cb" + integrity sha512-1MgUzEkoMO6gKfXflStpYgZDlFM7M/ck/bgfVCACO5vnAf0fXoNVHdWtqGU+MYca+4bL9Z5bpOVmR33cWW9G2A== + +capture-exit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" + integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== + dependencies: + rsvp "^4.8.4" + +chalk@^2.0.0: + 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@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +chokidar@^3.2.2, chokidar@^3.5.1, chokidar@^3.5.2: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chrome-trace-event@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" + integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +cjs-module-lexer@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f" + integrity sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw== + +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" + +clean-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/clean-regexp/-/clean-regexp-1.0.0.tgz#8df7c7aae51fd36874e8f8d05b9180bc11a3fed7" + integrity sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw== + dependencies: + escape-string-regexp "^1.0.5" + +cli-boxes@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" + integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== + +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +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-response@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3" + integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA== + dependencies: + mimic-response "^1.0.0" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== + +collect-v8-coverage@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" + integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw== + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0, color-convert@^1.9.3: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@^1.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.6.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" + integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^3.1.3: + version "3.2.1" + resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" + integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== + dependencies: + color-convert "^1.9.3" + color-string "^1.6.0" + +colorette@^2.0.14: + version "2.0.19" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" + integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== + +colorspace@1.1.x: + version "1.1.4" + resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.4.tgz#8d442d1186152f60453bf8070cd66eb364e59243" + integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w== + dependencies: + color "^3.1.3" + text-hex "1.0.x" + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +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@^8.2.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== + +commander@^9.4.1: + version "9.4.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-9.4.1.tgz#d1dd8f2ce6faf93147295c0df13c7c21141cfbdd" + integrity sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw== + +component-emitter@^1.2.1, component-emitter@^1.3.0: + 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== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +configstore@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" + integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== + dependencies: + dot-prop "^5.2.0" + graceful-fs "^4.1.2" + make-dir "^3.0.0" + unique-string "^2.0.0" + write-file-atomic "^3.0.0" + xdg-basedir "^4.0.0" + +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.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== + +cookie-parser@1.4.5: + version "1.4.5" + resolved "https://registry.yarnpkg.com/cookie-parser/-/cookie-parser-1.4.5.tgz#3e572d4b7c0c80f9c61daf604e4336831b5d1d49" + integrity sha512-f13bPUj/gG/5mDr+xLmSxxDsB9DQiTIfhJS/sqjrmfAWiAN+x2O4i/XguTL9yDZ+/IFDanJ+5x7hC4CXT9Tdzw== + dependencies: + cookie "0.4.0" + cookie-signature "1.0.6" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +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== + +cookie@0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" + integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== + +cookiejar@^2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.3.tgz#fc7a6216e408e74414b90230050842dacda75acc" + integrity sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ== + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== + +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.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypto-random-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" + integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== + +cssom@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== + +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== + dependencies: + cssom "~0.3.6" + +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + integrity sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng== + dependencies: + array-find-index "^1.0.1" + +data-urls@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" + integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== + dependencies: + abab "^2.0.3" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + +dateformat@5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-5.0.3.tgz#fe2223eff3cc70ce716931cb3038b59a9280696e" + integrity sha512-Kvr6HmPXUMerlLcLF+Pwq3K7apHpYmGDVqrxcDasBg86UcKeTSNWbEzU8bwdXnxnR44FtMhJAxI4Bov6Y/KUfA== + +dateformat@~1.0.4-1.2.3: + version "1.0.12" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9" + integrity sha512-5sFRfAAmbHdIts+eKjR9kYJoF0ViCMVX9yqLu5A7S/v+nd077KgCITOMiirmyCBiZpKLDXbBOkYm6tu7rX/TKg== + dependencies: + get-stdin "^4.0.1" + meow "^3.3.0" + +debug@2, 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@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.0, debug@^4.3.1: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +debug@^3.2.6, debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +decamelize@^1.1.2, decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== + +decimal.js@^10.2.1: + version "10.4.3" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" + integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== + +decode-uri-component@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" + integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== + +decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA== + dependencies: + mimic-response "^1.0.0" + +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + +deemix@^3.6.0: + version "3.6.14" + resolved "https://registry.yarnpkg.com/deemix/-/deemix-3.6.14.tgz#858bc7c1881bf580d36aa6a7ba466205a67c3b5a" + integrity sha512-iFtCOzKn4DFqqQwxcISAVWov3hpOZ7WRP9/bfuavKnkqdY5I23DKAeyh08r/W5JMQrKU4G8f8ifbuLcuflYqpg== + dependencies: + async "^3.2.0" + deezer-js "^1.3.0" + got "^11.8.2" + html-entities "^2.3.3" + metaflac-js2 "^1.0.8" + spotify-web-api-node "^5.0.2" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deep-is@^0.1.3, deep-is@~0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + +deezer-js@^1.3.0: + version "1.3.8" + resolved "https://registry.yarnpkg.com/deezer-js/-/deezer-js-1.3.8.tgz#36f1b74eb3c3d44393fe7a00573e92167a820fdb" + integrity sha512-DWcIWMJ9W+3D0akx+IA2Gh2Fnv28ylSDM35QnO5IU9GE+j6qxxT9eE3OZzl62+D1Cj59ClAznuz8X3LGn8ixeA== + dependencies: + got "^11.8.2" + tough-cookie "^4.0.0" + +defer-to-connect@^1.0.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" + integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== + +defer-to-connect@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" + integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== + +define-properties@^1.1.3, define-properties@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" + integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== + dependencies: + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA== + 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 sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA== + 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" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + +depd@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg== + +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + +diff-sequences@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" + integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== + +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" + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +domexception@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" + integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== + dependencies: + webidl-conversions "^5.0.0" + +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" + +dotenv@8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" + integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== + +duplexer3@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.5.tgz#0b5e4d7bad5de8901ea4440624c8e1d20099217e" + integrity sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA== + +dynamic-dedupe@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/dynamic-dedupe/-/dynamic-dedupe-0.3.0.tgz#06e44c223f5e4e94d78ef9db23a6515ce2f962a1" + integrity sha512-ssuANeD+z97meYOqd50e04Ze5qp4bPqo8cCkI4TRjZkzAUgIDTrXV1R8QCdINpiI+hw14+rYazvTRdQrz0/rFQ== + dependencies: + xtend "^4.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 sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +ejs@3.1.8: + version "3.1.8" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.8.tgz#758d32910c78047585c7ef1f92f9ee041c1c190b" + integrity sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ== + dependencies: + jake "^10.8.5" + +electron-to-chromium@^1.4.251: + version "1.4.284" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" + integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== + +emittery@^0.7.1: + version "0.7.2" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82" + integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ== + +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== + +enabled@2.0.x: + version "2.0.0" + resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2" + integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +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@^5.0.0, enhanced-resolve@^5.10.0: + version "5.12.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz#300e1c90228f5b570c4d35babf263f6da7155634" + integrity sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + +enquirer@^2.3.5: + 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" + +envinfo@^7.7.3: + version "7.8.1" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" + integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== + +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.19.0, es-abstract@^1.20.4: + version "1.20.5" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.5.tgz#e6dc99177be37cacda5988e692c3fa8b218e95d2" + integrity sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + function.prototype.name "^1.1.5" + get-intrinsic "^1.1.3" + get-symbol-description "^1.0.0" + gopd "^1.0.1" + has "^1.0.3" + has-property-descriptors "^1.0.0" + has-symbols "^1.0.3" + internal-slot "^1.0.3" + is-callable "^1.2.7" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-weakref "^1.0.2" + object-inspect "^1.12.2" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.4.3" + safe-regex-test "^1.0.0" + string.prototype.trimend "^1.0.6" + string.prototype.trimstart "^1.0.6" + unbox-primitive "^1.0.2" + +es-module-lexer@^0.9.0: + version "0.9.3" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" + integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== + +es-shim-unscopables@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" + integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== + dependencies: + has "^1.0.3" + +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-goat@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" + integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escodegen@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" + integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== + dependencies: + esprima "^4.0.1" + estraverse "^5.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +eslint-config-prettier@8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.1.0.tgz#4ef1eaf97afe5176e6a75ddfb57c335121abc5a6" + integrity sha512-oKMhGv3ihGbCIimCAjqkdzx2Q+jthoqnXSP+d86M9tptwugycmTFdVR4IpLgq2c4SHifbwO90z2fQ8/Aio73yw== + +eslint-config-standard@^16.0.2: + version "16.0.3" + resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-16.0.3.tgz#6c8761e544e96c531ff92642eeb87842b8488516" + integrity sha512-x4fmJL5hGqNJKGHSjnLdgA6U6h1YW/G2dW9fA+cyVur4SK6lyue8+UgNKWlZtUDTXvgKDD/Oa3GQjmB5kjtVvg== + +eslint-import-resolver-node@^0.3.6: + version "0.3.6" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" + integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== + dependencies: + debug "^3.2.7" + resolve "^1.20.0" + +eslint-module-utils@^2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz#4f3e41116aaf13a20792261e61d3a2e7e0583974" + integrity sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA== + dependencies: + debug "^3.2.7" + +eslint-plugin-es@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz#75a7cdfdccddc0589934aeeb384175f221c57893" + integrity sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ== + dependencies: + eslint-utils "^2.0.0" + regexpp "^3.0.0" + +eslint-plugin-import@^2.22.1: + version "2.26.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz#f812dc47be4f2b72b478a021605a59fc6fe8b88b" + integrity sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA== + dependencies: + array-includes "^3.1.4" + array.prototype.flat "^1.2.5" + debug "^2.6.9" + doctrine "^2.1.0" + eslint-import-resolver-node "^0.3.6" + eslint-module-utils "^2.7.3" + has "^1.0.3" + is-core-module "^2.8.1" + is-glob "^4.0.3" + minimatch "^3.1.2" + object.values "^1.1.5" + resolve "^1.22.0" + tsconfig-paths "^3.14.1" + +eslint-plugin-jest@^24.1.7: + version "24.7.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-24.7.0.tgz#206ac0833841e59e375170b15f8d0955219c4889" + integrity sha512-wUxdF2bAZiYSKBclsUMrYHH6WxiBreNjyDxbRv345TIvPeoCEgPNEn3Sa+ZrSqsf1Dl9SqqSREXMHExlMMu1DA== + dependencies: + "@typescript-eslint/experimental-utils" "^4.0.1" + +eslint-plugin-node@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz#c95544416ee4ada26740a30474eefc5402dc671d" + integrity sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g== + dependencies: + eslint-plugin-es "^3.0.0" + eslint-utils "^2.0.0" + ignore "^5.1.1" + minimatch "^3.0.4" + resolve "^1.10.1" + semver "^6.1.0" + +eslint-plugin-prettier@3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.3.1.tgz#7079cfa2497078905011e6f82e8dd8453d1371b7" + integrity sha512-Rq3jkcFY8RYeQLgk2cCwuc0P7SEFwDravPhsJZOQ5N4YI4DSg50NyqJ/9gdZHzQlHf8MvafSesbNJCcP/FF6pQ== + dependencies: + prettier-linter-helpers "^1.0.0" + +eslint-plugin-promise@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.3.1.tgz#61485df2a359e03149fdafc0a68b0e030ad2ac45" + integrity sha512-bY2sGqyptzFBDLh/GMbAxfdJC+b0f23ME63FOE4+Jao0oZ3E1LEwFtWJX/1pGMJLiTtrSSern2CRM/g+dfc0eQ== + +eslint-plugin-standard@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz#0c3bf3a67e853f8bbbc580fb4945fbf16f41b7c5" + integrity sha512-ZL7+QRixjTR6/528YNGyDotyffm5OQst/sGxKDwGb9Uqs4In5Egi4+jbobhqJoyoCM6/7v/1A5fhQ7ScMtDjaQ== + +eslint-plugin-unicorn@^28.0.2: + version "28.0.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-28.0.2.tgz#ab9884ebae04590ecd9c1c294330d889a74b7c37" + integrity sha512-k4AoFP7n8/oq6lBXkdc9Flid6vw2B8j7aXFCxgzJCyKvmaKrCUFb1TFPhG9eSJQFZowqmymMPRtl8oo9NKLUbw== + dependencies: + ci-info "^2.0.0" + clean-regexp "^1.0.0" + eslint-template-visitor "^2.2.2" + eslint-utils "^2.1.0" + eslint-visitor-keys "^2.0.0" + import-modules "^2.1.0" + lodash "^4.17.20" + pluralize "^8.0.0" + read-pkg-up "^7.0.1" + regexp-tree "^0.1.22" + reserved-words "^0.1.2" + safe-regex "^2.1.1" + semver "^7.3.4" + +eslint-plugin-vue@^7.7.0: + version "7.20.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-7.20.0.tgz#98c21885a6bfdf0713c3a92957a5afeaaeed9253" + integrity sha512-oVNDqzBC9h3GO+NTgWeLMhhGigy6/bQaQbHS+0z7C4YEu/qK/yxHvca/2PTZtGNPsCrHwOTgKMrwu02A9iPBmw== + dependencies: + eslint-utils "^2.1.0" + natural-compare "^1.4.0" + semver "^6.3.0" + vue-eslint-parser "^7.10.0" + +eslint-scope@5.1.1, 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-template-visitor@^2.2.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/eslint-template-visitor/-/eslint-template-visitor-2.3.2.tgz#b52f96ff311e773a345d79053ccc78275bbc463d" + integrity sha512-3ydhqFpuV7x1M9EK52BPNj6V0Kwu0KKkcIAfpUhwHbR8ocRln/oUHgfxQupY8O1h4Qv/POHDumb/BwwNfxbtnA== + dependencies: + "@babel/core" "^7.12.16" + "@babel/eslint-parser" "^7.12.16" + eslint-visitor-keys "^2.0.0" + esquery "^1.3.1" + multimap "^1.1.0" + +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-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" + integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== + dependencies: + eslint-visitor-keys "^2.0.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, eslint-visitor-keys@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== + +eslint@7.23.0: + version "7.23.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.23.0.tgz#8d029d252f6e8cf45894b4bee08f5493f8e94325" + integrity sha512-kqvNVbdkjzpFy0XOszNwjkKzZ+6TcwCQ/h+ozlcIWwaimBBuhlQ4nN6kbiM2L+OjDcznkTJxzYfRFH92sx4a0Q== + dependencies: + "@babel/code-frame" "7.12.11" + "@eslint/eslintrc" "^0.4.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.4.0" + esutils "^2.0.2" + file-entry-cache "^6.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.0.0" + globals "^13.6.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash "^4.17.21" + 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@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" + integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== + dependencies: + acorn "^7.1.1" + acorn-jsx "^5.2.0" + eslint-visitor-keys "^1.1.0" + +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, esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.3.1, esquery@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" + integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +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 sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +events@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +exec-sh@^0.3.2: + version "0.3.6" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc" + integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== + +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@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" + integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA== + 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" + +expect@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-26.6.2.tgz#c6b996bf26bf3fe18b67b2d0f51fc981ba934417" + integrity sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA== + dependencies: + "@jest/types" "^26.6.2" + ansi-styles "^4.0.0" + jest-get-type "^26.3.0" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-regex-util "^26.0.0" + +express-session@^1.17.1: + version "1.17.3" + resolved "https://registry.yarnpkg.com/express-session/-/express-session-1.17.3.tgz#14b997a15ed43e5949cb1d073725675dd2777f36" + integrity sha512-4+otWXlShYlG1Ma+2Jnn+xgKUZTMJ5QD3YvfilX3AcocOAbIkVylSWEklzALe/+Pu4qV6TYBj5GwOBFfdKqLBw== + dependencies: + cookie "0.4.2" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~2.0.0" + on-headers "~1.0.2" + parseurl "~1.3.3" + safe-buffer "5.2.1" + uid-safe "~2.1.5" + +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 sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== + 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 sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q== + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +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-diff@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" + integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== + +fast-glob@^3.2.9: + version "3.2.12" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" + integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@2.x, 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, fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fast-safe-stringify@^2.0.7: + version "2.1.1" + resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" + integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== + +fastest-levenshtein@^1.0.12: + version "1.0.16" + resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" + integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== + +fastq@^1.6.0: + version "1.14.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.14.0.tgz#107f69d7295b11e0fccc264e1fc6389f623731ce" + integrity sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg== + dependencies: + reusify "^1.0.4" + +fb-watchman@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" + integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== + dependencies: + bser "2.1.1" + +fecha@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd" + integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw== + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +filelist@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" + integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== + dependencies: + minimatch "^5.0.1" + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ== + 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-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + integrity sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA== + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +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.2.7" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" + integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== + +fn.name@1.x.x: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" + integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== + +for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== + +form-data@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" + integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +formidable@^1.2.2: + version "1.2.6" + resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.2.6.tgz#d2a51d60162bbc9b4a055d8457a7c75315d1a168" + integrity sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ== + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA== + 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 sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@^2.1.2, fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +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== + +function.prototype.name@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" + integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + functions-have-names "^1.2.2" + +functional-red-black-tree@^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 sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== + +functions-have-names@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.1, get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" + integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.3" + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + integrity sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw== + +get-stream@^4.0.0, get-stream@^4.1.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@^5.0.0, get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +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 sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA== + +glob-parent@^5.0.0, glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-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.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-dirs@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.1.0.tgz#e9046a49c806ff04d6c1825e196c8f0091e8df4d" + integrity sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ== + dependencies: + ini "1.3.7" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^13.6.0, globals@^13.9.0: + version "13.19.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.19.0.tgz#7a42de8e6ad4f7242fbcca27ea5b23aca367b5c8" + integrity sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ== + dependencies: + type-fest "^0.20.2" + +globby@^11.0.1, globby@^11.0.3: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +got@^11.8.2: + version "11.8.6" + resolved "https://registry.yarnpkg.com/got/-/got-11.8.6.tgz#276e827ead8772eddbcfc97170590b841823233a" + integrity sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g== + dependencies: + "@sindresorhus/is" "^4.0.0" + "@szmarczak/http-timer" "^4.0.5" + "@types/cacheable-request" "^6.0.1" + "@types/responselike" "^1.0.0" + cacheable-lookup "^5.0.3" + cacheable-request "^7.0.2" + decompress-response "^6.0.0" + http2-wrapper "^1.0.0-beta.5.2" + lowercase-keys "^2.0.0" + p-cancelable "^2.0.0" + responselike "^2.0.0" + +got@^9.6.0: + version "9.6.0" + resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" + integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== + dependencies: + "@sindresorhus/is" "^0.14.0" + "@szmarczak/http-timer" "^1.1.2" + cacheable-request "^6.0.0" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^4.1.0" + lowercase-keys "^1.0.1" + mimic-response "^1.0.1" + p-cancelable "^1.0.0" + to-readable-stream "^1.0.0" + url-parse-lax "^3.0.0" + +graceful-fs@^4.1.2, graceful-fs@^4.2.4, graceful-fs@^4.2.9: + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + +growly@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + integrity sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw== + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + +has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q== + 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 sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw== + 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 sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ== + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ== + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has-yarn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" + integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== + +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" + +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + +html-encoding-sniffer@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" + integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== + dependencies: + whatwg-encoding "^1.0.5" + +html-entities@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.3.tgz#117d7626bece327fc8baace8868fa6f5ef856e46" + integrity sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA== + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +http-cache-semantics@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + +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.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-proxy-agent@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" + integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== + dependencies: + "@tootallnate/once" "1" + agent-base "6" + debug "4" + +http2-wrapper@^1.0.0-beta.5.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" + integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== + dependencies: + quick-lru "^5.1.1" + resolve-alpn "^1.0.0" + +https-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + +iconv-lite@0.4.24, iconv-lite@^0.4.4: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ignore-by-default@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" + integrity sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA== + +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.1, ignore@^5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.1.tgz#c2b1f76cb999ede1502f3a226a9310fdfe88d46c" + integrity sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA== + +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@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + integrity sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A== + +import-local@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +import-modules@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-modules/-/import-modules-2.1.0.tgz#abe7df297cb6c1f19b57246eb8b8bd9664b6d8c2" + integrity sha512-8HEWcnkbGpovH9yInoisxaSoIg9Brbul+Ju3Kqe2UsYDUBJD/iQjSgEj0zPcTDPKfPp2fs5xlv1i+JSye/m1/A== + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +indent-string@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" + integrity sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg== + dependencies: + repeating "^2.0.0" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.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 sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== + +ini@1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" + integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== + +ini@~1.3.0: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +internal-slot@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.4.tgz#8551e7baf74a7a6ba5f749cfb16aa60722f0d6f3" + integrity sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ== + dependencies: + get-intrinsic "^1.1.3" + has "^1.0.3" + side-channel "^1.0.4" + +interpret@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4" + integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== + +ipaddr.js@1.9.1: + 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-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 sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A== + 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-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-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-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-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-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + +is-core-module@^2.8.1, is-core-module@^2.9.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" + integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== + 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 sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg== + 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.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-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-docker@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +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 sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== + +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.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-finite@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" + integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-installed-globally@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141" + integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g== + dependencies: + global-dirs "^2.0.1" + is-path-inside "^3.0.1" + +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-npm@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d" + integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg== + 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-inside@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-plain-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-potential-custom-element-name@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" + integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typedarray@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + integrity sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +is-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@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +is-yarn-global@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" + integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== + +isarray@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA== + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" + integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== + +istanbul-lib-instrument@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" + integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== + dependencies: + "@babel/core" "^7.7.5" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.0.0" + semver "^6.3.0" + +istanbul-lib-instrument@^5.0.4: + version "5.2.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" + integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== + dependencies: + "@babel/core" "^7.12.3" + "@babel/parser" "^7.14.7" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.2.0" + semver "^6.3.0" + +istanbul-lib-report@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" + integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^3.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" + integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.0.2: + version "3.1.5" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.5.tgz#cc9a6ab25cb25659810e4785ed9d9fb742578bae" + integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +jake@^10.8.5: + version "10.8.5" + resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.5.tgz#f2183d2c59382cb274226034543b9c03b8164c46" + integrity sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw== + dependencies: + async "^3.2.3" + chalk "^4.0.2" + filelist "^1.0.1" + minimatch "^3.0.4" + +jest-changed-files@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.6.2.tgz#f6198479e1cc66f22f9ae1e22acaa0b429c042d0" + integrity sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ== + dependencies: + "@jest/types" "^26.6.2" + execa "^4.0.0" + throat "^5.0.0" + +jest-cli@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.6.3.tgz#43117cfef24bc4cd691a174a8796a532e135e92a" + integrity sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg== + dependencies: + "@jest/core" "^26.6.3" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + import-local "^3.0.2" + is-ci "^2.0.0" + jest-config "^26.6.3" + jest-util "^26.6.2" + jest-validate "^26.6.2" + prompts "^2.0.1" + yargs "^15.4.1" + +jest-config@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.6.3.tgz#64f41444eef9eb03dc51d5c53b75c8c71f645349" + integrity sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg== + dependencies: + "@babel/core" "^7.1.0" + "@jest/test-sequencer" "^26.6.3" + "@jest/types" "^26.6.2" + babel-jest "^26.6.3" + chalk "^4.0.0" + deepmerge "^4.2.2" + glob "^7.1.1" + graceful-fs "^4.2.4" + jest-environment-jsdom "^26.6.2" + jest-environment-node "^26.6.2" + jest-get-type "^26.3.0" + jest-jasmine2 "^26.6.3" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + micromatch "^4.0.2" + pretty-format "^26.6.2" + +jest-diff@^26.0.0, jest-diff@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" + integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== + dependencies: + chalk "^4.0.0" + diff-sequences "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-docblock@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5" + integrity sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w== + dependencies: + detect-newline "^3.0.0" + +jest-each@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.6.2.tgz#02526438a77a67401c8a6382dfe5999952c167cb" + integrity sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A== + dependencies: + "@jest/types" "^26.6.2" + chalk "^4.0.0" + jest-get-type "^26.3.0" + jest-util "^26.6.2" + pretty-format "^26.6.2" + +jest-environment-jsdom@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz#78d09fe9cf019a357009b9b7e1f101d23bd1da3e" + integrity sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + jest-util "^26.6.2" + jsdom "^16.4.0" + +jest-environment-node@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.6.2.tgz#824e4c7fb4944646356f11ac75b229b0035f2b0c" + integrity sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + jest-util "^26.6.2" + +jest-get-type@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" + integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== + +jest-haste-map@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" + integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== + dependencies: + "@jest/types" "^26.6.2" + "@types/graceful-fs" "^4.1.2" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.4" + jest-regex-util "^26.0.0" + jest-serializer "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" + micromatch "^4.0.2" + sane "^4.0.3" + walker "^1.0.7" + optionalDependencies: + fsevents "^2.1.2" + +jest-jasmine2@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz#adc3cf915deacb5212c93b9f3547cd12958f2edd" + integrity sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg== + dependencies: + "@babel/traverse" "^7.1.0" + "@jest/environment" "^26.6.2" + "@jest/source-map" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + expect "^26.6.2" + is-generator-fn "^2.0.0" + jest-each "^26.6.2" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-runtime "^26.6.3" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + pretty-format "^26.6.2" + throat "^5.0.0" + +jest-leak-detector@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz#7717cf118b92238f2eba65054c8a0c9c653a91af" + integrity sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg== + dependencies: + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-matcher-utils@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz#8e6fd6e863c8b2d31ac6472eeb237bc595e53e7a" + integrity sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw== + dependencies: + chalk "^4.0.0" + jest-diff "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-message-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.6.2.tgz#58173744ad6fc0506b5d21150b9be56ef001ca07" + integrity sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA== + dependencies: + "@babel/code-frame" "^7.0.0" + "@jest/types" "^26.6.2" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.4" + micromatch "^4.0.2" + pretty-format "^26.6.2" + slash "^3.0.0" + stack-utils "^2.0.2" + +jest-mock@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.6.2.tgz#d6cb712b041ed47fe0d9b6fc3474bc6543feb302" + integrity sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + +jest-pnp-resolver@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" + integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== + +jest-regex-util@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" + integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== + +jest-resolve-dependencies@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz#6680859ee5d22ee5dcd961fe4871f59f4c784fb6" + integrity sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg== + dependencies: + "@jest/types" "^26.6.2" + jest-regex-util "^26.0.0" + jest-snapshot "^26.6.2" + +jest-resolve@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.2.tgz#a3ab1517217f469b504f1b56603c5bb541fbb507" + integrity sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ== + dependencies: + "@jest/types" "^26.6.2" + chalk "^4.0.0" + graceful-fs "^4.2.4" + jest-pnp-resolver "^1.2.2" + jest-util "^26.6.2" + read-pkg-up "^7.0.1" + resolve "^1.18.1" + slash "^3.0.0" + +jest-runner@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.6.3.tgz#2d1fed3d46e10f233fd1dbd3bfaa3fe8924be159" + integrity sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ== + dependencies: + "@jest/console" "^26.6.2" + "@jest/environment" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.7.1" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-config "^26.6.3" + jest-docblock "^26.0.0" + jest-haste-map "^26.6.2" + jest-leak-detector "^26.6.2" + jest-message-util "^26.6.2" + jest-resolve "^26.6.2" + jest-runtime "^26.6.3" + jest-util "^26.6.2" + jest-worker "^26.6.2" + source-map-support "^0.5.6" + throat "^5.0.0" + +jest-runtime@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.6.3.tgz#4f64efbcfac398331b74b4b3c82d27d401b8fa2b" + integrity sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw== + dependencies: + "@jest/console" "^26.6.2" + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/globals" "^26.6.2" + "@jest/source-map" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + cjs-module-lexer "^0.6.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.2.4" + jest-config "^26.6.3" + jest-haste-map "^26.6.2" + jest-message-util "^26.6.2" + jest-mock "^26.6.2" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + slash "^3.0.0" + strip-bom "^4.0.0" + yargs "^15.4.1" + +jest-serializer@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" + integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== + dependencies: + "@types/node" "*" + graceful-fs "^4.2.4" + +jest-snapshot@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.6.2.tgz#f3b0af1acb223316850bd14e1beea9837fb39c84" + integrity sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og== + dependencies: + "@babel/types" "^7.0.0" + "@jest/types" "^26.6.2" + "@types/babel__traverse" "^7.0.4" + "@types/prettier" "^2.0.0" + chalk "^4.0.0" + expect "^26.6.2" + graceful-fs "^4.2.4" + jest-diff "^26.6.2" + jest-get-type "^26.3.0" + jest-haste-map "^26.6.2" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-resolve "^26.6.2" + natural-compare "^1.4.0" + pretty-format "^26.6.2" + semver "^7.3.2" + +jest-util@^26.1.0, jest-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1" + integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + graceful-fs "^4.2.4" + is-ci "^2.0.0" + micromatch "^4.0.2" + +jest-validate@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec" + integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ== + dependencies: + "@jest/types" "^26.6.2" + camelcase "^6.0.0" + chalk "^4.0.0" + jest-get-type "^26.3.0" + leven "^3.1.0" + pretty-format "^26.6.2" + +jest-watcher@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.6.2.tgz#a5b683b8f9d68dbcb1d7dae32172d2cca0592975" + integrity sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ== + dependencies: + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + jest-util "^26.6.2" + string-length "^4.0.1" + +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" + +jest-worker@^27.4.5: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest@26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest/-/jest-26.6.3.tgz#40e8fdbe48f00dfa1f0ce8121ca74b88ac9148ef" + integrity sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q== + dependencies: + "@jest/core" "^26.6.3" + import-local "^3.0.2" + jest-cli "^26.6.3" + +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" + +jsdom@^16.4.0: + version "16.7.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" + integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== + dependencies: + abab "^2.0.5" + acorn "^8.2.4" + acorn-globals "^6.0.0" + cssom "^0.4.4" + cssstyle "^2.3.0" + data-urls "^2.0.0" + decimal.js "^10.2.1" + domexception "^2.0.1" + escodegen "^2.0.0" + form-data "^3.0.0" + html-encoding-sniffer "^2.0.1" + http-proxy-agent "^4.0.1" + https-proxy-agent "^5.0.0" + is-potential-custom-element-name "^1.0.1" + nwsapi "^2.2.0" + parse5 "6.0.1" + saxes "^5.0.1" + symbol-tree "^3.2.4" + tough-cookie "^4.0.0" + w3c-hr-time "^1.0.2" + w3c-xmlserializer "^2.0.0" + webidl-conversions "^6.1.0" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.5.0" + ws "^7.4.6" + xml-name-validator "^3.0.0" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ== + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: + 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 sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +json5@2.x, json5@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" + integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== + +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" + +keyv@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" + integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== + dependencies: + json-buffer "3.0.0" + +keyv@^4.0.0: + version "4.5.2" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.2.tgz#0e310ce73bf7851ec702f2eaf46ec4e3805cce56" + integrity sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g== + dependencies: + json-buffer "3.0.1" + +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 sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== + 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 sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw== + 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: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +kuler@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" + integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== + +latest-version@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" + integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== + dependencies: + package-json "^6.3.0" + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + integrity sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A== + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +loader-runner@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" + integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== + +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" + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.truncate@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" + integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== + +lodash@4.x, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.7.0: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +logform@^2.3.2, logform@^2.4.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/logform/-/logform-2.4.2.tgz#a617983ac0334d0c3b942c34945380062795b47c" + integrity sha512-W4c9himeAwXEdZ05dQNerhFz2XG80P9Oj0loPUMV23VC2it0orMHQhJm4hdnnor3rd1HsGf6a2lPwBM1zeXHGw== + dependencies: + "@colors/colors" "1.5.0" + fecha "^4.2.0" + ms "^2.1.1" + safe-stable-stringify "^2.3.1" + triple-beam "^1.3.0" + +loud-rejection@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + integrity sha512-RPNliZOFkqFumDhvYqOaNY4Uz9oJM2K9tC6JWsJJsNdhuONW4LQHRBpb0qf4pJApVffI5N39SwzWZJuEhfd7eQ== + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + +lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + +lru-cache@^4.0.3: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +make-dir@^3.0.0: + 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.x, 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== + +makeerror@1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" + integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== + dependencies: + tmpl "1.0.5" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== + +map-obj@^1.0.0, map-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg== + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w== + dependencies: + object-visit "^1.0.0" + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +memorystore@1.6.6: + version "1.6.6" + resolved "https://registry.yarnpkg.com/memorystore/-/memorystore-1.6.6.tgz#8ecb5bbda1d7b2c0587f04c570030c1644ef4d76" + integrity sha512-EbLl1xg9+DlnjXkZK/eMUoWyhZ1IxcWMpSuFyqyA/Z4BNuH7BR+E0yC40WbLZZ6G8LxHiUZ2DPhqV8DR8+9UQQ== + dependencies: + debug "^4.3.0" + lru-cache "^4.0.3" + +meow@^3.3.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + integrity sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA== + dependencies: + camelcase-keys "^2.0.0" + decamelize "^1.1.2" + loud-rejection "^1.0.0" + map-obj "^1.0.1" + minimist "^1.1.3" + normalize-package-data "^2.3.4" + object-assign "^4.0.1" + read-pkg-up "^1.0.1" + redent "^1.0.0" + trim-newlines "^1.0.0" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +metaflac-js2@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/metaflac-js2/-/metaflac-js2-1.0.8.tgz#ac7c60f0876ab01abb87a4c7711e3444da3d57f2" + integrity sha512-Ql39J3w4RPUEaTMRgq/CtGd6QXIH5cjUwexg/dupVxoamA94DCsUd3J6bH43JyXrd4L16FaxT4tc5f/sjNEiVw== + dependencies: + commander "^8.2.0" + probe-image-size "^7.2.1" + +methods@^1.1.2, methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +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, micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@^2.4.6: + version "2.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" + integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== + +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== + +mimic-response@^1.0.0, mimic-response@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + +minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^5.0.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.1.tgz#6c9dffcf9927ff2a31e74b5af11adf8b9604b022" + integrity sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g== + dependencies: + brace-expansion "^2.0.1" + +minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: + version "1.2.7" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" + integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== + +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@1.x, mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +morgan@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.10.0.tgz#091778abc1fc47cd3509824653dae1faab6b17d7" + integrity sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ== + dependencies: + basic-auth "~2.0.1" + debug "2.6.9" + depd "~2.0.0" + on-finished "~2.3.0" + on-headers "~1.0.2" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +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== + +multimap@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/multimap/-/multimap-1.1.0.tgz#5263febc085a1791c33b59bb3afc6a76a2a10ca8" + integrity sha512-0ZIR9PasPxGXmRsEF8jsDzndzHDj7tIav+JUmvIFB/WHswliFnquxECT/De7GR4yg99ky/NlRKJT82G1y271bw== + +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" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +needle@^2.5.2: + version "2.9.1" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.9.1.tgz#22d1dffbe3490c2b83e301f7709b6736cd8f2684" + integrity sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ== + dependencies: + debug "^3.2.6" + iconv-lite "^0.4.4" + sax "^1.2.4" + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +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== + +node-gyp-build@^4.2.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.5.0.tgz#7a64eefa0b21112f89f58379da128ac177f20e40" + integrity sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg== + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== + +node-notifier@^8.0.0: + version "8.0.2" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.2.tgz#f3167a38ef0d2c8a866a83e318c1ba0efeb702c5" + integrity sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg== + dependencies: + growly "^1.3.0" + is-wsl "^2.2.0" + semver "^7.3.2" + shellwords "^0.1.1" + uuid "^8.3.0" + which "^2.0.2" + +node-releases@^2.0.6: + version "2.0.7" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.7.tgz#593edbc7c22860ee4d32d3933cfebdfab0c0e0e5" + integrity sha512-EJ3rzxL9pTWPjk5arA0s0dgXpnyiAbJDE6wHT62g7VsgrgQgmmZ+Ru++M1BFofncWja+Pnn3rEr3fieRySAdKQ== + +nodemon-webpack-plugin@4.8.1: + version "4.8.1" + resolved "https://registry.yarnpkg.com/nodemon-webpack-plugin/-/nodemon-webpack-plugin-4.8.1.tgz#86220ef9517235918dfae0a265b98425a0b8f8bb" + integrity sha512-i6xTucitBolVAueD4OASt4jL5gNsAFuTuyn+y6O+NXUqHRVrsOFgOau49iLcjCJJaWAEXMVWpTc5Os79mp7IvQ== + dependencies: + "@types/nodemon" latest + nodemon "2.0.19" + +nodemon@2.0.19: + version "2.0.19" + resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.19.tgz#cac175f74b9cb8b57e770d47841995eebe4488bd" + integrity sha512-4pv1f2bMDj0Eeg/MhGqxrtveeQ5/G/UVe9iO6uTZzjnRluSA4PVWf8CW99LUPwGB3eNIA7zUFoP77YuI7hOc0A== + dependencies: + chokidar "^3.5.2" + debug "^3.2.7" + ignore-by-default "^1.0.1" + minimatch "^3.0.4" + pstree.remy "^1.1.8" + semver "^5.7.1" + simple-update-notifier "^1.0.7" + supports-color "^5.5.0" + touch "^3.1.0" + undefsafe "^2.0.5" + +nodemon@2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.7.tgz#6f030a0a0ebe3ea1ba2a38f71bf9bab4841ced32" + integrity sha512-XHzK69Awgnec9UzHr1kc8EomQh4sjTQ8oRf8TsGrSmHDx9/UmiGG9E/mM3BuTfNeFwdNBvrqQq/RHL0xIeyFOA== + dependencies: + chokidar "^3.2.2" + debug "^3.2.6" + ignore-by-default "^1.0.1" + minimatch "^3.0.4" + pstree.remy "^1.1.7" + semver "^5.7.1" + supports-color "^5.5.0" + touch "^3.1.0" + undefsafe "^2.0.3" + update-notifier "^4.1.0" + +nopt@~1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" + integrity sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg== + dependencies: + abbrev "1" + +normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, 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-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w== + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0, 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-url@^4.1.0: + version "4.5.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" + integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== + +normalize-url@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" + integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== + +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 sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw== + dependencies: + path-key "^2.0.0" + +npm-run-path@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +nwsapi@^2.2.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.2.tgz#e5418863e7905df67d51ec95938d67bf801f0bb0" + integrity sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw== + +object-assign@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ== + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-inspect@^1.12.2, object-inspect@^1.9.0: + version "1.12.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" + integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== + +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 sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA== + dependencies: + isobject "^3.0.0" + +object.assign@^4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" + object-keys "^1.1.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 sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== + dependencies: + isobject "^3.0.1" + +object.values@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" + integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww== + 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 sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +one-time@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz#e06bc174aed214ed58edede573b433bbf827cb45" + integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g== + dependencies: + fn.name "1.x.x" + +onetime@^5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.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" + +p-cancelable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" + integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== + +p-cancelable@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" + integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== + +p-each-series@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" + integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== + +p-limit@^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-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-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== + +package-json@^6.3.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" + integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== + dependencies: + got "^9.6.0" + registry-auth-token "^4.0.0" + registry-url "^5.0.0" + semver "^6.2.0" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ== + dependencies: + error-ex "^1.2.0" + +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" + +parse5@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + +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== + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + integrity sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ== + dependencies: + pinkie-promise "^2.0.0" + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^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 sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-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 sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== + +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + integrity sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg== + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^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== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== + 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 sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== + +pirates@^4.0.1: + version "4.0.5" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" + integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== + +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" + +pluralize@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" + integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== + +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 sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== + +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== + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== + +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA== + +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== + dependencies: + fast-diff "^1.1.2" + +prettier@2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5" + integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== + +pretty-format@^26.0.0, pretty-format@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" + integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== + dependencies: + "@jest/types" "^26.6.2" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^17.0.1" + +probe-image-size@^7.2.1: + version "7.2.3" + resolved "https://registry.yarnpkg.com/probe-image-size/-/probe-image-size-7.2.3.tgz#d49c64be540ec8edea538f6f585f65a9b3ab4309" + integrity sha512-HubhG4Rb2UH8YtV4ba0Vp5bQ7L78RTONYu/ujmCu5nBI8wGv24s4E9xSKBi0N1MowRpxk76pFCpJtW0KPzOK0w== + dependencies: + lodash.merge "^4.6.2" + needle "^2.5.2" + stream-parser "~0.3.1" + +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== + +prompts@^2.0.1: + version "2.4.2" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" + integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +proxy-addr@~2.0.5: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== + +psl@^1.1.33: + version "1.9.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" + integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== + +pstree.remy@^1.1.7, pstree.remy@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a" + integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== + +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@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +pupa@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62" + integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== + dependencies: + escape-goat "^2.0.0" + +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.11.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + dependencies: + side-channel "^1.0.4" + +querystringify@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" + integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + +ramda@0.27.1: + version "0.27.1" + resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.27.1.tgz#66fc2df3ef873874ffc2da6aa8984658abacf5c9" + integrity sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw== + +random-bytes@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/random-bytes/-/random-bytes-1.0.0.tgz#4f68a1dc0ae58bd3fb95848c30324db75d64360b" + integrity sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ== + +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: + 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@1.2.8, rc@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-is@^17.0.1: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" + integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + integrity sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A== + dependencies: + find-up "^1.0.0" + read-pkg "^1.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@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + integrity sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ== + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.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@^3.4.0, readable-stream@^3.6.0: + 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@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +rechoir@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.8.0.tgz#49f866e0d32146142da3ad8f0eff352b3215ff22" + integrity sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ== + dependencies: + resolve "^1.20.0" + +redent@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + integrity sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g== + dependencies: + indent-string "^2.1.0" + strip-indent "^1.0.1" + +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-tree@^0.1.22, regexp-tree@~0.1.1: + version "0.1.24" + resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.24.tgz#3d6fa238450a4d66e5bc9c4c14bb720e2196829d" + integrity sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw== + +regexp.prototype.flags@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" + integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + functions-have-names "^1.2.2" + +regexpp@^3.0.0, regexpp@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== + +registry-auth-token@^4.0.0: + version "4.2.2" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.2.tgz#f02d49c3668884612ca031419491a13539e21fac" + integrity sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg== + dependencies: + rc "1.2.8" + +registry-url@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" + integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== + dependencies: + rc "^1.2.8" + +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 sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== + +repeat-element@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" + integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== + +repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + integrity sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A== + dependencies: + is-finite "^1.0.0" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +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 sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + +reserved-words@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/reserved-words/-/reserved-words-0.1.2.tgz#00a0940f98cd501aeaaac316411d9adc52b31ab1" + integrity sha512-0S5SrIUJ9LfpbVl4Yzij6VipUdafHrOTzvmfazSw/jeZrZtQK303OPZW+obtkaw7jQlTQppy0UvZWm9872PbRw== + +resolve-alpn@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" + integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== + +resolve@^1.0.0, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.18.1, resolve@^1.20.0, resolve@^1.22.0: + version "1.22.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +responselike@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + integrity sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ== + dependencies: + lowercase-keys "^1.0.0" + +responselike@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc" + integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw== + dependencies: + lowercase-keys "^2.0.0" + +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== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^2.6.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.0, rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +rsvp@^4.8.4: + version "4.8.5" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" + integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +safe-buffer@5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@5.2.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-test@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-regex "^1.1.4" + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg== + dependencies: + ret "~0.1.10" + +safe-regex@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-2.1.1.tgz#f7128f00d056e2fe5c11e81a1324dd974aadced2" + integrity sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A== + dependencies: + regexp-tree "~0.1.1" + +safe-stable-stringify@^2.3.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.1.tgz#34694bd8a30575b7f94792aa51527551bd733d61" + integrity sha512-dVHE6bMtS/bnL2mwualjc6IxEv1F+OCUpA46pKUj6F8uDbUM0jCCulPqRNPSnWwGNKx5etqMjZYdXtrm5KJZGA== + +"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== + +sane@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" + integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== + dependencies: + "@cnakazawa/watch" "^1.0.3" + anymatch "^2.0.0" + capture-exit "^2.0.0" + exec-sh "^0.3.2" + execa "^1.0.0" + fb-watchman "^2.0.0" + micromatch "^3.1.4" + minimist "^1.1.1" + walker "~1.0.5" + +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== + +saxes@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" + integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== + dependencies: + xmlchars "^2.2.0" + +schema-utils@^3.1.0, schema-utils@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" + integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +semver-diff@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" + integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== + dependencies: + semver "^6.3.0" + +"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.7.1: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@7.x, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: + version "7.3.8" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== + dependencies: + lru-cache "^6.0.0" + +semver@^6.0.0, semver@^6.1.0, semver@^6.2.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.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + +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@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" + integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== + dependencies: + randombytes "^2.1.0" + +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 sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + +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.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" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== + 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 sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== + +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== + +shellwords@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" + integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== + +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: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== + dependencies: + is-arrayish "^0.3.1" + +simple-update-notifier@^1.0.7: + version "1.1.0" + resolved "https://registry.yarnpkg.com/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz#67694c121de354af592b347cdba798463ed49c82" + integrity sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg== + dependencies: + semver "~7.0.0" + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +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" + +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.12, source-map-support@^0.5.17, source-map-support@^0.5.6, source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== + +source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.7.3: + version "0.7.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== + +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.12" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz#69077835abe2710b65f03969898b6637b505a779" + integrity sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA== + +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" + +spotify-web-api-node@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/spotify-web-api-node/-/spotify-web-api-node-5.0.2.tgz#683669b3ccc046a5a357300f151df93a2b3539fe" + integrity sha512-r82dRWU9PMimHvHEzL0DwEJrzFk+SMCVfq249SLt3I7EFez7R+jeoKQd+M1//QcnjqlXPs2am4DFsGk8/GCsrA== + dependencies: + superagent "^6.1.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 sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + +stack-trace@0.0.x: + version "0.0.10" + resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" + integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== + +stack-utils@^2.0.2: + version "2.0.6" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" + integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== + dependencies: + escape-string-regexp "^2.0.0" + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g== + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +"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 sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + +stream-parser@~0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/stream-parser/-/stream-parser-0.3.1.tgz#1618548694420021a1182ff0af1911c129761773" + integrity sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ== + dependencies: + debug "2" + +string-length@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" + integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== + dependencies: + char-regex "^1.0.2" + strip-ansi "^6.0.0" + +string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string.prototype.trimend@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" + integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string.prototype.trimstart@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" + integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +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" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + integrity sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g== + dependencies: + is-utf8 "^0.2.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 sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q== + +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@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + integrity sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA== + dependencies: + get-stdin "^4.0.1" + +strip-json-comments@^2.0.0, strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + +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== + +superagent@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/superagent/-/superagent-6.1.0.tgz#09f08807bc41108ef164cfb4be293cebd480f4a6" + integrity sha512-OUDHEssirmplo3F+1HWKUrUjvnQuA+nZI6i/JJBdXb5eq9IyEQwPyPpqND+SSsxf6TygpBEkUjISVRN4/VOpeg== + dependencies: + component-emitter "^1.3.0" + cookiejar "^2.1.2" + debug "^4.1.1" + fast-safe-stringify "^2.0.7" + form-data "^3.0.0" + formidable "^1.2.2" + methods "^1.1.2" + mime "^2.4.6" + qs "^6.9.4" + readable-stream "^3.6.0" + semver "^7.3.2" + +supertest@6.1.3: + version "6.1.3" + resolved "https://registry.yarnpkg.com/supertest/-/supertest-6.1.3.tgz#3f49ea964514c206c334073e8dc4e70519c7403f" + integrity sha512-v2NVRyP73XDewKb65adz+yug1XMtmvij63qIWHZzSX8tp6wiq6xBLUy4SUAd2NII6wIipOmHT/FD9eicpJwdgQ== + dependencies: + methods "^1.1.2" + superagent "^6.1.0" + +supports-color@^5.3.0, supports-color@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-hyperlinks@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz#3943544347c1ff90b15effb03fc14ae45ec10624" + integrity sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA== + dependencies: + has-flag "^4.0.0" + supports-color "^7.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +symbol-tree@^3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + +table@^6.0.4: + version "6.8.1" + resolved "https://registry.yarnpkg.com/table/-/table-6.8.1.tgz#ea2b71359fe03b017a5fbc296204471158080bdf" + integrity sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA== + dependencies: + ajv "^8.0.1" + lodash.truncate "^4.4.2" + slice-ansi "^4.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + +tapable@^2.1.1, tapable@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + +term-size@^2.1.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.1.tgz#2a6a54840432c2fb6320fea0f415531e90189f54" + integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg== + +terminal-link@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" + integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== + dependencies: + ansi-escapes "^4.2.1" + supports-hyperlinks "^2.0.0" + +terser-webpack-plugin@^5.1.3: + version "5.3.6" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz#5590aec31aa3c6f771ce1b1acca60639eab3195c" + integrity sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ== + dependencies: + "@jridgewell/trace-mapping" "^0.3.14" + jest-worker "^27.4.5" + schema-utils "^3.1.1" + serialize-javascript "^6.0.0" + terser "^5.14.1" + +terser@^5.14.1: + version "5.16.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.16.1.tgz#5af3bc3d0f24241c7fb2024199d5c461a1075880" + integrity sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw== + dependencies: + "@jridgewell/source-map" "^0.3.2" + acorn "^8.5.0" + commander "^2.20.0" + source-map-support "~0.5.20" + +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + +text-hex@1.0.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" + integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +throat@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" + integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== + +tmpl@1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" + integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + +to-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 sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg== + dependencies: + kind-of "^3.0.2" + +to-readable-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" + integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== + +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 sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg== + 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" + +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== + +touch@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" + integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== + dependencies: + nopt "~1.0.10" + +tough-cookie@^4.0.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.2.tgz#e53e84b85f24e0b65dd526f46628db6c85f6b874" + integrity sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ== + dependencies: + psl "^1.1.33" + punycode "^2.1.1" + universalify "^0.2.0" + url-parse "^1.5.3" + +tr46@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" + integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== + dependencies: + punycode "^2.1.1" + +tree-kill@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" + integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== + +trim-newlines@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + integrity sha512-Nm4cF79FhSTzrLKGDMi3I4utBtFv8qKy4sq1enftf2gMdpqI8oVQTAfySkTz5r49giVzDj88SVZXP4CeYQwjaw== + +triple-beam@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9" + integrity sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw== + +ts-jest@26.5.4: + version "26.5.4" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-26.5.4.tgz#207f4c114812a9c6d5746dd4d1cdf899eafc9686" + integrity sha512-I5Qsddo+VTm94SukBJ4cPimOoFZsYTeElR2xy6H2TOVs+NsvgYglW8KuQgKoApOKuaU/Ix/vrF9ebFZlb5D2Pg== + dependencies: + bs-logger "0.x" + buffer-from "1.x" + fast-json-stable-stringify "2.x" + jest-util "^26.1.0" + json5 "2.x" + lodash "4.x" + make-error "1.x" + mkdirp "1.x" + semver "7.x" + yargs-parser "20.x" + +ts-loader@9.4.2: + version "9.4.2" + resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.4.2.tgz#80a45eee92dd5170b900b3d00abcfa14949aeb78" + integrity sha512-OmlC4WVmFv5I0PpaxYb+qGeGOdm5giHU7HwDDUjw59emP2UYMHy9fFSDcYgSNoH8sXcj4hGCSEhlDZ9ULeDraA== + dependencies: + chalk "^4.1.0" + enhanced-resolve "^5.0.0" + micromatch "^4.0.0" + semver "^7.3.4" + +ts-node-dev@1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/ts-node-dev/-/ts-node-dev-1.1.6.tgz#ee2113718cb5a92c1c8f4229123ad6afbeba01f8" + integrity sha512-RTUi7mHMNQospArGz07KiraQcdgUVNXKsgO2HAi7FoiyPMdTDqdniB6K1dqyaIxT7c9v/VpSbfBZPS6uVpaFLQ== + dependencies: + chokidar "^3.5.1" + dateformat "~1.0.4-1.2.3" + dynamic-dedupe "^0.3.0" + minimist "^1.2.5" + mkdirp "^1.0.4" + resolve "^1.0.0" + rimraf "^2.6.1" + source-map-support "^0.5.12" + tree-kill "^1.2.2" + ts-node "^9.0.0" + tsconfig "^7.0.0" + +ts-node@9.1.1, 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" + +ts-toolbelt@^6.15.1: + version "6.15.5" + resolved "https://registry.yarnpkg.com/ts-toolbelt/-/ts-toolbelt-6.15.5.tgz#cb3b43ed725cb63644782c64fbcad7d8f28c0a83" + integrity sha512-FZIXf1ksVyLcfr7M317jbB67XFJhOO1YqdTcuGaq9q5jLUoTikukZ+98TPjKiP2jC5CgmYdWWYs0s2nLSU0/1A== + +tsconfig-paths@^3.14.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" + integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.1" + minimist "^1.2.6" + strip-bom "^3.0.0" + +tsconfig@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/tsconfig/-/tsconfig-7.0.0.tgz#84538875a4dc216e5c4a5432b3a4dec3d54e91b7" + integrity sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw== + dependencies: + "@types/strip-bom" "^3.0.0" + "@types/strip-json-comments" "0.0.30" + strip-bom "^3.0.0" + strip-json-comments "^2.0.0" + +tslib@^1.8.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tsutils@^3.17.1, tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== + dependencies: + prelude-ls "~1.1.2" + +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +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.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.4.tgz#8610b59747de028fda898a8aef0e103f156d0961" + integrity sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg== + +uid-safe@~2.1.5: + version "2.1.5" + resolved "https://registry.yarnpkg.com/uid-safe/-/uid-safe-2.1.5.tgz#2b3d5c7240e8fc2e58f8aa269e5ee49c0857bd3a" + integrity sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA== + dependencies: + random-bytes "~1.0.0" + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +undefsafe@^2.0.3, undefsafe@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c" + integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== + +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" + +unique-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" + integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== + dependencies: + crypto-random-string "^2.0.0" + +universalify@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" + integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== + +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 sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ== + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +update-browserslist-db@^1.0.9: + version "1.0.10" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" + integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + +update-notifier@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.3.tgz#be86ee13e8ce48fb50043ff72057b5bd598e1ea3" + integrity sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A== + dependencies: + boxen "^4.2.0" + chalk "^3.0.0" + configstore "^5.0.1" + has-yarn "^2.1.0" + import-lazy "^2.1.0" + is-ci "^2.0.0" + is-installed-globally "^0.3.1" + is-npm "^4.0.0" + is-yarn-global "^0.3.0" + latest-version "^5.0.0" + pupa "^2.0.1" + semver-diff "^3.1.1" + xdg-basedir "^4.0.0" + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg== + +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + integrity sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ== + dependencies: + prepend-http "^2.0.0" + +url-parse@^1.5.3: + version "1.5.10" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" + integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + +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== + +utf-8-validate@5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.5.tgz#dd32c2e82c72002dc9f02eb67ba6761f43456ca1" + integrity sha512-+pnxRYsS/axEpkrrEpzYfNZGXp0IjC/9RIxwM5gntY4Koi8SHmUGSfxfWqxZdRxrtaoVstuOzUp/rbs3JSPELQ== + dependencies: + node-gyp-build "^4.2.0" + +util-deprecate@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +uuid@8.3.2, uuid@^8.3.0: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +v8-compile-cache@^2.0.3: + version "2.3.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" + integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== + +v8-to-istanbul@^7.0.0: + version "7.1.2" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz#30898d1a7fa0c84d225a2c1434fb958f290883c1" + integrity sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + source-map "^0.7.3" + +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" + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +vue-eslint-parser@^7.10.0: + version "7.11.0" + resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-7.11.0.tgz#214b5dea961007fcffb2ee65b8912307628d0daf" + integrity sha512-qh3VhDLeh773wjgNTl7ss0VejY9bMMa0GoDG2fQVyDzRFdiU3L7fw74tWZDHNQXdZqxO3EveQroa9ct39D2nqg== + dependencies: + debug "^4.1.1" + eslint-scope "^5.1.1" + eslint-visitor-keys "^1.1.0" + espree "^6.2.1" + esquery "^1.4.0" + lodash "^4.17.21" + semver "^6.3.0" + +w3c-hr-time@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== + dependencies: + browser-process-hrtime "^1.0.0" + +w3c-xmlserializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" + integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== + dependencies: + xml-name-validator "^3.0.0" + +walker@^1.0.7, walker@~1.0.5: + version "1.0.8" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" + integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== + dependencies: + makeerror "1.0.12" + +watchpack@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" + integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + +webidl-conversions@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" + integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== + +webidl-conversions@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" + integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== + +webpack-cli@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-5.0.1.tgz#95fc0495ac4065e9423a722dec9175560b6f2d9a" + integrity sha512-S3KVAyfwUqr0Mo/ur3NzIp6jnerNpo7GUO6so51mxLi1spqsA17YcMXy0WOIJtBSnj748lthxC6XLbNKh/ZC+A== + dependencies: + "@discoveryjs/json-ext" "^0.5.0" + "@webpack-cli/configtest" "^2.0.1" + "@webpack-cli/info" "^2.0.1" + "@webpack-cli/serve" "^2.0.1" + colorette "^2.0.14" + commander "^9.4.1" + cross-spawn "^7.0.3" + envinfo "^7.7.3" + fastest-levenshtein "^1.0.12" + import-local "^3.0.2" + interpret "^3.1.1" + rechoir "^0.8.0" + webpack-merge "^5.7.3" + +webpack-merge@^5.7.3: + version "5.8.0" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.8.0.tgz#2b39dbf22af87776ad744c390223731d30a68f61" + integrity sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q== + dependencies: + clone-deep "^4.0.1" + wildcard "^2.0.0" + +webpack-sources@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" + integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== + +webpack@5.75.0: + version "5.75.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.75.0.tgz#1e440468647b2505860e94c9ff3e44d5b582c152" + integrity sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ== + dependencies: + "@types/eslint-scope" "^3.7.3" + "@types/estree" "^0.0.51" + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/wasm-edit" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + acorn "^8.7.1" + acorn-import-assertions "^1.7.6" + browserslist "^4.14.5" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.10.0" + es-module-lexer "^0.9.0" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.9" + json-parse-even-better-errors "^2.3.1" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.1.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.1.3" + watchpack "^2.4.0" + webpack-sources "^3.2.3" + +whatwg-encoding@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + +whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url@^8.0.0, whatwg-url@^8.5.0: + version "8.7.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" + integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== + dependencies: + lodash "^4.7.0" + tr46 "^2.1.0" + webidl-conversions "^6.1.0" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q== + +which@^1.2.9: + 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, which@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +widest-line@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" + integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== + dependencies: + string-width "^4.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== + +winston-transport@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.5.0.tgz#6e7b0dd04d393171ed5e4e4905db265f7ab384fa" + integrity sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q== + dependencies: + logform "^2.3.2" + readable-stream "^3.6.0" + triple-beam "^1.3.0" + +winston@3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/winston/-/winston-3.6.0.tgz#be32587a099a292b88c49fac6fa529d478d93fb6" + integrity sha512-9j8T75p+bcN6D00sF/zjFVmPp+t8KMPB1MzbbzYjeN9VWxdsYnTB40TkbNUEXAmILEfChMvAMgidlX64OG3p6w== + dependencies: + "@dabh/diagnostics" "^2.0.2" + async "^3.2.3" + is-stream "^2.0.0" + logform "^2.4.0" + one-time "^1.0.0" + readable-stream "^3.4.0" + safe-stable-stringify "^2.3.1" + stack-trace "0.0.x" + triple-beam "^1.3.0" + winston-transport "^4.5.0" + +word-wrap@^1.2.3, 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@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +ws@7.4.5: + version "7.4.5" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.5.tgz#a484dd851e9beb6fdb420027e3885e8ce48986c1" + integrity sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g== + +ws@^7.4.6: + version "7.5.9" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" + integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + +xdg-basedir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" + integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + +xmlchars@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +xtend@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yargs-parser@20.x, yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs-parser@^18.1.2: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs@17.0.1: + version "17.0.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.0.1.tgz#6a1ced4ed5ee0b388010ba9fd67af83b9362e0bb" + integrity sha512-xBBulfCc8Y6gLFcrPvtqKz9hz8SO0l1Ni8GgDekvBX2ro0HRQImDGnikfc33cgzcYUSncapnNcZDjVFIH3f6KQ== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yargs@^15.4.1: + version "15.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.2" + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== diff --git a/webui/.eslintrc.yml b/webui/.eslintrc.yml new file mode 100644 index 0000000..914bd5f --- /dev/null +++ b/webui/.eslintrc.yml @@ -0,0 +1,17 @@ +--- +extends: + - "@nuxtjs" + - plugin:prettier/recommended +plugins: + - "@typescript-eslint" +parserOptions: + parser: "@typescript-eslint/parser" +rules: + "@typescript-eslint/no-unused-vars": + - error + - args: all + argsIgnorePattern: ^_ + no-unused-vars: off + no-console: off + camelcase: off + vue/no-v-html: off diff --git a/webui/.gitattributes b/webui/.gitattributes new file mode 100644 index 0000000..ee783f9 --- /dev/null +++ b/webui/.gitattributes @@ -0,0 +1,148 @@ +## Source: https://github.com/ptkdev-boilerplate/node-cli-boilerplate/blob/main/.gitattributes + +## AUTO-DETECT +* text=auto + +## SOURCE CODE +*.bat text eol=crlf +*.css text eol=lf +*.html text diff=html eol=lf +*.ini text eol=crlf +*.js text eol=lf +*.json text eol=lf +*.php text diff=php eol=lf +*.py text diff=python eol=lf +*.rb text diff=ruby +*.sass text eol=lf +*.scss text eol=lf +*.sh text eol=lf +*.sql text eol=lf +*.ts text eol=lf +*.vue text eol=lf +*.svelte text eol=lf +*.xml text eol=lf +*.xhtml text diff=html eol=lf + +## DOCKER +*.dockerignore text eol=lf +Dockerfile text eol=lf + +## DOCUMENTATION +*.md text eol=lf +*.txt text eol=lf +AUTHORS text eol=lf +CHANGELOG text eol=lf +CHANGES text eol=lf +CONTRIBUTING text eol=lf +COPYING text eol=lf +INSTALL text eol=lf +license text eol=lf +LICENSE text eol=lf +NEWS text eol=lf +README text eol=lf +TODO text eol=lf + +## TEMPLATES +*.dot text eol=lf +*.tpl text eol=lf +*.twig text eol=lf + +## LINTERS +.csslintrc text eol=lf +.eslintrc text eol=lf +.htmlhintrc text eol=lf +.jscsrc text eol=lf +.jshintrc text eol=lf +.jshintignore text eol=lf +.stylelintrc text eol=lf +.npmignore text eol=lf + +## CONFIGS +*.bowerrc text eol=lf +*.cnf text eol=lf +*.conf text eol=lf +*.config text eol=lf +.babelrc text eol=lf +.browserslistrc text eol=lf +.editorconfig text eol=lf +.env text eol=lf +.gitattributes text eol=lf +.gitconfig text eol=lf +.htaccess text eol=lf +*.lock text eol=lf +*.npmignore text eol=lf +*.yaml text eol=lf +*.yml text eol=lf +browserslist text eol=lf +Makefile text eol=lf +makefile text eol=lf + +## GRAPHICS +*.ai binary +*.bmp binary +*.eps binary +*.gif binary +*.ico binary +*.jng binary +*.jp2 binary +*.jpg binary +*.jpeg binary +*.jpx binary +*.jxr binary +*.pdf binary +*.png binary +*.psb binary +*.psd binary +*.svg text +*.svgz binary +*.tif binary +*.tiff binary +*.wbmp binary +*.webp binary + +## AUDIO +*.kar binary +*.m4a binary +*.mid binary +*.midi binary +*.mp3 binary +*.ogg binary +*.ra binary + +## VIDEO +*.3gpp binary +*.3gp binary +*.as binary +*.asf binary +*.asx binary +*.fla binary +*.flv binary +*.m4v binary +*.mng binary +*.mov binary +*.mp4 binary +*.mpeg binary +*.mpg binary +*.ogv binary +*.swc binary +*.swf binary +*.webm binary + +## ARCHIVES +*.7z binary +*.gz binary +*.jar binary +*.rar binary +*.tar binary +*.zip binary + +## FONTS +*.ttf binary +*.eot binary +*.otf binary +*.woff binary +*.woff2 binary + +## EXECUTABLES +*.exe binary +*.pyc binary diff --git a/webui/.gitignore b/webui/.gitignore new file mode 100644 index 0000000..e7fbb3b --- /dev/null +++ b/webui/.gitignore @@ -0,0 +1,37 @@ +__pycache__ +*/__pycache__ + +.DS_Store +node_modules + +# pyinstaller build dirs +/dist +/build + +# local env files +/env/ +/venv/ +.env.local +.env.*.local + +# Log files +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Editor directories and files +# .vscode +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +# Private configs +/config.py +tailwind.config.full.js + +# development +*.map +public/js/bundle.js diff --git a/webui/.prettierrc.yml b/webui/.prettierrc.yml new file mode 100644 index 0000000..10839b1 --- /dev/null +++ b/webui/.prettierrc.yml @@ -0,0 +1,10 @@ +--- +useTabs: true +tabWidth: 2 +semi: false +singleQuote: true +bracketSpacing: true +trailingComma: none +printWidth: 120 +arrowParens: avoid +vueIndentScriptAndStyle: false diff --git a/webui/COMPILE-UI.md b/webui/COMPILE-UI.md new file mode 100644 index 0000000..a9e8e02 --- /dev/null +++ b/webui/COMPILE-UI.md @@ -0,0 +1,104 @@ +**NOTE: THIS FILE IS NEEDED JUST FOR DEVELOPERS OF THIS PROJECT, IF YOU AREN'T YOU CAN IGNORE IT** + +This file explains how to compile files for the WebUI. + +# What you need to do just the first time + +1. Download and install Node.js, you can download it [here](https://nodejs.org/en/download/) (also installs npm) + +2. Once you have finished to install Node.js, check if everything is ok by running in a terminal the commands + +```bash +$ node -v +``` +and then +```bash +$ npm -v +``` + +If you see the corresponding versions of node and npm, you can move onto install yarn. + +3. Install the yarn package manager by running in a terminal the command + +```bash +$ npm install -g yarn +``` + +You may want to use `sudo` with that if it gives you permission errors. + +4. Check if yarn has been installed correctly by running in a terminal the command + +```bash +$ yarn --version +``` + +If you see the version number of yarm, you are ready to code! + +5. Go to the root of this project, open your favorite terminal and run + +```bash +$ yarn install +``` + +To work on this webui you will need a working server as well. If you've downloaded this with deemix-gui you can run in a terminal positioned inside the deemix-gui folder the command + +```bash +$ yarn install-all-dev +``` + +To install all dependencies for all the modules (gui, server and webui) + +# Scripts + +## Development + +By simply running + +```bash +$ yarn dev +``` + +you will have 2 tasks running at the same time: +- the server +- the [rollup](https://rollupjs.org/guide/en/) watcher pointing to the configured `.js` file and ready to re-bundle + +Note that in development mode 1 more file (`bundle.js.map`) will be created in the public folder. This file will be deleted when running the build command, so you don't need to worry about it. + +**You can now go to http://127.0.0.1:6595 and see the app running.** + +### Editing files + +You can edit `.scss` and `.js` files and simply refresh the page to see your new code directly in the app. + +However, if you need to edit the `public/index.html` file you'll have to kill the terminal and re-run `npm run dev` to see your edits. + +### Adding files + +If you want to add new `.js` or `.vue` files, just add them. deemix uses ES6 synthax, so you'll probably need to export some functions or variables from your new file. Files that will export and import nothing will be ignored by the bundler (rollup). + +If you want to add new `.scss` (style) files, you need to import them in the main `style.scss` file. The `.scss` files **must** all start with an underscore _, except for the `style.scss` file. + +## Building + +When you want to deploy your application, you **must** run + +```bash +$ yarn build +``` + +This is necessary to get + +- a bundled `.js` file **minified** +- deleted the `.map` file + +in order to drop the final application size (we are talking about MBs, maps are heavy). + +# Other + +If you notice that another team member installed or updated one or more new packages, just run + +```bash +$ yarn install +``` + +and you will be fine. diff --git a/webui/LICENSE.txt b/webui/LICENSE.txt new file mode 100644 index 0000000..810fce6 --- /dev/null +++ b/webui/LICENSE.txt @@ -0,0 +1,621 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS diff --git a/webui/README.md b/webui/README.md new file mode 100644 index 0000000..65e4c4f --- /dev/null +++ b/webui/README.md @@ -0,0 +1,32 @@ +# deemix-webui + +This is just the WebUI for deemix, it should be used with deemix-gui or something like that. +If you are a web developer and want to contribute to this project, please read the [COMPILE-UI](COMPILE-UI.md) file. + +# "Hidden" features + +- `CTRL+SHIFT+Backspace` deletes all the search bar content +- `CTRL+F` focuses the search bar +- `CTRL+B` toggles the download bar +- `ALT+Left` goes back to the previous page, if present (like would happen in the browser) +- `ALT+Right` goes forward to the next page, if present (like would happen in the browser) +- Custom context menu: on certain elements, like download buttons or album covers, when opening the context menu, a custom one with more options will appear instead of the default one + +# Deps + +- `rollup-plugin-vue@4.2.0` is needed because of https://github.com/vuejs/rollup-plugin-vue/issues/238 + +# License + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . diff --git a/webui/babel.config.js b/webui/babel.config.js new file mode 100644 index 0000000..6b68345 --- /dev/null +++ b/webui/babel.config.js @@ -0,0 +1,7 @@ +module.exports = { + env: { + test: { + plugins: ['@babel/plugin-transform-modules-commonjs'] + } + } +} diff --git a/webui/jest.config.js b/webui/jest.config.js new file mode 100644 index 0000000..edbf306 --- /dev/null +++ b/webui/jest.config.js @@ -0,0 +1,13 @@ +module.exports = { + clearMocks: true, + roots: ['/src', '/tests'], + testEnvironment: 'node', + // preset: 'ts-jest', + setupFiles: ['dotenv/config'], + transform: { + '^.+\\.[t|j]sx?$': 'babel-jest' + }, + moduleNameMapper: { + '@/(.*)': ['/src/$1'] + } +} diff --git a/webui/package.json b/webui/package.json new file mode 100644 index 0000000..6a57988 --- /dev/null +++ b/webui/package.json @@ -0,0 +1,61 @@ +{ + "name": "deemix-webui", + "version": "2.0.0-rc.1", + "scripts": { + "clean": "rimraf public/js/bundle.js public/js/bundle.temp.js public/js/bundle.js.map", + "clean-temp": "rimraf public/js/bundle.temp.js", + "build:js": "rollup -c", + "minify": "esbuild public/js/bundle.temp.js --outfile=public/js/bundle.js --minify", + "build": "npm-run-all --sequential clean build:js minify clean-temp", + "start:gui": "yarn --cwd ../ start", + "watch:server": "yarn --cwd ../server watch", + "watch:js": "rollup -c -w", + "dev": "npm-run-all --parallel watch:server watch:js", + "lint": "eslint src/**/*.{js,vue,mjs} --fix", + "lint-tests": "eslint src/**/*.js --fix", + "test": "jest", + "test-watch": "jest --watch", + "testlang": "node ./tests/testlang.js" + }, + "dependencies": { + "@rollup/plugin-alias": "3.1.5", + "@rollup/plugin-commonjs": "20.0.0", + "@rollup/plugin-node-resolve": "13.0.4", + "@rollup/plugin-replace": "3.0.0", + "@vue/composition-api": "1.0.6", + "esbuild": "0.12.19", + "flag-icon-css": "3.5.0", + "lodash-es": "4.17.21", + "npm-run-all": "4.1.5", + "postcss": "8.3.6", + "rimraf": "3.0.2", + "rollup": "2.56.1", + "rollup-plugin-analyzer": "4.0.0", + "rollup-plugin-postcss": "4.0.0", + "rollup-plugin-svg": "2.0.0", + "rollup-plugin-vue": "4.2.0", + "svg-country-flags": "1.2.10", + "tailwindcss": "1.9.6", + "toastify-js": "1.11.1", + "vue": "2.6.14", + "vue-i18n": "8.25.0", + "vue-router": "3.5.2", + "vuex": "3.6.2" + }, + "devDependencies": { + "@babel/core": "7.15.0", + "@babel/plugin-transform-modules-commonjs": "7.15.0", + "@nuxtjs/eslint-config": "6.0.1", + "@types/jest": "26.0.24", + "@typescript-eslint/eslint-plugin": "4.29.0", + "@typescript-eslint/parser": "4.29.0", + "babel-jest": "27.0.6", + "eslint": "7.32.0", + "eslint-config-prettier": "8.3.0", + "eslint-plugin-prettier": "3.4.0", + "jest": "27.0.6", + "prettier": "2.3.2", + "typescript": "4.3.5", + "vue-template-compiler": "2.6.14" + } + } \ No newline at end of file diff --git a/webui/postcss.config.js b/webui/postcss.config.js new file mode 100644 index 0000000..941cff2 --- /dev/null +++ b/webui/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {} + } +} diff --git a/webui/public/favicon.ico b/webui/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..7c07bf81407a995d30cf51533ab39efa91efec3f GIT binary patch literal 244199 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
3kq!Kqk$#9RbBD{)X*x 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
bg=or|Qd4zvN23G$0^){qgxvf3(GPYk)?O4s(S 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�x_3$vma<|0V_bm3A-K_k7c-j9`90`g@&8#(MpM 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%0Aq*nP)G4=y?#Yb*i* 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

DrmI)kIo{*_s#lK(ecpK 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 HXY3IGTqgj~ literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN7rgOXOhpOqc.woff2 b/webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN7rgOXOhpOqc.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..c805bc07444dec9415abe72e1ad9fdb9e1c6d438 GIT binary patch literal 11708 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 literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN7rgOXehpOqc.woff2 b/webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN7rgOXehpOqc.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..ea8feb29fbc35f2aabdc4eb66aaab1920c1a2bf3 GIT binary patch literal 6236 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 literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN7rgOXuhpOqc.woff2 b/webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN7rgOXuhpOqc.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..1302cd53e2294a058aaf06b2ed5c90f0273bfed6 GIT binary patch literal 2348 zcmV+{3Dfp>Pew8T0RR9100}Gr5dZ)H01u=900__k0RR9100000000000000000000 z0000Q92*cE8U|nhEC_)r36EeA3<`p9f?5j@00A}vBm*1-AO(X$2S*HncpF#_QB;lM zARh_k7+3q*2u*V5g|#Se0({a-5O$!prM*D)HC)mLkoo!Qx- z0$>?oqil@n?YXT@AMsoWx8i^wNvM>6qZgi7UBx{B2>rH(Y=A;^w^oWgWMjCN!QvU7 zf_~I61Q5<4MTdh#pmCwVfs4opoLj~ck61Q7zXBWdV5vEk`_MqUMDv13J9CsTGb8@9 zDN2}4FB(_r5cO2bUFD~BRbi&J%-5i&1*6$*J6-8B5my4JBibE+i39{PwACsmsgxJc znGS`HsgLfG=t7Ss4tfn{Yi6|Pp#Z9ZbZvsrcc+!*!D#8uE#|-TLf;0@41E;5kFUQc z*aMlyx!33XArOVU$}K|SkM&RDdp_hA_!I3GGY=nVwYIvlytKG5KQ|k`H|WmTf3DS>ez)qMg?GHSPaUhc3g)Cb*AO5tw1sn9`C}GFQaW-RDaoHo~K*Q0hXY5F-5wdy{LC_D#=HI|6pXFC(T#( z#n>gArcv02?dXxhRHR!?o08UkjgxF%i^ObIz#)0hn&Z-%@Pb4pkJ(r8;VpTl5SG*dxg7c^xx(3Zm&p}$5BlYt=qgNA zrB&Oz__kr&$jvTS%tN7(MjF(P#+p6LYkwexbjrHPstQ*iTza5x1luqZ@UXNmf$Bgp zN1X66<7c>XSSnSW_T2;zLIs^W`y5XB8HKz)sgN3n`Uc8K9&3Lri(KyXB$0DEEH29_ zzuU(n{YE5s7MZ6#Qmv*_5aC`MJ(QVQ*}upnsFAHv{BFSV!BcjAK~(4RVBRJ|q!&yctK7n1dxajlQ!gKV)aUFI-GxU;NW<06cn*m} zItkF{9f_dNyB??mmk_>xRekGFr)xSoIg3J`aUnDZE4-<3#G+-=GP9Z;h++|I>5yI* zw#JljOEcvZ-3hy1i7H^+(bG{O&(nHF#FCN;G1|REZbD>4Rur6~!xGA*Z-?VcK}c4R z?+Ua?0Tzqp&0`TSWCfGqaa!mwU$W+Te(iy3DSrv&o5o<1f1?3b;qmv3n%cnJl0Kb~>1c&K2#xeqYns)Ev?i^bgj@=yVs6rUCDV z$^#eqnV*?;592DX8yg(%C63RF5h&PjgkIx>Dh+NP3FyFaKp%&PFRnv@Na-nBQPpsV z$G*wE!PV=uM{e5rS@_{E@93D?Rk^V2_q+eR+yDI! ztM9(|uRPP%E+jO3IjDqefcjhFC<{qwmV zIqs#3hbzj<5P(Q{_xA6SlSiE={%*6|0C>7G?ka%S3!i)a-|+u$a-42E9f94>c>x*7 z$H4$E4{ku-=`_qxpXXt0H5wH6)kj#T2ZBBYHpm~{;2^Q|p`qZSlpzp^FeC!7F>`*L zY6pDK_6t1t`W0;K?w6EsxL+lid-^rvd81z^kssV5=@vGsSnS5GS|tCulNRb23~>L?Luacr-kgtnWe$u{X? zT$P_nOf6$dLM6C#0?}zWRmG;f)kKT)vmwRImU=MqNx;{riG7ZEsGVWPCzfziMpo$t=>7vFiRAMOw8Z$J*4EHoZC@4rOgcPd! z&e_9Qvtn_1?V@V?)Z6y>%Jp8{sfX<8^`>PCX{FUmD^-TxZf}lFYipTGYi+(9au&I) zY;Ts85QW4ImCAK_*Oungw5ev%TpN)V<@H!vbGhpMk<+Ab%2VVKDfOn>XKUZBm6_fQ zE7_Z5#d>2bw{Ti6uhTl>e9@_tIfd|Itz;WV_z~5G*d8l1ahEu2p}VWFu<0%%wA>W1 zw+{xy{y=uuvFKAf1_Jv20M@`@-+~Zl^zS+SbShJt0u^0-0W+oF`IL(*Wg(Wze!stP SL7MlE_~#3Gu!>~-2mk;-u7jEY literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN8rsOUehpOqc.woff2 b/webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN8rsOUehpOqc.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..8a419a171889356cf8ca5752b9712624a0fb72cd GIT binary patch literal 8012 zcmV-SAG6?hPew8T0RR9103S>M5dZ)H061I#03PlD0RR9100000000000000000000 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≧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 O={n=8$jEzZ?m7T@_hM!M literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN8rsOUuhp.woff2 b/webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN8rsOUuhp.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..86a8a8757e9be36e9a69ff1e4d7adf901ae37442 GIT binary patch literal 15088 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 SDvbKVRoo~9dwOt&t^xr4+XJ}( literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN8rsOVuhpOqc.woff2 b/webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN8rsOVuhpOqc.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..9c199fd211f6a5bf621ed29306ff9d1bc430e296 GIT binary patch literal 9696 zcmV<6B_G;%Pew8T0RR91043l65dZ)H086+4040I|0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN8rsOX-hpOqc.woff2 b/webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN8rsOX-hpOqc.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b3fa3dadac33dc3183c2d4918cdd1df02a1d03f1 GIT binary patch literal 17168 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 M%!}fr+r|tG0B`Rj*8l(j literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN8rsOXOhpOqc.woff2 b/webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN8rsOXOhpOqc.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..1476f0f3bc3a2190faab179517b7e9cc07b1bc91 GIT binary patch literal 11936 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 literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN_r8OUehpOqc.woff2 b/webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN_r8OUehpOqc.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..456c550dd9be7a7a386f155fef797877c2243d81 GIT binary patch literal 7840 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 literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN_r8OUuhp.woff2 b/webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN_r8OUuhp.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..7bf901c28ed2604e948f6e7afa54c8c93ee5eb06 GIT binary patch literal 14932 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 SQOQ&L6zBo!No)Q-00011zO4oT literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN_r8OVuhpOqc.woff2 b/webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN_r8OVuhpOqc.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..d3bbaba4281eca4f6aedb645ad1b235225d07efc GIT binary patch literal 9588 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 LPMC*HyA=Qc%@Ltz literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN_r8OXOhpOqc.woff2 b/webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN_r8OXOhpOqc.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..1ed5f4ff6c072fd880a6b09005db76adc2a071a0 GIT binary patch literal 11588 zcmV-KExXcpPew8T0RR9104+oS5dZ)H0A8d304(AF0RR9100000000000000000000 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 C`VFA~ literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN_r8OXehpOqc.woff2 b/webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN_r8OXehpOqc.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..d36e95d00fa9e841b38a4930fadcf474b07b876e GIT binary patch literal 6040 zcmV;J7iZ{qPew8T0RR9102i155dZ)H05g;T02ev{0RR9100000000000000000000 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 STjwoiwK}2R-r-%%ZFB(Kc8cNv literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN_r8OXuhpOqc.woff2 b/webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UN_r8OXuhpOqc.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..7c251dc3251163030c68ced730e39720fe59c1cd GIT binary patch literal 2392 zcmV-e38(gVPew8T0RR9100~$C5dZ)H01w0f00{d40RR9100000000000000000000 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 KMJP4{0002=PJmnh literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UNirkOUehpOqc.woff2 b/webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UNirkOUehpOqc.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..59855dc855258a3569d79c0f1ae3b6be31663718 GIT binary patch literal 7884 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 literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UNirkOUuhp.woff2 b/webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UNirkOUuhp.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..5c5d54e2f292590b493385ac8694f163a9d6b2b7 GIT binary patch literal 14880 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 SDAi9y4H_5;{p*;xI{*NdW#jw+ literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UNirkOVuhpOqc.woff2 b/webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UNirkOVuhpOqc.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..f8a4ea3a32a1016c61a73aca95f5414de6799867 GIT binary patch literal 9604 zcmV-~C41U;Pew8T0RR91040O~5dZ)H07*aq03{^=0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UNirkOX-hpOqc.woff2 b/webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UNirkOX-hpOqc.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..4587c68175ee02ef3a38af63444f15b5b0071858 GIT binary patch literal 17420 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 P?zLh(0~I)g$KusFWmVyf literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UNirkOXOhpOqc.woff2 b/webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UNirkOXOhpOqc.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..83b1803694c7df8418f0ebb5d145498e89a6c4b8 GIT binary patch literal 11724 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 ix15YUIRYC8Zr?8hMh literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UNirkOXehpOqc.woff2 b/webui/public/fonts/OpenSans/mem5YaGs126MiZpBA-UNirkOXehpOqc.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..9518615b4f64d9d69e990e5476aa00f1fc4cbed5 GIT binary patch literal 6148 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

{MCB)eY8RU|Cu} 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 eD35Ck9vgHi{HObmhv8=Wi_ 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 literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/mem6YaGs126MiZpBA-UFUK0Xdc1UAw.woff2 b/webui/public/fonts/OpenSans/mem6YaGs126MiZpBA-UFUK0Xdc1UAw.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..ca1b2b1eef8c99ef728f1cc956ca2b4802517b5e GIT binary patch literal 10908 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 literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/mem6YaGs126MiZpBA-UFUK0adc1UAw.woff2 b/webui/public/fonts/OpenSans/mem6YaGs126MiZpBA-UFUK0adc1UAw.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..04139efb3df23b2fc7fdc39ac8256b909b0aa477 GIT binary patch literal 7264 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 literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/mem6YaGs126MiZpBA-UFUK0ddc1UAw.woff2 b/webui/public/fonts/OpenSans/mem6YaGs126MiZpBA-UFUK0ddc1UAw.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..a7b01fa0c8c51871ea6a46ca909d38fb2a138889 GIT binary patch literal 9392 zcmV;hBv0FSPew8T0RR9103@&g5dZ)H07eu503=WV0RR9100000000000000000000 z0000QC>szQ8U|nhfd&YHAPJ8&5fBRAY|#P>f*Jq;HUcCAge(Lg1%pxtibV{92^-@) z72}wtz{UXpYi)vviq%9!Q6~qd$BO?yBydB9R73A8m=Ii=3~5L?ZBkHJ)Cj11;$}`6 z>fz;!0Q|V4)Tv$Y2mfoce_6GUk6nkZ&gcKKh4%+{#q%q;<+i}kN?A%Xnw^7*@;L2A zNHW|0pRUk92pVam5iGFzOnh7EylV%r%S%VxF%@l6)W9`x8E)!SrU8DN{WIs74Pt>{ zq8N#hn}A{kSU5#M&I&TpR6t8^6|ggqZcoZo8@Kqu=V|{;m2dKzHtcW+bzn^1ON9<|GupW;;Zkz^wtsC8KmdS6=VE}io&-R^L2>fyDw5yBhcefd_%sM_wWUGg z?3KX=+}+^3m{jYhixtV zh8Cw$E?bBCN%pxqiLyDKOUvR@csrs`=jb6Yo{A~#lC=AE_#2Ag7}p zLSsUX)Gcp_$vUR8th0g#OwL)*eF`C~W^-jo;%HZ<2Uq4n2TcJUcBNb%FZ zw=z+jU=K6|y3mECO=t2&*T#=RG2xiN^nZ~0aQ&~iBM_4G0H1(H9qFdDhnVGo=WFdb z98a?_=)MXM;~krzqkLY!EqsP#T_RQQ;pMr7-V24M-=quH!4jLxV?vi376L#6@||9i;aA_I z5oUcmOh$-m=#<^5ON>>@Q9nXTPHnCQcg45Z2l@6IoTLHzA>B#=xlTTek87o1Gg|X*R#?Gt;5%ZB7tkw8+W| zhErDvHSgtqj7c~F1#Q9O>(WC6iBYYFgb}YMtZ`eUhYZX`Vo%{s3#p5q8z-O0g5HVE z8rIvIRLyi6mbUa9Y3Qp78cqvICJ*t6vegh!*AjREH!EXN96d z&{VuHtWO=5-ylnLX}iYbkwIz^(6bG1k)CbA1GqE^VQ1U&8-p5kzow$c2C4~+@HPV- zF10bh@y*bd4wQAt7f5KuFSBmws7uLrXF37e4cnZLRH!ZfRo4uMJB#7f-O`e5v|ewY9HmE+Ti(a8QgQg*k#oy_1L<$vkG^q=q@DN!#Yz z=i8D(il)pR`Xfe|2J7oc%b@jvw82F7;3rF)*XeSUi|Iw~pWdgNmI5Sba3J1X0fz1$ zkWhi}TgX>Q!vClneMk7lm>mH>!R<)^eTY~W;0*lWoXnJMBjvV# z@Tufzbd{T0zmWGY?sdMite4VJZ(`L@LUY*Ypb>J4H`4m%xHTB|@lA08e3U8dn%T6(@YmtGsl#NSFeFg{<&f zrAyt~fWjKQ##X3($g%&TXRiwmf${|?DMDhf)mFGF5E%PgFPd6e$Uf=pg8v@dVUVqp zr2RqSoKiOu;VE>`cJ&9HJh6)5caQs?li7!rl=aylFLU)M(&9o6Cq! z68Sl$f}^S90=f*xT%PN9WQbGx`$x(62u#=U(l}1kfU%Z;@o+YAbQ&*awE7b{qL<^m z8on?Ce|9I)yRr&A)Vcr&>AjCsLgOn)%}U6!a0hTDB}<31R22T^zhOHvw$%Bqlu03v zGFy6Y0|N_QLBu%`Xt~w(GF8eh^KTWX%EN+ox%2gJMfBi#R3<@;%hlh7;Ko*WCN7K_ zuW04oTa(wB6@G+PgK;^N280WtAQ%#LqZx+{)1%?>?A^bTf)ry0`(Fj?Q#hGmypAiA zFcm|x0$ioXwcn#REP(LS&s0<%5o4+mhrlI4Hg{OD7_R;rWn-zD6}^5whfS>I)sCgn z;KhRJL0<@y$a@BLm|-xIV2YD)2CassQ1x{kK{7rM2FC4_))!A0ZvQhC3dpadRnhRD zu8q#-M^VZG;^wzVtnO@O`A_a3gXjhqGN*^D{oKnb<_Y-D&0TeZ$?b~ zSo)H-OVhs4dkl8g(KGZKn^NwS@1|OzL5+^@d0xG#_4L^{=KzF-(_4Pnw54&6*4Ftj z0C83!d`5_^=i86D_Iv$jwQiPHrm2Q}S4}{@i2k+p((qUZJ3-M@bhLQ`mOz6kNJ5K{ z!D0JJj5=(}+V;UN@Uu(8n=};FDhXRO<*ach=SKHprDqiNmzxm1K{{QTCp*CNlzZQlgSm|uESh>}&#=I`axH_A^EOA`=EjZh zN7pY|{~{hgQ7RVtp4CIEPfH68B1mIDmB6hG#goA`W2-$dP&y*Fn|<5z`+tX%C^ky_ zy?e2tkjYD|yQMVT2%1~%Z^~%St^RE8{Kj@%b+te1$@1FMi+r(T3sI*_oBacfmXx`9 zmHO$$W@`|xx)P_3c?KqmpCQ`qDYuniZ7ON%7$dj;)lM|mPYA(8v9N^I%wq|(Mz~48 z%QWJ^{|D@+Ky-`@ikXhpdzGl8FO9;w@EboKnUTfum^z5Z0t{(X&q=E?T* zQ*}ay+wa~oZsob|NS6P7?><`jj4HkVY;Llkid{bhcTy4D(s=)0azD&VS2z$hJ$R{= z7s$-24Q>t3xR9}Y?BhME(D1bRsg_fQL#Ft$!K!R~U4I`e)3q@ok!p7i`A(!lM6@DX zAHZANp)0euxzD*vhFCe-G0~pQlFbr&PR%jn0rQ}2aanB+UCtPlLmiRHbqOf)3D1i~ zip_*l&Fga0uebO;o1*JA)IWA5o8C~aEMyzEFj8`2n9~>OhC}JGsi;4|Yj^If?=*!- zuMAa|*jQ9&+fY*%+L_AzTwYBkp$PS`F3(;46L{gqgVmMh$X~8BcXaTwXZ;Q^x>7;s za~q32c=`#Jjj^V6dQ#XIjM-(&QTf+DveGaFywNLx;xIvQPTkSN%QiCF!PC#o*h;bN z6F$6V)42eBpv-$TsyzHrU)bHN=IuX~kRGIw6?CC#MkUt7%Pqh!yf^#YQ)D;oA>f<9 zSK9-TvP2AWT23*DBS*|%Jx497DlfsQvFiGSO*3Ey+8yWX8`8tcx~ zZ%9hLir>1FfoNm1Gm@yn0R~#|3iZ^!`|qak-ekZWUsyy9bixO4u*HNk{P?O} z!N|p4A56tL8ag{RiG+9b3Szq_yO4?I2}qb7p+&3`X;aq}c_F*_nQjmD;izK9YCiDt zl>8}59JisW*jlWUuFU|Sp$N=2YDQ)DjzDVM`FCF z!o^RUmP(Q@&XsZrSV;K`TxbT(KEbbC1J;sY;oxZz7;No~Md^P!gOcW220VCqUEEP# zmDuO9TJZk9FD6OuLH&qoq(yu4(q5+L$nN-S0_Elh?J#bO(W1b3@w7HKHiCU(_|1*7 z>c%o>=$Yzz%d+r5lA@}f2HuWQ!Huin5v>Fp>HYZ?Vhpx=eqZt9=R>{tQ2*olGgAgL zcje!I*t;w+vhKQe%<6d%=au~L(huwVdK+aX+wWzu?>02`3mc@YUY_9gSu8m@ zL9+nX?i$GqJFDLHx=EP`Poea+=!_bW2WV-J7i@T2T2Iva zmAm6R(Jp^gGLZYM7+DbEzWNh1uE`je>o41CXB)pu8 zrH89ICpm?z@>&kk${QmV@>uKz##_{%YPh-y*L~~H>^de+Kbe}#=GSECn4D^KiDm|2 zzJJOKqOLBKYHHM&D5?)a)(3$!=ESxtyiSV>Q74eCM}zVQL-GZh2Cuvp=ri$@_x*l^ zXt$)@HJjy}OwVUmE@U8$9R8mdl*>oYUvDZTvFeKA(ej4T08WJnTS|ifvaNsm{~o#2 zc;IH>{omQSWyWIT;^?h;{^H@l)2zE!k{)(E9KC&2Djwd@@ysai+_`g6PnN6NF;ZDl z`;%PC?2D1W(Ezi%&Z&#ng!R9B-h)-|EZ-k#OwOky3Fb4sb5nipx)+OfMCKZE;$hG$ z>!>Pe=Z%$ZFkL(VdgbJT)IBHdVsL9)4P>&pf4l8ALDysJ_Lc2h&mXFX{dL?0XNpBC zbU17PjEYnGB#1WhN$$&~^nt@wMN=hKbC6`$at~JX*gASRIB)OcxJF=ocN%msDEG!2 zBxYdQL}o97mbO=6#8$*^cW-T}uUhQcKZMD@fvJXpA%Qf%S!9`c%e7GF;Nhl~bQna1 z2on+x-T}P*TAc6JPcb1Cm`KTp7Q*c3^cYkP@g4cfOF?i^Kii#rj1Hk(qZ~@~T%kRGuJc2-0E`!lxRkc5;+2KY=KSXKRV_x;`Db&gvg(PthcpWopB59(XxkxG-FW!s=~k`Nu?rsyEp3(Z>zFYi z#s1aR-`aP?hGQ=#=aUl%^dNKjS$U4>MP2{4-lE*(w!uZOL077~jlTnq5|~sz71rA8 zJ2|r0zzz2+tV(EdxrzTpUbMkuiJ?`GZ7;fZN-nFoj&`BvNh>96*jQ^`Xmsx6VMfos@Y-@OZtEd!P zq)`=QnI!B;P-@^a8mQJ^DoH9f!kN2=QhoyJlTPN7VR&Qvr)%lCK{wzPu@20k7K&<9 z6{UgZ)W;81vJ*|+KXCLACcba;&gJT_dk}p{p2dhzLpyFXddQgCK2ny$DrqXzmR_`4 z8vgal-B~WK*9$#n7E;umnh-_zKhuJ&HwR%}6Ydzmve5ffy>vZ+B9Abds;sUrl>d2& zi3*5w4QUPi9QKW~#gC*}erZ@los9M)2|bob5;>PfNW8*q9oX)P^|T+f3uQxjtP#~z zsfZIpDUFIe!czKeaE;VSU4K$j*V?w?FhLVGONif7r|bz7GYCS)7bx>ftN(9M%YHa= zMPui~)^a~aXKaT4sFV6&L4EVD_$z)$);gsz9-sAUbKMRg5l|tG{v|3UN>`!u*549uXR6Rbou>t^xiJ8zOZF zns+^2E-Ys)m$t?%m~NUH+?AGdPp95D#2GC2%x2!MesD8_Y-N>$tx%)-TFGlmPJDA2 zmTiB$YuytZ-8`<~p_aaq7)(v+;bh;^X?)R5loyna{ptQf^4D?g&3?%vCid1w%lDtps%6J_H4{%<%;r>~9jC(M@wP0t z694EpQ%~#tQasEW>t>&Vz=qTC+GH&%H@@%n(spk-|H~v#@g-8vC6NX9RsvWS@<@F2 zX>D$_;UuC+BkV-W^XH{C4Lo-!12m+qFYM|q$A{OAxa6B$0}a6-2?ourk%Fw^r^ud| znWvV#E9iN6)9tnxVCJ7waAm@J;2yH+j?JmOlE!SOG|gz^x;%FydHX?TQMi$!XAll$ z#od(CaSg-=3Gs))UpQO*XsYd(h6jcfcBkkKn+c+eF~ zQg*bbb@%0*LpC>tXcmp9rbehxU>=0f3?< z&n;9UddZanNfw;^6qKxYxLE7T1h?YXq!DT{PPUdXOgpKPA4C&LjJ4y$5>7nXlRzp` zTO+inEy$X;Vyk?Rj`SpvmMpBvlz_9#4*?0!u1*;ltVYq+B_y}*ORRiut>t!%nfWLn z@Wj{NH43Fzf9YOJQ6k)`3R8*LXT?|RyJEZ2C>@Siad-W(7KZ*nwn+^#Uj;@C6~~z~Zg- zInU=$ES+PNE|*3i_E$^LF)Pe=SG#yaNEnRxl1JTrR!CbjPM6@GeJR7D?}e9CJ~L92 zlK0Mngj1u91R;1gFBe@R)e=^0_GRfyO3|gf#UVr+LpO5F#u*J^#5`lhs>xWN{-(i& zLv*Wt;LX8!%%y-X;E_DVd;7C!=Zpyl{C(ZGtEmMRWQJh|qOED(whU+fZI$4cGGS*CVX6}VF~j8NX#yd7 z)|Dm)t>rJQzyW2rz5N|6wIW9ufZ55Y$R5yagRNbFjm;-s^LeOaWNQI+DjK_~(u5;A z*ntW<&!F-oAxeW-szJx8K?gO4)(D|%F=?d;ajIRCoX1&+!n{Lm6Aww3;BsQmjs!|U z^KNm#f(C zJ|GVmAy#Ec4Js}Dzd|Wr^`a{)h$T)29o&4(MbHmo2)~aO0%V0Y=vr?!l0pr)x8PP8 z%dXfjFj}qH5u}Ip#1rT2{H5#anA%jQ3w55i*U-~Sbol2e1k-`D2oE8tN&yxWTA6af zRlSwmr&_CYHWNY)11X!ULrP3{vN}fLDkhrR49BRz6PHw zrIME<5Vf2%#B-X4@;Rl%&qjf$t-<%KFcrhV0V>I)3S+ns+He^NudndEp=exz} z*qWurPOjywrQ;qukif0tm7s`tQ?&*3*vHl*T`65kDduokt#+WM+IdqiTZr`xi1b@K z@o0tB&8eybpR2%{P|2!aor!wvM0s7Zk+(~Fs5Ai{WsTj#*%c#rYXlV+>X}MUSwloc z(w2&`Q3MibQ=Zvr9mS?xK_K^mcH3j=u-q7W*4L13sRSM}=CI~y!kER5pk%YL!(#F5 zLkbkj5t53?>gbT_(G#Oqf-XkQf=D|kN75ClltI&DX6uMeb$g+vbg^&iOaqNg0!;%~ zd>hi>B>hzqDs^J2hbvXJowGj>P{ux8+R0?alw{3j(@;F<0G4en;X2~#X9G3-fORHh zJ40fQGg+0{j0ZZH-5tg-XK2D|1EPzaK*R4@G$6;bU%Fv2U_*vsdOlC#o~o^8c5S@T zOwW(Ac7N7>zz6^R|NBJvUN0Sv$3x2TSgd8M*;tl4R*<gvC2OH~vEI1Zv!ss?0zYr%rb>Laz)2PuGun z6Pj&gBTIebRIT~X6wwu4&v5Q;5Y$vB=07a7!vkg=eCDU&G*b^Saz_84G;Q`zn)^bx zP5hDlBQwjgpUir_2es>gj5s+MvqTJ(II@Qwm%qn(F;|ObMhJxKfU+CQs1DLapaQO- zLluH5a3m@(GfH!dr6d5lyKI-MS21Lkg3Y)`tL0Xo$99@_yJ-dwlrfjtu@Zy@u7_cX zUl9D{lhr-x{=Iy!$nkW%15T&?y=pn56boUWQ`gezZmUD|m0KM0ZSF%4c?t<{0mP%t zk$2B7qZoCa^Qr^#i0`E;D92+=iygzwLY5UkAC8Xju|z;u!nn)SzCBJ;<67n_#4N*9 znGTw1);GkQrkT7osD7_NLftJw%4F>H+}RLroyV%mp8oLEIG+N6O*RQVG2?2tQV9 za`4=?-dOxkF41cg1jLO|iSdgebzWq8}n<3P~S1_efci01cc1 z$+!vM%hN%jJ950H`rD8p_s)w(&$#z{MLPauy zzrAM!I5&g?`|n_ua*KU}D1ao82;x8xpKTy36YFj_ExoFnHW5O6MR;y14iu^Aqg02- z2GPO(0R{wMARNT%38~iH!BG?^4kU1d0|;}vvM9|?UhzgI4jiBixho4Fca+{V%aDGf z6d(EzRDp^h17IMsLi(+Exy1`#uQ=AxrPN)#C~EK8LlRgQF3k?A5`fc0%yv9`^*T)COX zy*)g|oIH!pv5}|mz&Sv95|7v{1Sy;zBBU^s;&b@8-V7s^io$8ya~J2sfJ zg9B|uo;bLVd1F&#_1CL;|x&D0LVF!bAbCpB^F+w zFbb-;MU5l@c=L!jiORut(GLJf(&`al|MyyQ;ien7RbB40WzT^NEF3Qc{sIIG5h@Hx zq!?tiYBnkO7nMc~aU_sL3Tb4JMGkosP^3Z?7=#)qbs98j(FOyj0|7~w9(@K389^~- z0?m{ea~3RFv1Y@T9SnO896533!j&6$9!@&N6BZ7h7jFbUeEIPgAW)ECAwq=-M??}K zQj};h$YPxqCmuxtDjK>(3`|LqW44`fwtvIsi?BJd)P4PZ`76fN@x3c{2c4iTYD;6)rWK!gcp0x#lN03u8%6L>&2Wg9cb zE&({ggff8_aqIvQCX@-hh~o$lVM1BpO#roKRo#ps!h|w`7qQH179bxhr2aUDtdybV zy!&5Lo{kRxvFV%C2kg#(*jA(LV5qPXrh8QgHZ=W-?Q~>xo5)LKQfCKoBDI6)CY5yN zyB|xb0KZD_!f&{D?&b8RlD{Fru@le&BcBF2><|VavGTc literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/mem8YaGs126MiZpBA-UFUZ0bbck.woff2 b/webui/public/fonts/OpenSans/mem8YaGs126MiZpBA-UFUZ0bbck.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..4c5a6f0f4d14edaf1c78de663d627e0786bd0bce GIT binary patch literal 9400 zcmV;pBuCqKPew8T0RR9103^5o5dZ)H07wu303=xe0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/mem8YaGs126MiZpBA-UFVZ0b.woff2 b/webui/public/fonts/OpenSans/mem8YaGs126MiZpBA-UFVZ0b.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..e9f58b775ec05aedecb58eaa34d0fd2a8d5d1aae GIT binary patch literal 14380 zcmV+{IMc^>Pew8T0RR9105~iF5dZ)H0BW2705{420RR9100000000000000000000 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 SoLodJ=XCEwjIdsJ>|p>lRLzC} literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/mem8YaGs126MiZpBA-UFW50bbck.woff2 b/webui/public/fonts/OpenSans/mem8YaGs126MiZpBA-UFW50bbck.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..4e74089d8f46c0c8842e1b1aa751ba967943eeb3 GIT binary patch literal 11316 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 literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/mem8YaGs126MiZpBA-UFWZ0bbck.woff2 b/webui/public/fonts/OpenSans/mem8YaGs126MiZpBA-UFWZ0bbck.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..1675bab177e947caee680e0ec629f2390b88fc4e GIT binary patch literal 2344 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 OyYhGH3NaL+ZPx*v2vo!X literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/mem8YaGs126MiZpBA-UFWp0bbck.woff2 b/webui/public/fonts/OpenSans/mem8YaGs126MiZpBA-UFWp0bbck.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..d72068a0c52eb282cf9b910db2e1c6d2491eaf98 GIT binary patch literal 6028 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 W(*+xXtYG9pxnjL>!JVVS0{{TQkXw8J literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKW-U9hmIqOjjg.woff2 b/webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKW-U9hmIqOjjg.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..ccb1a12efbb8dbf049f462d9abcff21d9bb1f84c GIT binary patch literal 15744 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 GSa$_e35Ck9vgLVgrObmhn8_+BT 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 literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKWiUNhlIqOjjg.woff2 b/webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKWiUNhlIqOjjg.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..5b3484fe3022de3db0a7a635f9e9caa70a801ccf GIT binary patch literal 10752 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 literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKWiUNhmIqOjjg.woff2 b/webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKWiUNhmIqOjjg.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..9854e0e575d8efcad6dab74893296b7fa19d84e8 GIT binary patch literal 15680 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 G)iVGMQo=a^ literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKWiUNhvIqOjjg.woff2 b/webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKWiUNhvIqOjjg.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..0307dec8b6096fc9e4ea49ba5e804966b5b742b9 GIT binary patch literal 9400 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 literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKWyV9hkIqOjjg.woff2 b/webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKWyV9hkIqOjjg.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..35801c0c0469713921a5a94d5a255dee9e4794b9 GIT binary patch literal 5824 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 literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKWyV9hmIqOjjg.woff2 b/webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKWyV9hmIqOjjg.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..be29757f5620808d710b335c9db4b24cae6748f8 GIT binary patch literal 15776 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 b@MPS0?n0a9hs(7&C<~rGINA*g0Pw#6tjm@} literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKWyV9hnIqOjjg.woff2 b/webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKWyV9hnIqOjjg.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..ccbc46024ae0e9eff174dedad7001b3276c592fb GIT binary patch literal 2360 zcmV-83CH$#Pew8T0RR9100}q%5dZ)H01vPL00`Uw0RR9100000000000000000000 z0000Q92*cE8U|nhEC_)r36C@p5DJ1kf+q_Q00A}vBm*1-AO(Yd2S*HoBpYQ8MMrGd zH~^urBM|>r3)~#w>R1N@l(dNn0pk#!FoYm6CLqL!fRTQ}x?VN?_IdBNA^+*!?9ZK< z2%6M1sf2}!vEodPnx?u!yH8B=#OQPTRFywff+}22RB)Wjdv`pY-D6|>83kthuWCxA zRb8e-nDU7~N=h#}Q7&?q1CZyykX&_{S|2OzZFsc%mNm=Px8!1*;3e|c@u(A#j)=y# zw!hY1?e6Ub6#&Z!n~4>>@BYotyZc0YA)=Bnt?N{oAo-{=8c~Tt`YyvMp3UhX%F|w~ z5(q$;0$HmJa1a!e$QT3`bpmy0F-k%EEgg0MboBGN=%FSkfO4gh1jrix68ufGf}5e`rHE3cw^MT%5#CE)*x6rU>;g8%RZ|6S~tyC^r9yWSW1xku1- z@9Z^$1x#QECNY(;Jm zZ)M;MT~J1YJJiZ+)?D`|G3j=bU8`!&E7&!m zPsF&t|H_&8l~fqZ?)nMLR93f#Dr4lRAf#L3mX#fu@M^}iMGNC*O3ul)gzwpiU&Jbn zc$E^;76uFExUx z$9rA&j63ooBsfFj?VolM>v=SBrqTEe6%(fTEN1+t1W=ri$^8ychX4OVMlBJQpCCoR zx(U{#QT;K=ob$?M(@eR`xTP)MTV@K`-5CyN57HF@;|6rU;GvZYq?hMmR!y+czV+MW z69o#!rwrIkQd1+vdFowO*Q9E(-P0JyC;_b-s*`<6d7@|O0V$T}?eHednb^C?709!Z z1$=9l{xa-E|LgX$jsk?E2BZIg3L?|B#AZev7W3wd{!m zKDtLxVo(KF$XF0D@VRg<#lHN|&67!VZv`Ej*d}U8{|>%Zv@( zJOzuNx{aj&!(Sq~niQ8{GyY-49RnU~H=CPVfK|yk*wq3VsUR(A$+DTZNH{4r@dLVP z50?WbO;K_&-Zj_OB0$&pAmM0DDQx7I{gZP$>6FuvRx{xx=i9798R(=gm7OC>3%BV zya{v?b2>J68tvo$Ofo#rmK%Z`GYZl}nxl1pXl~bc*X@%CyT2expoT-6>;9BTM|nAr zz7>V`uZV0w#L?vRx}tRYom@u?FlPWbid*Himc$yt`*Z^5bxKHitGiR)dw=#dH}pj6 z2IgM4ka0@@KBUMG@@<=jd{G2LlWBPjo+0&h!IudygEObPX4@3PK6BcvFk;@V}sQ0#U8Th1_IIK>lF!*>Mh=2L{~ zQj&64y{o81YXKDp8b*6}u4dI=4#)C5_O|CQj%p33$H^O@(n0+c-bl(7!{J*v5o=1Oo zbpGt!=lMLd>9g1Wi6qL@2XE{C?(IL-c<80u!Y^KT)+fJz^d{n@L&Y1pynz8Xb?CF5CHu7 zEB`4k-zPMo5ht{^=5N^0+S=YG!=dQFd`O6*fq7AYR3l1LjqPpslxShbkxD+((cT6E zKxH4#@ALZFoyO+h^?(ilcyZT25CGn7eC6GL-~RuPz-{{8U6W?CVwJIDp*uDF%jVLQJY=c-$1+9>9y)u#WC? zHV?*SA_SBKz!0hfTqImgbOrWS18yURZU>n7<*L++bb;y3F$XAY*rftt!+OcXM4Bc8 zx(ILt`pG6_x+M&)lou0@YCTl#Mw8qkYHT|}0Q?+aLbJwaSqdHZ6do>>! z^cx=V8%iHy#a5fHldN~k3VcfwzNK>C8ce6Gf%ImpAerwf#9fh8K=??W;tAg`Dd z8u$R6f9G@=Ma7opPZS7@Pl3+7!zrO#j(4Hf>%;9%8BcWX{Ks?7LD$Iw9i@SN(gNM> e%;J;2SfuvZvnZN=_WVWEd4#N|6&PQ88UO%mg>aw% literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKWyV9hoIqOjjg.woff2 b/webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKWyV9hoIqOjjg.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..e44fa881ddd26bec54e4eb4343d4f07313204a6e GIT binary patch literal 7448 zcmV+z9p~bAPew8T0RR91038?r5dZ)H05V_z035jh0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKWyV9hrIqM.woff2 b/webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKWyV9hrIqM.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..6d4334ee81b7870afbcc832e7a160167bb6ea59e GIT binary patch literal 13860 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 literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKWyV9hvIqOjjg.woff2 b/webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKWyV9hvIqOjjg.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..d91cb0bd7ff231718a994e9c9847deda4eda122b GIT binary patch literal 9452 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 literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKXGUdhkIqOjjg.woff2 b/webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKXGUdhkIqOjjg.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..0f28f1260b5bcc33915c8d5f9cc06f44ba7a3d0f GIT binary patch literal 6116 zcmV35Ck9vgcb*hObmh;8>KBZ zV_O#R9tU9b?L<+YMz19J|F09cF%<0s>qQ69AV8sZNVA0)OyNs{n8xKa@Mv7uEetPr zUHimM8g3z;c(10Mw3eM&{}Z=v;v*v@nT7w};kP?8?5&fqUT_)TF_cvTE1GHfmFO)_S~;Ux2Im0 z-<{xur`>B1wt+5+^NiqZZWB@>kbL_8n_AM5Mzg1_&)!lB+W;0F5;ROhodu8QOFNe2 z$&;nsJxuU&ru{S!tjHjCnj`}nqJ?A{8nN7S^x^lLw>dcf#zc1sajY{EbrHhqS>uQY)G zfI|{N0#uq<00y+sNs=HZji^nu(gs1+PQsADe!n{C0V}#&Q39}Fu%?g?Gmdv3PuKwv zwDB{nE94{qq)Kl!l&Na~m0;@EY45hp0Werzd)8=^NZXKS+%;e;0iXyg0bBzCfv6&h z1S!D@)a|u^!zzwnIYm87{Y3pr{Y`(i{zJgy*p*dRPE*fOKU2TC9&sICsP|jI`{wuN zkEIWvGYTY`8dTmANLwSKONf;Xs=T%@(4eqM5a|G{g%VXWPo=|g+W$t@+gZC7=Nfk* zM|bWAm<|3IAAsF#VTutBgA3pUxCHhx5q505b(EM89~T`J84(^98sepvm+UL`+GW8l zlPwwx^K-K^(^HcZ<6}dE1O3%X@1>&NLoaIG=S~%r_O^UBlTQ5x_=5uWImkLGh=6h$ z)MBd$Ki9D8Q*tVNAOV53u_CS2=3E*m@~t9?;MoX}jKv))#v)@2tdLnW8>=EE@HIn8 z3vaKxBXpz7Bk(s~_G871l+S5e5Q<|(#}E$U*+$5HEANVLV4&~=1_C~sh9s3)> z5Z4t-!v6s5)4%_6kN_oUW>b5BWCGrBwZW^T3M%|C6qJb24};cma~mZJ4WnExe4P6P z(3%T){TTQ1Dv0YID1HM^do73&8#bI=-*G|WfHZ z1<>3D5)c%ne22E33Y0eQ{khTYtW>W(YWj?gWm${K@C6MZXElHT7 z_GTDG(94zxB)tykD2K*mL7lVlD?33&(5w&ino7?VP1tId@miwWECDUhK)N?|Yh+spOm|>GLVT{%W zBMHhEZu8i^jwuvF;b+g5)l{afg~w0Y@|twDJk59ffu3HJ)Dt=8!01g zdl+5BEnEVI-jx${Zh)Xi)t&O5hCI zeF7nwA`}k_VyYa=B_9eIYED8}L069?)9M^+ZkMs1^6v>=C9js@!LcMPh5$i2frHbE zm_gGS#T#U}2%>}zq@L(PE~YosB!oCsys9QXq7e=UX+g$u3L^V{evcORSo8Eg? zyRxoc>L?p&m96D7LcRS8h2N!TKm5S_uR}TeR-AH}4#w)-qYp% zk=X#7Q#@Kn^$gy}5?y91z4#$u9xhU79T3=d?(FxmBS4N6St-psi1q7#_Wes<%>GL1{@-AGJ4 z4Yl91Qk#Krb5#6g@;~x*pfU5D&tPP{qKHuAp)v9wLc+5_mS#tpJ_h*MYLFp}qs#CD zzY{ZeySeN7=ZpE56Yzmt_bi|AW*XlL?-ny3kSA=n>(g!vB6&hY)L*`{F|(|xm$PBR zz?h9kN|9~5&fPjg8VJSyUa9jFaGv`yiI?1{ zSX7|!f;%}Q?@Sh_bXS`5{_&doT@ZpG$ldYYINB}2xz(^;kex`$ka%`o;=~5K62A6h zoeRpdw7HZXL?b;JtL560rAGcb8aivoE|^@HMhr3<)qHzVl>7huckfPqCu;iI`Cl*3 z&H2~63U=Q8zp%6a0$g^hj?UdNbL&G5La)pPE!PfrD8jl*m_i4$e&h9?jo%-ecPt@cVFt#rX!ltslATvQlY%8 z_$o!7as4$k60wJP9vd#+T9n%{IM(N*TX&#NKtgjPUU_TERUh%t(Kl_=nO^@aQ6QYY zrsxl1YwizFvk$0_@e$c4>d}sWPAili#cDbET{_5jScVV(B2havESZN7HkAxnof_zD zEK@ULI2=2-6|=tA<@D~&ht~`xD=Ai|Nbxh)c)Uqg(60EkSY&`ko_0|PeKL%>@ilX! z!fbzQ&=>V@*ZRhx}%*(-OUWiuB~ z-uKSXye;c)@c^F`E7NWHP-VJo-R@!!<8~^|4n^uD_Gs2Ej zf4fJgDczO80>AIPyLCdSm3oLP^$_FT9(^2MJImZ;zY#iZI--BITA*E*wDkBtt7{q8 zU+Y$dYNp7Dt&7HT!_VDs4XXlb0CA*!o`Z+*nBFV5P2VEA8%WW(JZ33_lXd=?}%I`LHfpc#KdNLA82K?Df_+n zT9wMT{vq*rxJkeM$MHq2Cbw@V#+QQyMcWOK^c`_Wpyj5t--8n&9#-4 zMO$mlR-jrP5$LmrhY5sN5Hv0$5LOU$R7BC%Ya6r;TFD{_px$hJfY$(iG_L8wP6hhgw3kD*pBYB3 zfSNX^E>$mqCJqB-8EH)*jEYT|$D87-jZHGfzmT;{E%yal-bGnsbuBd%>52)MEHPW^f$o&J;*#OZ|(1e9)Mlg^2)plBXV9xk>jD_4#Kirmg<%r zA0%3Cu!-xEMuWD+1`=kQ5(UdKWVTi+xRsF;O&%4w;~1KDG>OfhBrpsed4tMbK0%3x zRAm;6TKF~^kjozL+J=BF{>FY#F2QRGuUOSyEDY#&8qNToLaA=u@{hsnxJG1B0^emB zv+hyNk^*0T5%kew;~7533w(vI@gIJ~j*$orESGluBJt#Aj;lJ46}y&7u48p56w5EJ zrKsB|e%FfAC;$=ZjoPSfsO9f!<5%+_Y2o?ad7b(`Wi06w8PayX94cX^Y+Wd?Vm_o& zbQi|*+MsEBTfX(xT%!cx`QAz06n@{gK5F!RU;x{z8i-*47$68~lJ2TbGA%rNy4HcZ zWeFk~jSJtWAhlDD{ZM@460l|QcQM@i^SFS3jlx@Nt(#YI43vX=S{JRCry8xz25fP; zzIDr5S<13og0Ys!^RFOH=y0B%*D-gT-sanXYG#?x!||*ULp)qfN}yQP6k_|&h2sf@ zqXR<1uEsDwuS4D9(3bI^=DN|Ke2W9FPixLiFc8KRbX6C7l(mm6XqR_8!U21^7_5D} zL9lW+XkE9nv+iRx@_d%rn#N;!%%64hdHutO%Rf}Row}{2Q=JgH;ZT=ly2C@=Xr#M( zRkyuefBpJl&((?#5y!5E{rv`Gc!{S;k|g!B*|B!(rqd-)o}fOiT>4z{Yo~VSgV4GG&><>}29%>+@5@C0$tD)SS%>OHUL9ZRzzS=Z(b9 z)c5-$jt6K$582iFy}i~rIG7DXS3{@6PXy;(T`>=g3*&FhZ+-jn70x>5ake3Zpzh@> z;s0-yX7bo`N1atHJkI>5$BQ1``(py=r4nc}{c;<=?~jhh#j22PeU{K{LW+H3&C;N$ zTIsR*HtaA}uhYC8j|+Pd8~?g8uarm#a}pQh%Zf$E@|#aYT2#whe!2E70MVIwlA@h{ zlYypO`{62(ZZ648D4HI*?e@9lOa7c+aLT{6^@G1&EOo}~zbRY&Ok~6d0hDFH7-ZP# zYpa(Ub*0l|{jFp2cjU!*vezwJ`#uoVhb=qYm_98a06_Az^76v-nC8vG^E(zd7z{km z6po6Ad|`S1#vj`MBcMMrfCF4%hzkIQ{QnxjX4_HqM4kX(+rfmbE^q|6BC?dPqV_JC zoZ$NcGFPJzm%U}ZxDq8rlcdOjlytyGqoar0ji?q@EK&S%3Qio13QBCE2cpRE(g~Z- z$-?sf3`WFj1zo0KwV)vthW*|8IG-n`i~M!ekL(jrd&sb zDVY~Wun7vR&%M*F0Q&!_)iL-T_~yV*+{@pm8y%uR0XR^{h9p23FbM*{0APR|%YMiW zfct=c1O}LtkH7%|jE*1xo5>L*u;3w33Qhq)!{Xj3} z3)9bJOGU77$HvvF!#e7flAi40RHWq6EO3@0Vvd;ZgYbs~j}UBmf`^q#H~?$WpK`Ea zU|=5*aQ>eNz{CuDT=9er2QET_h#-z6N>H$=rFrkwsTU}SCORbuJ$UrcXvdSKyf z>2Ukv3DtMrCUiD6w|cG-xtV*Sc*jpM-|+L=1sdXugSUnZ8!>9kxCxV{EMiO+UKe{- z28Ll6hG7_nVHk#COeT}bWHKw}45lz93$KfYHE77N5u?V8n=on0BF1Fl3*b18<2a7v zIF92ujuXUQq$LP~s0nuG;lV|A^6!9|`hTl30bTd$gFhbjP#1e608Vv+o&SaWyPiIJ zc;9JzI~k08ny=>M0X*D`uVL=6m>fUEqVYjms}YCbE~mTZUu+j{?^@`((4y=q`>bj^1-j%TIdMi>a>cp4(@tE#gj&oN(e;c48y)hafptUXbs|@|Rb>JN@&t z-n@=$;zajle$cwWw06qCJB!;5ey3U2@7#s0S z2iUfhh<7^#0rmC!5Jd^!oGJVN|D2qRAz%lmYQ10;$HL_92(!65B6=BtZ8mJv2+#J_ zu*Ld;!ocB!a7Pej_%~7uCgV=5%#T|l`~)4VMCh-A5}OXY;Xgw~Zo3OXEGMd(Hk^c( zo9)(VZMStg+}SFy3i7(6C{-Kh#yvK^vmOe4GCa}Q*zfoT-hm-)WmvksUs13+GL{ST z;v+QnNiID7`}e$ibk6&dDmfs!xM)yjrTlHcj;`I&6?JC@$Zh|J1BuK9I6@Q^QBgp} zIS|JN(Ty9>og>q7OhnWawajd(xf*W7MY%F}WBF`twfbf4U;j7Pzc;xvnVG;qk_jzP z_5tO;x1}v@O8WqX*$)*4g!(H?PhIU768QKMs45h)s#i<5yLTz2AM?3Sp)`kDN~!8U z6y5zfy7C{FK_LuEF-WlZ@@s0YkX(|F1!AXOM?%jPgt1dQa_jvi@!91O5h+zGm4V^q z$Ri>GH_ctrL0*}(;$K9nn9j2IRsGLtDP3B#gLWeFH6NyT+w#>WrAk}vphHRL8Qn4P zwCOA~gjIUOwvA02)zCW5a+sUedY?P(>Pr4Q)W(xvjWC%%0+8_ofO3l*^UP za-RyOxUv;Qi)yy!EG7k14%m&2&uuB;SIS+fTBQRFAVH2N9C_BPi_Qd*cz16+>$4BC z_wk@H0673g3qqtsP})Dr>@Inhgw{}6UA-V`@5!^&85g~=LFy^4ehtq`Z@kZTFS`27 zMm`8X^+6E)r#1-Ff0ItW8RHMO*0dxicoEicE79$P-2q3N^RRZ|zZv`Db^9rIPhGH!K z5-qV(D1135{qjlv={z-G2vXatRzCcq_78e7x?|imzA%9iK&ETomLvfZBXR0k=~I8H z@?`21;Vw`=BcT_L?ut;nN2)AD3ZWebR}^&2V_Qf#2xxYCVW+M={ue+ z+XKCyl^{6WUIo`%O)=Rs;ibM5}xOBaJW4~q;P~CaR;K!TM66u z@;PjQd+z2+G)hCs(J+G>0Jc>JOUoIY_A($RT}weXOI+K zfBI;j`{9X&aMM~xu^3+-z0_%RxSDcr|F@q7Gr-6xZ!p~B*zC#}b+g0$R3v;lV~W3k z4)4AsyU0%p_?icr2ku#2l&hL+A77Rn)sc(t_kYu)V`m)u(df&y@dVhhKh-&MZGeM%<^LkLZ6!O(8~Sqv%aBp-hP{wngRlWdH9v;(n-;w7!t|iR3#~jHXNdo$Ii_>E zdETL^1QBcrJ{x|5Q0F|PeemcX+D7;OPhN}pNxI1&>wF(O4I2;2Up5_>9z7?pa@q(XO|z@8%)4~(t0SV4UHIERSus&aHYA~|+b~n(+Al*=6!?Il7@SQ>`dB(m ziw}4?nd6m30IgCGq!_ejS0iQ4FepHJ8eqTEd?QzB0K9pS>k!MRo{D{b;K^Qdi$czt z?oY&Q-9dy@lK-IIj#Hi%vvPf{2-S(8NS6G#n~;-F`?!uDNg>qJfgKalyf0j8%0xg4 zvq+G`4^crcYz4$%!Koko9X6u0-S6r1?+E3tpn^%{BnQDZ5e1SYW(@@?1+mc!FM+%| zJvi*+gM5gOQj97I|FW@b`GFup;8PT1_=XH#DGbo`ZH{UcOokn|b%(>|4j=zhG*xLyrI681m3$QI?mHdkoQP`swB|5CqQ|JgyfHUVQWwzVik4bed)gF zM*-r}dHHM5cr?ERG=BTXR&xe*>Q|DxMsiP2&t&f;=@lLjAO=7H=)Xb%h4n+$BmaG< zcL0o>0Vcc$=&1l+2QbM5u??yXdX5L(x>%Xkaq;&gsD)x2;NR{0mlLG#2Mr+8gi*i z$=VI&?pn1cg^DXy9kVd&cKdA>q2vp*CehZoS*L;KVq7?r&dg8SGpItfx8 z7ZKHv%j`^~zv;k7i4OXw^nG4{K^+7$hRBuqT4RRp)1j!4jXb-7`lDI(AQcB5(_tLxlF=aY$B$BWR~0N7ApG@P~mghJKt zv|q9lIbV;6HNqvGH&EXR2%+ny_;NnzX9=XD+gGm0wNYP#8ypYq`Z82iE%ZH$Q{=5iL^rQka5 zLKXmdDA(M_YC4soto`VEZXd%v4@Lrzm%<*US#NYHv=@LWkvg$i)m>eHFfP z?!?EWhQ_+(ChgCwSoy{%-A!wUHBXN`_;q4O6T|j><zxVVe6O$sUcm99H#R?Kmkul2Lcf-bRrrW5KofHN9(T^X|DtH z#q~f0esoO(bJ&uuN51v~D!Ahtx5QV^-9u@UgLOAU(SG*HfZXrExTN`Z9`mC z)ziVL@Iwo0pXl<{4BcY7%nYr*6@;C-fE(nY@&SVTfp|v-yp6Wkbi8w~&T~)$9k>Bo z=d3p8A=Do5OoAU^AJNc=eb80+1UTII)4+0J%DJdVELJ4EMdCY)D? zoMwI~>q<-9nu>h$eB(k`#LTlAqLTlYeA$JD{0*^s7+r8cR!f64yF4Iuq1ybquyqnuhs3SObEHf}U`RIp(caR; zP3Z|bgYV>nwO{53!w`ZOdt=$yF~Ui(uHF&ZEuqrE1MeX#H7XWBXN}Rm%F@ca`BHQv zxQxS@Pn(F~+bv2{Ltf7xiX(B5y>mkPyN%z9dYJI4CszsrmM*nT@T(q*@~CUQr>2xH zx#qbt^gk!mCp(jK=Py3*CH*)gvF2Jkf4H}+sWc%w>_`sQO5@@!^v>T~T#u(0qXxLA zve+*Ei6vCFQ*4S!iEmNf{L`eG)xI#g=&W}|N@*5@h@xyW9a^HYhtYC7a%Jxh8?3y> zt>h~Pj|imOC(WTmvELipw-;!zKxtU{jJ!LGbt!wK<~a3Y`) zS_`XbUlJ}=MSfY~NAp6lfl%91!!mPJ0lW`2J4zdRja&$9`l{v zd4Am_CsoG*yER%M+lM$_k~fFHtGN8QsgzaKbb{n*Ky?X^izQU}U6|Ybxaj8#Ly{fR zn5r>BOjv8DNdjHY49NW z);7EozGWe~KOf(z-~pi}bVo!~*0t1mDMnXStHRI6kiBWHrj90NuDuvZr;x%;9}-Ha0ZRqRKsgshJGEagP(} zb#SOQ6&Z#rnujG+RNnvk%s`E^m=87HLp(A?2U+D+%{&K07O#4%_KX4pTb!Fb{vEdx z_tdwQ^T%_tQ^)^ra4Y)G__KxZl|2nlwM97&z0zVg-hs4xNKXBa5;eOokyXJzUhSfo zR#~lT(k4oZJ`@(gul3vIrNv}NhaTnl?rv8u)qDKy@4Wi#<@`deCrH>cyZJ`R=nm6v z)A+v#!-Dx|SV6)UdjChxInRb0J`1?CHGWG}>a^S(awa;**M&rOOSC!S#H@-udACn6 z*F^K|<9QaihdNs09bMwh*j7O_d<^5QTT2t>wd_x4W2UPU-X7g`l^H- zK;&9q)7DqeQSYD@MXObtloz_y97wr^s)@PtPNtDM248{rXAUH@D(a8d+AHNv<+&og z6f%It7HUlL?dHH@yVOV0<)A>wDX?Q7E)tRWS0PM7>>U{7`+$)00cqoTlM>RUU7 znte}Q!1Q~D(HPsm`jP;CyZNY>lftBjtg%Nub#Z z^KmvVp7w^dhK>|>E8^n<FeDw&&J5FgQC#+$dca z92pYb#W#v{Rko+?j|70$)c>!kS!oOYMDeHc1Gn%kdI>q$!Y!d5EwNbu-hrZ2zQICW zWx+g48Xi$g>g2KIk?-%%yjE zuvxS1xSYvsiaM%4vm-o$-?lz-wLEBR1~jV{T293NJDyZpVt5drAMlgA><=y0qQAT^ z(C8VHf#W~Tk6I`fV0r|E$2%Wnw$;ZJI&Q`6Yh@_n4?LZQgCp>3~IMc?`z6NrR5zPc8Yb7ohS zp-?F(C1Hm~^gnqg>*VX5!~PSAw3ChlVM9pVik2FQ!!Yw{eq2y{{(ZW9kg@NHdwI}V z^jlrVH+Z8d`G@#YprZ4d>2>5C9@qf0|48fG1-2c~#dv{Lx{aPTPXGK>f?L>HMX7Fi zxhhUyvna++Kx1XoM_Vh!yq1?5r^C+GQ?-U!AuX+k55NFs57C{5aE|Ph9Ra%2e?xj^ z%?4eMe==0190{8obUVlJvEP$x;FD(iN378MC#;~*zUe`d{v5Kl!a7A?NOobd2)4Yo zobHvOi{06gIGa9qq^%1r03IWst*s*(?o+CW$s0Ge3y+1frC|+&u;e)kA`3Gmyxf}^ zjk85<=}HZN#V97f#0JiJcb^M$H7G(8xH@lyL0KeX1erUK>+85yBIvcGgv&Hv zDP@>+;&9C3yyV1!Lrhk29*bRmsDy1SBodm94b4r6qsZ(7%e8K+f0UetH<~@|0y0Wc z*v=g)+`{~dt{>VloMoB)OpPY8Wq8gJcDh>|(w8zIkolpXQYex^N^&WfJ_>}~2~leq zXlO1!R+@z|=GeR01_d*0KPbSp7dYgHOil=5?=sFV%}Y!y$YnA9Lyzw^HlmP-0+qX| zK|UEIv>XZ>QR4u23rmRz@Mo0gxXYN5H}D=B&brUgSVbkSh3W#qThmE*5Ty%G;yS8o zATXaD-OGkK?a#kgF?ss5qV%ob#0sC;SvfdKZPA{KdD{`^JAez%`sQHDAKY1>gs-uFKAOoBN`B>A3W) z+%%T0Vi?)AR3YqaWa<*n@ZqLr&!%U{lqz=2vY^Sqi!B+)hfJRyIo8@eEtsI~XYX%$ zT%faj?o``};)c%p%l(p5k;r&wCiunI?qGtxTO>QejCN5geJdhRblZG$Az)D1S7T(j zTVB26jqg#5)<6|60)7RyU_ESj?aT;@Q6V73QaMLr;xXM zoY43E!I)xEw1qSQ`1#S!{dqT78FOCPR!-(4+O2=K|Oj-*3*bvm_GN{ z;C9TNcS;9+6&M_N>Fy!@OW*HLD(@9{+9-Ur8k&zfsT`>&AV}ZcKD%Us2(6btA1do% zs&5;r=d!PKhJK(h7;0XRBzw~+X1ivtKK@RY1!<8Klv(M>vR*DLsH) zfD%V(?j3!Fg9(S*NT_T2mjD&TrF7w7NmX=Nsvb{~vClw;N)}UD760W@DlySfWxM4Q zDm9Ix&3Z>a;t!L*~dT-pu_jJKRuEtb~aB=jO zsr(8MFN}`m3R2&b2236SfK5VCw30A%Tu^qcrPYzV2WPLKKH885qIdmrEFC3O57%T9 zb;2vdBH|5>X0=lNlNDRmM4}$pv_>faSg|W@NMd}!IIo5XE)zZMCt<{!xQsabS;B}{ za~a?8T?sP@z^cP;px%X-xNMa0J4u_5il&Q6Jk!_*i6SBOigseTD1jD?9Uy$Ci^QEA zYYFbl<;K`j!dkZ{F5e0#N;-A#Atpe~a4?&|7;zy{0sst#m1s?Dw4NKVjLv5oBXNS}XPWpaQ6$;}qU-f1 zFFwHa7`|-75fwRgB`1;fnU-Ldjt49{{m&F{11Nv@nj1qD1`^ z@01MtG{qs&>Cy`@fU&JWj!7TBH-Q&?-aZU>m=8QZ2-JFKAI1}_q9_+62P_4G{{>??4DQ~z~&ecedvjjesf&x9NYAZ2I{TL zu_@GP%*00!1u>z-Mud&9V;`=|Fw%KluasvJiNXqsjTM2uT-KdkF*pt*fDTZx%ga!p zN2~OIL)G`Mmi;{|DLHq&5pf~`2pl!maZ7&QikMVn`(jZ$U-hD!-B);HG zIMQ@z^vqcgf;SC1$-ZK*2d~DjMFrf&6o60=z{iNY?--&O*PG z#490ilL8~o1aIlVT_vQ#VZY)e+;g}bDnleMkm#m0^vALRfoBn|@p^AQ)4b!`v~C4A zF-1fV7c?+_ftGSmtKho8Ypw*r+62iDd$>YX_XUsBo*gGOc|! z1Xw|pX@?vA0HkRw+;YBFQ>D2gc-@UOjB(>zU)zjvg4^Fi2O31)#w{mL^~}=)0Bg93 zMBpmGdyPJIuZ z{*(L^Urq$-Gcf6{efJQ=-7akIkOb_G+lp~r;ROsqdM64!Gs8X~1Fl6k2h`&YFR3FnX!LpR1u=|iNv0rOgs^FjaJ%{uvHMv%utqQSj_otPnMeS#olU^a=j zvOW?smM~jWa!IA=#6CKLHIwDQiwK9|gdv9k3ye?#C5kS0VAP4}!Yje4$8tf}^Pcpz zKvVsyhoc4tSg2UF1k=hw!Wqbbe&5^0j0KSzP?WD;cL01g0LHCY7^L;;Ws+npst7fo7}NFI8k8w9$05 zN6<9HkZE0V1+>RW5fNzJXe(?o9z(JiXBhXlB12 z9Xp?RJ+jkB)JV6bJSnX>b`&(e2II6E`_Toy?|2Eak|Z-U7IAb^9Elw&l5UChjja`1 z72`~|@+jl_+4kB#(oQ;~o%qb1j@j*vx?@sjCKVnbN?A`=gw)SO5-*?Ipw@i8X77wn z@XkA)o90AltKK@)hf7pi6Fc1zJ4=AbU@>FKdY0 zQ$ocDyy2K2=imd>O8{sX0ty6WY}Q*MbEo{B@722(&%FsG0d53BohqdUHaBaRBi2Ut z_ak|J*G(h9L;K`a$f^G18Q9#6`uq>KfLcv5?6z-Pm<0joFcdO(r~PvgOQd4iG977Z zHZwEWagqg zg-0C42CQM%J2HB*E8Mq1X?p9N+m||oNq4BezfJs3S(kp z5|#BAT}?^%gio5)EMNEB?!f`1-`IrEqAE*`7KKKn+l}n+E4#bqrmi?yOeRWMnp#+9dF**Y_=cMaPTSg|vAsP5y>F*cCFH^3m;>l!$8@oO!Dm=T1_*n- z0ZjYeFEmSp;0nepnQLf!EBf8CdlGq2S?W_(f1^%7`D`|KybBJ5TlcG0lasClsiiAl z)h8=O`ea*6S??fMsgq_SnXDS;G`p*q&zpwx{<~cd*C~A(51c0o@7N8ogv8OwKt;|N zqwV&(H{L!_+wU&1tq<+^b-cy#%4iOAemJleth828v4EwvgDE8jq7nG{a)fQ{{bkkedB1x) z0YKBNT(81wpaG1P_xD%ZP1lLV>X((}Jm#C3$@hD9k@Zx;foa;Xbw#Grlj{1Jj*i9- z53T4feLoC?PZ~#9{FVmZ51=&gJmwJMGsZFI5N#mY`etrcV7J(j<_hRh-@k+#SoW3Z z%JS~vBuiHaq+9Q#p4>pzsvgv?Ksy)?ZV(Ua@ewOR{7VSy=NY_$u)}dq(2+3WMEbLs;&c#bYB0-Q}KnH~MH$BdG zH)!43cQxqIGM7Qs6)0#>=*`$Ynj?vDoT!&zR9+w=wq_>s^mp4aR}Rbe!yq|B5Lhu( z*3OH(@{7guC?E!&9Ew20SLX3@XIK_PX}QKyZ7h&y3Ly?7-!)^O$(9X)0{~9>=hM$k zse1Q+2yrMb__62qwc5ZRr+@k5PdZFP$v+Jj1h{R0iYor)&<*hfdSW;wUIzdTk+%84 zSDD6jcq!;Qe7rcm2qzd&+!RXW9H?|18kZu!48?vxX^$YsZ78k6ae<{$106@vZ~I7_ z+aH#l%(#$~xmr)>HUcWdlgs7yM{N&ssMuuoD$cX(+ z`19ClO@dt8uE?5e!_%af=KYb5BDal_IoC8+NogV&X%{P_OfVN8$ zk-G@s71+9D0{_5jN~6`v!Ben*d1>1PRO% z$vj6nCFa-HXBy=CY49FA2Y~NMS^fN`nG%*S!>tr1ITnUNj(Fl%Ct$eh8fH#e^`{@}YcqPJL}!ZIvW?l8Ll&Dj&IVp(S2 z3US0ajG#o*MYH$|7{gdd7q;UY`tdU1&|cg*bK!%=#bidvOJbVS<}6sTVatg#G7492Jb3cr&4({P{;22z1ql`^T!dOR9;@?C zy|d0GZkU$M-XJ5V%UyxUd42c+5P}gDi3;)&4v(2o<&{|}KdemXQ=Ow+RW~ZKLw%NL&O$D3Lp*8bOp*{NP$Jnl` z)7}wM`_@X^+5GZDx)qMF!p43=e@7wX{}L*EK}@S@!7yB`aKuIGheUwt#e=7bx`ZJE za;-GQ$#Ih;<0)l-3-4w`LeN=>Z_J6cp+k!MN4bHP=bOFscRu6d$MxHHRu-e20{ z^tesZ@sJE8iz|)DJO_mq%?x&@{k5vA&Fd1~7?djD7VpQ%+%ROynpXlrc zJX71_jJUng{=G004A+HY17B}z+C|U5C1KROE;HcHWj|6&Gp+hQs_HC;MHy#7*K$Ri zZAA*<#Xb9`j$QeQ6$EPjFL~PE6sW=`n-vO z2veH#)^QE=5A329*-w_`TrT8NuEhG$lIZ?0%$$GyG?8&^WPpo~#E~<7)XUtlIR5r0 z4P}m@57DT0j{3^<;nqR23-_w^4aI$rs5X4OkqvLk{sz`Wj;`JOr#=TZDP2No;_k_w zn&L@m1tTfYB|&zMlPnR5mbTaWO#ICgH_x`t*2)t=ZbuXvuJm2%P625h(>zq2M$#3h z5p;Q!J!kT?Ed5;tS~LkXY0~GD{!Ox`0$oVZZvYDE<0BGsfQn{8M z!2bY%_&?Hz<3By_e|`UB|9^o+gpGiM1!e$X0ue|C8P9?U0~I*v5Lm_v9n1g#$Oc3L z9Hs$602+b@9`6Gagn?aV4L-8{hR`mYAp7T;mg_az@crj6YX_s~0$!tb zD@Y0j&5dJ}z`@em^*jV)OUD@I8u3cpHTv{DDpp3q7KaKqWVdgF)wdNDy!(x!)FUov zlWMzicgO*r!f_atJY)M5u4nMkZA>;RQUobeC9#!?(nGD@_ z91=JH^+#^3I}^9CLEgC_ZGAAm*Jn}>LV+?d1vN^b!dv_Ra+ArYL$_K5lmQ?C0Ym_y zkcPsnysOJwB<7lLq^kdv;!!B_ZtZd2Yn+F)Rvp=%()8QweuEp}iq@$-eu*6J%;8IZ zoWyr0w-TAf$2((!!@G!#>}pk1o@T?m)`QvHtGfG_v$q>w!V|JIACb2Y3!u6bn3tdr zt5K*JS)G%em6VztYv_C?6<~~{HNRE=S6OACRmyZ3loJ0%yh|Ea8V+!*=*w*t;&XKHB}$4BuQ{tGAdOkjK2!Q+z@19FN*h{-|DKwn*tpJ8rS>@oy~GendullQ0t z@||C0%8ejO+mhbm9qE2v;F`j9&UHeEni@See>#H?z>I+a13-$H(h@dwN2N1hgghb* zLdu`Kf`%?ch3hoh5GbuH)#)rzMRzhKd+Tm`Smj_Rg|2$OG@nYVJ-2s1!`~`Z!cz|T zQVJ!@gJhV62BM!uj1h`dOHoZwF{U8hFNgte;Zp<9gAgFnLZ?_lW$hB{=ZflwDoBV()QS!%VqK8~HPOqQLHgGH z8!f(~V2??>b@IvvEn=X%y8Hk`JJI!~^!vu7NfvG5hxqM&$M5C@CYFM^hiPaNJEw4iXtOO)_)G|q z04tmm8dWMwaAp>s;HI_J}GEw8gSY1n90hO8br>2 zznh{9;0tS5fplKOS-(vtp&otl;V|nM<|CJphPQtG)_{~xvCJ!TM(&XCzO38!g!Jmk z7aQ4FXvK8+#^^h^EJ|Eh{zFrUw%JgsE}hw;BqjwX;rzHaDjupmQAB=`T6u!A?lw0V zK|#2>Jik2H7U_^gdv14 zkv5b{B1|6zZt6q!2CkDI|H~f%CUFe1{wUx)pj(VmAHzAf!#k~Xb0qRWItK23(;U5Y z`9+ka2`gPn8RGRdng@SC zEkXW%USa5l_^UpZ8!Rf;T?^eb#Lzww1^gDLNoMe~*7Rm|NimC@Y*%RH6e`x4lFL!; zQVsJ1A5~QYY8I>^=R|}gIdB}8Zw~!V1l>4y>?IHPjT%dJ_%O!4AaZy#%rW+I?aD^g zD|S&O*u!2`1M~CeR({JQ7wAr{(0OiL4c?B5i%vu)NB&Vhhn=mmE?W?zvlEvRw17d4o%#JgdOykFn z-Gv{)tRuO!;l>cwi9z(tHtPw4Z=+?sJQPisZ<=w*dy%tew~cNE&sFv6;-EqV4-Y1a z)L7uPZaxZ`aAG zYV9Z7C)8h{;y{1C(WelSd4A)st)xkEU*p zxwi*OJXb_{-c>cmBU)`MoAnKfv7Cchsk>4iw54qVBzns*`38~-QZnK>S-X0kJ z>yUtxyKG^htZ5wQ$R)iAhz|^N9uc#B^b|eHDh9Z1UcNgnTr>eITzv`KY#q{k^hkP;z^Hr>r*Sv9}?#xpw(o5(wBN zN?^PO7D5Lp8%3f^mkgTQ5Q)^GaognEWLqrGj3wH=bqDEUXJ`S!6@A7i-;?^^gt|M6 zK_zm*<*n5pYxF#2&emk6k?}=1$|L^*WdH0x{>i)i6Gc*Sf68O{pWFK0dXbI+j2f0A zq99@g$oum^;R#L^01JQMD&A~-`&9ynsCF+U(c*-}u#V13fkZPda&TDxxr|gkwUr=1 z<{vjhx6gkN-f@VPb}{4U$tfePOIhb#P?Z)fc2uP_o0ftg`7~PXt)c`;@cVUI))NDH zQ#tEattyd4e6I{aXl4wd;l{I_XOgOHeQ=&`z0J-8b2 zb&}NF^}JYU_OX+_^vf$#{;p)l<8C_ArsDFX_4UoJEVKw|g2cve0f6BWrsBay^9^f;xzIv&|p`(~YH!IYtppWNI9| zi+=}m6EaCbeinU+?HGAeElnb9hvssklG7BS1g&H1;uxFcK72T_9ffo}>UUTHv56zx zA@4ApoUZKDK~;bc{FLfcM-}JbQkgz52O%b zVm5q#qn(#6X zY1fv7#!?qU%ByUtc8DzZ%Dm-}pqELQEzsCXaGY$2bU3pRvDrPVAarKx8!nT(Cp2GP z&p)Y%mv;#D>;h(75*#;cpPUEBbAJWBbe-%}8Gmxr>}y$njZOJdpZzqg%;k2` zYpgUztiRI8zn(jI-p`wWaA;pJ)(z9oI9;Q$^?x&k`wge+2T+g=c{%0)at1|Rac(h` z)^7Q_?}pJaGfAy4fsgZtqcdz;TNagT!DeaR3;^1iFikkle2v4uZ^A$A{eblZ5eD9l zO<(Rz=!oo{lUB?&J!L_<67129HR^sf1H593a)nuNz`QhIedWIjc}BsS=$nJ+n%_+v z9oaI_cx^Rclshm0COrFd;@5lb54c4Ka|PEyIsSn}@-Ik){b6Y!S zkkr%)e~#u@!#b*8=jO+eo4D%bjeif=jjvoRi5)_pZ;lo@CJ{H^+A z&rlZfp4lnk*+RqKH8|-J4RCbvh`==H#TV)U&ZB|ZLAUB5p(YE2p7A25lbY?5e4t=% z46yeOyW>>TL8j70)R7u4?fW?yKt!t{YWtA{0M_JlBEwMw@upK4 z6ie#_Z^sPAUM;Xuz980}Ts#iYFue zPQz|GR%}m3Ckmgt79#vX9@#jtJ5qXxx?FOG%C`Lpg(KW@XB!Z{b5PNI z72*o+r-8g?9}4l;mBki)3Nb*pVf@cp?3_~2i8`DSe>(Q;$WRdkc+jRf7&j264Xo!dD1#ZXuu@RobUVG29dNB_JFU+vELIzr z5@w?~mqx%_{N6^4WjJCgfrhF5X@W+OvZPB03oDCIipPd`1YnRQ23=&OE;cgL-2(@j z+%3RZ!}61DW`^P{5`9MvZwkk6jwF~+eXZNS>LUpJY)+I|E-uR_%(zPE*qM>dXNkyo zqz?5i{iIAPg&GGCz1_{gA>na4YmAr|QKEm2_`&(zx%3TILL&MbbOjsdNirg5JQbN~ zHx^kslWU4xvI7~!8?iMz*^41~Dt)Fj`^<-(Sp0=V*p6Ych-rR*y=mQxzk)B`XJX9u zf#C!cg*3PJCMmRqNXDoFf?TkrKE?B)Va8NX0xLVk%5>o3@m{nFYsHof-y2%deae6 zkNgQ(vFT{Zpa~=!w5joSnLn^dRm;W@mfs1#nPya)#0apWE9mtyKVp<9>Qyr-VRQ!* z5T2o}xR!=0P+Qwcx23BnVPc0_8=2RDNb`MVB^lMiWn+m1OD9O)Ci2_c9N=8jvS;$Ion$xt~dSQ` z!q};}uFCU`;$c3_Geh4e1PeZV?y(9t?>jbv3bkQ1J#5w2_ z^Oa16MT>B_VYK8>8cx}#c~FhBkH;0Te`{i%3+1*yejDD>w_zV-5uupKjPAPGIm*}n z@^>vt#+47j5ja&`UFsj}Khq)o0{%w0b^Slc1p3R|_%6ljb2IiH_q+bWrE=TEw#~Jp z%4plfXVCkjDI6MkGX8P-^{!u^HNIC#$Zn(oiiseWN>9%3=G~F1LIKZ;}k<=7nJzR@7ez@B+M6(m;9Pl@C0X zT>xpoP+4tfY)rg;wuly^bPP!V6o)D1nF8q=1k@T*T7)eqoX_i=-yj;v*3`HjQouF5 zCI10x`F%T_(#1MhwsrF^Bk<-`Txz$5dEg=<-dksunNYQ=1R#d_!eKb#9UV|1!?ir} zBVM3n9N-&}gSU5fq_^0}*rI>=X&7mALC)Il-Ei8KFrXWG(q=XrD629WZ**6qYf(5} z8%DrCa+;+n|Mz@a3P{rD*=*-sJeZb~LHkjB+gYw)oS~tjb9gOQ2bq>5ig`hVmv* zJZ^FxRuafS**J12gbM*TPgh0Dh9sLMH5jm=9M&@WBfd$qVE;?x0=0Tpk4zQ(8qPwp zcK+2)>w%c|NRk8@k`<{Lo=31XEz+y83md$y=9L%y?nOvP2M)eahx@HISxzthdp-I2 z!tHxaZ34uro0cX|DZ$nf0?9*m3N@+{1jdmYoTba#RNXed_Dp%2B|5JrAzhaqgGD7` ztdjNUA3DoQ+4PXB#uygPv|BS&8;K$VvKC~>D|(A0ZYckc zI@TYC5$$~-OCYn^VF7RkoS+40W}mZ(-gtui^|yvA%tRu`OvK%Dg5+FK7@}x#d1Ij+ z<8S_W$GqM*_%htkBOR_e9`yH~7GvdL=70cpuD`?nP=ME%{e(+ckDtRwdRw-Y|8}O~ zm>endrp#{HgIK@xQn4>{HMc3-TJWdF&cj8xj+0YsDu}N< z^n>o_-R7k#-QDK-@4k5WAG~_N_I0nAtflY$QNs5fSs)?e@6Gqc!f=F3M7HL@`7Yv9 zV(}KlX~ek;ayIaOS+^>;-)g^uM*xyo%l<7NcWl{+4zu>BXz?gzqc}Og ze{?n)YjPiz(N^(TGQ~FSir1_euAr^3xxb)qRWweYN%+?}2L;_c=A;rA+1_oSV(uTj zUT1$5l3xlju9J(xhF(aAQqu0fdQz@ZZXy}bv;~4C+0OEJ62RWyZm+RhRhH_vI7Zva z_D8T^X*lcN<{XIMfti8<2s!8zy!e!p?!9}&GyyikER^5(xbobGDvCWs2B(LIdp|tHui3|L zn@6eGnqiQWyr@d8yiCBcOZ@lP`e7hhFRWTtM}1SnpK#f1;bo6cqsi^8&30iS+`&Db zJ>QruI;gi3!YucFAKdx-bm3=n)BaQT9L{)*k5_Io9uN2r@aq?KBb!48G42-vgqU^6 zoPC(sts3}?(y%d-;N+Hmoa!3~#8#SH+*|s(x|4OC>L9atU7t{HX5+L~N7O39Pujw78cZhG z1vTxI{nvc9yb%(A`BEnY0?Z0K@!>l>Y1OzaGG?G@?)h|#$?!h#bN=BV$?=rwXWRty z)3%;r6^-+U3d{g&N2M-d87jw)Nf{i@ z47Th;vMl>-K}JaMOOl=;P15WbBZr%0CGQoTKz5@yU*=evZA3-&<}VFMuLKs34;~}D zzD0Z;2%Q8_9vooKGaY7*v!uCp8KRM?5trS$cvxki<*6E-!gKgT&bfo5*Wqh!~a5%=R)xb`n@0*s>X?z?tH-FM`Ly1en)yuy0aOeeZq%7W4kK58X9LWsd_XD zB0yw;f`)z;zfWkmQmIGadShv2`%^4xY_@J6I-kaqAR*DK!s#2E&y|f>^G>22n7Ybt zqoj~ayDrnvWlz^+O(}+FmS<3NI~QNwsW?mXBlbJ8(p4n`rFNT=?&=*kA`dyeKgca6 z8CNon4#P_s%gLSNI0bUDzgPS)nO#hC<;B*Cy3eol2sQU++zgSAj#r##4E&m)dC zP1NPZSJSPt$hk*Dtv9jIVY4NuvbSs?xTc_@oE|x8NBwE!)BgQsQ2>;h8d%uS^^|l} zySeS;l{+*Nj0LW-u)I_AR5w(Ya2eG)b@!^j2m&R)Hx+l4HpeFjvm24Ws(1d?z^mX^ z$CR=<|3UdzJ#WeggKw6qkuUzam84Vk@@rFl&Z{U&^Dec@b)CNphX<<}*&Yz=C?cR% zBu(wy8s@YVTUo`PJ*vwXtU%%L2d+qKk59f+cTH7vM~k)uJXSjy#}XADPAw`hBUGCk zN@W6c8#l!u=0kS(<~9gdMADX_2j#D87~B<)&5yS)A4!_kYU#b{1^NMb-3#*5>gG+T ze6q0`A-aoTIgKM#01Jz5)7PWWpn0Mv#0CPn28MtLO>QhLcW-x|9OrG3_zPF-r7)45 zhHXtld#QMJh`+Bc3GUv%HP7T8M%;M}$CS-&PuD;0@V`8%?dFA$&`K6dR0=Sq9V+&E zZt_AYSq9}ck*RZN;1@ZFPLF`0BUTW%3f-)uhsBuSp<$>M4G|}_n?AJOP;&uzp{1tt$p?CUF!$-yZgMLt|>!Q75AlM6( zMY6|UlpT)0h;A!PBH32c9ocS}JYegxql&X5*bI|LvPBNT=|g-XsP;)^7ARaS7Rsxu znl}hDQ=<^0OKeO5$?D5JF=cEOuu6!pQO1p!&jNW%l?+LrOdutI{cecMwqODbPDx1) zu;~l402RJL24OM==o-Er_*rDMW=xCZDUW%XHowLHSr8cq#)i@yf z*CGDZ+@<@kk>d;O1;RD@#?GEMv1k4J_tWmfjh#6m6Xki*JI>!srx0O z&?%^B0*LR*?8n4ptP<>Dq@e2XI&~rY-t-=Vg5J5hAEJv(Ps=xj&4UW-A(oPvjG|DP zEKv+Az3f#7ekHKCUaNBS?Ce}nN>UhCW*gT?H!>L@YPv!~LcZGY!)b>AISpiW_*-(Y z|0ENA)sW^YIHY-q`1Hx-Utj|-S6}bUfu(OzzFHuoRQZNV$ml28D7J+U9EIg3p8rZl z!l9L#MyzOh?PN?cI0r!H5a7r)c@V=fWZ>++M^9Q|72e5+ z%D6H@;vCpMkn-IxGkFe_zdnmMB^_P6NcEolYEN2Q2L8~(f~!pB)vWw3Ez8I9POhNJ zZs|psF20!uQ0VC=7HmTIyhj@3DO5CX*b^hEq~;QeRhYrFhP{7U<62nHc`MetB0f@$%8|o$CG<0MQb^icFY1 zR0?0v6$hdRMxlHVKH2fxT2($`QW{kh+oZb^}28Fvn9VgN>WW&!%j(2O+ z5Zd!U2Q;YUIh`g}b9uOx1K`UdxIH{+ed(*ePCUR<4E+{Gl=JiL$}4wegiOlm(e%Hy zS9dvm_Z?++@sQ02%x8O_KKJ&86Lsf#)~2gtfZc(v#D4iD;m7Y7{r_6mk-+-G4>R*U zjaDc3OVYb`td43{W*vs!`@>Q&y+15U^jqISL~h_X^6|4QQ$^*KM{um_#*}F1-Cl25 zDw8o!W$wrW7~RO@N^ROxaR**ivmGJb|CPH8&2xVM#n(iU#B9@045)olm;j{ z@R8h5KT+A)Kvq0%HP0ev+I%Ej-Z$9(t(S+!4v4GbWHem#0C1h}|^dUVP z#vf5V;-z|<-=J7NkQ^^ao?akl->SN4+kpoNd%KRm&6vnx&TiK3;NQ;pgYm%yLI(_N zK#lO~BEmJVylb3TKgyWISU_tb{g6w&0qkVPF|z&Tmvs-B=!U=H=L70z4(~^v^Q9o; zg?jKw|B=|UlbtnST+r*K7G)|ZG7@KkXnKya02Y@NHX%ttkknwWqa+U7yLqc&bzg6u zu8NuvBHXJkYM5-WQ9{*MdV|~etePZRqZOayJMN&{I2mnG`Q)(2DdJado=v3L<#9ml zaQ@>g8mSmW7_tv#88?=pqYyT7B-fE4O_tPHKaqJYNdTwy=Hcck+!*W7F~=|3NfJ#h zfs`NWmq^*;UeyM}h+OQ02Wb~jNTcW`qtQ*2(n&2}wAC9%P9|iOLckBbA2J61&x+aH z(*JT`D?t=_?;j1aTR!Ql z3i}ziwLd~+Dw1t;i~5Y~nI3n?>Qm|I&n$s-Zf4yj*%HBX)aMUHDs5)N{ty%ZrQ5X3 zn3k18MdFXGs_#*vgX)ifi{D57s{@z{YODl6&EDkfdZ8lovL=lJq>QhvL zr)-%;w<{6sGax`yDzqex7_J>aN`1Y8$vti%@$Vm87B9-V8kVu@J-M}63GG?fw_V33 zZ%M>DH1D4>yqz~^OH$?MxtM>N^xdY{&--Yybtb9`k5m}ka@`q7&N ze=zt{1d8$|sxc^R4<*&I5v2RPISXHbXs%X1e7Nr?y5j2FBZ6h`lQh=&VUL10haWA! za!42nieo*Id`u_cUw8DZkN#|UI&5(zW^Dsxx*pDtYw952y?(?ykpBW4!&f%p_1zx> zPj7OkuLDVTd>IGQc4F-l#)UaV#vB2Ej@9izy3#~gv@J~ zJsy`yzufq|pw;McE9axO*`p=xhk~6tv+yX6+pH$r9+<9NK>Yw;ghac+wxnS)w~Qm$ z=a2EA(NEnF^+9Z4Y9r-Mk1t@eP4ii}Bttg*CyNteh7N~mE&fvs5(+Q32l$AsY%%iG zO9#!>z5g!J10DyxdAOIDRzdC#5n{djyfuzjPQ~-Z=G9SA4o4%a8Z?_{C#t8)W zRUWd{xXZ7nU7vTXG($JWxop@fn_?Gui8HC$oqicXzw_4~Zn*2k;K}r7wQR33ZWBWt zeY`lQesZETHgj(MOeU!hx`D@sF88UbZFx2{>*io)AZYBuUZxnpcU<8NY^b+8SEu^@ z%MQiQxNv-px)!gE6ZVaMp1nk+bUEl$i|i~Dg-oO3id9<@*tZXvS`FDaKQfN>ixu|ARWJRwIPV_4+y)agl zMHcLG-H>w@*RN8jP~knrcFJqLZwv8wMP1l4?WQy<@OftwZp`chjs`0-l;tuV*9AfF zpu=WS*3#;7Ab8hbqz`3eV$9)w5ZlL{V({mblW1)8V>}C3X!yI(7xcb?w~*f)9|3dZ zHDwuEpQaYtoV*ra5;n&^=X+JlV?IXSQLuUx+s8btzZ6OdS5ENv<-5B*JNbP%%d@%u zc3(v5gTL|pmyV&GyC+-86j)Sai*4frzDC#T*Q6c{Qu>X#o9IHB4R~Hw@_|s(}z}ahgZLd3d zI`glbI@K<;Zi+-sk9uei&5yhXs1SPH8bs{volWPR2*bOQCaI;;CRx?!#gwSca9xF0 zlE#K=#F|hy3u|lfdxOSmI$(UC{9$%?va}24+u5dcoCLnfI?Z@P;^N?G(aRBmByC&& z4DqjBqSr<6+U&it!aIbCN$p%oO7Ou4Z>60^B$W_St>Wtd$rgW;7S zYd5!lw=0M}j{7~wj}JC_Tc^)UERbqM6Vw8`ml1QaKLhu5De6}z=u}xZOb>&90*=1t zYexG{-m$R`90Ng;u+AK7Z7-J9|OEoqqdbXG~Qr=caR);{I)i_ zc($Qq2|Yt2b(g{Nu%rp(U)IaR$+xIQ6sE9d1_d6eQ{i%aci*URn524b-t5JEdHM03 z9X9XQDw9ar80AtmcJb}AEba7j6ZYYQM?oK=^%sr*{=S>uPIvFbsw<`bw)85A9Z8_| zyId$7l5(<8b9XXm)99d&O*j?zxTxDF4?r>A3V%MI}5`1d4(@Z@`p+kA&x6@#BR*C+A`}^UF>7IEp;@F z4sQ8lRWFFc$POSwJv~6w|_s*pr~X zyZ;^3N&Lip{}-jU8uOdTy;#^q4BhfCAwmZ7ZaSj^21;7Nz=0I8iat4(7Mu^E;Y5m+ zo+>9}=^EW^ypVG{1Q)%tfd^{dV;rm>a*9 zW$Yn{?-;iWKy})_FLKZu3sP_98Y{Cyr^t-f&%2QwU)%&<4#M|5Er1Ne^DJ+>ag{e; z>t`BO6tMh&iOiA(%Zuq;Mh+*YR|p{f%&%HH^{wQ`t5cmh-~U^EJK>I%qr9756(cW3 zYydqshXUKysCXYJ$fT2%BVJHiY5Qj*v`fk#5E~_AgDk*I#!fA8UXjs4<5^@IwG7LP zL@GO#l7wM@RKwBfa}r?F8go9EwJ$#%_3yFTt<4_O=()8=1khl?=Q7O6+Yr}$EX?KP zTLE_2E`|{lfg6BDs=o7EeO?%|1-<$+FBB{i4z92ZLbm&YTW_DLLNb z0F~?_J^i;J16Saftcs9zMfRLd)naEkYvka>hpdZx4|n&nAzs%rZYQTABXMtK7f;pw ztsCeVZ_EK@@j@&B^wqGu-T!Q%@{vdyH#sCkp2+$S12Zo0PLSbYOT~;rjm(a#krnWi zCm56w%rj_Ctj^FF%NDd!pZ0l>!=kg}KoER#rE5z1?DiC~pbG#&GmMUjI?TK% zL!cl`&NkPe)NbMyWh`>5WN>j@izYC}DlTSja;-K@Y0S@nAO{NhbPjG6C6Sd{Om+?3^Ih*c&k=Y&_N;04LRk^me)+yn@+#l(Yc7=4yrUUl`M zriqGAxiT1d^E0@LHE1RRO|^+jnuO62-A&ve;|QgYh76-+haCL&wr0nxuwjo!uVV>hK zm-sNOl;T`2+&TrkUY904I=W1X5`-7I4d=6%KKe+An$DKz+9N+|ti({4kyn2NXTZ!i zKt47TL{FM*Kb*FSmrlAi6}zLot{xeBZWIEwnhLeNMu-RMO+C-wQa<~eK@cA@VOhF- zmF>%SuRxOdvN3F@=E+t5+;fHpI(U^(yQV8?lNi{RQ=BGeBp$WufD;3U*StR~-xL0)#_xg?$h@}!D>>GQ^&Iv-WV^HkU4zvJEu${tgq(;Hf~SxQ znOsy&vRM`~BOsTFe&7h-uA8b*sud#@;8I7+#Axzf3>*lurc*{@4Rv}Oy@aD?Ejb8i zFi^H0gD_%8mx0*Jitv!+yiCVA6_`TNfgG*p6fiURTMGO00 z+%Qnkkkm|wLR-T!j z)ZYb?x*v8(R0SlQw~Q8UYH_f^Ema zQYRv>@>OWX#VupQ#=n`_Qi$0osH7CNU*#g&B&uC3vID&5|rnW-yUgcduVa zo7-2l@qnOBZEyi^;l1%Pw21s=YuN>itm$83o-jP@cB&N*Xe)tNdv~V*cXu??#-WRp zZdd__Q{uMs%+=-xGpgyAT@93Tr(Il%fJ6!f!T9WD#K9*PZC)q?w*6w;Z~|`z5jQnZ zF&T{ZStWkC9W1+}H~&Gnf+>}x=(9qbs4z`bWTX%mbCL0o4XRI7 zY5*j?s#ya>GmE~A{K(MBivYJM!HRj51n*2yAj_P$BaA7O2b?Rs4l64TF74FGv~Dl6 zQWqCChZdXBDQ{6qrGcoN({W1R)+%YsPfKsI(+{h5rn7O?(s9w;g)Fx#t?9E{R(gmZ~|iQP1yiju0kH=*;f!cK#c_F$sug35X;G0=lkY`Dvr;((rr5 z!YviT%3=9cpv-j1dXUt{j44dE&85Y?fDcmGX2m5;O>C~Vf{U22OAI*(B{Nm{VsoHg@fM8| ze-K`XP`h~adM4HW5wVDyp1pXz@E;9!^+`-&UNI%C+4Qx?CrL4>retx5u-+va-#&r( zg3ni}o*ynspL`gHFIjLtmv^7(hi~`po=<00yWwRuRZZv#Z#6(^d`9hMDq}X+|4#PK z;j!d(&`mW3YFHYh#!_-uhY--a&pzaa2{jx-PM5Gg92Uf!hOVu*&}aE14nCZ{LbkUR zeHUk8k+pw>b=J$=t+(m7?!oi;R9{Rznm0|`i+w@iyLEJFr+g>Rc&;2J3er1zRcJB| zk%qw*=>-pg_=z5#FIC(;U#ML7Ed}E}bI^MURuLEJB`Iff=e)A6mb_IOL`2dBwnxvj z$n8AE7;QZaoqkfPF+TF)hNx`UikV<{$On=2a7Jg2L(A0r8?gGc%VME++707efhedJ z&VH0-k``11M4nRArt|TIWJs7&ba@~!u`;dq1`ulkyg(8bnn<$EQ3---8?oU+n~!^J ztwV#oDARa}sLmB`g_^Z{(>U<7)a4a=`JLPi5787W>b@h6rOc|g3}g0(EqL&Ft#tbL z>mT9U$n{>o2^mjBrVhWGVvSifKM}q~A*`4z=gHIr-$HG`=pD8h4tYFBIO*1&hWMx; z^nA+tP*@MxSXtMy=ud1(EjMdu=d`~1er`mY!OmZd5WS!aioHhS3#{8#;y_lu!QtGv z_cu5Hdn%&1NGHxtr!eMAsZ&qugFDEL@nZ5XuD;Pb^MngIWF8|R1QRmlQf;(ETBry| zkY4Ud&pIumPjj={*~~-Fq)K&7DLuucWm7M#bB%)>st6}U@5M><6$5Q)#~PnX@0_3S ziR|X++0h!)lKPRDf+AcKE}6ntbthAEf+tWCg_#9uJ%(1D2|P>N5#wpROZmWT6k zilC>WuA8q^Zyx?t)cPcT`U@h}`Wgh810CR0tpDzV3P%H1&4r!Hz`PTP){k$Q1*UMB zS6)>jCl4GlQo?ooojkNZ6g~ zCeX=*rHe)~0c`0qT!l}UZ9XAg_UVgvRE%VQV+8bBxG5Sv0To5bubpN9trH0JPbw0x z{i4Ur7MTGh7DrIf^DK1Y`FKd~tf;7@a-}4e$6(CX7o~zJ1aMHC#=2)tp}*^tX~E2& zZs}-X{BA5Zl(7qVw8$OTy#_&ek|Upzu6H#Y&89K`L|B5hPYrZ3Q>x z#V<_pF=&XZ&*QNEVNqlK3xkg648v5I5|oYQumqC(@hUlELstYP_9C!f( zNFz4o0Pte1;YDjf8&3O|_f=B(2_= zPfVv8T3fUJ$O_>HBFpZ129|P>q1{x{dr|)vv>$uO1YPzpFjzLRNXD!~Om`Dn9JNdHZ3rJkoWdXw z%IQCpVu<%9{0~^Z7?=1R4%S+Hf?Fc8mJ3FiDRC2X{dc+;mlIj z4Bq^T!9v8tnOpSqBO(rs<3HZ7ohePy#Zt@8Rcn@II8Mc;a+jlyzUR1KcNdwD&u?(g zy2g9q2Cuq)LmdfI%WaMWuMCwP{$n93>FqJV_2H7EA7;9eCY$4cYeS`f9SKuQZH@yk z43+QSG0>GXw%Fi0@X28aX#e|+URDQ)uB5re2G^ly^zRGv|IzWtU=zWJ{ufAy{}+l% zdOx}Y|8KPhYz*VcPa%F9#)sGkF9ng2(|+OA)#mp}Amc4UDx44q!xR#!!>j&Olao}I zM4SsS?wF30T3C%KFk&*$We}v(frX zm^1iH*$nW5_p^`Rk4sPQ*BHd`!}Ose{-|+=sUwq!BMAmY2ug_);}cS##GaAvRFcu@ ziRrH*B(RMP3``#}l3@JC#G@(<2fhNpLszYyWR1~v3x3$3lW1gmQVE-S0DIx&w(gz| znA=~Rh-vCF5g$I!muHZ(b!3?`u#amtv%Eho_g)*s!d`!Vh_!ou4+M(a4R`#l13VW! L{Q5fJ|JeIKr%auM literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKXGUdhnIqOjjg.woff2 b/webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKXGUdhnIqOjjg.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..c2f5b87935a5049c8003ba8ee26075157e15a694 GIT binary patch literal 2340 zcmV+<3ETE}Pew8T0RR9100|@j5dZ)H01vDH00_wd0RR9100000000000000000000 z0000Q92*cE8U|nhEC_)n36C@p3<`oYf*}hK00A}vBm*1-AO(aL2S*Ho7#m{_QB;r$ z0DdIK#~F<5K+o8&r+aB8!6C$Kr>gr$I-v;i)l5(h~Iv!zng0t|?J?+KUwd z0q|mQ){6oh1PPM>+#1C10B_F_azN{1+crQ2I+=@e*c?cJbb-_ekT$R4FJpzNTjt;sM0K|xN7XTd`0D`${PZ6c!_>>m36)-vK2yl}Rl(%KGmt=iAh7=eN{#xSS(9^#GuT zXW%2a2XS19v#38Ti6?Ow_u&Gn$8Bck{CRWdSYx9j!$X4u{e8VX-Cdm>?QN0P7IWr| z>C>i8nLKIYgy#CX+M4RBit?~gR$5Z51Ad>!?Na|)`=Va~MHRR~aZ$12Y9dWY zovibFam9s&UJ;r^m?tLKpapzndAK^NSBo|_OIjhDQD&zwqFceOWj19(GH3cq^AWAC>8U-!e z*x%t!^+ z1Z^GOFmL__#bSw!g@+of3aTqE9ewYzye4F5&E|A^(5&b{w>{EA!Ze_mVcj(t z7p3TNzZkNa>t&Z^T`qCC@IYVN31NdobbrBbnXkdH9{JRM4F7LIB0Qd zrSA@`b3%+bbjnX)M$-~c{p5vzENSkt;hJF1YY8(%N~G0*C~;TM*TQ9v7BH3tP^>~3 zT0jLl8g)F7POagt37K@$+?kwOS}wT-9DM5>fEkm(Wn5)miv?Q`->KucsFETos$AmU zy?1DDeZx^h>14;1TIshe*vAy{PQ32@kRFs_xtz5p@C>cKG~5{WX1Fo>Kz|DcfqvYW z9x-AOn;Bmw2MN-NDKXXv=27hph+N6hoO==OQWVoF?jI&E=;SLs92q>GamrE^6N4OoZahIP?oarFQ}_ zIKmT?y>WMGH-o1%lSy~wyONBQN>C_t(b>jWWFB-CZ2eG6j-a3ZDO_;tY`NzOq;dk} zQJ+_Xz@WnII0yj6D%jl*Kn5@!K$M5QH4R`uoLM~z6Tm&C` zU+^Q}{nT^f=NnFV?Jd}^Qx|;mT{`r}-Zy7^@Y9myRwZ9_026)0tiEF z1Qf`r<$wU-G&tW$|4GT)1y_LDhT6vZI@9a%_s#VPkp=BV24+?wCxd9?J44DNZpJb5 zsl4}|V0|Yb0F?W#d&;aiiv!bsS6wOq;Mt{J=K#R#l`p*hpZ5Qw?p$>V7+hcg00PvL z|Gy4!-S(fB5*lkjw*wVXL=um}6qx`UM@UH=D^GPA*iA@+w62X45W*M<3_;Xl0Z<;U z00#k3v4R>QTmZHJy&HrZ{9CSE0UT%WTVP=|U)H3eW+K}V+r0O-cAvz$k&vBjpD;*+nY zif>SZL7OZ$b&QI2+tw_WTd&1ip=q6Ey7wT~Sq;42j;+V1&Uj1V5lZ!=^)gq_eAR_I z^qgh6Ew=94sqbSp*QPO}U~V!6wV3SWH5!SV#Kdwn1#fZGTG^I+7RznT+xO`f(Qd$~ z_Gt4OFd5+dc66^mFAYa305LFdG!Q2tzD?dj*}h?QeMeK9YuWec?v1PXi*>kr!9L8V7|~(kNgB8w1wi z0BHdV1U?Kn0WLFwl}1>PgKou-5J8X~B8l#y(-LE&m6g5sD9%W4+%+^mPRGTKQD`uS z=f&l6aacEhPJ-x^xksOTGFsakZy22u*9+$YUUp=#FcCuQwr;JgT(ouDwn{{+bt{5A K0VynR&LRLb=UQ9< literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKXGUdhoIqOjjg.woff2 b/webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKXGUdhoIqOjjg.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..686806694d0725c1e796724b3e934d9c5a0e4fa3 GIT binary patch literal 7448 zcmV+z9p~bAPew8T0RR91038?r5dZ)H05RYI035gg0RR9100000000000000000000 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 W^&2(}KUkCNg-T7~6@jM{0000;6ir|N literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKXGUdhrIqM.woff2 b/webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKXGUdhrIqM.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..c2450f3e6410d0f2790a003087b694c5100f3a14 GIT binary patch literal 13852 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 literal 0 HcmV?d00001 diff --git a/webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKXGUdhvIqOjjg.woff2 b/webui/public/fonts/OpenSans/memnYaGs126MiZpBA-UFUKXGUdhvIqOjjg.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..1a1fa021ceed22107d04ee3c080330277612795d GIT binary patch literal 9660 zcmV;tB}3YGPew8T0RR91042Nt5dZ)H07kq303}@j0RR9100000000000000000000 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

?Ybv9RcK)s_@ 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 G{l5W@A9e8n literal 0 HcmV?d00001 diff --git a/webui/public/index.ejs b/webui/public/index.ejs new file mode 100644 index 0000000..58f19e5 --- /dev/null +++ b/webui/public/index.ejs @@ -0,0 +1,55 @@ + + + + + deemix + + + + + + + + +
+

+ If you're reading this it means that js/bundle.js isn't loading correctly.
+ Make sure the file is present, if not build the webui. +

+ + + + + diff --git a/webui/public/res/InfoSpotifyFeatures/ClientIdSecret.png b/webui/public/res/InfoSpotifyFeatures/ClientIdSecret.png new file mode 100644 index 0000000000000000000000000000000000000000..82470ee73021249ad172981ab64962ab57586e08 GIT binary patch literal 9746 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 CFIPYWzfu;vk1w?>` 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 +
+
+ + +
+ + + +
+ + +
+ + + + + + + + +
+ + + + + diff --git a/webui/src/app.js b/webui/src/app.js new file mode 100644 index 0000000..398742d --- /dev/null +++ b/webui/src/app.js @@ -0,0 +1,275 @@ +import Vue from 'vue' + +import '@/plugins/composition-api' + +import '@/styles/vendor/material-icons.css' +import '@/styles/vendor/OpenSans.css' + +import '@/styles/css/tailwind.css' + +import '@/styles/css/normalize.css' +import '@/styles/css/base.css' +import '@/styles/css/components.css' +import '@/styles/css/helpers.css' +import '@/styles/css/icons.css' +import '@/styles/css/tables.css' +import '@/styles/css/typography.css' + +import App from '@/App.vue' +import i18n from '@/plugins/i18n' +import router from '@/router' +import store from '@/store' + +import { socket } from '@/utils/socket' +import { fetchData, postToServer } from '@/utils/api' +import { toast } from '@/utils/toasts' +import { isValidURL } from '@/utils/utils' +import { sendAddToQueue } from '@/utils/downloads' +import { SPOTIFY_STATUS } from '@/constants' + +/* ===== Random utils ===== */ + +/* eslint-disable no-extend-native */ +String.prototype.capitalize = function () { + return this.charAt(0).toUpperCase() + this.slice(1) +} +// Reset if ejs fails +if (location.base == "<%= locationBase %>") location.base = "/" + +/* ===== App initialization ===== */ +async function startApp() { + document.getElementById('missingBundle').remove() + new Vue({ + store, + router, + i18n, + render: h => h(App) + }).$mount('#app') + + const connectResponse = await fetchData('connect') + const spotifyStatus = connectResponse.spotifyEnabled ? SPOTIFY_STATUS.ENABLED : SPOTIFY_STATUS.DISABLED + + if (connectResponse.deezerAvailable === 'no-network') { + document.getElementById('deezer_not_reachable').classList.remove('hide') + } + if (connectResponse.deezerAvailable === 'no') { + document.getElementById('deezer_not_available').classList.remove('hide') + } + + store.dispatch('setAppInfo', connectResponse.update).catch(console.error) + store.dispatch('setSpotifyStatus', spotifyStatus).catch(console.error) + + let arl = localStorage.getItem('arl') + let accessToken = localStorage.getItem('accessToken') + + if (connectResponse.singleUser) { + if (connectResponse.singleUser.arl) arl = connectResponse.singleUser.arl + if (connectResponse.singleUser.accessToken) accessToken = connectResponse.singleUser.accessToken + } + + if (connectResponse.autologin) { + console.info('Autologin') + const accountNum = localStorage.getItem('accountNum') + + async function login(arl, accountNum) { + toast(i18n.t('toasts.loggingIn'), 'loading', false, 'login-toast') + arl = arl.trim() + let result + + if (accountNum !== 0) { + result = await postToServer('loginArl', { arl, force: true, child: accountNum || 0 }) + } else { + result = await postToServer('loginArl', { arl }) + } + + return result + } + + if (arl) { + let result = await login(arl, accountNum) + if (result.status === 0 && accessToken) { + const { arl: newArl } = await postToServer('loginWithCredentials', { accessToken }) + if (newArl && newArl !== arl) { + arl = newArl + store.dispatch('setARL', { arl }) + } + result = await login(newArl, accountNum) + } + loggedIn(result) + } + } else { + loggedIn({ status: 3, user: connectResponse.currentUser, arl }) + } + + if (connectResponse.checkForUpdates) { + toast(i18n.t('toasts.checkingUpdates'), 'loading', false, 'updates-toast') + const updates = await fetchData('checkForUpdates') + store.dispatch('setUpdateInfo', updates).catch(console.error) + if (updates.updateAvailable) { + toast(i18n.t('toasts.updateAvailable'), 'browser_updated', true, 'updates-toast') + } else { + toast(i18n.t('toasts.noUpdateAvailable'), 'done', true, 'updates-toast') + } + } +} + +function initClient() { + store.dispatch('setClientMode', true) + setClientModeKeyBindings() +} + +document.addEventListener('DOMContentLoaded', startApp) +if (window.api) { + initClient() +} + +/* ===== Global shortcuts ===== */ + +document.addEventListener('paste', pasteEvent => { + if (pasteEvent.target.localName === 'input') return + + let pastedText = pasteEvent.clipboardData.getData('Text') + + if (isValidURL(pastedText)) { + if (router.currentRoute.name === 'Link Analyzer') { + socket.emit('analyzeLink', pastedText) + } else { + if (pastedText.includes('\n')) pastedText = pastedText.replace(/\n/g, ';') + sendAddToQueue(pastedText) + } + } else { + const searchbar = document.querySelector('#searchbar') + searchbar.select() + searchbar.setSelectionRange(0, 99999) + } +}) + +/** + * Sets up key bindings that already work in the browser (server mode) + */ +function setClientModeKeyBindings() { + document.addEventListener('keyup', keyEvent => { + // ALT + left + if (keyEvent.altKey && keyEvent.key === 'ArrowLeft') { + router.back() + } + + // ALT + right + if (keyEvent.altKey && keyEvent.key === 'ArrowRight') { + router.forward() + } + }) +} +function loggedIn(data) { + const { status, user } = data + + switch (status) { + case 1: + case 3: + // Login ok + toast(i18n.t('toasts.loggedIn'), 'done', true, 'login-toast') + + store.dispatch('login', data) + break + case 2: + // Already logged in + toast(i18n.t('toasts.alreadyLogged'), 'done', true, 'login-toast') + + store.dispatch('setUser', user) + break + case 0: + // Login failed + toast(i18n.t('toasts.loginFailed'), 'close', true, 'login-toast') + + store.dispatch('removeARL') + break + case -1: + toast(i18n.t('toasts.deezerNotAvailable'), 'close', true, 'login-toast') + + // TODO + // $('#open_login_prompt').show() + // document.getElementById('logged_in_info').classList.add('hide') + // $('#settings_username').text('Not Logged') + // $('#settings_picture').attr('src', `https://e-cdns-images.dzcdn.net/images/user/125x125-000000-80-0-0.jpg`) + // document.getElementById('home_not_logged_in').classList.remove('hide') + } +} + +/* ===== Socketio listeners ===== */ + +// Debug messages for socketio +socket.on('message', function (msg) { + console.log(msg) +}) +socket.on('restoringQueue', function () { + toast(i18n.t('toasts.restoringQueue'), 'loading', false, 'restoring_queue') +}) + +socket.on('cancellingCurrentItem', function (uuid) { + toast(i18n.t('toasts.cancellingCurrentItem'), 'loading', false, 'cancelling_' + uuid) +}) + +socket.on('currentItemCancelled', function (uuid) { + toast(i18n.t('toasts.currentItemCancelled'), 'done', true, 'cancelling_' + uuid) +}) + +socket.on('startAddingArtist', function (data) { + toast(i18n.t('toasts.startAddingArtist', { artist: data.name }), 'loading', false, 'artist_' + data.id) +}) + +socket.on('finishAddingArtist', function (data) { + toast(i18n.t('toasts.finishAddingArtist', { artist: data.name }), 'done', true, 'artist_' + data.id) +}) + +socket.on('startConvertingSpotifyPlaylist', function (id) { + toast(i18n.t('toasts.startConvertingSpotifyPlaylist'), 'loading', false, 'spotifyplaylist_' + id) +}) + +socket.on('finishConvertingSpotifyPlaylist', function (id) { + toast(i18n.t('toasts.finishConvertingSpotifyPlaylist'), 'done', true, 'spotifyplaylist_' + id) +}) + +socket.on('errorMessage', function (error) { + toast(error, 'error') +}) + +socket.on('queueError', function (queueItem) { + if (queueItem.errid) { + toast(queueItem.link + ' - ' + i18n.t(`errors.ids.${queueItem.errid}`), 'error') + } else { + toast(queueItem.link + ' - ' + queueItem.error, 'error') + } +}) + +socket.on('alreadyInQueue', function (data) { + toast(i18n.t('toasts.alreadyInQueue', { item: data.title }), 'playlist_add_check') +}) + +socket.on('queueErrorNotLoggedIn', function () { + toast(i18n.t('toasts.loginNeededToDownload'), 'report') +}) +const bitrateLabels = { + 15: '360 HQ', + 14: '360 MQ', + 13: '360 LQ', + 9: 'FLAC', + 3: '320kbps', + 1: '128kbps', + 8: '128kbps', + 0: 'MP3' +} +socket.on('queueErrorCantStream', function (bitrate) { + toast(i18n.t('toasts.queueErrorCantStream', {bitrate: bitrateLabels[bitrate]}), 'report') +}) + +socket.on('startGeneratingItems', function (data) { + toast(i18n.t('toasts.startGeneratingItems', { n: data.total }), 'loading', false, 'batch_' + data.uuid) +}) + +socket.on('finishGeneratingItems', function (data) { + toast(i18n.t('toasts.finishGeneratingItems', { n: data.total }), 'done', true, 'batch_' + data.uuid) +}) +socket.on('toast', data => { + const { msg, icon, dismiss, id } = data + toast(msg, icon || null, dismiss !== undefined ? dismiss : true, id || null) +}) diff --git a/webui/src/assets/deemix-icon.svg b/webui/src/assets/deemix-icon.svg new file mode 100644 index 0000000..d45054e --- /dev/null +++ b/webui/src/assets/deemix-icon.svg @@ -0,0 +1,240 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/webui/src/assets/paypal.svg b/webui/src/assets/paypal.svg new file mode 100644 index 0000000..d698dfa --- /dev/null +++ b/webui/src/assets/paypal.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/webui/src/components/TheContent.vue b/webui/src/components/TheContent.vue new file mode 100644 index 0000000..0fbbfd1 --- /dev/null +++ b/webui/src/components/TheContent.vue @@ -0,0 +1,107 @@ + + + + + diff --git a/webui/src/components/TheSearchBar.vue b/webui/src/components/TheSearchBar.vue new file mode 100644 index 0000000..13a10b0 --- /dev/null +++ b/webui/src/components/TheSearchBar.vue @@ -0,0 +1,250 @@ + + + + + diff --git a/webui/src/components/TheSidebar.vue b/webui/src/components/TheSidebar.vue new file mode 100644 index 0000000..4bd7534 --- /dev/null +++ b/webui/src/components/TheSidebar.vue @@ -0,0 +1,142 @@ + + + + + diff --git a/webui/src/components/downloads/QueueItem.vue b/webui/src/components/downloads/QueueItem.vue new file mode 100644 index 0000000..fbe67a5 --- /dev/null +++ b/webui/src/components/downloads/QueueItem.vue @@ -0,0 +1,348 @@ + + + + + diff --git a/webui/src/components/downloads/TheDownloadBar.vue b/webui/src/components/downloads/TheDownloadBar.vue new file mode 100644 index 0000000..40e60d5 --- /dev/null +++ b/webui/src/components/downloads/TheDownloadBar.vue @@ -0,0 +1,441 @@ + + + + + diff --git a/webui/src/components/globals/BackButton.vue b/webui/src/components/globals/BackButton.vue new file mode 100644 index 0000000..f3dfb9f --- /dev/null +++ b/webui/src/components/globals/BackButton.vue @@ -0,0 +1,14 @@ + + + diff --git a/webui/src/components/globals/BaseAccordion.vue b/webui/src/components/globals/BaseAccordion.vue new file mode 100644 index 0000000..01d2868 --- /dev/null +++ b/webui/src/components/globals/BaseAccordion.vue @@ -0,0 +1,33 @@ + + + + + diff --git a/webui/src/components/globals/BaseLoadingPlaceholder.vue b/webui/src/components/globals/BaseLoadingPlaceholder.vue new file mode 100644 index 0000000..e959789 --- /dev/null +++ b/webui/src/components/globals/BaseLoadingPlaceholder.vue @@ -0,0 +1,56 @@ + + + diff --git a/webui/src/components/globals/BaseTabs.js b/webui/src/components/globals/BaseTabs.js new file mode 100644 index 0000000..981d7c9 --- /dev/null +++ b/webui/src/components/globals/BaseTabs.js @@ -0,0 +1,34 @@ +/* eslint-disable vue/one-component-per-file */ +import { defineComponent } from '@vue/composition-api' + +// https://vuejs.org/v2/guide/render-function.html +// https://vuejs.org/v2/guide/render-function.html#createElement-Arguments +export const BaseTab = defineComponent({ + name: 'BaseTab', + functional: true, + render(h, ctx) { + return h( + 'li', + { + class: [ctx.data.class, 'section-tabs__tab', 'uppercase-first-letter'], + on: ctx.data.on + }, + ctx.slots().default + ) + } +}) + +export const BaseTabs = defineComponent({ + name: 'BaseTabs', + functional: true, + render(h, ctx) { + return h( + 'ul', + { + class: [ctx.data.class, 'my-8', 'section-tabs'], + on: ctx.data.on + }, + ctx.slots().default + ) + } +}) diff --git a/webui/src/components/globals/ConfirmModal.vue b/webui/src/components/globals/ConfirmModal.vue new file mode 100644 index 0000000..fae1151 --- /dev/null +++ b/webui/src/components/globals/ConfirmModal.vue @@ -0,0 +1,86 @@ + + + + + diff --git a/webui/src/components/globals/CoverContainer.vue b/webui/src/components/globals/CoverContainer.vue new file mode 100644 index 0000000..f4a2459 --- /dev/null +++ b/webui/src/components/globals/CoverContainer.vue @@ -0,0 +1,81 @@ + + + + + diff --git a/webui/src/components/globals/DeezerWarning.vue b/webui/src/components/globals/DeezerWarning.vue new file mode 100644 index 0000000..cdcd564 --- /dev/null +++ b/webui/src/components/globals/DeezerWarning.vue @@ -0,0 +1,34 @@ + + + diff --git a/webui/src/components/globals/PreviewControls.vue b/webui/src/components/globals/PreviewControls.vue new file mode 100644 index 0000000..1f2a76b --- /dev/null +++ b/webui/src/components/globals/PreviewControls.vue @@ -0,0 +1,21 @@ + + + diff --git a/webui/src/components/globals/TheContextMenu.vue b/webui/src/components/globals/TheContextMenu.vue new file mode 100644 index 0000000..de6adf0 --- /dev/null +++ b/webui/src/components/globals/TheContextMenu.vue @@ -0,0 +1,308 @@ + + + + + diff --git a/webui/src/components/globals/TheQualityModal.vue b/webui/src/components/globals/TheQualityModal.vue new file mode 100644 index 0000000..c34f3fe --- /dev/null +++ b/webui/src/components/globals/TheQualityModal.vue @@ -0,0 +1,105 @@ + + + + + diff --git a/webui/src/components/globals/TheTrackPreview.vue b/webui/src/components/globals/TheTrackPreview.vue new file mode 100644 index 0000000..c731e99 --- /dev/null +++ b/webui/src/components/globals/TheTrackPreview.vue @@ -0,0 +1,163 @@ + + + diff --git a/webui/src/components/pages/About.vue b/webui/src/components/pages/About.vue new file mode 100644 index 0000000..d7ac8df --- /dev/null +++ b/webui/src/components/pages/About.vue @@ -0,0 +1,263 @@ + + + + + diff --git a/webui/src/components/pages/Artist.vue b/webui/src/components/pages/Artist.vue new file mode 100644 index 0000000..8cdcb81 --- /dev/null +++ b/webui/src/components/pages/Artist.vue @@ -0,0 +1,203 @@ + + + diff --git a/webui/src/components/pages/Charts.vue b/webui/src/components/pages/Charts.vue new file mode 100644 index 0000000..ea6c828 --- /dev/null +++ b/webui/src/components/pages/Charts.vue @@ -0,0 +1,185 @@ + + + diff --git a/webui/src/components/pages/Errors.vue b/webui/src/components/pages/Errors.vue new file mode 100644 index 0000000..0dd3573 --- /dev/null +++ b/webui/src/components/pages/Errors.vue @@ -0,0 +1,83 @@ + + + + + diff --git a/webui/src/components/pages/Favorites.vue b/webui/src/components/pages/Favorites.vue new file mode 100644 index 0000000..607fa57 --- /dev/null +++ b/webui/src/components/pages/Favorites.vue @@ -0,0 +1,316 @@ + + + diff --git a/webui/src/components/pages/Home.vue b/webui/src/components/pages/Home.vue new file mode 100644 index 0000000..e3804e5 --- /dev/null +++ b/webui/src/components/pages/Home.vue @@ -0,0 +1,109 @@ + + + + + diff --git a/webui/src/components/pages/InfoArl.vue b/webui/src/components/pages/InfoArl.vue new file mode 100644 index 0000000..306ab55 --- /dev/null +++ b/webui/src/components/pages/InfoArl.vue @@ -0,0 +1,58 @@ + + + diff --git a/webui/src/components/pages/InfoSpotifyFeatures.vue b/webui/src/components/pages/InfoSpotifyFeatures.vue new file mode 100644 index 0000000..9e5bbdf --- /dev/null +++ b/webui/src/components/pages/InfoSpotifyFeatures.vue @@ -0,0 +1,44 @@ + + + + + diff --git a/webui/src/components/pages/LinkAnalyzer.vue b/webui/src/components/pages/LinkAnalyzer.vue new file mode 100644 index 0000000..774ac36 --- /dev/null +++ b/webui/src/components/pages/LinkAnalyzer.vue @@ -0,0 +1,262 @@ + + + + + diff --git a/webui/src/components/pages/Search.vue b/webui/src/components/pages/Search.vue new file mode 100644 index 0000000..1a1553a --- /dev/null +++ b/webui/src/components/pages/Search.vue @@ -0,0 +1,312 @@ + + + + + diff --git a/webui/src/components/pages/Settings.vue b/webui/src/components/pages/Settings.vue new file mode 100644 index 0000000..9d12b9e --- /dev/null +++ b/webui/src/components/pages/Settings.vue @@ -0,0 +1,1188 @@ + + + + + diff --git a/webui/src/components/pages/Tracklist.vue b/webui/src/components/pages/Tracklist.vue new file mode 100644 index 0000000..cb1ef9f --- /dev/null +++ b/webui/src/components/pages/Tracklist.vue @@ -0,0 +1,310 @@ + + + diff --git a/webui/src/components/search/ResultsAlbums.vue b/webui/src/components/search/ResultsAlbums.vue new file mode 100644 index 0000000..1a92edc --- /dev/null +++ b/webui/src/components/search/ResultsAlbums.vue @@ -0,0 +1,85 @@ + + + diff --git a/webui/src/components/search/ResultsAll.vue b/webui/src/components/search/ResultsAll.vue new file mode 100644 index 0000000..a6c8e05 --- /dev/null +++ b/webui/src/components/search/ResultsAll.vue @@ -0,0 +1,122 @@ + + + diff --git a/webui/src/components/search/ResultsArtists.vue b/webui/src/components/search/ResultsArtists.vue new file mode 100644 index 0000000..7562182 --- /dev/null +++ b/webui/src/components/search/ResultsArtists.vue @@ -0,0 +1,73 @@ + + + diff --git a/webui/src/components/search/ResultsError.vue b/webui/src/components/search/ResultsError.vue new file mode 100644 index 0000000..088f9c8 --- /dev/null +++ b/webui/src/components/search/ResultsError.vue @@ -0,0 +1,17 @@ + + + diff --git a/webui/src/components/search/ResultsPlaylists.vue b/webui/src/components/search/ResultsPlaylists.vue new file mode 100644 index 0000000..8e5274e --- /dev/null +++ b/webui/src/components/search/ResultsPlaylists.vue @@ -0,0 +1,78 @@ + + + diff --git a/webui/src/components/search/ResultsTracks.vue b/webui/src/components/search/ResultsTracks.vue new file mode 100644 index 0000000..d0a3116 --- /dev/null +++ b/webui/src/components/search/ResultsTracks.vue @@ -0,0 +1,142 @@ + + + diff --git a/webui/src/components/search/TopResult.vue b/webui/src/components/search/TopResult.vue new file mode 100644 index 0000000..b3d9ffd --- /dev/null +++ b/webui/src/components/search/TopResult.vue @@ -0,0 +1,63 @@ + + + diff --git a/webui/src/components/settings/TemplateVariablesList.vue b/webui/src/components/settings/TemplateVariablesList.vue new file mode 100644 index 0000000..b1ca56d --- /dev/null +++ b/webui/src/components/settings/TemplateVariablesList.vue @@ -0,0 +1,32 @@ + + + diff --git a/webui/src/constants.js b/webui/src/constants.js new file mode 100644 index 0000000..c4f6134 --- /dev/null +++ b/webui/src/constants.js @@ -0,0 +1,4 @@ +export const SPOTIFY_STATUS = { + DISABLED: 'DISABLED', + ENABLED: 'ENABLED' +} diff --git a/webui/src/data/artist.js b/webui/src/data/artist.js new file mode 100644 index 0000000..ee3ca1f --- /dev/null +++ b/webui/src/data/artist.js @@ -0,0 +1,43 @@ +import { getPropertyWithFallback } from '@/utils/utils' +import { fetchData } from '@/utils/api' + +export function formatArtistData(artistData) { + return { + artistName: getPropertyWithFallback(artistData, 'name'), + artistPictureXL: getPropertyWithFallback(artistData, 'picture_xl'), + artistReleases: formatArtistReleases(getPropertyWithFallback(artistData, 'releases')) + } +} + +function formatArtistReleases(artistReleases) { + const formattedReleases = {} + + for (const releaseType in artistReleases) { + if (artistReleases.hasOwnProperty(releaseType)) { + const releases = artistReleases[releaseType] + formattedReleases[releaseType] = [] + + for (const release of releases) { + formattedReleases[releaseType].push({ + releaseID: getPropertyWithFallback(release, 'id'), + releaseCover: getPropertyWithFallback(release, 'cover_small'), + releaseTitle: getPropertyWithFallback(release, 'title'), + releaseDate: getPropertyWithFallback(release, 'release_date'), + releaseTracksNumber: getPropertyWithFallback(release, 'nb_tracks'), + releaseLink: getPropertyWithFallback(release, 'link'), + releaseType: getPropertyWithFallback(release, 'record_type'), + isReleaseExplicit: getPropertyWithFallback(release, 'explicit_lyrics') + }) + } + } + } + + return formattedReleases +} + +export function getArtistData(artistID) { + return fetchData('getTracklist', { + type: 'artist', + id: artistID + }) +} diff --git a/webui/src/data/charts.js b/webui/src/data/charts.js new file mode 100644 index 0000000..62ff84b --- /dev/null +++ b/webui/src/data/charts.js @@ -0,0 +1,9 @@ +import { fetchData } from '@/utils/api' + +export function getChartsData() { + return fetchData('getCharts') +} + +export function getChartTracks(chartId) { + return fetchData('getChartTracks', { id: chartId }) +} diff --git a/webui/src/data/file-templates.js b/webui/src/data/file-templates.js new file mode 100644 index 0000000..4a17deb --- /dev/null +++ b/webui/src/data/file-templates.js @@ -0,0 +1,62 @@ +// TODO: Use JSON + +export const trackTemplateVariables = [ + '%title%', + '%artist%', + '%artists%', + '%allartists%', + '%mainartists%', + '%featartists%', + '%album%', + '%albumartist%', + '%tracknumber%', + '%tracktotal%', + '%discnumber%', + '%disctotal%', + '%genre%', + '%year%', + '%date%', + '%bpm%', + '%label%', + '%isrc%', + '%upc%', + '%explicit%', + '%track_id%', + '%album_id%', + '%artist_id%', + '%playlist_id%', + '%position%' +] + +export const albumFolderTemplateVariables = [ + '%album_id%', + '%genre%', + '%album%', + '%artist%', + '%artist_id%', + '%root_artist%', + '%root_artist_id%', + '%tracktotal%', + '%disctotal%', + '%type%', + '%upc%', + '%explicit%', + '%label%', + '%year%', + '%date%', + '%bitrate%' +] + +export const artistFolderTemplateVariables = ['%artist%', '%artist_id%', '%root_artist%', '%root_artist_id%'] + +export const playlistFolderTemplateVariables = [ + '%playlist%', + '%playlist_id%', + '%owner%', + '%owner_id%', + '%year%', + '%date%', + '%explicit%' +] + +export const playlistFilenameTemplateVariables = ['%title%', '%artist%', '%size%', '%type%', '%id%', '%bitrate%'] diff --git a/webui/src/data/home.js b/webui/src/data/home.js new file mode 100644 index 0000000..fe9e33b --- /dev/null +++ b/webui/src/data/home.js @@ -0,0 +1,17 @@ +import { fetchData } from '@/utils/api' + +let homeData = {} +let cached = false + +export async function getHomeData() { + if (cached) { + return homeData + } else { + const data = await fetchData('getHome') + + homeData = data + cached = true + + return data + } +} diff --git a/webui/src/data/qualities.js b/webui/src/data/qualities.js new file mode 100644 index 0000000..322e09d --- /dev/null +++ b/webui/src/data/qualities.js @@ -0,0 +1,32 @@ +export const downloadQualities = [ + { + objName: 'flac', + label: 'FLAC', + value: 9 + }, + { + objName: '320kbps', + label: 'MP3 320kbps', + value: 3 + }, + { + objName: '128kbps', + label: 'MP3 128kbps', + value: 1 + }, + { + objName: 'realityAudioHQ', + label: '360 Reality Audio [HQ]', + value: 15 + }, + { + objName: 'realityAudioMQ', + label: '360 Reality Audio [MQ]', + value: 14 + }, + { + objName: 'realityAudioLQ', + label: '360 Reality Audio [LQ]', + value: 13 + } +] diff --git a/webui/src/data/search.js b/webui/src/data/search.js new file mode 100644 index 0000000..ce8dc9d --- /dev/null +++ b/webui/src/data/search.js @@ -0,0 +1,111 @@ +import { getPropertyWithFallback } from '@/utils/utils' + +/** + * @typedef {object} FormattedSearchResult + * @property {FormattedData} data + * @property {boolean} hasLoaded + */ + +/** + * @typedef {object} FormattedData + */ + +/** + * @typedef {function} Formatter + * @returns {FormattedData} formattedData + */ + +/** + * @param {FormattedData} track + */ +export function formatSingleTrack(track) { + let isTrackExplicit = getPropertyWithFallback(track, 'explicit_lyrics', 'EXPLICIT_LYRICS') + + if (typeof isTrackExplicit === 'string') { + isTrackExplicit = isTrackExplicit !== '0' + } + + return { + /* Track */ + trackTitle: getPropertyWithFallback(track, 'title', 'SNG_TITLE'), + trackTitleVersion: getPropertyWithFallback(track, 'title_version', 'VERSION'), + trackPreview: getPropertyWithFallback(track, 'preview', 'MEDIA.0.HREF'), + trackDuration: getPropertyWithFallback(track, 'duration', 'DURATION'), + trackLink: getPropertyWithFallback(track, 'link') || `https://www.deezer.com/track/${track.SNG_ID}`, + isTrackExplicit, + + /* Artist */ + artistID: getPropertyWithFallback(track, 'artist.id', 'ART_ID'), + artistName: getPropertyWithFallback(track, 'artist.name', 'ART_NAME'), + + /* Album */ + albumID: getPropertyWithFallback(track, 'album.id', 'ALB_ID'), + albumTitle: getPropertyWithFallback(track, 'album.title', 'ALB_TITLE'), + albumPicture: + getPropertyWithFallback(track, 'album.cover_small') || + `https://e-cdns-images.dzcdn.net/images/cover/${track.ALB_PICTURE}/56x56-000000-80-0-0.jpg` + } +} + +export function formatAlbums(album) { + let isAlbumExplicit = getPropertyWithFallback( + album, + 'explicit_lyrics', + 'EXPLICIT_ALBUM_CONTENT.EXPLICIT_LYRICS_STATUS' + ) + + if (typeof isAlbumExplicit === 'number') { + isAlbumExplicit = isAlbumExplicit === 1 + } + + return { + /* Album */ + albumID: getPropertyWithFallback(album, 'id', 'ALB_ID'), + albumTitle: getPropertyWithFallback(album, 'title', 'ALB_TITLE'), + albumCoverMedium: + getPropertyWithFallback(album, 'cover_medium') || + `https://e-cdns-images.dzcdn.net/images/cover/${album.ALB_PICTURE}/156x156-000000-80-0-0.jpg`, + albumLink: getPropertyWithFallback(album, 'link') || `https://deezer.com/album/${album.ALB_ID}`, + albumTracks: getPropertyWithFallback(album, 'nb_tracks', 'NUMBER_TRACK'), + isAlbumExplicit, + + /* Artist */ + artistName: getPropertyWithFallback(album, 'artist.name', 'ART_NAME') + } +} + +export function formatArtist(artist) { + return { + /* Artist */ + artistID: getPropertyWithFallback(artist, 'id', 'ART_ID'), + artistName: getPropertyWithFallback(artist, 'name', 'ART_NAME'), + artistPictureMedium: + getPropertyWithFallback(artist, 'picture_medium') || + `https://e-cdns-images.dzcdn.net/images/artist/${artist.ART_PICTURE}/156x156-000000-80-0-0.jpg`, + artistLink: getPropertyWithFallback(artist, 'link') || `https://deezer.com/artist/${artist.ART_ID}`, + // TODO Fix + artistAlbumsNumber: getPropertyWithFallback(artist, 'nb_album', 'NB_FAN') + } +} + +export function formatPlaylist(playlist) { + return { + /* Playlist */ + playlistID: getPropertyWithFallback(playlist, 'id', 'PLAYLIST_ID'), + playlistTitle: getPropertyWithFallback(playlist, 'title', 'TITLE'), + playlistPictureMedium: + getPropertyWithFallback(playlist, 'picture_medium') || + `https://e-cdns-images.dzcdn.net/images/${playlist.PICTURE_TYPE}/${playlist.PLAYLIST_PICTURE}/156x156-000000-80-0-0.jpg`, + playlistLink: getPropertyWithFallback(playlist, 'link') || `https://deezer.com/playlist/${playlist.PLAYLIST_ID}`, + playlistTracksNumber: getPropertyWithFallback(playlist, 'nb_tracks', 'NB_SONG'), + + /* Artist */ + artistName: getPropertyWithFallback(playlist, 'user.name', 'PARENT_USERNAME') + } +} + +export function formatTitle(track) { + const hasTitleVersion = track.trackTitleVersion && !track.trackTitle.includes(track.trackTitleVersion) + + return `${track.trackTitle}${hasTitleVersion ? ` ${track.trackTitleVersion}` : ''}` +} diff --git a/webui/src/data/settings.js b/webui/src/data/settings.js new file mode 100644 index 0000000..5b33e6a --- /dev/null +++ b/webui/src/data/settings.js @@ -0,0 +1,57 @@ +import { fetchData } from '@/utils/api' + +let settingsData = {} +let defaultSettingsData = {} +let spotifyCredentials = {} + +export async function getSettingsData() { + const data = await fetchData('getSettings') + const { settings, defaultSettings, spotifySettings } = data + settingsData = settings + defaultSettingsData = defaultSettings + spotifyCredentials = spotifySettings || {} + + return { settingsData, defaultSettingsData, spotifyCredentials } +} + +/** + * @returns {number} + */ +export function getInitialPreviewVolume() { + let volume = parseInt(localStorage.getItem('previewVolume')) + + if (isNaN(volume)) { + volume = 80 // Default + localStorage.setItem('previewVolume', volume.toString()) + } + + return volume +} + +/** + * @returns {boolean} + */ +export function checkInitialSlimDownloads() { + return localStorage.getItem('slimDownloads') === 'true' +} + +/** + * @returns {boolean} + */ +export function checkInitialSlimSidebar() { + return localStorage.getItem('slimSidebar') === 'true' +} + +/** + * @returns {boolean} + */ +export function checkInitialShowBitrateTags() { + return localStorage.getItem('showBitrateTags') === 'true' +} + +/** + * @returns {boolean} + */ +export function checkInitialShowSearchButton() { + return localStorage.getItem('showSearchButton') === 'true' +} diff --git a/webui/src/data/sidebar.js b/webui/src/data/sidebar.js new file mode 100644 index 0000000..2dacfbb --- /dev/null +++ b/webui/src/data/sidebar.js @@ -0,0 +1,51 @@ +export const links = [ + { + name: 'home', + ariaLabel: 'home', + routerName: 'Home', + icon: 'home', + label: 'sidebar.home' + }, + { + name: 'search', + ariaLabel: 'search', + routerName: 'Search', + icon: 'search', + label: 'sidebar.search' + }, + { + name: 'charts', + ariaLabel: 'charts', + routerName: 'Charts', + icon: 'show_chart', + label: 'sidebar.charts' + }, + { + name: 'favorites', + ariaLabel: 'favorites', + routerName: 'Favorites', + icon: 'star', + label: 'sidebar.favorites' + }, + { + name: 'analyzer', + ariaLabel: 'link analyzer', + routerName: 'Link Analyzer', + icon: 'link', + label: 'sidebar.linkAnalyzer' + }, + { + name: 'settings', + ariaLabel: 'settings', + routerName: 'Settings', + icon: 'settings', + label: 'sidebar.settings' + }, + { + name: 'about', + ariaLabel: 'info', + routerName: 'About', + icon: 'info', + label: 'sidebar.about' + } +] diff --git a/webui/src/data/standardize.js b/webui/src/data/standardize.js new file mode 100644 index 0000000..b95e03c --- /dev/null +++ b/webui/src/data/standardize.js @@ -0,0 +1,20 @@ +export function standardizeData(rawObj, formatFunc) { + if (!rawObj.hasLoaded) { + return null + } else { + const { data: rawData } = rawObj + const formattedData = [] + + for (const dataElement of rawData) { + const formatted = formatFunc(dataElement) + + formattedData.push(formatted) + } + + return { + data: formattedData, + hasLoaded: rawObj.hasLoaded, + error: rawObj.error + } + } +} diff --git a/webui/src/jsconfig.json b/webui/src/jsconfig.json new file mode 100644 index 0000000..10d71fd --- /dev/null +++ b/webui/src/jsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "checkJs": true, + "baseUrl": ".", + "paths": { + "@/*": ["./*"], + "@/components/*": ["./components/*"] + } + }, + "exclude": ["assets/**/*", "styles/**/*"] +} diff --git a/webui/src/lang/ar.mjs b/webui/src/lang/ar.mjs new file mode 100644 index 0000000..db3ae1d --- /dev/null +++ b/webui/src/lang/ar.mjs @@ -0,0 +1,337 @@ +const ar = { + globals: { + welcome: 'مرحبأ بك في ديمكس', + back: 'رجوع', + loading: 'جار التحميل', + download: 'تحميل {thing}', + by: 'بواسطة {artist}', + in: 'في {album}', + download_hint: 'تحميل', + play_hint: 'تشغيل', + toggle_download_tab_hint: 'عرض/اخفاء', + clean_queue_hint: 'تم المسح', + cancel_queue_hint: 'الغاء الكل', + listTabs: { + empty: '', + all: 'الكل', + top_result: 'افضل النتائج', + album: 'البوم | البومات', + artist: 'فنان | فنانون', + single: 'اغنية | اغنية', + title: 'عنوان | عناوين', + track: 'مقطع | مقاطع', + trackN: '0 مقاطع | {n} مقطع | {n} مقطع', + releaseN: '0 اصدار | {n} اصدار | {n} اصدار', + playlist: 'قائمة تشغيل | قوائم تشغيل', + compile: 'مجموعة | مجموعات', + ep: 'ep | eps', + spotifyPlaylist: 'قائمة تشغيل سبوتفاي | قوائم تشغيل سبوتفاي', + releaseDate: 'تاريخ الاصدار', + error: 'خطأ' + } + }, + about: { + titles: { + usefulLinks: 'روابط مهمة', + bugReports: 'ابلاغ عن مشكلة', + contributing: 'مساهمة', + donations: 'التبرع', + license: 'الرخصة' + }, + subtitles: { + bugReports: 'هل هناك شيء لا يعمل في ديمكس؟ أخبرنا', + contributing: 'تريد المساهمة في هذا المشروع؟ يمكنك القيام بذلك بعدة طرق', + donations: 'تريد المساهمة مادياً؟ يمكنك التبرع' + }, + usesLibrary: + 'هذا البرنامج يستخدم مكتبة ديمكس والتي يمكنك استخدامها لإنشاء واجهة مستخدم خاصة بك لديمكس.', + thanks: `شكرا لـ rtonno, و uhwot و lollilol لمساعدتي في هذا المشروع و لـ BasCurtiz لصنع الايقونة.`, + officialWebsite: 'الموقع الرسمي', + officialRepo: 'مستودع المكتبة الرسمي', + officialWebuiRepo: 'مستودع واجهة الويب الرسمي', + officialSubreddit: 'السب ريدت الرسمي', + newsChannel: 'قناة الاخبار', + beforeReporting: `قبل ان تبلغ عن خطأ، تأكد من أنك تشغل أحدث إصدار من التطبيق وأن ما تريد الإبلاغ عنه هو في الواقع خطأ وليس مشكلة من جهتك.`, + beSure: `تأكد من أن الخطأ يمكن إعادة إنتاجه على أجهزة أخرى و ايضاً لا تبلغ علة خطأ تم التبليغ عنه سابقاً.`, + duplicateReports: 'سيتم إغلاق تقارير الأخطاء المكررة ، لذلك ترقب ذلك.', + dontOpenIssues: `DO NOT open issues for asking questions, there is a subreddit for that.`, + acceptFeatures: `أقبل اقتراحات الميزات أيضًا ، ولكن لا أشياء معقدة ، فقط اشياء يمكنني تنفيذها مباشرة في التطبيق وليس في المكتبة.`, + otherLanguages: `إذا كنت تجيد لغة برمجة أخرى ، يمكنك محاولة تحويل ديمكس إلى لغات برمجة أخرى!`, + understandingCode: `أنت بحاجة إلى مساعدة في فهم الكود؟ فقط اتصل بـ waLplanet على تيليكرام او ريديت.`, + itsFree: `يجب ان تتذكر ان هذا هو مشروع مجاني و عليك دعم الفنانين المفضلين لك قبل ان تدعم مطورين البرنامج.`, + notObligated: `لا تشعر بالالتزام بالتبرع ، لكني أقدر ذلك على أي حال!` + }, + charts: { + title: 'قائمة الجداول', + changeCountry: 'تغيير الدولة', + download: 'تحميل قائمة الجدول' + }, + errors: { + title: 'خطأ في {name}', + ids: { + invalidURL: 'الرابط غير صحيح', + unsupportedURL: 'الرابط غير متاح حتى الانً', + ISRCnotOnDeezer: 'رمز المقطع غير متوفر في ديزر', + notYourPrivatePlaylist: 'لا يمكنك تحميل قوائم التشغيل الخاصة و المخفية.', + spotifyDisabled: 'لم يتم اعداد ميزات سبوتفاي بالطرقة الصحيحة .', + trackNotOnDeezer: 'المقطع لا يوجد في ديزر!', + albumNotOnDeezer: 'الالبوم لا يوجد في ديزر!', + notOnDeezer: 'المقطع لا يوجد في ديزر!', + notEncoded: 'لم يتم تشفير المقطع حتى الانً!', + notEncodedNoAlternative: 'لم يتم تشفير المقطع حتى الآن ولم يتم العثور على بديل!', + wrongBitrate: 'لم يتم العثور على المقطع في الدقة المطلوبة.', + wrongBitrateNoAlternative: 'لم يتم العثور على المقطع في الدقة المطلوبة و لا توجد دقة بديلة!', + no360RA: 'المقطع غير متوفر في Reality Audio 360.', + notAvailable: 'المقطع غير متوفر في سيرفرات ديزر!', + notAvailableNoAlternative: 'المقطع غير متوفر في سيرفرات ديزر و لا يوجد بديل حتى الان!' + } + }, + favorites: { + title: 'المفضلات', + noPlaylists: 'لا يوجد قوائم تشغيل', + noAlbums: 'لم لا توجد البومات مفضلة', + noArtists: 'لا يوجد فنانين مفضلين', + noTracks: 'لا توجد مقاطع مفضلة' + }, + home: { + needTologin: 'يجب عليك التسجيل في حساب ديزر قبل بدء التحميل.', + openSettings: 'فتح الاعدادات', + sections: { + popularPlaylists: 'قوائم تشغيل مشهورة', + popularAlbums: 'اكثر الالبومات سماعأ' + } + }, + linkAnalyzer: { + info: 'يمكنك استخدام هذا القسم للعثور على مزيد من المعلومات حول الرابط الذي تحاول تنزيله.', + useful: ' كمثال هذا مفيد إذا كنت تحاول تنزيل بعض المقاطع الغير المتاحة في بلدك وتريد معرفة مكان توفرها .', + linkNotSupported: 'هذا الرابط غير معتمد حتى الآن', + linkNotSupportedYet: 'يبدو أن هذا الرابط غير معتمد حتى الآن ، حاول تحليل رابط آخر.', + table: { + id: 'ID', + isrc: 'ISRC', + upc: 'UPC', + duration: 'المدة الزمنية', + diskNumber: 'رقم القرص', + trackNumber: 'رقم المقطع', + releaseDate: 'تاريخ الاصدار', + bpm: 'BPM', + label: 'Label', + recordType: 'نوع التسجيل', + genres: 'النوع الفني', + tracklist: 'قائمة المقاطع' + } + }, + search: { + startSearching: 'ابدأ البحث!', + description: 'يمكنك البحث عن مقطع ، ألبوم كامل ، فنان ، قائمة تشغيل .... كل شيء! يمكنك أيضًا لصق رابط ديزر', + fans: '{n} متابعون', + noResults: 'لا يوجد نتائج', + noResultsTrack: 'لم يتم العثور على مقاطع', + noResultsAlbum: 'لم يتم العثور على البومات', + noResultsArtist: 'لم يتم العثور على فنانين', + noResultsPlaylist: 'لم يتم العثور على قوائم تشغيل' + }, + searchbar: 'ابحث عن أي شيء تريده (أو الصق رابط)', + downloads: 'التحميلات', + toasts: { + addedToQueue: '{item} تمت إلأضافة إلى قائمة الانتظار', + alreadyInQueue: '{item} حالياً في قائمة الانتظار!', + finishDownload: '{item} انتهى تحميل.', + allDownloaded: 'اكتملت جميع التنزيلات!', + refreshFavs: 'اكتمل التحديث!', + loggingIn: 'جار تسجيل الدخول...', + loggedIn: 'تم تسجيل الدخول', + alreadyLogged: 'تم تسجيل الدخول بالفعل', + loginFailed: 'تعذر تسجيل الدخول', + loggedOut: 'تم تسجيل الخروج', + cancellingCurrentItem: 'جار الغاء العنصر الحالي.', + currentItemCancelled: 'تم الغاء العنصر الحالي.', + startAddingArtist: 'جار اضافة {artist} البوم الى قائمة الانتضار', + finishAddingArtist: 'تم اضافة {artist} البوم الى قائمة الانتضار', + startConvertingSpotifyPlaylist: 'جار تحويل مقاطع سبوتفاي الى مقاطع ديزر', + finishConvertingSpotifyPlaylist: 'تم تحويل قائمة تشغيل سبوتفاي', + loginNeededToDownload: 'يجب عليك تسجيل الدخول لتحميل المقاطع!' + }, + settings: { + title: 'الاعدادات', + language: 'لغة', + login: { + title: 'تسجيل الدخول', + loggedIn: 'تم تسجيل الدخول كـ {username}', + arl: { + question: 'كيفية الحصول علة ARL', + update: 'ارفع ال ARL' + }, + logout: 'تسجيل الخروج' + }, + appearance: { + title: 'المظهر', + slimDownloadTab: 'لوحة التحميل الرفيعة' + }, + downloadPath: { + title: 'مسار التحميل' + }, + templates: { + title: 'القوالب', + tracknameTemplate: 'قالب اسم المقطع', + albumTracknameTemplate: 'قالب مقطع الالبوم', + playlistTracknameTemplate: 'قالب مقطع قائمة التشغيل' + }, + folders: { + title: 'الملفات', + createPlaylistFolder: 'اصنع ملف لقائمة التشغيل', + playlistNameTemplate: 'قالب ملف قائمة التشغيل', + createArtistFolder: 'اصنع ملف للفنان', + artistNameTemplate: 'قالب ملف الفنان', + createAlbumFolder: 'اصنع ملف للالبوم', + albumNameTemplate: 'قالب ملف الالبوم', + createCDFolder: 'اصنع ملف للاقراص', + createStructurePlaylist: 'اصنع هيكل مجلدات لقوائم التشغيل', + createSingleFolder: 'اصنع هيكل مجلدات لالبومات ذات الاغنية الواحدة' + }, + trackTitles: { + title: 'عنوان المقطع', + padTracks: 'Pad tracks', + paddingSize: 'Overwrite padding size', + illegalCharacterReplacer: 'محول الكتابات الغير مسموح بها' + }, + downloads: { + title: 'التحميلات', + queueConcurrency: 'التنزيلات المتزامنة', + maxBitrate: { + title: 'الدقة المفضلة', + 9: 'FLAC 1411kbps', + 3: 'MP3 320kbps', + 1: 'MP3 128kbps' + }, + overwriteFile: { + title: 'هل يمكنني استبدال الملفات?', + y: 'نعم, استبدال الملفات', + n: 'لا, لا تبدل الملفات', + t: 'استبدل العلامات فقط', + b: 'لا ، احتفظ بالملفين وأضف رقمًا إلى الملف المكرر' + }, + fallbackBitrate: 'تراجع الدقة', + fallbackSearch: 'تراجع البحث', + logErrors: 'إنشاء ملفات سجل للأخطاء', + logSearched: 'إنشاء ملفات سجل للمقاطع التي تم البحث عنها', + createM3U8File: 'انشاء ملف لقوائم التشغيل', + syncedLyrics: 'انشاء ملف لكلمات الاغنية', + playlistFilenameTemplate: 'قالب اسم ملف قائمة التشغيل', + saveDownloadQueue: 'حفظ قائمة انتظار التنزيل عند إغلاق التطبيق' + }, + covers: { + title: 'غلاف الالبوم', + saveArtwork: 'احفظ الغلاف', + coverImageTemplate: 'تغطية قالب الاسم', + saveArtworkArtist: 'احفظ صورة الفنان', + artistImageTemplate: 'قالب صورة الفنان', + localArtworkSize: 'حجم الصورة', + embeddedArtworkSize: 'حجم الصورة المدمجة', + localArtworkFormat: { + title: 'بأي صيغة تريد حفظ الصورة?', + jpg: 'jpeg صورة', + png: 'png صورة', + both: 'الاثنين png و jpeg' + }, + jpegImageQuality: 'JPEG دقة صورة' + }, + tags: { + head: 'العلامات التي يتم حفظها', + title: 'العنوان', + artist: 'الفنان', + album: 'الالبوم', + cover: 'الغلاف', + trackNumber: 'رقم المقطع', + trackTotal: 'مجموع المقاطع', + discNumber: 'رقم القرص', + discTotal: 'مجموع الاقراص', + albumArtist: 'فنان الالبوم', + genre: 'Genre', + year: 'السنة', + date: 'التاريخ', + explicit: 'كلمات اغنية صريحة للكبار', + isrc: 'ISRC', + length: 'طول المقطع', + barcode: 'Album Barcode (UPC)', + bpm: 'BPM', + replayGain: 'Replay Gain', + label: 'Album Label', + lyrics: 'كلمات غير متزامنة', + copyright: 'حقوق النشر', + composer: 'ملحن', + involvedPeople: 'الناس المشتركون' + }, + other: { + title: 'غير', + savePlaylistAsCompilation: 'حفظ قوائم التشغيل كمجموعة', + useNullSeparator: 'استخدم فاصل فارغ', + saveID3v1: 'احفظ ملف ID3v1', + multiArtistSeparator: { + title: 'كيف تريد فصل الفنانين?', + nothing: 'احفظ الفنان الرئيسي فقط', + default: 'استخدام المواصفات القياسية', + andFeat: 'استخدام& و feat.', + using: 'استخدام "{separator}"' + }, + singleAlbumArtist: 'احفظ فقط فنان الألبوم الرئيسي', + albumVariousArtists: 'احتفظ بـ "فنانين متنوعين" في ألبوم الفنانين', + removeAlbumVersion: 'إزالة "إصدار الألبوم" من عنوان المسار', + removeDuplicateArtists: 'إزالة مجموعات الفنانين', + dateFormat: { + title: 'صيغة التاريخ لملفات flac', + year: 'س س س س', + month: 'ش ش', + day: 'ي ي' + }, + featuredToTitle: { + title: 'ماذا علي أن أفعل مع الفنانين الغير رئيسيين ?', + 0: 'لا شيء', + 1: 'حذفه من العنوان', + 3: 'حذفه من عنوان الاغنية و الالبوم', + 2: 'وضعه في العنوان' + }, + titleCasing: 'نوع كتابة العناون', + artistCasing: 'نوع كتابة الفنان', + casing: { + nothing: 'بدون تغيير', + lower: 'احرف صغيرة', + upper: 'احرف كبيرة', + start: 'حرف كبير في بداية كل كلمة', + sentence: 'مثل جملة' + }, + previewVolume: 'معاينة الحجم', + executeCommand: { + title: 'الأمر للتنفيذ بعد التنزيل', + description: 'اتركه فارغًا بدون إجراء' + } + }, + spotify: { + title: 'مميزات سبوتفاي', + clientID: 'معرف عميل سبوتفاي', + clientSecret: 'الكود السري لعميل سبوتفاي', + username: 'اسم مستخدم سبوتفاي' + }, + reset: 'إعادة تعيين إلى الافتراضي', + save: 'حفظ', + toasts: { + init: 'تم تحميل الإعدادات!', + update: 'تم تحديث الاعدادات!', + ARLcopied: 'تم نسخ ARL إلى الحافظة' + } + }, + sidebar: { + home: 'الرئيسية', + search: 'بحث', + charts: 'قائمة الجداول', + favorites: 'المفضلة', + linkAnalyzer: 'محلل الروابط', + settings: 'الاعدادات', + about: 'حول' + }, + tracklist: { + downloadSelection: 'تحميل الاختيار' + } +} + +export default ar diff --git a/webui/src/lang/de.mjs b/webui/src/lang/de.mjs new file mode 100644 index 0000000..25568a5 --- /dev/null +++ b/webui/src/lang/de.mjs @@ -0,0 +1,524 @@ +const de = { + globals: { + welcome: 'Willkommen bei deemix', + back: 'Zurück', + loading: 'Lädt', + download: '{thing} herunterladen', + by: 'von {artist}', + in: 'in {album}', + download_hint: 'Herunterladen', + play_hint: 'Abspielen', + toggle_download_tab_hint: 'Erweitern/Minimieren', + clean_queue_hint: 'Vollständige entfernen', + cancel_queue_hint: 'Alle abbrechen', + open_downloads_folder: 'Download Ordner öffnen', + cut: 'Ausschneiden', + copy: 'Kopieren', + copyLink: 'Link kopieren', + copyImageLink: 'Bildlink kopieren', + copyDeezerLink: 'Deezer Link kopieren', + paste: 'Einfügen', + listTabs: { + empty: '', + all: 'Alle', + discography: 'Diskographie', + top_result: 'Top Ergebnis', + album: 'Album | Alben', + artist: 'Künstler | Künstler', + single: 'Single | Singles', + title: 'Titel | Titel', + track: 'Track | Tracks', + playlist: 'Playlist | Playlists', + compile: 'Sammlung | Sammlungen', + ep: 'EP | EPs', + bundle: 'Bündel | Bündel', + more: 'Weitere Alben', + featured: 'Bekannt in', + spotifyPlaylist: 'Spotify Playlist | Spotify Playlists', + releaseDate: 'Veröffentlichungsdatum', + error: 'Fehler', + trackN: '0 Tracks | {n} Track | {n} Tracks', + albumN: '0 Alben | {n} Album | {n} Alben', + artistN: '0 Künstler | {n} Künstler | {n} Künstler', + releaseN: '0 Veröffentlichungen | {n} Veröffentlichung | {n} Veröffentlichungen', + playlistN: '0 Playlisten | {n} Playlist | {n} Playlisten' + }, + yes: 'Ja', + no: 'Nein', + empty: 'Leer' + }, + about: { + appStatus: { + online: 'App Online', + offline: 'App Offline' + }, + updates: { + currentVersion: 'Aktuelle Version', + currentWebuiVersion: 'Aktuelle WebUI Version', + versionNotAvailable: 'N/A', + updateAvailable: `Du verwendest nicht die neuste Version ({version})`, + deemixVersion: 'Deemix Lib Version' + }, + titles: { + usefulLinks: 'Nützliche Links', + bugReports: 'Fehlermeldung', + contributing: 'Mitwirkende', + donations: 'Spenden', + license: 'Lizenz' + }, + subtitles: { + bugReports: 'Funktioniert etwas in Deemix nicht? Sag uns bescheid!', + contributing: 'Du möchtest bei dem Projekt helfen? Das kannst du auf verschiedene Arten machen!', + donations: 'Du möchtest deemix finanziell unterstützen? Dann lasse eine kleine Spende da!' + }, + usesLibrary: + 'Dieses Programm nutzt die deemix Bibliothek, die du dazu nutzen kannst, deine eigene deemix UI zu erstellen.', + thanks: + 'Ein Dankeschön geht an rtonno, uhwot and lollilol für die Hilfe bei diesem Projekt und an BasCurtiz für die Erstellung des Logos.', + upToDate: { + text: 'Bleib auf dem Laufenden, indem du dem {newsChannel} auf Telegram folgst.', + newsChannel: 'News Channel' + }, + officialWebsite: 'Offizielle Website', + officialRepo: 'Offizielle Bibliotheks Repository', + officialWebuiRepo: 'Offizielle WebUI Repository', + officialSubreddit: 'Offizieller Subreddit', + newsChannel: 'Neuigkeiten Kanal', + devlogChannel: 'Devlog Kanal', + questions: { + text: 'Suche bei Fragen oder Problemen mit der App als erstes nach einer Lösung im {subreddit}. Wenn du dort nichts findest, kannst du einen Beitrag mit deinen Problem auf dem Subreddit verfassen.', + subreddit: 'Subreddit' + }, + beforeReporting: + 'Bevor du einen Fehler meldest, stelle sicher, dass die Version deiner App auf dem neusten Stand ist und dass dies, was du melden möchtest, tatsächlich ein Fehler und nicht nur bei dir falsch ist.', + beSure: + 'Stelle sicher, dass der Fehler auf anderen Computern auch vorhanden ist... MELDE DEN FEHLER NICHT , wenn dieser schon gemeldet worden ist.', + duplicateReports: 'Achte darauf, dass doppelte Fehlerberichte geschlossen, werden.', + dontOpenIssues: + 'ERSTELLE KEINE Fehlermeldungen um Fragen zu stellen, es existiert ein Subreddit dafür.', + newUI: { + text: 'Wenn du Python fließend beherrschst, kannst du versuchen, mithilfe der Basisbibliothek eine neue Benutzeroberfläche für die App zu erstellen oder Fehler in der Bibliothek mit einem Pull-Request in der {repo} zu beheben.', + repo: 'deemix Repo' + }, + acceptFeatures: + 'Ich akzeptiere auch Funktionen, aber keine komplexen Dinge, da sie direkt in der App und nicht in der Bibliothek implementiert werden können.', + otherLanguages: + 'Wenn du eine andere Programmiersprache fließend beherrschst, kannst du versuchen, deemix in andere Programmiersprachen zu portieren!', + understandingCode: 'Du benötigst Hilfe beim verstehen des Codes? Frag einfach waLplanet auf Telegram oder Reddit.', + contributeWebUI: { + text: 'Wenn du Vue.js (JavaScript) oder HTML und CSS kennst, könntest du etwas zum {webui} beitragen.', + webui: 'WebUI' + }, + itsFree: + 'Du solltest im Kopf behalten das dies ein kostenfreies Projekt ist und Du die Künstler unterstützen sollst, die du magst bevor du die Entwickler unterstützt.', + notObligated: 'Fühle dich nicht gezwungen zu spenden, danke, dass du deemix verwendest!', + lincensedUnder: { + text: 'Diese Arbeit ist lizensiert unter der {gpl3}.', + gpl3: 'GNU General Public License 3.0' + } + }, + charts: { + title: 'Charts', + changeCountry: 'Land wechseln', + download: 'Chart herunterladen' + }, + errors: { + title: 'Fehler für {name}', + postTitle: 'Nach dem Herunterladen von Fehlern.', + ids: { + invalidURL: 'URL nicht erkannt', + unsupportedURL: 'URL noch nicht unterstützt', + ISRCnotOnDeezer: 'Track ISRC ist auf Deezer nicht verfügbar', + notYourPrivatePlaylist: 'Du kannst keine privaten Playlisten anderer herunterladen.', + spotifyDisabled: 'Spotify-Funktionen sind nicht richtig eingerichtet', + trackNotOnDeezer: 'Track ist auf Deezer nicht verfügbar!', + albumNotOnDeezer: 'Album auf Deezer nicht gefunden!', + notOnDeezer: 'Track auf Deezer nicht verfügbar!', + notEncoded: 'Track noch nicht codiert!', + notEncodedNoAlternative: 'Track noch nicht codiert und keine Alternative gefunden!', + wrongBitrate: 'Track mit gewünschter Bitrate nicht gefunden.', + wrongBitrateNoAlternative: 'Track mit gewünschter Bitrate nicht gefunden und keine Alternative gefunden!', + no360RA: 'Track ist nicht in Reality Audio 360 verfügbar.', + notAvailable: 'Track ist nicht verfügbar auf den Servern von Deezer!', + notAvailableNoAlternative: 'Track ist nicht auf den Servern von Deezer verfügbar, keine Alternativen gefunden!', + noSpaceLeft: 'Kein Speicherplatz auf dem Gerät!', + albumDoesntExists: 'Das Album des Tracks ist nicht vorhanden, konnte keine Informationen sammeln.', + wrongLicense: 'Dein Account kann die Spur nicht an der gewünschten Bitrate streamen.', + wrongGeolocation: 'Dein Account kann den Track nicht aus Deinem aktuellen Land streamen.', + wrongGeolocationNoAlternative: + 'Dein Account kann den Titel nicht aus Deinem aktuellen Land streamen und es ist keine Alternative verfügbar.' + } + }, + favorites: { + title: 'Favoriten', + noPlaylists: 'Keine Playlist gefunden', + noAlbums: 'Keine favorisierten Alben gefunden', + noArtists: 'Keine favorisierten Künstler gefunden', + noTracks: 'Keine favorisierten Tracks gefunden' + }, + home: { + needTologin: 'Du musst dich in deinem Deezer-Account anmelden bevor du mit dem Download starten kannst.', + openSettings: 'Einstellungen öffnen', + sections: { + popularPlaylists: 'Beliebte Playlists', + popularAlbums: 'Meistgestreamte Alben' + } + }, + linkAnalyzer: { + info: 'Diesen Abschnitt kannst du nutzen, um weitere Informationen über den gewünschten Link zu erhalten, den du herunterladen möchtest.', + useful: + 'Dies ist z.B. nützlich, wenn du versuchst einige Titel herunterzuladen, welche in deinem Land nicht verfügbar sind, und du wissen möchtest, wo sie verfügbar sind.', + linkNotSupported: 'Dieser Link wird noch nicht unterstützt', + linkNotSupportedYet: + 'Es scheint so, als ob dieser Link noch nicht unterstützt wird. Versuche einen anderen Link zu analysieren.', + table: { + id: 'ID', + isrc: 'ISRC', + upc: 'UPC', + duration: 'Dauer', + diskNumber: 'CD Nummer', + trackNumber: 'Track Nummer', + releaseDate: 'Veröffentlichungsdatum', + bpm: 'BPM', + label: 'Label', + recordType: 'Art der Aufnahme', + genres: 'Genres', + tracklist: 'Trackliste', + readable: 'Lesbar', + available: 'Verfügbar' + }, + countries: 'Länder', + noCountries: 'Dieser Track ist in keinem Land verfügbar.' + }, + search: { + startSearching: 'Suche starten!', + description: + 'Du kannst einen Titel, ein ganzes Album, einen Künstler, eine Playlist suchen ... alles! Du kannst auch einen Deezer-Link einfügen', + fans: '{n} Fans', + noResults: 'Keine Ergebnisse', + noResultsTrack: 'Keine Tracks gefunden', + noResultsAlbum: 'Keine Alben gefunden', + noResultsArtist: 'Keinen Künstler gefunden', + noResultsPlaylist: 'Keine Playlist gefunden', + error: 'Ein Fehler ist aufgetreten. Bitte versuche es später erneut.' + }, + searchbar: 'Suche nach allem, was dir gefällt (oder füge einfach einen Link ein)', + downloads: 'Downloads', + toasts: { + restoringQueue: 'Download-Warteschlange wiederherstellen...', + queueRestored: 'Download-Warteschlange wiederhergestellt!', + addedToQueue: '{item} zur Warteschlange hinzugefügt', + addedMoreToQueue: '{n} Einträge zur Warteschlange hinzugefügt', + alreadyInQueue: '{item} ist bereits in der Warteschlange!', + finishDownload: '{item} vollständig heruntergeladen.', + allDownloaded: 'Alle Downloads abgeschlossen!', + refreshFavs: 'Abgeschlossene Downloads neuladen!', + loggingIn: 'Einloggen', + loggedIn: 'Eingeloggt', + alreadyLogged: 'Bereits eingeloggt', + loginFailed: 'Login fehlgeschlagen', + loggedOut: 'Ausgeloggt', + cancellingCurrentItem: 'Aktuelle Auswahl abbrechen.', + currentItemCancelled: 'Aktuelle Auswahl wurde abgebrochen', + startAddingArtist: 'Alben von {artist} werden hinzugefügt', + finishAddingArtist: 'Alben von {artist} wurden hinzugefügt', + startConvertingSpotifyPlaylist: 'Konvertierern von Spotify-Tracks zu Deezer-Tracks', + finishConvertingSpotifyPlaylist: 'Spotify Playlist convertiert', + loginNeededToDownload: 'Du musst eingeloggt sein, um Tracks herunterladen zu können!', + queueErrorCantStream: `Dein Konto kann nicht mit {Bitrate} streamen!`, + deezerNotAvailable: 'Deezer ist in deinem Land nicht verfügbar. Du solltest eine VPN nutzen.', + deezerNotReachable: + 'Die App kann Deezer nicht erreichen. Prüfe deine Internet-Verbindung, deine Firewall oder dein Antivirus.', + startGeneratingItems: 'Verarbeite {n} Einträge....', + finishGeneratingItems: '{n} Einträge generiert.', + noLovedPlaylist: 'Keine Geliebten-Tracks-Wiedergabeliste!', + checkingUpdates: 'Auf Aktualisierungen prüfen...', + noUpdateAvailable: 'Keine Aktualisierungen gefunden', + updateAvailable: 'Eine Aktualisierung ist verfügbar!' + }, + settings: { + title: 'Einstellungen', + language: 'Sprache', + login: { + title: 'Einloggen', + loggedIn: 'Du bist eingeloggt als {username}', + arl: { + title: 'Stattdessen ARL verwenden', + question: 'Wie bekomme ich meine eigene ARL?', + howTo: { + prologue: { + p1: 'Deezer verfolgt die Anmeldesitzung mithilfe eines Cookies namens ARL.', + p2: 'Deemix verwendet dieses Cookie, um die Metadaten abzurufen, die es benötigt, um die Tracks von Deezer herunterzuladen.', + p3: 'ARLs sind 3 Monate gültig, danach fordert Deezer Dich auf, sich erneut anzumelden. Die gleiche Methode wird in deemix verwendet.', + p4: 'Wenn Du einer der folgenden Anleitungen folgst, kannst Du deine eigene Account-ARL erhalten.', + warning: 'Verwende diese Methode nur, wenn E-Mail und Passwort nicht funktionieren.' + }, + chromeSteps: { + title: 'Chrome', + step1: 'Öffne Chrome', + easyWay: { + title: 'Chrome (Einfacher Weg)', + step3: 'Klicke auf das kleine "Schloss"-Symbol neben der URL', + step4: 'Klicke auf Cookies > deezer.com > cookies > arl', + step5: 'Wähle die Zeichenfolge neben Inhalt und Kopieren aus' + }, + step4: "Gehe zum Application Tab (if you don't see it click the double arrow)", + videoGuide: { + text: 'Hier ist eine {videoGuide}', + link: 'Video Guide' + } + }, + firefoxSteps: { + title: 'Firefox', + step1: 'Öffne Firefox', + step4: 'Gehe unter die Registerkarte Speicher (wenn Du sie nicht siehst, klicke auf den Doppelpfeil)' + }, + commonSteps: { + step2: 'Gehe zu www.deezer.com und logge dich in deinen Account ein', + step3: 'Drücke nach der Anmeldung F12, um die Entwicklertools zu öffnen', + step5: 'Öffne den Cookie-Dropdown', + step6: 'Wähle www.deezer.com', + step7: 'Finde das `arl` Cookie (It should be 192 chars long)', + step8: 'Stelle sicher, dass Du nur den Wert kopierst und nicht das gesamte Cookie', + lastStep: 'Das ist Deine ARL, jetzt kannst Du sie in der App verwenden' + } + }, + update: 'ARL aktualisieren' + }, + logout: 'Ausloggen', + login: 'Über deezer.com einloggen', + email: 'E-Mail', + password: 'Passwort' + }, + appearance: { + title: 'Design', + slimDownloadTab: 'Schmaler Download-Tab', + slimSidebar: 'Schlanke Seitenleiste', + searchButton: 'Suchschaltfläche anzeigen', + bitrateTags: 'Qualitäts-Tag in Download-Warteschlange anzeigen' + }, + downloadPath: { + title: 'Download Pfad' + }, + templates: { + title: 'Vorlagen', + tracknameTemplate: 'Vorlage für den Tracknamen', + tracknameAvailableVariables: 'Verfügbare Trackname Variablen', + albumTracknameTemplate: 'Album-Track-Vorlage.', + albumTracknameAvailableVariables: 'Verfügbare Album-Track-Variablen', + playlistTracknameTemplate: 'Vorlage für Tracks in einer Playlist', + playlistTracknameAvailableVariables: 'Verfügbare Playlist Trackvariablen' + }, + folders: { + title: 'Ordner', + createPlaylistFolder: 'Ordner für Playlist erstellen', + playlistNameTemplate: 'Vorlage für Playlist-Ordner', + createArtistFolder: 'Ordner für Künstler erstellen', + artistNameTemplate: 'Vorlage für Künstler-Ordner', + createAlbumFolder: 'Ordner für Album erstellen', + albumNameTemplate: 'Vorlage für Album-Ordner', + createCDFolder: 'Ordner für CDs erstellen', + createStructurePlaylist: 'Erstellen von Künstler-, Alben- und CD-Ordnern auch für Playlists', + createSingleFolder: 'Ordner für einzelne Titel erstellen' + }, + trackTitles: { + title: 'Songtitel', + padTracks: 'Einheitliche Länge der Titelnummern (voranstehende Nullen werden ergänzt)', + paddingSize: 'Innenabstand überschreiben', + illegalCharacterReplacer: 'Unzulässige Zeichen ersetzen' + }, + downloads: { + title: 'Downloads', + queueConcurrency: 'Gleichzeitige Downloads', + maxBitrate: { + title: 'Bevorzugte Bitrate', + 9: 'FLAC 1411kbps', + 3: 'MP3 320kbps', + 1: 'MP3 128kbps' + }, + overwriteFile: { + title: 'Soll ich die Dateien überchreiben?', + y: 'Ja überschreibe die Dateien', + n: 'Nein überschreibe die Dateien nicht', + t: 'Überschreibe nur die Tags', + b: 'Nein, behalte beide Dateien und füge der Kopie eine Nummer hinzu', + e: 'Nein, und schau nicht auf die Erweiterungen' + }, + fallbackBitrate: 'Falls gewünschte Bitrate nicht verfügbar, auf niedrigere Bitrate zurückgreifen', + fallbackSearch: 'Zur Suche zurückkehren, wenn der Song nicht verfügbar ist', + fallbackISRC: 'Fallback mit ISRC-Suche', + feelingLucky: 'Spielen mit CDNs und Caches', + logErrors: 'Protokolldatei für Fehler im Download-Ordner erstellen', + logSearched: 'Protokolldatei für gesuchte Titel erstellen', + createM3U8File: 'Erstelle Playlist-Datei (M3U8)', + syncedLyrics: 'Erstelle synchrone Lyrics-Datei (.lrc)', + playlistFilenameTemplate: 'Vorlage für den Namen der Playlist', + clearQueueOnExit: 'Download-Warteschlange beim Schließen der App leeren' + }, + covers: { + title: 'Album Cover', + saveArtwork: 'Cover speichern', + coverImageTemplate: 'Vorlage für den Covernamen', + saveArtworkArtist: 'Speichere das Künstlerbild', + artistImageTemplate: 'Vorlage des Künstlerbildes', + localArtworkSize: 'Lokale Grafikgröße', + embeddedArtworkSize: 'Eingebettete Grafikgröße', + localArtworkFormat: { + title: 'Welches Datei-Format soll das Cover haben?', + jpg: 'Ein jpg Bild', + png: 'Ein png Bild', + both: 'Beides (jpg + png)' + }, + jpegImageQuality: 'JPEG Qualität', + embeddedArtworkPNG: 'Eingebettete Grafiken als PNG speichern', + embeddedPNGWarning: 'PNGs werden von Deezer nicht offiziell unterstützt und können fehlerhaft sein', + imageSizeWarning: 'Alles über x1200 wird nicht offiziell von Deezer verwendet, es können Probleme auftreten', + coverDescriptionUTF8: 'Cover-Beschreibung mit UTF8 speichern (iTunes Cover Fix)' + }, + tags: { + head: 'Welche Tags sollen gespeichert werden?', + title: 'Titel', + artist: 'Künstler', + artists: 'Zusätzlicher ARTISTS Tag', + album: 'Album', + cover: 'Cover', + trackNumber: 'Titelnummer', + trackTotal: 'Titelanzahl', + discNumber: 'CD Nummer', + discTotal: 'CDs insgesamt', + albumArtist: 'Album Künstler', + genre: 'Genre', + year: 'Jahr', + date: 'Datum', + explicit: 'Explizite Lyrics', + isrc: 'ISRC', + length: 'Titel Länge', + barcode: 'Album Barcode (UPC)', + bpm: 'BPM', + replayGain: 'Wiedergabe Lautstärke', + label: 'Album Plattenlabel', + lyrics: 'Nicht synchronisierte Texte', + syncedLyrics: 'Synchronisierte Texte', + copyright: 'Copyright', + composer: 'Komponist', + involvedPeople: 'Mitwirkende Personen', + source: 'Quelle und Song ID', + artistsWarning: + 'Das Deaktivieren des ARTISTS- Tags, während die Standardspezifikation nicht verwendet wird, wird die Multiartist- Unterstützung nicht erhalten' + }, + other: { + title: 'Sonstige', + autoCheckForUpdates: 'Beim Start nach Updates suchen', + savePlaylistAsCompilation: 'Speichere Playlist als Zusammenstellung', + useNullSeparator: 'Verwende Nulltrennzeichen', + saveID3v1: 'Speichere ID3v1 ebenfalls', + multiArtistSeparator: { + title: 'Wie möchtest du die Künstler trennen?', + nothing: 'Speichere nur den Hauptkünstler', + default: 'Verwende Standard Spezifikationen', + andFeat: 'Verwende & und feat.', + using: 'Verwende "{separator}"', + warning: + 'Wenn Du ein anderes Trennzeichen als die Standardspezifikation verwendest, wird ein zusätzliches ARTISTS-Tag hinzugefügt, um die Unterstützung mehrerer Künstler zu erhalten' + }, + singleAlbumArtist: 'Nur den Hauptkünstler speichern', + albumVariousArtists: 'Verschiedene Künstler" im Album Künstler Tag behalten', + removeAlbumVersion: 'Entferne die "Album Version" vom Songtitel', + removeDuplicateArtists: 'Kombinationen von Künstlern entfernen', + dateFormat: { + title: 'Datumsformatierung für FLAC Dateien', + year: 'JJJJ', + month: 'MM', + day: 'TT' + }, + featuredToTitle: { + title: 'Was soll ich mit featured Artists tun?', + 0: 'Nichts', + 1: 'Vom Titel entfernen', + 3: 'Vom Titel und Albumtitel entfernen', + 2: 'Zu dem Titel hinzufügen' + }, + titleCasing: 'Titel-Schreibweise', + artistCasing: 'Künstler-Schreibweise', + casing: { + nothing: 'Unbearbeitet lassen', + lower: 'klein', + upper: 'GROSS', + start: 'Wortanfang Gross', + sentence: 'Satzanfang gross' + }, + previewVolume: 'Vorschau der Lautstärke', + executeCommand: { + title: 'Befehl, der nach dem Download ausgeführt werden soll', + description: 'Leer lassen ohne Aktion' + } + }, + spotify: { + title: 'Spotify Funktionen', + clientID: 'Spotify Client ID', + clientSecret: 'Spotify Client Secret', + username: 'Spotify Benutzername', + question: 'Wie aktiviere ich die Spotify Funktionen?', + howTo: { + prologue: { + p1: '"Spotify Funktionen" ist eine Reihe von Funktionen, mit denen Du Spotify-Tracks und Alben-Links in Deezer-Links konvertieren kannst.', + p2: 'Wenn Du einen Spotify-Playlist-Link bereitstellst, konvertiert die App automatisch alle Links der darin enthaltenen Titel in Deezer-Titel.', + p3: 'Wenn Du diese Funktionen aktivierst, kannst Du Deine öffentlichen Spotify-Wiedergabelisten auch auf der Registerkarte "Favoriten" sehen.' + }, + info: 'Aus Sicherheitsgründen musst Du Deine eigene Client-ID und Dein Client-Secret angeben', + clientSecretQuestion: { + title: 'Wie erhalte ich meine Client-ID und mein Client-Secret?', + step1: { + text: 'Verbinde dich mit {spotifyDevelopersDashboard} und melde dich mit Deinem Spotify-Account an.', + spotifyDevelopersDashboard: 'Spotify Entwickler-Dashboard' + }, + step2: { + text: 'Klicke auf "App erstellen"..', + imageAlt: 'Erstelle eine App-Schaltfläche auf Spotify für das Entwickler-Dashboard' + }, + step3: { + text: 'Fülle die Felder „App-Name“ und „App-Beschreibung“ aus und aktiviere beide Kontrollkästchen. Klicke dann auf die Schaltfläche "Erstellen".', + imageAlt: 'Erstelle ein App-Formular' + }, + step4: { + text: 'Jetzt kannst Du die Client-ID sehen. Wenn Du auf "„"Kundengeheimnis anzeigen"“" klickst, wird das Kundengeheimnis angezeigt.', + imageAlt: 'Screen mit Client-ID und Geheimnis' + }, + step5: + 'Jetzt kannst Du diese Ergebnisse kopieren und in die entsprechenden Felder in den Einstellungen einfügen.' + }, + usernameQuestion: { + title: 'Wie erhalte ich meinen Spotify-Benutzernamen?', + step1: { + text: 'Du kannst Deinen Spotify-Benutzernamen auf der {overviewPage} auf der Spotify-Website abrufen.', + overviewPage: 'Übersichtsseite' + } + } + } + }, + reset: 'Auf Standardwerte zurücksetzen', + resetMessage: 'Bist du sicher, dass du zu den Standarteinstellungen zurückkehren willst?', + save: 'Speichern', + toasts: { + init: 'Einstellungen geladen!', + update: 'Einstellungen aktualisiert!', + reset: 'Einstellungen auf den Standart zurückgesetzt!', + ARLcopied: 'ARL wurde in die Zwischenablage kopiert' + } + }, + sidebar: { + home: 'Startseite', + search: 'Suche', + charts: 'Charts', + favorites: 'Favoriten', + linkAnalyzer: 'Link Analyse', + settings: 'Einstellungen', + logs: 'Protokolle', + about: 'Info' + }, + tracklist: { + downloadSelection: 'Herunterladen' + } +} + +export default de diff --git a/webui/src/lang/el.mjs b/webui/src/lang/el.mjs new file mode 100644 index 0000000..c0190e9 --- /dev/null +++ b/webui/src/lang/el.mjs @@ -0,0 +1,527 @@ +const gr = { + globals: { + welcome: 'Καλωσόρισες στο deemix', + back: 'Πίσω', + loading: 'φόρτωση', + download: 'Λήψη {thing}', + by: 'από {artist}', + in: 'σε {album}', + download_hint: 'Λήψη', + play_hint: 'Αναπαραγωγή', + toggle_download_tab_hint: 'Ανάπτυξη/Σύμπτυξη', + clean_queue_hint: 'Καθαρισμός Ολοκληρωμένων', + cancel_queue_hint: 'Ακύρωση Όλων', + open_downloads_folder: 'Άνοιγμα Φακέλου Λήψεων', + cut: 'αποκοπή', + copy: 'αντιγραφή', + copyLink: 'αντιγραφή συνδέσμου', + copyImageLink: 'αντιγραφή συνδέσμου εικόνας', + copyDeezerLink: 'αντιγραφή συνδέσμου deezer', + paste: 'επικόλληση', + listTabs: { + empty: '', + all: 'όλα', + top_result: 'κορυφαίο αποτέλεσμα', + album: 'άλμπουμ | άλμπουμ', + artist: 'καλλιτέχνης | καλλιτέχνες', + single: 'single | singles', + title: 'τίτλος | τίτλοι', + track: 'κομμάτι | κομμάτια', + releaseN: '0 κυκλοφορίες | {n} κυκλοφορία | {n} κυκλοφορίες', + playlist: 'λίστα αναπαραγωγής | λίστες αναπαραγωγής', + compile: 'συλλογή | συλλογές', + ep: 'ep | eps', + bundle: 'δέσμη | δέσμες', + more: 'Περισσότερα άλμπουμ', + featured: 'Συμμετοχές', + spotifyPlaylist: 'λίστα αναπαραγωγής spotify | λίστες αναπαραγωγής spotify', + releaseDate: 'ημερομηνία κυκλοφορίας', + error: 'σφάλμα', + trackN: '0 κομμάτια | {n} κομμάτι | {n} κομμάτια', + albumN: '0 άλμπουμ | {n} άλμπουμ | {n} άλμπουμ', + artistN: '0 καλλιτέχνες | {n} καλλιτέχνης | {n} καλλιτέχνες', + playlistN: '0 λίστες αναπαραγωγής | {n} λίστα αναπαραγωγής | {n} λίστες αναπαραγωγής' + }, + yes: 'ναι', + no: 'όχι', + empty: 'κενό' + }, + about: { + appStatus: { + online: 'εφαρμογή σε σύνδεση', + offline: 'εφαρμογή εκτός σύνδεσης' + }, + updates: { + currentVersion: 'Τρέχουσα Έκδοση', + currentWebuiVersion: 'Τρέχουσα Έκδοση WebUI', + versionNotAvailable: 'Μη Διαθέσιμη', + updateAvailable: `Δεν εκτελείτε την πιο πρόσφατη διαθέσιμη έκδοση: {version}`, + deemixVersion: 'Έκδοση deemix lib' + }, + titles: { + usefulLinks: 'Χρήσιμοι Σύνδεσμοι', + bugReports: 'Αναφορές Σφαλμάτων', + contributing: 'Συνεισφορά', + donations: 'Δωρεές', + license: 'Άδεια' + }, + subtitles: { + bugReports: 'Υπάρχει κάτι που δεν λειτουργεί στο deemix; Ενημέρωσε μας!', + contributing: 'Θέλετε να συμβάλλετε σε αυτό το πρότζεκτ; Μπορείτε να το κάνετε με διάφορους τρόπους!', + donations: 'Θέλετε να συνεισφέρετε οικονομικά; Θα μπορούσατε να κάνετε μια δωρεά!' + }, + usesLibrary: + 'Αυτή η εφαρμογή χρησιμοποιεί τη βιβλιοθήκη deemix, την οποία μπορείτε να χρησιμοποιήσετε για να δημιουργήσετε το δικό σας περιβάλλον χρήστη για το deemix.', + thanks: `Ευχαριστώ τους rtonno, uhwot και lollilol που με βοήθησαν σε αυτό το έργο και τον BasCurtiz για τη δημιουργία του εικονιδίου του deemix.`, + upToDate: { + text: `Μείνετε ενημερωμένοι ακολουθώντας το {newsChannel} στο Telegram.`, + newsChannel: 'news channel' + }, + officialWebsite: 'Επίσημη Ιστοσελίδα', + officialRepo: 'Επίσημο Αποθετήριο Βιβλιοθήκης', + officialWebuiRepo: 'Επίσημο Αποθετήριο WebUI', + officialSubreddit: 'Επίσημο Subreddit', + newsChannel: 'News Channel', + devlogChannel: 'Devlog Channel', + questions: { + text: `Εάν έχετε ερωτήσεις ή προβλήματα με την εφαρμογή, αναζητήστε αρχικά μια λύση στο {subreddit}. Εάν δεν βρείτε τη λύση εκεί, μπορείτε να κάνετε μια ανάρτηση με το πρόβλημά σας στο subreddit.`, + subreddit: 'subreddit' + }, + beforeReporting: `Πριν αναφέρετε κάποιο σφάλμα, βεβαιωθείτε αρχικά ότι εκτελείτε την τελευταία έκδοση της εφαρμογής και ότι το συγκεκριμένο σφάλμα δεν είναι κάποιο πρόβλημα από πλευράς σας.`, + beSure: `Βεβαιωθείτε ότι το σφάλμα συμβαίνει και σε άλλα μηχανήματα, πχ δοκιμάζοντας σε κάποιον άλλον υπολογιστή και ΜΗΝ αναφέρετε σφάλματα που έχουν ήδη αναφερθεί.`, + duplicateReports: 'Οι διπλές αναφορές σφαλμάτων θα κλείνουν, οπότε έχετε το νου σας σε αυτό.', + dontOpenIssues: `ΜΗΝ ανοίγετε ζητήματα για υποβολή απλών ερωτήσεων, υπάρχει subreddit για αυτό.`, + newUI: { + text: `Εάν χειρίζεστε άριστα την python, μπορείτε να δοκιμάσετε να δημιουργήσετε ένα νέο περιβάλλον χρήστη για την εφαρμογή χρησιμοποιώντας τη βασική βιβλιοθήκη ή να διορθώσετε σφάλματα στη βιβλιοθήκη με ένα pull request στο {repo}.`, + repo: 'repo' + }, + acceptFeatures: `Δέχομαι και επιπλέον λειτουργίες, αλλά όχι περίπλοκα πράγματα, έτσι ώστε να μπορούν να υλοποιηθούν απευθείας στην εφαρμογή και όχι στη βιβλιοθήκη.`, + otherLanguages: `Εάν χειρίζεστε άριστα οποιαδήποτε άλλη γλώσσα προγραμματισμού, μπορείτε να προσπαθήσετε να μεταφέρετε το deemix σε αυτή τη γλώσσα!`, + understandingCode: `Χρειάζεστε βοήθεια για την κατανόηση του κώδικα; Απλώς πατήστε το waLplanet στο Telegram ή το Reddit.`, + contributeWebUI: { + text: `Εάν γνωρίζετε Vue.js (JavaScript), HTML ή CSS, μπορείτε να συνεισφέρετε στο {webui}.`, + webui: 'WebUI' + }, + itsFree: `Πρέπει να έχετε υπόψιν ότι αυτό πρότζεκτ είναι δωρεάν και ότι θα πρέπει αρχικά να υποστηρίξετε τους καλλιτέχνες που αγαπάτε και μετά τους προγραμματιστές.`, + notObligated: `Μην αισθάνεστε υποχρεωμένοι να κάνετε κάποια δωρεά, σας εκτιμώ ούτως ή άλλως!`, + lincensedUnder: { + text: `Αυτή η εργασία είναι αδειοδοτημένη βάσει του {gpl3}.`, + gpl3: 'GNU General Public License 3.0' + } + }, + charts: { + title: 'Διαγράμματα', + changeCountry: 'Αλλαγή Χώρας', + download: 'Λήψη Διαγράμματος' + }, + errors: { + title: 'Σφάλματα για {name}', + postTitle: 'Μετά τη λήψη σφαλμάτων', + ids: { + invalidURL: 'Η διεύθυνση URL δεν αναγνωρίζεται', + unsupportedURL: 'Η διεύθυνση URL δεν υποστηρίζεται ακόμη', + ISRCnotOnDeezer: 'Το κομμάτι ISRC δεν είναι διαθέσιμο στο Deezer', + notYourPrivatePlaylist: 'Δεν μπορείτε να κατεβάσετε ιδιωτικές λίστες αναπαραγωγής άλλων.', + spotifyDisabled: 'Οι δυνατότητες Spotify δεν έχουν ρυθμιστεί σωστά.', + trackNotOnDeezer: 'Αυτό το κομμάτι δεν βρέθηκε στο Deezer!', + albumNotOnDeezer: 'Αυτό το άλμπουμ δεν βρέθηκε στο Deezer!', + notOnDeezer: 'Αυτό το κομμάτι δεν είναι διαθέσιμο στο Deezer!', + notEncoded: 'Αυτό το κομμάτι δεν έχει κωδικοποιηθεί ακόμα!', + notEncodedNoAlternative: 'Αυτό το κομμάτι δεν έχει κωδικοποιηθεί ακόμα και δεν βρέθηκε εναλλακτική λύση!', + wrongBitrate: 'Αυτό το κομμάτι δεν βρέθηκε στο επιθυμητό bitrate.', + wrongBitrateNoAlternative: 'Αυτό το κομμάτι δεν βρέθηκε στον επιθυμητό bitrate και δεν βρέθηκε εναλλακτική λύση!', + no360RA: 'Αυτό το κομμάτι δεν είναι διαθέσιμο στο Reality Audio 360.', + notAvailable: 'Αυτό το κομμάτι δεν είναι διαθέσιμο στους διακομιστές του Deezer!', + notAvailableNoAlternative: + 'Αυτό το κομμάτι δεν είναι διαθέσιμο στους διακομιστές του Deezer και δεν βρέθηκε εναλλακτική λύση!', + noSpaceLeft: 'Δεν υπάρχει διαθέσιμος χώρος στη συσκευή!', + albumDoesntExists: 'Το άλμπουμ αυτού του κομματιού δεν υπάρχει, η συλλογή πληροφοριών απέτυχε.', + wrongLicense: 'Ο λογαριασμός σας δεν μπορεί να κάνει stream αυτό το κομμάτι με το επιθυμητό bitrate.', + wrongGeolocation: 'Ο λογαριασμός σας δεν μπορεί να κάνει stream αυτό το κομμάτι στην χώρα σας.', + wrongGeolocationNoAlternative: + 'Ο λογαριασμός σας δεν μπορεί να μεταδώσει το συγκεκριμένο κομμάτι από την τρέχουσα χώρα και δεν βρέθηκε εναλλακτική πηγή.' + } + }, + favorites: { + title: 'Αγαπημένα', + noPlaylists: 'Δεν Βρέθηκαν Λίστες Αναπαραγωγής', + noAlbums: 'Δεν Βρέθηκαν Αγαπημένα Άλμπουμ', + noArtists: 'Δεν Βρέθηκαν Αγαπημένοι Καλλιτέχνες', + noTracks: 'Δεν Βρέθηκαν Αγαπημένα Κομμάτια' + }, + home: { + needTologin: 'Πρέπει να συνδεθείτε στον λογαριασμό σας Deezer προτού ξεκινήσετε τη λήψη.', + openSettings: 'Άνοιγμα Ρυθμίσεων', + sections: { + popularPlaylists: 'Δημοφιλείς λίστες αναπαραγωγής', + popularAlbums: 'Τα άλμπουμ με τις περισσότερες αναπαραγωγές' + } + }, + linkAnalyzer: { + info: 'Μπορείτε να χρησιμοποιήσετε αυτήν την ενότητα για να βρείτε περισσότερες πληροφορίες σχετικά με τον σύνδεσμο που προσπαθείτε να κατεβάσετε.', + useful: + 'Αυτό για παράδειγμα είναι χρήσιμο εάν προσπαθείτε να κατεβάσετε μερικά κομμάτια που δεν είναι διαθέσιμα στη χώρα σας και θέλετε να μάθετε πού είναι διαθέσιμα.', + linkNotSupported: 'Αυτός ο σύνδεσμος δεν υποστηρίζεται ακόμη', + linkNotSupportedYet: 'Φαίνεται ότι αυτός ο σύνδεσμος δεν υποστηρίζεται ακόμη, δοκιμάστε να αναλύσετε κάποιον άλλο.', + table: { + id: 'ID', + isrc: 'ISRC', + upc: 'UPC', + duration: 'Διάρκεια', + diskNumber: 'Αριθμός Δίσκου', + trackNumber: 'Αριθμός Τραγουδιού', + releaseDate: 'Ημερομηνία Κυκλοφορίας', + bpm: 'BPM', + label: 'Ετικέτα', + recordType: 'Τύπος Εγγραφής', + genres: 'Είδη', + tracklist: 'Λίστα Κομματιών', + readable: 'Αναγνώσιμο', + available: 'Διαθέσιμο' + }, + countries: 'Χώρες', + noCountries: 'Αυτό το κομμάτι δεν είναι διαθέσιμο σε καμία χώρα.' + }, + search: { + startSearching: 'Έναρξη αναζήτησης...', + description: + 'Εδώ μπορείτε να αναζητήσετε κάποιο κομμάτι, κάποιο άλμπουμ, κάποιον καλλιτέχνη, μια λίστα αναπαραγωγής ή οτιδήποτε άλλο επιθυμείτε. Μπορείτε επίσης να επικολλήσετε έναν σύνδεσμο Deezer.', + fans: '{n} θαυμαστές', + noResults: 'Δεν βρέθηκαν αποτελέσματα', + noResultsTrack: 'Δεν βρέθηκαν κομμάτια', + noResultsAlbum: 'Δεν βρέθηκαν άλμπουμ', + noResultsArtist: 'Δεν βρέθηκαν καλλιτέχνες', + noResultsPlaylist: 'Δεν βρέθηκαν λίστες αναπαραγωγής' + }, + searchbar: 'Αναζητήστε οτιδήποτε θέλετε ή απλά επικολλήστε έναν σύνδεσμο', + downloads: 'λήψεις', + toasts: { + restoringQueue: 'Επαναφορά της ουράς λήψης…', + queueRestored: 'Η ουρά λήψης αποκαταστάθηκε!', + addedToQueue: '{item} προστέθηκε στην ουρά', + addedMoreToQueue: '{n} στοιχεία προστέθηκαν στην ουρά', + alreadyInQueue: 'Το {item} είναι ήδη στην ουρά!', + finishDownload: 'Η λήψη του {item} ολοκληρώθηκε.', + allDownloaded: 'Όλες οι λήψεις ολοκληρώθηκαν!', + refreshFavs: 'Η ανανέωση ολοκληρώθηκε!', + loggingIn: 'Σύνδεση...', + loggedIn: 'Συνδεδεμένος', + alreadyLogged: 'Ήδη συνδεδεμένος', + loginFailed: 'Δεν ήταν δυνατή η σύνδεση', + loggedOut: 'Αποσυνδεδεμένος', + cancellingCurrentItem: 'Ακύρωση τρέχοντος στοιχείου.', + currentItemCancelled: 'Το τρέχον στοιχείο ακυρώθηκε.', + startAddingArtist: 'Προσθήκη άλμπουμ του καλλιτέχνη {artist} στην ουρά', + finishAddingArtist: 'Προστέθηκαν άλμπουμ του καλλιτέχνη {artist} στην ουρά', + startConvertingSpotifyPlaylist: 'Μετατροπή κομματιών spotify σε κομμάτια Deezer', + finishConvertingSpotifyPlaylist: 'Η λίστα αναπαραγωγής Spotify μετατράπηκε', + loginNeededToDownload: 'Πρέπει να συνδεθείτε για να κατεβάσετε κομμάτια!', + deezerNotAvailable: 'Το Deezer δεν είναι διαθέσιμο στη χώρα σας. Θα πρέπει να χρησιμοποιήσετε κάποια VPN υπηρεσία.', + deezerNotReachable: + 'Η εφαρμογή δεν μπορεί να συνδεθεί στο Deezer. Ελέγξτε τη σύνδεσή σας στο διαδίκτυο ή το πρόγραμμα προστασίας σας από ιούς.', + startGeneratingItems: 'Επεξεργασία {n} στοιχείων...', + finishGeneratingItems: 'Δημιουργήθηκαν {n} στοιχεία.', + noLovedPlaylist: 'Δεν υπάρχει λίστα αναπαραγωγής αγαπημένων κομματιών!', + checkingUpdates: 'Ελεγχος για ενημερώσεις...', + noUpdateAvailable: 'Δεν βρέθηκαν ενημερώσεις', + updateAvailable: 'Υπάρχει διαθέσιμη ενημέρωση!' + }, + settings: { + title: 'Ρυθμίσεις', + language: 'Γλώσσα', + login: { + title: 'Σύνδεση', + loggedIn: 'Έχετε συνδεθεί ως {username}', + arl: { + title: 'Χρήση ARL', + question: 'Πώς μπορώ να αποκτήσω το δικό μου ARL;', + howTo: { + prologue: { + p1: 'To "Deezer" παρακολουθεί την περίοδο σύνδεσης σας χρησιμοποιώντας ένα cookie που ονομάζεται "ARL".', + p2: 'Το "Deemix" χρησιμοποιεί αυτό το cookie για να λάβει τα δεδομένα που χρειάζεται για τη λήψη των κομματιών από το "Deezer".', + p3: 'Τα "ARL" διαρκούν τρεις μήνες. Με το πέρας των τριών μηνών το "Deezer" σας ζητά να συνδεθείτε ξανά. Η ίδια μέθοδος χρησιμοποιείται και στο "Deemix".', + p4: 'Ακολουθώντας τα παρακάτω βήματα μπορείτε να αποκτήσετε τον "ARL" κωδικό σας', + warning: 'Χρησιμοποιήστε αυτήν τη μέθοδο μόνο εάν το email και ο κωδικός πρόσβασης δεν λειτουργούν.' + }, + chromeSteps: { + title: 'Chrome', + step1: 'Ανοίξτε τον Chrome', + easyWay: { + title: 'Chrome (Εύκολος Τρόπος)', + step3: + 'Κάντε κλικ στο εικονίδιο με το λουκέτο το οποίο βρίσκεται στα αριστερά του πεδίο διεύθυνσης "URL"', + step4: + 'Επιλέξτε το εικονιδιο "Cookies", πηγαίνετε στην καρτέλα "Allowed" και κάντε κλικ στο "deezer.com" > "cookies" > "arl"', + step5: + 'Κάντε δεξί κλικ μέσα στο πεδίο "Content", αρχικά επιλέξτε "Select All" και στη συνέχεια ξανά δεξί κλικ στο πεδίο "Content" και αντιγραφή.' + }, + step4: 'Πηγαίνετε στην καρτέλα Εφαρμογή (αν δεν τη βλέπετε κάντε κλικ στο διπλό βέλος)', + videoGuide: { + text: 'Εδώ θα βρείτε σχετικό {videoGuide}', + link: 'βίντεο' + } + }, + firefoxSteps: { + title: 'Firefox', + step1: 'Ανοίξτε τον Firefox', + step4: 'Πηγαίνετε στην καρτέλα Αποθήκευση (αν δεν τη βλέπετε κάντε κλικ στο διπλό βέλος)' + }, + commonSteps: { + step2: 'Μεταβείτε στη διεύθυνση "www.deezer.com" και συνδεθείτε στον λογαριασμό σας', + step3: 'Αφού συνδεθείτε, πατήστε F12 για να ανοίξετε τα Εργαλεία προγραμματιστή (Developer Tools)', + step5: 'Ανοίξτε το αναπτυσσόμενο μενού "cookie"', + step6: 'Επιλέξτε το "www.deezer.com"', + step7: 'Βρείτε το cookie "arl" (το οποίο πρέπει να έχει μήκος 192 χαρακτήρες)', + step8: 'Βεβαιωθείτε ότι αντιγράψτε μόνο την τιμή και όχι ολόκληρο το cookie', + lastStep: 'Και αυτό είναι το "ARL" σας. Τώρα μπορείτε να το χρησιμοποιήσετε στην εφαρμογή' + } + }, + update: 'Ενημέρωση ARL' + }, + logout: 'Αποσύνδεση', + login: 'Σύνδεση', + email: 'E-mail', + password: 'Password' + }, + appearance: { + title: 'Εμφάνιση', + slimDownloadTab: 'Λεπτή καρτέλα λήψης', + slimSidebar: 'Λεπτή πλαϊνή μπάρα', + searchButton: 'Εμφάνιση κουμπιού αναζήτησης', + bitrateTags: 'Εμφάνιση ετικέτας ποιότητας στην ουρά λήψης' + }, + downloadPath: { + title: 'Διαδρομή Λήψεων' + }, + templates: { + title: 'Πρότυπα', + tracknameTemplate: 'Πρότυπο ονόματος κομματιού', + tracknameAvailableVariables: 'Διαθέσιμες μεταβλητές ονόματος κομματιού', + albumTracknameTemplate: 'Πρότυπο άλμπουμ κομματιού', + albumTracknameAvailableVariables: 'Διαθέσιμες μεταβλητές άλμπουμ κομματιού', + playlistTracknameTemplate: 'Πρότυπο λίστας αναπαραγωγής κομματιού', + playlistTracknameAvailableVariables: 'Διαθέσιμες μεταβλητές λίστας αναπαραγωγής κομματιών' + }, + folders: { + title: 'Φάκελοι', + createPlaylistFolder: 'Δημιουργία φακέλου για λίστες αναπαραγωγής', + playlistNameTemplate: 'Πρότυπο φακέλου λίστας αναπαραγωγής', + createArtistFolder: 'Δημιουργία φακέλου για καλλιτέχνη', + artistNameTemplate: 'Πρότυπο φακέλου καλλιτέχνη', + createAlbumFolder: 'Δημιουργία φακέλου για άλμπουμ', + albumNameTemplate: 'Πρότυπο φακέλου άλμπουμ', + createCDFolder: 'Δημιουργία φακέλου για CDs', + createStructurePlaylist: 'Δημιουργία δομής φακέλου για λίστες αναπαραγωγής', + createSingleFolder: 'Δημιουργία δομής φακέλου για singles' + }, + trackTitles: { + title: 'Τίτλοι κομματιών', + padTracks: 'Εισαγωγή (0) στην αρίθμηση κομματιών', + paddingSize: 'Πλήθος μηδενικών', + illegalCharacterReplacer: 'Αντικατάσταση μη επιτρεπόμενων χαρακτήρων' + }, + downloads: { + title: 'Λήψεις', + queueConcurrency: 'Παράλληλες λήψεις', + maxBitrate: { + title: 'Προτιμώμενο Bitrate', + 9: 'FLAC 1411kbps', + 3: 'MP3 320kbps', + 1: 'MP3 128kbps' + }, + overwriteFile: { + title: 'Να αντικατασταθούν τα αρχεία;', + y: 'Ναι, να αντικατασταθεί το αρχείο', + n: 'Όχι, να μην αντικατασταθεί το αρχείο', + t: 'Να αντικατασταθούν μόνο τα tags', + b: 'Όχι, να διατηρηθούν και τα δύο αρχεία και να προστεθεί αύξων αριθμός στο διπλότυπο', + e: 'Όχι, και να μην ληφθούν υπόψιν οι επεκτάσεις' + }, + fallbackBitrate: 'Εναλλακτικό bitrate', + fallbackSearch: 'Εναλλακτική αναζήτηση', + fallbackISRC: 'Εναλλακτική αναζήτηση με ISRC', + feelingLucky: 'Παίξτε με τα CDN και τις κρυφές μνήμες', + logErrors: 'Να δημιουργηθούν αρχεία καταγραφής για σφάλματα', + logSearched: 'Δημιουργία αρχείων καταγραφής για κομμάτια που έχουν αναζητηθεί', + createM3U8File: 'Δημιουργία αρχείου λίστας αναπαραγωγής', + syncedLyrics: 'Δημιουργία αρχείων .lrc (Συγχρονισμός στίχων)', + playlistFilenameTemplate: 'Πρότυπο ονόματος αρχείου λίστας αναπαραγωγής', + saveDownloadQueue: 'Αποθήκευση της ουράς λήψης κατά το κλείσιμο της εφαρμογής' + }, + covers: { + title: 'Εξώφυλλα άλμπουμ', + saveArtwork: 'Αποθήκευση εξώφυλλων', + coverImageTemplate: 'Πρότυπο ονόματος εξωφύλλου', + saveArtworkArtist: 'Αποθήκευση εικόνας καλλιτέχνη', + artistImageTemplate: 'Πρότυπο εικόνας καλλιτέχνη', + localArtworkSize: 'Τοπικό μέγεθος εξωφύλλου', + embeddedArtworkSize: 'Ενσωματωμένο μέγεθος εξωφύλλου', + localArtworkFormat: { + title: 'Μορφή τοπικού εξωφύλλου', + jpg: 'Αρχείο εικόνας jpeg', + png: 'Αρχείο εικόνας png', + both: 'Αρχείο jpeg και png' + }, + jpegImageQuality: 'Ποιότητα εικόνας JPEG', + embeddedArtworkPNG: 'Αποθήκευση ενσωματωμένου εξωφύλλου σε PNG αρχείο', + embeddedPNGWarning: + 'Τα αρχεία PNG δεν υποστηρίζονται επίσημα από το Deezer και μπορεί να αντιμετωπίσετε προβλήματα', + imageSizeWarning: + 'Οποιαδήποτε εικόνα πάνω από 1200 pixels δεν υποστηρίζονται επίσημα από το Deezer και μπορεί να αντιμετωπίσετε προβλήματα', + coverDescriptionUTF8: 'Αποθήκευση περιγραφής εξωφύλλου χρησιμοποιώντας UTF8 (iTunes Cover Fix)' + }, + tags: { + head: 'Ποιες ετικέτες να αποθηκευθούν', + title: 'Τίτλος', + artist: 'Καλλιτέχνης', + artists: 'Ετικέτα επιπλέον καλλιτεχνών', + album: 'Άλμπουμ', + cover: 'Εξώφυλλο', + trackNumber: 'Αριθμός Κομματιού', + trackTotal: 'Σύνολο Κομματιών', + discNumber: 'Αριθμός Δίσκου', + discTotal: 'Σύνολο Δίσκων', + albumArtist: 'Καλλιτέχνης του Άλμπουμ', + genre: 'Είδος', + year: 'Χρονιά', + date: 'Ημερομηνία', + explicit: 'Ρητοί Στίχοι', + isrc: 'ISRC', + length: 'Διάρκεια Κομματιού', + barcode: 'Barcode Άλμπουμ (UPC)', + bpm: 'BPM', + replayGain: 'Replay Gain', + label: 'Ετικέτα Άλμπουμ', + lyrics: 'Μη Συγχρονισμένοι Στίχοι', + syncedLyrics: 'Συγχρονισμένοι Στίχοι', + copyright: 'Copyright', + composer: 'Συνθέτης', + involvedPeople: 'Εμπλεκόμενοι', + source: 'Πηγή και Αναγνωριστικό (ID) Κομματιού', + artistsWarning: + 'Η απενεργοποίηση της ετικέτας επιπλέον καλλιτεχνών ενώ δεν χρησιμοποιείτε τυπικές προδιαγραφές δεν θα διατηρήσει την υποστήριξη πολλών καλλιτεχνών' + }, + other: { + title: 'Λοιπά', + autoCheckForUpdates: 'Έλεγχος για ενημερώσεις κατά την εκκίνηση', + savePlaylistAsCompilation: 'Αποθήκευση λιστών αναπαραγωγής ως συλλογή', + useNullSeparator: 'Χρήση μηδενικού διαχωριστικού', + saveID3v1: 'Αποθήκευση του ID3v1', + multiArtistSeparator: { + title: 'Πώς θα θέλατε να χωρίσετε τους αγαπημένους σας καλλιτέχνες;', + nothing: 'Αποθήκευση μόνο του κύριου καλλιτέχνη', + default: 'Χρηση τυπικών προδιαγραφών', + andFeat: 'Χρήση του συμβόλου (&) και της ένδειξης (feat.)', + using: 'Χρήση "{separator}"', + warning: + 'Η χρήση οποιουδήποτε διαχωριστικού εκτός από την τυπική προδιαγραφή θα προσθέσει μια επιπλέον ετικέτα επιπλέον καλλιτεχνών για να διατηρήσει την υποστήριξη πολλών καλλιτεχνών' + }, + singleAlbumArtist: 'Αποθήκευση μόνο του κύριου καλλιτέχνη του άλμπουμ', + albumVariousArtists: 'Αποθήκευση των άλμπουμ διάφορων καλλιτεχνών μέσα στα άλμπουμ καλλιτεχνών', + removeAlbumVersion: 'Κατάργηση της έκδοσης του άλμπουμ από τον τίτλο του κομματιού', + removeDuplicateArtists: 'Κατάργηση των συνδυασμών των καλλιτεχνών', + dateFormat: { + title: 'Μορφή ημερομηνίας για αρχεία FLAC', + year: 'ΕΕΕΕ', + month: 'ΜΜ', + day: 'ΗΗ' + }, + featuredToTitle: { + title: 'Τι να γίνεται με τους συμμετέχοντες καλλιτέχνες (feat.)', + 0: 'Τίποτα', + 1: 'Αφαίρεση από τον τίτλο', + 3: 'Κατάργηση από τον τίτλο του κομματιού και τον τίτλο του άλμπουμ', + 2: 'Μετακίνηση στον τίτλο' + }, + titleCasing: 'Δομή τίτλου', + artistCasing: 'Δομή καλλιτέχνη', + casing: { + nothing: 'Να μείνει αμετάβλητο', + lower: 'Όλα πεζά', + upper: 'Όλα κεφαλαία', + start: 'Κεφαλαίο το πρώτο γράμμα κάθε λέξης', + sentence: 'Σαν μια πρόταση' + }, + previewVolume: 'Ένταση προεπισκόπησης', + executeCommand: { + title: 'Εντολή για εκτέλεση μετά τη λήψη', + description: 'Αφήστε κενό για καμία ενέργεια' + } + }, + spotify: { + title: 'Χαρακτηριστικά Spotify', + clientID: 'Spotify ClientID', + clientSecret: 'Spotify Client Secret', + username: 'Spotify Username', + question: 'Πώς μπορώ να ενεργοποιήσω τις δυνατότητες Spotify;', + howTo: { + prologue: { + p1: 'Το "Spotify Features" είναι ένα σύνολο λειτουργιών που σας επιτρέπει να μετατρέπετε συνδέσμους κομματιών και άλμπουμ "Spotify" σε "Deezer".', + p2: 'Εάν τοποθετήσετε έναν σύνδεσμο "Spotify Playlist", η εφαρμογή θα μετατρέψει αυτόματα όλους τους συνδέσμους των κομματιών μέσα σε αυτό το "playlist" σε κομμάτια "Deezer".', + p3: 'Επίσης η ενεργοποίηση αυτού του συνόλου λειτουργιών θα σας επιτρέψει να δείτε τις δημόσιες λίστες αναπαραγωγής του "Spotify" στην καρτέλα αγαπημένων.' + }, + info: 'Για λόγους ασφαλείας θα χρειαστεί να παρέχετε το δικό σας "Client ID" και "Client Secret"', + clientSecretQuestion: { + title: 'Πώς μπορώ να βρω το δικό μου "Client ID" και το "Client Secret"; ', + step1: { + text: 'Μεταβείτε στο {spotifyDevelopersDashboard} και συνδεθείτε με τον λογαριασμό σας στο "Spotify".', + spotifyDevelopersDashboard: "Spotify for Developers's Dashboard" + }, + step2: { + text: 'Κάντε κλικ στο "Create an App".', + imageAlt: 'Κουμπί "Create an App" στο "Spotify for Developers Dashboard"' + }, + step3: { + text: 'Συμπληρώστε τα πεδία "Όνομα εφαρμογής" και "Περιγραφή εφαρμογής" και επιλέξτε και τα δύο "checkboxes". Στη συνέχεια κάντε κλικ στο κουμπί "Create".\n', + imageAlt: 'Κουμπί δημιουργία φόρμας εφαρμογής' + }, + step4: { + text: 'Τώρα μπορείτε να δείτε το "Client ID". Εάν κάνετε κλικ στο "Show Client Secret" το μυστικό του πελάτη θα αποκαλυφθεί.\n', + imageAlt: 'Προβολή του "Client ID" και του "Client Secret"' + }, + step5: + 'Και τώρα μπορείτε να κάνετε αντιγραφή-επικόλληση αυτών των αποτελεσμάτων στα κατάλληλα πεδία στις ρυθμίσεις.' + }, + usernameQuestion: { + title: 'Πώς μπορώ να βρω το "username" μου στο "Spotify";', + step1: { + text: 'Μπορείτε να βρείτε το "username" σας στο "Spotify" από το {overviewPage} στη σελίδα του "Spotify"', + overviewPage: '"Overview page"' + } + } + } + }, + reset: 'Επαναφορά στις προεπιλεγμένες ρυθμίσεις', + resetMessage: 'Είστε βέβαιοι ότι θέλετε να επιστρέψετε στις προεπιλεγμένες ρυθμίσεις;', + save: 'Αποθήκευση', + toasts: { + init: 'Οι ρυθμίσεις φορτώθηκαν!', + update: 'Οι ρυθμίσεις ενημερώθηκαν!', + reset: 'Οι ρυθμίσεις επαναφέρθηκαν!', + ARLcopied: 'Το ARL αντιγράφηκε' + }, + logs: { + title: 'Αρχεία Καταγραφής', + areLogsActive: 'Ενεργοποιημένα' + } + }, + sidebar: { + home: 'αρχική', + search: 'αναζήτηση', + charts: 'διαγράμματα', + favorites: 'αγαπημένα', + linkAnalyzer: 'αναλυτής συνδέσμου', + settings: 'ρυθμίσεις', + logs: 'αρχεία καταγραφής', + about: 'σχετικά με' + }, + tracklist: { + downloadSelection: 'Λήψη επιλεγμένων' + }, + logs: { + event: 'Συμβάν', + data: 'Δεδομένα' + } +} + +export default gr diff --git a/webui/src/lang/en.mjs b/webui/src/lang/en.mjs new file mode 100644 index 0000000..1b9d2e8 --- /dev/null +++ b/webui/src/lang/en.mjs @@ -0,0 +1,515 @@ +const en = { + globals: { + welcome: 'Welcome to deemix', + back: 'back', + loading: 'loading', + download: 'Download {thing}', + by: 'by {artist}', + in: 'in {album}', + download_hint: 'Download', + play_hint: 'Play', + toggle_download_tab_hint: 'Expand/Collapse', + clean_queue_hint: 'Clear Finished', + cancel_queue_hint: 'Cancel All', + open_downloads_folder: 'Open Downloads Folder', + cut: 'cut', + copy: 'copy', + copyLink: 'copy link', + copyImageLink: 'copy image link', + copyDeezerLink: 'copy deezer link', + paste: 'paste', + listTabs: { + empty: '', + all: 'all', + discography: 'discography', + top_result: 'top result', + album: 'album | albums', + artist: 'artist | artists', + single: 'single | singles', + title: 'title | titles', + track: 'track | tracks', + playlist: 'playlist | playlists', + compile: 'compilation | compilations', + ep: 'ep | eps', + bundle: 'bundle | bundles', + more: 'More albums', + featured: 'Featured in', + spotifyPlaylist: 'spotify playlist | spotify playlists', + releaseDate: 'release date', + error: 'error', + trackN: '0 tracks | {n} track | {n} tracks', + albumN: '0 albums | {n} album | {n} albums', + artistN: '0 artists | {n} artist | {n} artists', + releaseN: '0 releases | {n} release | {n} releases', + playlistN: '0 playlists | {n} playlist | {n} playlists' + }, + yes: 'yes', + no: 'no', + empty: 'empty' + }, + about: { + appStatus: { + online: 'app online', + offline: 'app offline' + }, + updates: { + currentVersion: 'Current Version', + currentWebuiVersion: 'Current WebUI Version', + versionNotAvailable: 'N/A', + updateAvailable: `You're not running the latest version available: {version}`, + deemixVersion: 'deemix lib version' + }, + titles: { + usefulLinks: 'Useful Links', + bugReports: 'Bug Reports', + contributing: 'Contributing', + donations: 'Donations', + license: 'License' + }, + subtitles: { + bugReports: "Is there something that isn't working in deemix? Tell us!", + contributing: 'You want to contribute to this project? You can do it in different ways!', + donations: 'You want to contribute monetarily? You could make a donation!' + }, + usesLibrary: 'This app uses the deemix library, which you can use to make your own UI for deemix.', + thanks: `Thanks to rtonno, uhwot and lollilol for helping me with this project and to BasCurtiz for making the icon.`, + upToDate: { + text: `Stay up to date with the updates by following the {newsChannel} on Telegram.`, + newsChannel: 'news channel' + }, + officialWebsite: 'Official Website', + officialRepo: 'Official Library Repository', + officialWebuiRepo: 'Official WebUI Repository', + officialSubreddit: 'Official Subreddit', + newsChannel: 'News Channel', + devlogChannel: 'Devlog Channel', + questions: { + text: `If you have questions or problems with the app, search for a solution on the {subreddit} first. Then, if you don't find anything you can make a post with your issue on the subreddit.`, + subreddit: 'subreddit' + }, + beforeReporting: `Before reporting a bug make sure you're running the latest version of the app and that what you want to report is actually a bug and not something that's wrong only on your end.`, + beSure: `Make sure the bug is reproducible on other machines and also DO NOT report a bug if it's already been reported.`, + duplicateReports: 'Duplicate bug reports will be closed, so keep an eye out on that.', + dontOpenIssues: `DO NOT open issues for asking questions, there is a subreddit for that.`, + newUI: { + text: `If you're fluent in python you could try to make a new UI for the app using the base library, or fix bugs in the library with a pull request on the {repo}.`, + repo: 'repo' + }, + acceptFeatures: `I accept features as well, but no complex things, as they can be implementend directly in the app and not the library.`, + otherLanguages: `If you're fluent in another programming language you could try to port deemix into other programming languages!`, + understandingCode: `You need help understanding the code? Just hit waLplanet up on Telegram or Reddit.`, + contributeWebUI: { + text: `If you know Vue.js (JavaScript), HTML or CSS you could contribute to the {webui}.`, + webui: 'WebUI' + }, + itsFree: `You should remember that this is a free project and you should support the artists you love before supporting the developers.`, + notObligated: `Don't feel obligated to donate, I appreciate you anyway!`, + lincensedUnder: { + text: `This work is licensed under the {gpl3}.`, + gpl3: 'GNU General Public License 3.0' + } + }, + charts: { + title: 'Charts', + changeCountry: 'Change Country', + download: 'Download Chart' + }, + errors: { + title: 'Errors for {name}', + postTitle: 'After download errors', + ids: { + invalidURL: 'URL not recognized', + unsupportedURL: 'URL not supported yet', + ISRCnotOnDeezer: 'Track ISRC is not available on Deezer', + notYourPrivatePlaylist: "You can't download others private playlists.", + spotifyDisabled: 'Spotify Features is not setted up correctly.', + trackNotOnDeezer: 'Track not found on Deezer!', + albumNotOnDeezer: 'Album not found on Deezer!', + notOnDeezer: 'Track not available on Deezer!', + notEncoded: 'Track not yet encoded!', + notEncodedNoAlternative: 'Track not yet encoded and no alternative found!', + wrongBitrate: 'Track not found at desired bitrate.', + wrongBitrateNoAlternative: 'Track not found at desired bitrate and no alternative found!', + no360RA: 'Track is not available in Reality Audio 360.', + notAvailable: "Track not available on Deezer's servers!", + notAvailableNoAlternative: "Track not available on Deezer's servers and no alternative found!", + noSpaceLeft: 'No space left on the device!', + albumDoesntExists: "Track's album doesn't exist, failed to gather info.", + wrongLicense: "Your account can't stream tracks in {bitrate}.", + wrongGeolocation: "Your account can't stream the track from your current country.", + wrongGeolocationNoAlternative: + "Your account can't stream the track from your current country and no alternative found." + } + }, + favorites: { + title: 'Favorites', + noPlaylists: 'No Playlists found', + noAlbums: 'No Favorite Albums found', + noArtists: 'No Favorite Artists found', + noTracks: 'No Favorite Tracks found' + }, + home: { + needTologin: 'You need to log into your Deezer account before you can start downloading.', + openSettings: 'Open Settings', + sections: { + popularPlaylists: 'Popular playlists', + popularAlbums: 'Most streamed albums' + } + }, + linkAnalyzer: { + info: 'You can use this section to find more information about the link you are trying to download.', + useful: + "This is useful if you're trying to download some tracks that are not available in your country and want to know where they are available, for instance.", + linkNotSupported: 'This link is not yet supported', + linkNotSupportedYet: 'Seems like this link is not yet supported, try analyzing another one.', + table: { + id: 'ID', + isrc: 'ISRC', + upc: 'UPC', + duration: 'Duration', + diskNumber: 'Disk Number', + trackNumber: 'Track Number', + releaseDate: 'Release Date', + bpm: 'BPM', + label: 'Label', + recordType: 'Record Type', + genres: 'Genres', + tracklist: 'Tracklist', + readable: 'Readable', + available: 'Available' + }, + countries: 'Countries', + noCountries: 'This track is not available in any country.' + }, + search: { + startSearching: 'Start searching!', + description: + 'You can search a track, a whole album, an artist, a playlist.... everything! You can also paste a Deezer link', + fans: '{n} fans', + noResults: 'No results', + noResultsTrack: 'No Tracks found', + noResultsAlbum: 'No Albums found', + noResultsArtist: 'No Artists found', + noResultsPlaylist: 'No Playlists found', + error: 'An error occurred, please try again later.' + }, + searchbar: 'Search anything you want (or just paste a link)', + downloads: 'downloads', + toasts: { + restoringQueue: 'Restoring download queue...', + queueRestored: 'Download queue restored!', + addedToQueue: '{item} added to queue', + addedMoreToQueue: '{n} items added to queue', + alreadyInQueue: '{item} is already in queue!', + finishDownload: '{item} finished downloading.', + allDownloaded: 'All downloads completed!', + refreshFavs: 'Refresh completed!', + loggingIn: 'Logging in...', + loggedIn: 'Logged in', + alreadyLogged: 'Already logged in', + loginFailed: "Couldn't log in", + loggedOut: 'Logged out', + cancellingCurrentItem: 'Cancelling current item.', + currentItemCancelled: 'Current item cancelled.', + startAddingArtist: 'Adding {artist} albums to queue', + finishAddingArtist: 'Added {artist} albums to queue', + startConvertingSpotifyPlaylist: 'Converting spotify tracks to Deezer tracks', + finishConvertingSpotifyPlaylist: 'Spotify playlist converted', + loginNeededToDownload: 'You need to log in to download tracks!', + queueErrorCantStream: `Your account can't stream at {bitrate}!`, + deezerNotAvailable: 'Deezer is not available in your country. You should use a VPN.', + deezerNotReachable: "The app can't reach Deezer. Check your internet connection, your firewall or your antivirus.", + startGeneratingItems: 'Processing {n} items...', + finishGeneratingItems: 'Generated {n} items.', + noLovedPlaylist: 'No loved tracks playlist!', + checkingUpdates: 'Checking for updates...', + noUpdateAvailable: 'No updates found', + updateAvailable: 'An update is available!', + wrongSpotifyUsername: '{username} is not a valid spotify username' + }, + settings: { + title: 'Settings', + language: 'Language', + login: { + title: 'Login', + loggedIn: 'You are logged in as {username}', + arl: { + title: 'Use ARL instead', + question: 'How do I get my own ARL?', + howTo: { + prologue: { + p1: 'Deezer keeps track of login session by using a cookie called ARL.', + p2: 'Deemix uses that cookie to get the metadata that it needs to download the tracks from Deezer.', + p3: 'ARLs last for 3 months, after that Deezer asks you to log in again. The same method is used in deemix.', + p4: 'Following one of the guides below you can get your own account ARL.', + warning: "Use this method only if email and password doesn't work." + }, + chromeSteps: { + title: 'Chrome', + step1: 'Open Chrome', + easyWay: { + title: 'Chrome (Easy way)', + step3: 'Click on the little "lock" icon next the URL', + step4: 'Click on Cookies > deezer.com > cookies > arl', + step5: 'Select the string next to Content, and Copy' + }, + step4: "Go under the Application tab (if you don't see it click the double arrow)", + videoGuide: { + text: "Here's a {videoGuide}", + link: 'video guide' + } + }, + firefoxSteps: { + title: 'Firefox', + step1: 'Open Firefox', + step4: "Go under the Storage tab (if you don't see it click the double arrow)" + }, + commonSteps: { + step2: 'Go to www.deezer.com and log into your account', + step3: 'After logging in press F12 to open up Developer Tools', + step5: 'Open the cookie dropdown', + step6: 'Select www.deezer.com', + step7: 'Find the `arl` cookie (It should be 192 chars long)', + step8: 'Make sure only copy the value and not the entire cookie', + lastStep: "That's your ARL, now you can use it in the app" + } + }, + update: 'Force Update ARL' + }, + logout: 'Logout', + login: 'Login', + email: 'E-mail', + password: 'Password' + }, + appearance: { + title: 'Appearance', + slimDownloadTab: 'Slim download tab', + slimSidebar: 'Slim Sidebar', + searchButton: 'Show search button', + bitrateTags: 'Show quality tag in download queue' + }, + downloadPath: { + title: 'Download Path' + }, + templates: { + title: 'Templates', + tracknameTemplate: 'Trackname template', + tracknameAvailableVariables: 'Available trackname variables', + albumTracknameTemplate: 'Album track template', + albumTracknameAvailableVariables: 'Available album track variables', + playlistTracknameTemplate: 'Playlist track template', + playlistTracknameAvailableVariables: 'Available playlist track variables' + }, + folders: { + title: 'Folders', + createPlaylistFolder: 'Create folder for playlists', + playlistNameTemplate: 'Playlist folder template', + createArtistFolder: 'Create folder for artist', + artistNameTemplate: 'Artist folder template', + createAlbumFolder: 'Create folder for album', + albumNameTemplate: 'Album folder template', + createCDFolder: 'Create folder for CDs', + createStructurePlaylist: 'Create folder structure for playlists', + createSingleFolder: 'Create folder structure for singles' + }, + trackTitles: { + title: 'Track titles', + padTracks: 'Pad tracks', + paddingSize: 'Overwrite padding size', + illegalCharacterReplacer: 'Illegal Character replacer' + }, + downloads: { + title: 'Downloads', + queueConcurrency: 'Concurrent Downloads', + maxBitrate: { + title: 'Preferred Bitrate', + 9: 'FLAC 1411kbps', + 3: 'MP3 320kbps', + 1: 'MP3 128kbps' + }, + overwriteFile: { + title: 'Should I overwrite the files?', + y: 'Yes, overwrite the file', + n: "No, don't overwrite the file", + t: 'Overwrite only the tags', + b: 'No, keep both files and add a number to the duplicate', + e: "No, and don't look at the extensions", + l: 'Overwrite only if upgrading bitrate (mp3 only)' + }, + fallbackBitrate: 'Bitrate fallback', + fallbackSearch: 'Search fallback', + fallbackISRC: 'Fallback with ISRC search', + feelingLucky: 'Gamble with CDNs and caches', + logErrors: 'Create log files for errors', + logSearched: 'Create log files for searched tracks', + createM3U8File: 'Create playlist file', + syncedLyrics: 'Create .lrc files (Sync Lyrics)', + playlistFilenameTemplate: 'Playlist filename template', + clearQueueOnExit: 'Clear download queue when closing the app' + }, + covers: { + title: 'Album covers', + saveArtwork: 'Save Covers', + coverImageTemplate: 'Cover name template', + saveArtworkArtist: 'Save artist image', + artistImageTemplate: 'Artist image template', + localArtworkSize: 'Local artwork size', + embeddedArtworkSize: 'Embedded artwork size', + localArtworkFormat: { + title: 'What format do you want the local artwork to be?', + jpg: 'A jpeg image', + png: 'A png image', + both: 'Both a jpeg and a png' + }, + jpegImageQuality: 'JPEG image quality', + embeddedArtworkPNG: 'Save embedded artwork as PNG', + embeddedPNGWarning: 'PNGs are not officialy supported by Deezer and can be buggy', + imageSizeWarning: 'Anything above x1200 is not officialy used by Deezer, you may encounter issues', + coverDescriptionUTF8: 'Save cover description using UTF8 (iTunes Cover Fix)' + }, + tags: { + head: 'Which tags to save', + title: 'Title', + artist: 'Artist', + artists: 'Extra ARTISTS tag', + album: 'Album', + cover: 'Cover', + trackNumber: 'Track Number', + trackTotal: 'Track Total', + discNumber: 'Disc Number', + discTotal: 'Disc Total', + albumArtist: 'Album Artist', + genre: 'Genre', + year: 'Year', + date: 'Date', + explicit: 'Explicit Lyrics', + isrc: 'ISRC', + length: 'Track Length', + barcode: 'Album Barcode (UPC)', + bpm: 'BPM', + replayGain: 'Replay Gain', + label: 'Album Label', + lyrics: 'Unsynchronized Lyrics', + syncedLyrics: 'Synchronized Lyrics', + copyright: 'Copyright', + composer: 'Composer', + involvedPeople: 'Involved People', + source: 'Source and song ID', + artistsWarning: + "Disabling the ARTISTS tag while not using standard specification won't preserve multiartist support" + }, + other: { + title: 'Other', + autoCheckForUpdates: 'Check for updates on startup', + savePlaylistAsCompilation: 'Save playlists as compilation', + useNullSeparator: 'Use null separator', + saveID3v1: 'Save ID3v1 as well', + multiArtistSeparator: { + title: 'How would you like to separate your artists?', + nothing: 'Save only the main artist', + default: 'Using standard specification', + andFeat: 'Using & and feat.', + using: 'Using "{separator}"', + warning: + 'Using any separator other than the standard specification will add a extra ARTISTS tag to preserve multiartist support' + }, + singleAlbumArtist: 'Save only the main album artist', + albumVariousArtists: 'Keep "Various Artists" in the Album Artists', + removeAlbumVersion: 'Remove "Album Version" from track title', + removeDuplicateArtists: 'Remove combinations of artists', + dateFormat: { + title: 'Date format for FLAC files', + year: 'YYYY', + month: 'MM', + day: 'DD' + }, + featuredToTitle: { + title: 'What should I do with featured artists?', + 0: 'Nothing', + 1: 'Remove it from the title', + 3: 'Remove it from the title and the album title', + 2: 'Move it to the title' + }, + titleCasing: 'Title casing', + artistCasing: 'Artist casing', + casing: { + nothing: 'Keep unchanged', + lower: 'lowercase', + upper: 'UPPERCASE', + start: 'Start Of Each Word', + sentence: 'Like a sentence' + }, + previewVolume: 'Preview Volume', + executeCommand: { + title: 'Command to execute after download', + description: 'Leave blank for no action' + } + }, + spotify: { + title: 'Spotify Features', + clientID: 'Spotify ClientID', + clientSecret: 'Spotify Client Secret', + username: 'Spotify Username', + question: 'How do I enable Spotify Features?', + howTo: { + prologue: { + p1: '"Spotify Features" is a set of features that lets you convert Spotify tracks and albums links into Deezer ones.', + p2: 'If you provide a Spotify Playlist link the app will automatically convert all the links of the tracks inside it into deezer tracks.', + p3: 'Enabling this set of features will let you see your public Spotify playlists in the favorites tab as well.' + }, + info: 'For security reasons you will need to provide your own Client ID and Client Secret', + clientSecretQuestion: { + title: 'How do I get my Client ID and Client Secret?', + step1: { + text: 'Connect to {spotifyDevelopersDashboard} and login with your Spotify account.', + spotifyDevelopersDashboard: "Spotify for Developers's Dashboard" + }, + step2: { + text: 'Click on "Create an App".', + imageAlt: "Create an App button on Spotify for Developers's Dashboard" + }, + step3: { + text: 'Fill out the "App name" and "App description" fields and check both checkboxes. Then click on the "Create" button.', + imageAlt: 'Create an app form' + }, + step4: { + text: 'Now you can see the Client ID. If you click on "Show Client Secret" the client secret will be revealed.', + imageAlt: 'Screen of client ID and Secret' + }, + step5: 'Now you can copy-paste those results in the appropriate fields in the settings.' + }, + usernameQuestion: { + title: 'How do I get my Spotify Username?', + step1: { + text: "You can get your Spotify Username from the {overviewPage} on Spotify's Website.", + overviewPage: 'Overview page' + } + } + } + }, + reset: 'Reset to Default', + resetMessage: 'Are you sure you want to go back to default settings?', + save: 'Save', + toasts: { + init: 'Settings loaded!', + update: 'Settings updated!', + reset: 'Settings reset to default!', + ARLcopied: 'ARL copied to clipboard' + } + }, + sidebar: { + home: 'home', + search: 'search', + charts: 'charts', + favorites: 'favorites', + linkAnalyzer: 'link analyzer', + settings: 'settings', + logs: 'logs', + about: 'about' + }, + tracklist: { + downloadSelection: 'Download selection' + } +} + +export default en diff --git a/webui/src/lang/es.mjs b/webui/src/lang/es.mjs new file mode 100644 index 0000000..4016046 --- /dev/null +++ b/webui/src/lang/es.mjs @@ -0,0 +1,394 @@ +const es = { + globals: { + welcome: 'Bienvenido a deemix', + back: 'atrás', + loading: 'cargando', + download: 'Descarga {thing}', + by: 'por {artist}', + in: 'en {album}', + download_hint: 'Descargar', + play_hint: 'Reproducir', + toggle_download_tab_hint: 'Expandir/Colapsar', + clean_queue_hint: 'Limpieza terminada', + cancel_queue_hint: 'Cancelar todo', + open_downloads_folder: 'Abrir la carpeta de descargas', + cut: 'cortar', + copy: 'copiar', + copyLink: 'copiar vinculo', + copyImageLink: 'copiar el vínculo de la imagen', + copyDeezerLink: 'copiar el vínculo de Deezer', + paste: 'pegar', + listTabs: { + empty: '', + all: 'todo', + top_result: 'mejor resultado', + album: 'álbum | álbumes', + artist: 'artista | artistas', + single: 'single | singles', + title: 'título | títulos', + track: 'pista | pistas', + trackN: '0 pistas | {n} pista | {n} pistas', + releaseN: '0 entregas | {n} entrega | {n} entregas', + playlist: 'lista de reproducción | listas de reproducción', + compile: 'compilación | compilaciones', + ep: 'ep | eps', + more: 'Más álbumes', + featured: 'Aparece en', + spotifyPlaylist: 'lista de reproducción spotify | listas de reproducción spotify', + releaseDate: 'fecha de publicación', + error: 'error' + } + }, + about: { + updates: { + currentVersion: 'Versión actual', + versionNotAvailable: 'N/D', + updateAvailable: `No estás ejecutando la última versión disponible: {version}`, + deemixVersion: 'versión de la biblioteca deemix' + }, + titles: { + usefulLinks: 'Enlaces útiles', + bugReports: 'Reportar fallos', + contributing: 'Contribuye', + donations: 'Donaciones', + license: 'Licencia' + }, + subtitles: { + bugReports: '¿Hay algo que no funcione en Deemix? ¡Díganoslo!', + contributing: '¿Quieres contribuir a este proyecto? ¡Puedes hacerlo de diferentes maneras!', + donations: '¿Quiere contribuir monetariamente? ¡Puedes hacer una donación!' + }, + usesLibrary: + 'Esta aplicación usa la biblioteca deemix, que puedes usar para hacer tu propia interfaz de usuario para deemix.', + thanks: `Gracias a rtonno, uhwot y lollilol por ayudarme con este proyecto, a BasCurtiz por hacer el icono.`, + upToDate: { + text: `Mantente al día con las actualizaciones siguiendo el {newsChannel} en Telegram.`, + newsChannel: 'canal de noticias' + }, + officialWebsite: 'Página web oficial', + officialRepo: 'Repositorio de la biblioteca oficial', + officialWebuiRepo: 'Repositorio oficial de WebUI', + officialSubreddit: 'Subreddit oficial', + newsChannel: 'Canal de noticias', + questions: { + text: `Si tienes preguntas o problemas con la aplicación, busca una solución en el {subreddit} primero. Luego, si no encuentras nada puedes hacer un post con tu problema en el subreddit.`, + subreddit: 'subreddit' + }, + beforeReporting: + 'Antes de informar de un error asegúrese de que está ejecutando la última versión de la aplicación y que lo que quiere informar es en realidad un error y no algo que está mal sólo en su extremo.', + beSure: + 'Asegúrate de que el fallo es reproducible en otras máquinas y también NO reporte un fallo si ya ha sido reportado.', + duplicateReports: 'Los informes de errores duplicados se cerrarán, así que manténgase al tanto de eso.', + dontOpenIssues: 'NO abra problemas para hacer preguntas, hay un subreddit para eso.', + newUI: { + text: `Si tienes fluidez en Python podrías intentar hacer una nueva interfaz de usuario para la aplicación usando la biblioteca base, o arreglar los errores de la biblioteca con una petición pull en el {repo}.`, + repo: 'repo' + }, + acceptFeatures: + 'También acepto características, pero no cosas complejas, ya que se pueden implementar directamente en la aplicación y no en la biblioteca.', + otherLanguages: + '¡Si dominas otro lenguaje de programación podrías intentar portar Deemix a otros lenguajes de programación!', + understandingCode: '¿Necesitas ayuda para entender el código? Sólo tienes que poner waLplanet en Telegram o Reddit.', + contributeWebUI: { + text: `Si conoces Vue.js (JavaScript), HTML o CSS podrías contribuir a la {webui}.`, + webui: 'WebUI' + }, + itsFree: + 'Debes recordar que este es un proyecto libre y debes apoyar a los artistas que amas antes de apoyar a los desarrolladores.', + notObligated: 'No te sientas obligado a donar, ¡te aprecio de todas formas!', + lincensedUnder: { + text: `Esta obra está autorizada bajo una {gpl3}.`, + gpl3: 'GNU Licencia Pública General 3.0' + } + }, + charts: { + title: 'Listas', + changeCountry: 'Cambiar país', + download: 'Descargar la lista' + }, + errors: { + title: 'Errores para {name}', + ids: { + invalidURL: 'No se reconoce la URL', + unsupportedURL: 'La URL aún no está soportada', + ISRCnotOnDeezer: 'La pista ISRC no está disponible en Deezer', + notYourPrivatePlaylist: 'No puedes descargar otras listas de reproducción privadas.', + spotifyDisabled: 'Las funciones de Spotify no está configurado correctamente.', + trackNotOnDeezer: '¡No se encontró la pista en Deezer!', + albumNotOnDeezer: '¡El álbum no se encuentra en Deezer!', + notOnDeezer: '¡Pista no disponible en Deezer!', + notEncoded: '¡Pista aún no codificada!', + notEncodedNoAlternative: '¡Pista aún no codificada y no se ha encontrado ninguna alternativa!', + wrongBitrate: 'La pista no se encuentra a la velocidad de bitrate deseada.', + wrongBitrateNoAlternative: + '¡Pista no encontrada a la tasa de bits deseada y no se ha encontrado ninguna alternativa!', + no360RA: 'La pista no está disponible en Reality Audio 360.', + notAvailable: '¡La pista no está disponible en los servidores de Deezer!', + notAvailableNoAlternative: + '¡La pista no está disponible en los servidores de Deezer y no se ha encontrado ninguna alternativa!', + noSpaceLeft: '¡No queda espacio en el dispositivo!' + } + }, + favorites: { + title: 'Favoritos', + noPlaylists: 'No se han encontrado listas de reproducción', + noAlbums: 'No se han encontrado álbumes favoritos', + noArtists: 'No se han encontrado artistas favoritos', + noTracks: 'No se han encontrado pistas favoritas' + }, + home: { + needTologin: 'Necesitas entrar en tu cuenta de Deezer antes de poder empezar a descargar.', + openSettings: 'Abrir la configuración', + sections: { + popularPlaylists: 'Listas de reproducción populares', + popularAlbums: 'Los álbumes más stremeados' + } + }, + linkAnalyzer: { + info: 'Puedes usar esta sección para encontrar más información sobre el enlace que estás tratando de descargar.', + useful: + 'Esto es útil si está tratando de descargar algunas pistas que no están disponibles en su país y quiere saber dónde están disponibles, por ejemplo.', + linkNotSupported: 'Este enlace aún no está soportado', + linkNotSupportedYet: 'Parece que este enlace aún no está soportado, intenta analizar otro.', + table: { + id: 'ID', + isrc: 'ISRC', + upc: 'UPC', + duration: 'Duración', + diskNumber: 'Número del disco', + trackNumber: 'Número de la pista', + releaseDate: 'Fecha de lanzamiento', + bpm: 'BPM', + label: 'Etiqueta', + recordType: 'Tipo de grabación', + genres: 'Géneros', + tracklist: 'Lista de pista' + } + }, + search: { + startSearching: '¡Comienza a buscar!', + description: + 'Puedes buscar un tema, un álbum entero, un artista, una lista de reproducción... ¡todo! También puedes pegar un enlace de Deezer', + fans: '{n} fans', + noResults: 'Ningun resultado', + noResultsTrack: 'No se encontraron pistas', + noResultsAlbum: 'No se encontraron álbumes', + noResultsArtist: 'No se encontraron artistas', + noResultsPlaylist: 'No se encontraron listas de reproducción' + }, + searchbar: 'Busca lo que quieras (o simplemente pega un enlace)', + downloads: 'descargas', + toasts: { + restoringQueue: 'Restaurando la cola de descarga...', + queueRestored: '¡Cola de descarga restaurada!', + addedToQueue: '{item} añadidos a la cola', + addedMoreToQueue: '{n} elementos añadidos a la cola', + alreadyInQueue: '¡{item} ya está en la cola!', + finishDownload: '{item} terminado de descargar.', + allDownloaded: '¡Todas las descargas se han completado!', + refreshFavs: '¡Actualización completada!', + loggingIn: 'Conectando...', + loggedIn: 'Conectado', + alreadyLogged: 'Ya está conectado', + loginFailed: 'No se puede conectar', + loggedOut: 'Desconectado', + cancellingCurrentItem: 'Cancelando el elemento actual.', + currentItemCancelled: 'El elemento actual se ha cancelado.', + startAddingArtist: 'Añadiendo los álbumes de {artist} a la cola', + finishAddingArtist: 'Se ha añadido los álbumes de {artist} a la cola', + startConvertingSpotifyPlaylist: 'Convertir las pistas de Spotify en pistas de Deezer', + finishConvertingSpotifyPlaylist: 'Lista de reproducción de Spotify convertida', + loginNeededToDownload: '¡Necesitas iniciar sesión para descargar títulos!', + deezerNotAvailable: 'Deezer no está disponible en su país. Deberías usar una VPN.' + }, + settings: { + title: 'Configuración', + language: 'Idioma', + login: { + title: 'Iniciar Sesión', + loggedIn: 'Usted está conectado como {nombre de usuario}', + arl: { + question: '¿Cómo consigo mi propio ARL?', + update: 'Actualiza la ARL' + }, + logout: 'Cerrar Sesión', + login: 'Inicia sesión a través de deezer.com' + }, + appearance: { + title: 'Apariencia', + slimDownloadTab: 'Pestaña de descargas fina' + }, + downloadPath: { + title: 'Ruta de descarga' + }, + templates: { + title: 'Plantillas', + tracknameTemplate: 'Plantilla de nombres de pista', + albumTracknameTemplate: 'Plantilla de pista del álbum', + playlistTracknameTemplate: 'Plantilla de pista de la lista de reproducción' + }, + folders: { + title: 'Carpetas', + createPlaylistFolder: 'Crear una carpeta para las listas de reproducción', + playlistNameTemplate: 'Plantilla de la carpeta de la lista de reproducción', + createArtistFolder: 'Crear carpeta para el artista', + artistNameTemplate: 'Plantilla de la carpeta del artista', + createAlbumFolder: 'Crear carpeta para el álbum', + albumNameTemplate: 'Plantilla de la carpeta del álbum', + createCDFolder: 'Crear una carpeta para los CDs', + createStructurePlaylist: 'Crear una estructura de carpetas para las listas de reproducción', + createSingleFolder: 'Crear una estructura de carpetas para individuales' + }, + trackTitles: { + title: 'Títulos de las pistas', + padTracks: 'Pad de pistas', + paddingSize: 'Sobrescribir el tamaño del pad', + illegalCharacterReplacer: 'Reemplazo del carácter ilegal' + }, + downloads: { + title: 'Descargas', + queueConcurrency: 'Descargas simultáneas', + maxBitrate: { + title: 'Tasa de bits preferida', + 9: 'FLAC 1411kbps', + 3: 'MP3 320kbps', + 1: 'MP3 128kbps' + }, + overwriteFile: { + title: '¿Desea que se sobreescriban los archivos?', + y: 'Sí, sobrescribir el archivo', + n: 'No, no sobrescribir el archivo', + t: 'Sobrescribir sólo las etiquetas', + b: 'No, mantener los dos archivos y agregar un número al archivo duplicado', + e: 'No, y no mirar las extensiones' + }, + fallbackBitrate: 'La solución alternativa de bitrate', + fallbackSearch: 'Búsqueda de la segunda opción', + logErrors: 'Crear archivos de registro de errores', + logSearched: 'Crear archivos de registro para las pistas buscadas', + createM3U8File: 'Crear archivo de la lista de reproducción', + syncedLyrics: 'Crear archivos .lrc (lyrics sincronizadas)', + playlistFilenameTemplate: 'Plantilla de nombres de archivos de la lista de reproducción', + saveDownloadQueue: 'Guardar la cola de descarga al cerrar la aplicación' + }, + covers: { + title: 'Portadas de álbumes', + saveArtwork: 'Guardar las portadas', + coverImageTemplate: 'Plantilla de nombres de portada', + saveArtworkArtist: 'Guardar imagen de artista', + artistImageTemplate: 'Plantilla de imagen de artista', + localArtworkSize: 'El tamaño de la portada local', + embeddedArtworkSize: 'El tamaño de la portada incorporada', + localArtworkFormat: { + title: '¿Qué formato quieres que tenga la portada local?', + jpg: 'Una imagen jpeg', + png: 'Una imagen png', + both: 'Ambos, jpeg y png' + }, + jpegImageQuality: 'Calidad de la imagen JPEG', + embeddedArtworkPNG: 'Guardar las imágenes incrustadas como PNG', + embeddedPNGWarning: 'Las PNG no están oficialmente soportadas por Deezer y puedes encontrar errores.', + imageSizeWarning: + 'Nada por encima de x1200 no es usado oficialmente por Deezer, puede que encuentres inconvenientes', + coverDescriptionUTF8: 'Guardar la descripción de la portada usando UTF8 (arregla la portada de iTunes)' + }, + tags: { + head: '¿Qué etiquetas guardar?', + title: 'Título', + artist: 'Artista', + album: 'Álbum', + cover: 'Portada', + trackNumber: 'Número de pista', + trackTotal: 'Total de pistas', + discNumber: 'Número del disco', + discTotal: 'Total del disco', + albumArtist: 'Artista del álbum', + genre: 'Género', + year: 'Año', + date: 'Fecha', + explicit: 'Letras explícitas', + isrc: 'ISRC', + length: 'Duración de la pista', + barcode: 'Código de barras del álbum (UPC)', + bpm: 'BPM', + replayGain: 'Ganancia de la reproducción', + label: 'Etiqueta del álbum', + lyrics: 'Lyrics no sincronizadas', + syncedLyrics: 'Lyrics sincronizadas', + copyright: 'Derechos de autor', + composer: 'Compositor', + involvedPeople: 'Personas involucradas' + }, + other: { + title: 'Otro', + savePlaylistAsCompilation: 'Guardar las listas de reproducción como una compilación', + useNullSeparator: 'Usar separador nulo', + saveID3v1: 'Guarda la ID3v1 también', + multiArtistSeparator: { + title: '¿Cómo le gustaría separar a sus artistas?', + nothing: 'Guardar sólo el artista principal', + default: 'Usar la especificación estándar', + andFeat: 'Usar & y feat.', + using: 'Usar "{separator}"' + }, + singleAlbumArtist: 'Guardar sólo el artista principal del álbum', + albumVariousArtists: 'Mantener "Various Artists" en los artistas del álbum', + removeAlbumVersion: 'Eliminar "Album Version" del título de la pista', + removeDuplicateArtists: 'Eliminar las combinaciones de artistas', + dateFormat: { + title: 'Formato de fecha para los archivos FLAC', + year: 'AAAA', + month: 'MM', + day: 'DD' + }, + featuredToTitle: { + title: '¿Qué debo hacer con los artistas destacados?', + 0: 'Nada', + 1: 'Quitarlo del título', + 3: 'Quitarlo del título y del título del álbum', + 2: 'Moverlo al título' + }, + titleCasing: 'Capitalizar título', + artistCasing: 'Capitalizar artista', + casing: { + nothing: 'Manténer sin cambios', + lower: 'minúsculas', + upper: 'MAYÚSCULAS', + start: 'Al Principio De Cada Palabra', + sentence: 'Como una frase' + }, + previewVolume: 'Volumen de previsualización', + executeCommand: { + title: 'Comando a ejecutar después de la descarga', + description: 'Dejar en blanco para no hacer nada' + } + }, + spotify: { + title: 'Funciones de Spotify', + clientID: 'ID del cliente de Spotify', + clientSecret: 'Cliente Secreto Spotify', + username: 'Nombre de usuario de Spotify' + }, + reset: 'Restablecer el valor por defecto', + save: 'Guardar', + toasts: { + init: '¡Configuraciones cargadas!', + update: '¡Ajustes actualizados!', + ARLcopied: 'ARL copiado al portapapeles' + } + }, + sidebar: { + home: 'inicio', + search: 'buscar', + charts: 'charts', + favorites: 'favoritos', + linkAnalyzer: 'analizar enlaces', + settings: 'ajustes', + about: 'acerca de' + }, + tracklist: { + downloadSelection: 'Descargar selección' + } +} + +export default es diff --git a/webui/src/lang/fil.mjs b/webui/src/lang/fil.mjs new file mode 100644 index 0000000..38b9f9c --- /dev/null +++ b/webui/src/lang/fil.mjs @@ -0,0 +1,389 @@ +const fil = { + globals: { + welcome: 'Welcome sa deemix', + back: 'bumalik', + loading: 'kumakarga', + download: 'I-download {thing}', + by: 'ayon sa {artist}', + in: 'sa {album}', + download_hint: 'I-download', + play_hint: 'I-play', + toggle_download_tab_hint: 'Palakihin/Paliitan', + clean_queue_hint: 'Natapos na ang Pag-alis', + cancel_queue_hint: 'Ikansel Lahat', + open_downloads_folder: 'Buksan ang Polder ng Download', + cut: 'i-cut', + copy: 'kopyahin', + copyLink: 'kopyahin ang link', + copyImageLink: 'kopyahin ang imahe sa link', + copyDeezerLink: 'kopyahin ang link ng deezer', + paste: 'idikit', + listTabs: { + empty: '', + all: 'lahat', + top_result: 'nangungunang resulta', + album: 'album | mga album', + artist: 'artist | mga artist', + single: 'single | mga single', + title: 'pamagat | mga pamagat', + track: 'track | mga track', + trackN: '0 mga track | {n} track | {n} mga track', + releaseN: '0 mga release | {n} release | {n} mga release', + playlist: 'playlist | mga playlist', + compile: 'pinagsama | mga pinagsama', + ep: 'ep | mga ep', + bundle: 'bundle | mga bundle', + more: 'Iba pang mga album', + featured: 'Ibinida sa', + spotifyPlaylist: 'playlist sa spotify | mga playlist sa spotify', + releaseDate: 'petsa ng paglabas', + error: 'error' + } + }, + about: { + updates: { + currentVersion: 'Kasalukuyang version', + versionNotAvailable: 'H/P', + updateAvailable: `Hindi mo ginagamit ang pinakabagong version: {version}`, + deemixVersion: 'deemix lib version' + }, + titles: { + usefulLinks: 'Nakatutulong na mga Link', + bugReports: 'Report sa Bug', + contributing: 'Pagtulong', + donations: 'Mga donasiyon', + license: 'Lisensiya' + }, + subtitles: { + bugReports: 'Meron bang hindi gumagana sa deemix? Ipaalam mo sa amin!', + contributing: 'Gusto mo bang tumulong sa proyektong ito? Pwede mong gawin iyan sa maraming paraan!', + donations: 'Gusto mo bang tumulong sa pamamagitan ng pera? Pwede kang magbigay ng donasiyon!' + }, + usesLibrary: + 'Ang app na ito ay gumagamit ng library galing sa deemix, na kung saan ay pwede mong gamitin para gumawa ng sarili mong UI ng deemix.', + thanks: `Salamat kay rtonno, uhwot at lollilol sa pagtulong sa akin para sa proyektong ito at kay BasCurtiz sa paggawa ng icon.`, + upToDate: { + text: `Huwag magpapahuli sa mga update patungkol dito sa pamamagitan ng pagsali sa {newsChannel} sa Telegram.`, + newsChannel: 'news channel' + }, + officialWebsite: 'Opisyal na Website', + officialRepo: 'Opisyal na Library Repository', + officialWebuiRepo: 'Opisyal na Repository ng WebUI', + officialSubreddit: 'Opisyal na Subreddit', + newsChannel: 'News Channel', + questions: { + text: `Kung may tanong ka o problema sa app, maghanap ka muna ng solusiyon sa {subreddit}. Ngayon, kung wala ka talagang mahanap ay pwede kang mag-post patungkol sa iyong isyu doon sa subreddit.`, + subreddit: 'subreddit' + }, + beforeReporting: `Bago ka magreport ng bug, siguraduhing pinakabagong version ang ginagamit mo at ang ire-report mo ay talagang bug at hindi dahil sa pagkakamali mo lang ng paggamit.`, + beSure: `Siguraduhing nangyayari rin ang bug sa iba't ibang plataporma at tsaka HUWAG mo nang i-report ang bug kung ito ay naipa-alam na ng iba.`, + duplicateReports: 'Isasara namin ang mga magkaparehong report sa bug, kaya alamin mo muna.', + dontOpenIssues: `HUWAG kayong magbubukas ng isyu kung magtatanong lang kayo, meron tayong subreddit para diyan.`, + newUI: { + text: `Kung ikaw ay maraming alam sa python, subukan mong gumawa ng bagong UI gamit ng base library, o kaya ayusin ang mga bug sa library sa pamamagitan ng pag-pull ng request sa {repo}.`, + repo: 'repo' + }, + acceptFeatures: `Tumatangggap din ako ng mga feature, basta hindi komplikado, dahil diretso ko itong nilalagay sa app at hindi sa library.`, + otherLanguages: `Kung ikaw ay maraming alam sa ibang programming language, maaari mo ring subukan i-port ang deemix sa iba't ibang programming language!`, + understandingCode: `Kailangan mo ba ng tulong para maintindihan ang code? Bisitahin si waLplanet sa Telegram o sa Reddit.`, + contributeWebUI: { + text: `Kung may alam ka sa Vue.js (JavaScript), HTML o kaya CSS, maaari kang sumali at tumulong dito sa {webui}.`, + webui: 'WebUI' + }, + itsFree: `Lagi mong tandaang ang proyektong ito ay libre at suportuhanmuna ang minamahal ninyong mga artist bago ang mga developer.`, + notObligated: `Huwag mong pilitin ang sarili para mag-donate, Naiintindihan ka namin!`, + lincensedUnder: { + text: `Ang aktibidad na ito ay lisensiyado sa {gpl3}.`, + gpl3: 'GNU General Public License 3.0' + } + }, + charts: { + title: 'Mga Chart', + changeCountry: 'Palitan ang Country', + download: 'I-download ang Chart' + }, + errors: { + title: 'Mga error sa {name}', + ids: { + invalidURL: 'Hindi makilala ang URL', + unsupportedURL: 'Hindi pa suportado ang URL', + ISRCnotOnDeezer: 'Ang Track ISRC ay hindi pwede sa Deezer', + notYourPrivatePlaylist: 'Hindi pwedeng i-download ang mga pribadong playlist ng iba.', + spotifyDisabled: 'Hindi mo nai-set nang tama ang Spotify Features.', + trackNotOnDeezer: 'Hindi mahanap ang track sa Deezer!', + albumNotOnDeezer: 'Hindi mahanap ang album sa Deezer!', + notOnDeezer: 'Hindi available ang track sa Deezer!', + notEncoded: 'Hindi pa nae-encode ang track!', + notEncodedNoAlternative: 'Hindi pa nae-encode ang track at walang mahanap na iba!', + wrongBitrate: 'Hindi mahanap ang track sa gusto mong bitrate.', + wrongBitrateNoAlternative: 'Hindi mahanap ang track sa gusto mong bitrate at walang mahanap na iba!', + no360RA: 'Hindi pwede ang track para sa Reality Audio 360.', + notAvailable: 'Walang available na track sa server ng Deezer!', + notAvailableNoAlternative: 'Walang available na track sa server ng Deezer at walang mahanap na iba!', + noSpaceLeft: 'Wala nang natitirang space sa iyong device!' + } + }, + favorites: { + title: 'Mga Paborito', + noPlaylists: 'Walang makitang mga Playlist', + noAlbums: 'Walang makitang mga Paboritong Album', + noArtists: 'Walang makitang mga Paboritong Artist', + noTracks: 'Walang makitang mga Paboritong Track' + }, + home: { + needTologin: 'Kailangan mong mag-log in sa iyong Deezer account bago ka makasimulang magdownload.', + openSettings: 'Buksan ang Mga Setting', + sections: { + popularPlaylists: 'Mga sikat na playlist', + popularAlbums: 'Pinakamaraming pinakikinggang mga album' + } + }, + linkAnalyzer: { + info: 'Pwede gamitin ang section na ito para sa iba pang impormasyon patungkol sa link na gusto mong i-download.', + useful: + 'Makatutulong ito kung meron kang gustong i-download na track na hindi available sa bansa mo at gusto mong malaman kung meron bang ganito kapag sa iba.', + linkNotSupported: 'Hindi pa suportado ang link', + linkNotSupportedYet: 'Mukhang hindi pa suportado itong link, iba na lang ang ilagay mo.', + table: { + id: 'ID', + isrc: 'ISRC', + upc: 'UPC', + duration: 'Haba', + diskNumber: 'Bilang ng Disk', + trackNumber: 'Bilang ng Track', + releaseDate: 'Petsa ng Release', + bpm: 'BPM', + label: 'Label', + recordType: 'Uri ng Rekord', + genres: 'Mga Genre', + tracklist: 'Listahan ng Track' + } + }, + search: { + startSearching: 'Simulang Maghanap!', + description: + 'Pwede kang maghanap ng track, buong album, artist, playlist.... kahit ano! Pwede ka ring mag-paste dito ng link na galing sa Deezer', + fans: '{n} mga fan', + noResults: 'Walang resulta', + noResultsTrack: 'Walang mahanap na mga Track', + noResultsAlbum: 'Walang mahanap na mga Album', + noResultsArtist: 'Walang mahanap na mga Artist', + noResultsPlaylist: 'Walang mahanap na mga Playlist' + }, + searchbar: 'Maghanap ka ng gusto mo (o mag-paste ka ng link)', + downloads: 'mga download', + toasts: { + restoringQueue: 'Binabalik ang download queue...', + queueRestored: 'Naibalik na ang download queue!', + addedToQueue: '{item} ay naidagdag sa queue', + addedMoreToQueue: '{n} naidagdag rin sa queue', + alreadyInQueue: '{item} ay meron na sa queue!', + finishDownload: '{item} ay natapos nang i-download.', + allDownloaded: 'Nadownload na lahat!', + refreshFavs: 'Narefresh na!', + loggingIn: 'Nagla-log in...', + loggedIn: 'Na-login na', + alreadyLogged: 'Nakalogin ka na', + loginFailed: 'Hindi maka-log in', + loggedOut: 'Na-logout na', + cancellingCurrentItem: 'Kinakansel ang item.', + currentItemCancelled: 'Nakansel na ang item.', + startAddingArtist: 'Idinadagdag si {artist} sa queue ng mga album', + finishAddingArtist: 'Naidagdag na si {artist} sa queue ng mga album', + startConvertingSpotifyPlaylist: 'Kino-convert ang mga track sa spotify papuntang Deezer', + finishConvertingSpotifyPlaylist: 'Naconvert na ang playlist sa Spotify', + loginNeededToDownload: 'Kailangan mong mag-login para madownload ang mga track!', + deezerNotAvailable: 'Hindi available ang Deezer sa iyong bansa. Kailangan mong gumamit ng VPN.' + }, + settings: { + title: 'Mga Setting', + language: 'Wika', + login: { + title: 'Login', + loggedIn: 'Ikaw ay naka-login sa pangalang {username}', + arl: { + question: 'Paano ako makakuha ng sariling ARL?', + update: 'I-update ang ARL' + }, + logout: 'Logout', + login: 'Mag-login gamit ng deezer.com' + }, + appearance: { + title: 'Hitsura', + slimDownloadTab: 'Pinaliit na download tab' + }, + downloadPath: { + title: 'Paglalagyan ng Download' + }, + templates: { + title: 'Mga Template', + tracknameTemplate: 'Template sa pangalan ng Track', + albumTracknameTemplate: 'Template sa track ng Album', + playlistTracknameTemplate: 'Template sa track ng Playlist' + }, + folders: { + title: 'Mga Folder', + createPlaylistFolder: 'Gumawa ng folder para sa mga playlist', + playlistNameTemplate: 'Template sa folder ng Playlist', + createArtistFolder: 'Gumawa ng folder para sa artist', + artistNameTemplate: 'Template sa folder ng Artist', + createAlbumFolder: 'Gumawa ng folder para sa album', + albumNameTemplate: 'Template sa folder ng Album', + createCDFolder: 'Gumawa ng folder para sa mga CD', + createStructurePlaylist: 'Gumawa ng istraktura ng folder para sa mga playlist', + createSingleFolder: 'Gumawa ng istraktura ng folder para sa mga single' + }, + trackTitles: { + title: 'Pamagat sa mga track', + padTracks: 'Mga track ng Pad', + paddingSize: 'Patungan ang laki ng padding', + illegalCharacterReplacer: 'Pamalit sa ilegal na Karakter' + }, + downloads: { + title: 'Mga Download', + queueConcurrency: 'Mga Kasabay na Download', + maxBitrate: { + title: 'Gustong Bitrate', + 9: 'FLAC 1411kbps', + 3: 'MP3 320kbps', + 1: 'MP3 128kbps' + }, + overwriteFile: { + title: 'Papatungan ko ba ang file?', + y: 'Oo, patungan mo ang file', + n: 'Hindi, huwag mong patungan ang file', + t: 'Patungan mo lang ang mga tag', + b: 'Hindi, hayaan mo silang dalawa at lagyan mo lang ng numero sa kapareho niya', + e: 'Hindi, at huwag mong tignan ang mga extension' + }, + fallbackBitrate: 'Binabaang bitrate', + fallbackSearch: 'Maghanap para sa binabaan', + logErrors: 'Gumawa ng log file para sa mga error', + logSearched: 'Gumawa ng log file para sa mga hinanap na track', + createM3U8File: 'Gumawa ng file sa playlist', + syncedLyrics: 'Gumawa ng mga .lrc file (Mga Sync Lyric)', + playlistFilenameTemplate: 'Template sa pangalan ng Playlist file', + saveDownloadQueue: 'I-save ang download queue kapag isasara the app' + }, + covers: { + title: 'Mga cover ng album', + saveArtwork: 'I-save ang mga Cover', + coverImageTemplate: 'Template ng pangalan ng cover', + saveArtworkArtist: 'I-save ang imahe ng artist', + artistImageTemplate: 'Template ng imahe ng artist', + localArtworkSize: 'Laki ng lokal na artwork', + embeddedArtworkSize: 'Laki ng Nakadikit na artwork', + localArtworkFormat: { + title: 'Anong gusto mong format para sa mga lokal na artwork?', + jpg: 'jpeg na imahe', + png: 'png na imahe', + both: 'Parehong jpeg at png' + }, + jpegImageQuality: 'Kalidad ng JPEG na imahe', + embeddedArtworkPNG: 'I-save ang nakadikit na artwork bilang PNG', + embeddedPNGWarning: 'Ang mga PNG ay hindi opisyal na suportado ng Deezer at maaaring magkaroon ng bug', + imageSizeWarning: + 'Lahat ng mas mataas sa x1200 ay hindi opisyal na ginagamit sa Deezer, at posibleng magkaroon ng isyu', + coverDescriptionUTF8: 'I-save ang deskripsyon ng cover gamit ng UTF8 (iTunes Cover Fix)' + }, + tags: { + head: 'Aling tag ang ise-save', + title: 'Pamagat', + artist: 'Artist', + album: 'Album', + cover: 'Cover', + trackNumber: 'Bilang ng Track', + trackTotal: 'Kabuuang Track', + discNumber: 'Bilang ng Disk', + discTotal: 'Kabuuang Disk', + albumArtist: 'Album Artist', + genre: 'Genre', + year: 'Taon', + date: 'Petsa', + explicit: 'Mga Explicit na Lyric', + isrc: 'ISRC', + length: 'Haba ng Track', + barcode: 'Barcode ng Album (UPC)', + bpm: 'BPM', + replayGain: 'Replay Gain', + label: 'Label ng Album', + lyrics: 'Unsynchronized na mga Lyric', + syncedLyrics: 'Synchronized na mga Lyric', + copyright: 'Karapatang Ari', + composer: 'Komposer', + involvedPeople: 'Mga Kasamang Tao' + }, + other: { + title: 'Iba pa', + savePlaylistAsCompilation: 'I-save ang mga playlist bilang compilation', + useNullSeparator: 'Gumamit ng panghiwalay sa null', + saveID3v1: 'I-save rin ang ID3v1', + multiArtistSeparator: { + title: 'Anong gusto mo para maihanay mga artist?', + nothing: 'I-save lang ang pangunahing artist', + default: 'Gamit ng standard na specification', + andFeat: 'Gamit ng & at feat.', + using: 'Gamit ng "{separator}"' + }, + singleAlbumArtist: 'I-save lang ang pangunahing album ng artist', + albumVariousArtists: 'Isama ang "Various Artists" sa mga Album Artist', + removeAlbumVersion: 'Tanggalin ang "Album Version" sa pamagat ng track', + removeDuplicateArtists: 'Tanggalin ang kombinasyon ng mga artist', + dateFormat: { + title: 'Format ng petsa para sa mga FLAC file', + year: 'YYYY', + month: 'MM', + day: 'DD' + }, + featuredToTitle: { + title: 'Anong gagawin ko sa mga itinampok na artist', + 0: 'Wala', + 1: 'Tanggalin mo sila sa Pamagat', + 3: 'Tanggalin mo sila sa Pamagat mismo at Pamagat ng Album', + 2: 'Ilipat mo sila sa pamagat' + }, + titleCasing: 'Pagleletra sa Pamagat', + artistCasing: 'Pagleletra sa Artist', + casing: { + nothing: 'Walang babaguhin', + lower: 'maliliit', + upper: 'MALALAKI', + start: 'Simula Ng Bawata Salita', + sentence: 'Kagaya ng pangungusap' + }, + previewVolume: 'Volume ng Preview', + executeCommand: { + title: 'Mga gagawin pagkatapos ng download', + description: 'Hayaan lang na blangko kung wala' + } + }, + spotify: { + title: 'Spotify Features', + clientID: 'Spotify ClientID', + clientSecret: 'Spotify Client Secret', + username: 'Spotify Username', + question: 'Paano ma-enable ang Spotify Features?' + }, + reset: 'Ibalik sa Dati', + save: 'I-save', + toasts: { + init: 'Ikinarga ang mga Setting!', + update: 'In-update ang mga Setting!', + ARLcopied: 'Kinopya ang ARL sa clipboard' + } + }, + sidebar: { + home: 'tahanan', + search: 'maghanap', + charts: 'mga chart', + favorites: 'mga paborito', + linkAnalyzer: 'tagasuri ng link', + settings: 'mga setting', + about: 'tungkol sa' + }, + tracklist: { + downloadSelection: 'Pagpipili ng download' + } +} + +export default fil diff --git a/webui/src/lang/fr.mjs b/webui/src/lang/fr.mjs new file mode 100644 index 0000000..d4aec3d --- /dev/null +++ b/webui/src/lang/fr.mjs @@ -0,0 +1,529 @@ +const fr = { + globals: { + welcome: 'Bienvenue dans deemix', + back: 'retour', + loading: 'chargement en cours', + download: 'Télécharger {thing}', + by: 'par {artist}', + in: 'dans {album}', + download_hint: 'Télécharger', + play_hint: 'Lire', + toggle_download_tab_hint: 'Développer/Réduire', + clean_queue_hint: 'Retirer Les Tâches Terminées', + cancel_queue_hint: 'Tout Annuler', + open_downloads_folder: 'Ouvrir Le Dossier De Téléchargements', + cut: 'couper', + copy: 'copier', + copyLink: 'copier le lien', + copyImageLink: "copier le lien de l'image", + copyDeezerLink: 'copier le lien deezer', + paste: 'coller', + listTabs: { + empty: '', + all: 'tout', + discography: 'discographie', + top_result: 'meilleur résultat', + album: 'album | albums', + artist: 'artiste | artistes', + single: 'single | singles', + title: 'titre | titres', + track: 'piste | pistes', + playlist: 'playlist | playlists', + compile: 'compilation | compilations', + ep: 'ep | eps', + bundle: 'bundle | bundles', + more: "Plus d'albums", + featured: 'Apparaît dans', + spotifyPlaylist: 'playlist spotify | playlists spotify', + releaseDate: 'date de sortie', + error: 'erreur', + trackN: '0 piste | {n} piste | {n} pistes', + albumN: '0 album | {n} album | {n} albums', + artistN: '0 artiste | {n} artiste | {n} artistes', + releaseN: '0 sortie | {n} sortie | {n} sorties', + playlistN: '0 playlist | {n} playlist | {n} playlists' + }, + yes: 'oui', + no: 'non', + empty: 'vide' + }, + about: { + appStatus: { + online: 'application en ligne', + offline: 'application hors ligne' + }, + updates: { + currentVersion: 'Version Actuelle Du Logiciel', + currentWebuiVersion: 'Version Actuelle De La WebUI', + versionNotAvailable: 'N/A', + updateAvailable: "Vous n'utilisez pas la dernière version disponible : {version}", + deemixVersion: 'Version Actuelle De La Bibliothèque deemix' + }, + titles: { + usefulLinks: 'Liens Utiles', + bugReports: 'Rapports De Bug', + contributing: 'Contribution', + donations: 'Dons', + license: 'Licence' + }, + subtitles: { + bugReports: 'Quelque chose ne fonctionne pas dans deemix ? Contactez-nous !', + contributing: 'Vous souhaitez contribuer à ce projet ? Vous pouvez le faire de différentes manières !', + donations: 'Vous souhaitez contribuer financièrement ? Vous pouvez faire un don !' + }, + usesLibrary: + 'Cette application utilise la bibliothèque deemix, que vous pouvez exploiter afin de créer votre propre interface utilisateur pour deemix.', + thanks: + "Merci à rtonno, uhwot et lollilol de m'avoir aidé dans ce projet ainsi qu'à BasCurtiz pour la création de l'icône.", + upToDate: { + text: `Restez informé des mises à jour en suivant le {newsChannel} sur Telegram.`, + newsChannel: "canal d'informations" + }, + officialWebsite: 'Site Officiel', + officialRepo: 'Répertoire De Dépôt Officiel De La Bibliothèque', + officialWebuiRepo: 'Répertoire De Dépôt Officiel De La WebUI', + officialSubreddit: 'Subreddit Officiel', + newsChannel: "Canal d'Informations", + devlogChannel: 'Canal De Développement', + questions: { + text: `Si vous avez des questions ou des problèmes avec l'application, cherchez d'abord une solution dans le {subreddit}. Ensuite, si la solution ne s'y trouve pas, vous pouvez publier un message dans le subreddit en décrivant votre problème.`, + subreddit: 'subreddit' + }, + beforeReporting: + "Avant de signaler un bug, assurez-vous que vous utilisez la version la plus récente de l'application. Vérifiez que vous souhaitez nous rapporter un bug et non quelque chose qui ne fonctionne pas uniquement de votre côté.", + beSure: + "Assurez-vous que le bug soit reproductible sur d'autres appareils mais aussi de NE PAS signaler un bug si celui-ci a déjà été recensé.", + duplicateReports: "Les rapports de bug répétitifs seront supprimés, merci d'en prendre bonne note.", + dontOpenIssues: + "NE PAS rapporter de problème s'il ne s'agit que de simples questions. Un subreddit existe pour ces questions.", + newUI: { + text: `Si vous maîtrisez python, vous pouvez essayer de créer une nouvelle interface utilisateur pour l'application à l'aide de la bibliothèque de base, ou corriger des bugs dans la bibliothèque à l'aide d'une demande de fusion de branches (pull request) sur le {repo}.`, + repo: 'répertoire de dépôt' + }, + acceptFeatures: + "J'accepte également les nouvelles fonctionnalités, mais pas de choses complexes, dans la mesure où elles peuvent être implémentées directement dans l'application et non dans la bibliothèque.", + otherLanguages: + 'Si vous maîtrisez un autre langage de programmation, vous pouvez essayer de transposer deemix dans ce dernier !', + understandingCode: + "Vous avez besoin d'aide pour comprendre le code ? Il suffit de contacter waLplanet sur Telegram ou Reddit.", + contributeWebUI: { + text: `Si vous vous y connaissez en Vue.js (JavaScript), HTML ou CSS, vous pouvez contribuer à la {webui}.`, + webui: 'WebUI' + }, + itsFree: + "N'oubliez pas que ce projet est libre et qu'il est important de soutenir vos artistes préférés avant de supporter les développeurs.", + notObligated: 'Ne vous sentez pas obligé de faire un don, vous êtes tout de même apprécié !', + lincensedUnder: { + text: `Ce projet s'inscrit dans le cadre de la {gpl3}.`, + gpl3: 'Licence publique générale GNU, version 3' + } + }, + charts: { + title: 'Classements', + changeCountry: 'Changer De Pays', + download: 'Télécharger Le Classement' + }, + errors: { + title: 'Erreurs pour {name}', + postTitle: 'Erreurs survenues après le téléchargement', + ids: { + invalidURL: "Cette URL n'est pas reconnue", + unsupportedURL: "Cette URL n'est actuellement pas supportée", + ISRCnotOnDeezer: "L'ISRC de la piste est indisponible sur Deezer", + notYourPrivatePlaylist: "Vous n'êtes pas autorisé à télécharger les playlists privées de quelqu'un d'autre.", + spotifyDisabled: 'Les Fonctionnalités Spotify ne sont pas configurées correctement.', + trackNotOnDeezer: 'La piste est introuvable sur Deezer !', + albumNotOnDeezer: "L'album est introuvable sur Deezer !", + notOnDeezer: 'La piste est indisponible sur Deezer !', + notEncoded: "La piste n'a pas encore été encodée !", + notEncodedNoAlternative: "La piste n'a pas encore été encodée et aucune alternative n'a été trouvée !", + wrongBitrate: 'La piste est introuvable au débit souhaité.', + wrongBitrateNoAlternative: "La piste est introuvable au débit souhaité et aucune alternative n'a été trouvée !", + no360RA: 'La piste est indisponible au format Reality Audio 360.', + notAvailable: 'La piste est indisponible sur les serveurs de Deezer !', + notAvailableNoAlternative: + "La piste est indisponible sur les serveurs de Deezer et aucune alternative n'a été trouvée !", + noSpaceLeft: "L'espace disponible sur cet appareil est insuffisant !", + albumDoesntExists: "Aucun album n'existe pour cette piste, impossible de collecter les informations nécessaires.", + wrongLicense: 'Votre compte ne prend pas en charge les pistes en {bitrate}.', + wrongGeolocation: 'Votre compte ne prend pas en charge la piste depuis votre pays actuel.', + wrongGeolocationNoAlternative: + "Votre compte ne prend pas en charge la piste depuis votre pays actuel et aucune alternative n'a été trouvée." + } + }, + favorites: { + title: 'Favoris', + noPlaylists: "Aucune Playlist Favorite n'a été trouvée", + noAlbums: "Aucun Album Favori n'a été trouvé", + noArtists: "Aucun Artiste Favori n'a été trouvé", + noTracks: "Aucune Piste Favorite n'a été trouvée" + }, + home: { + needTologin: 'Vous devez vous connecter à votre compte Deezer avant de pouvoir démarrer un téléchargement.', + openSettings: 'Ouvrir Les Paramètres', + sections: { + popularPlaylists: 'Playlists les plus écoutées', + popularAlbums: 'Albums les plus écoutés' + } + }, + linkAnalyzer: { + info: "Vous pouvez utiliser cette section pour obtenir davantage d'informations sur le lien que vous essayez de télécharger.", + useful: + "C'est utile si vous essayez, par exemple, de télécharger des pistes indisponibles dans votre pays et que vous souhaitez savoir où elles sont disponibles.", + linkNotSupported: "Ce lien n'est pas encore pris en charge", + linkNotSupportedYet: "Il semble que ce lien ne soit pas encore pris en charge, essayez d'en analyser un autre.", + table: { + id: 'ID', + isrc: 'ISRC', + upc: 'UPC', + duration: 'Durée', + diskNumber: 'Numéro De Disque', + trackNumber: 'Numéro De Piste', + releaseDate: 'Date De Sortie', + bpm: 'BPM', + label: 'Label', + recordType: "Type d'Enregistrement", + genres: 'Genres', + tracklist: 'Liste Des Pistes', + readable: 'Lisible', + available: 'Disponible' + }, + countries: 'Pays', + noCountries: "Cette piste n'est disponible dans aucun pays." + }, + search: { + startSearching: 'Démarrer une recherche !', + description: + 'Vous pouvez rechercher une piste, un album entier, un artiste, une playlist... tout ce que vous voulez ! Vous pouvez également coller un lien Deezer.', + fans: '{n} fans', + noResults: 'Aucun résultat', + noResultsTrack: "Aucune piste n'a été trouvée", + noResultsAlbum: "Aucun album n'a été trouvé", + noResultsArtist: "Aucun artiste n'a été trouvé", + noResultsPlaylist: "Aucune playlist n'a été trouvée", + error: 'Une erreur est survenue, veuillez réessayer ultérieurement.' + }, + searchbar: 'Saisissez une requête (ou collez simplement un lien)', + downloads: 'téléchargements', + toasts: { + restoringQueue: "Restauration de la file d'attente de téléchargement...", + queueRestored: "La file d'attente de téléchargement a été restaurée !", + addedToQueue: "{item} ajouté à la file d'attente", + addedMoreToQueue: "{n} éléments ajoutés à la file d'attente", + alreadyInQueue: "{item} est déjà dans la file d'attente !", + finishDownload: '{item} a été téléchargé.', + allDownloaded: 'Tous les téléchargements sont terminés !', + refreshFavs: 'Actualisation terminée !', + loggingIn: 'Connexion en cours...', + loggedIn: 'Connecté', + alreadyLogged: 'Déjà connecté', + loginFailed: 'Connexion impossible', + loggedOut: 'Déconnecté', + cancellingCurrentItem: "Annulation de l'élément actuel.", + currentItemCancelled: 'Élément actuel annulé.', + startAddingArtist: "Ajout des albums de {artist} à la file d'attente", + finishAddingArtist: "Les albums de {artist} ont été ajoutés à la file d'attente", + startConvertingSpotifyPlaylist: 'Conversion de pistes Spotify en équivalents Deezer', + finishConvertingSpotifyPlaylist: 'Playlist Spotify convertie', + loginNeededToDownload: 'Vous devez vous connecter pour pouvoir télécharger des pistes !', + queueErrorCantStream: 'Votre compte ne prend pas en charge les téléchargements en {bitrate}.', + deezerNotAvailable: 'Deezer est indisponible dans votre pays. Vous devez utiliser un VPN.', + deezerNotReachable: + "L'application ne semble pas pouvoir communiquer avec Deezer. Vérifiez votre connexion internet, votre pare-feu ou votre antivirus.", + startGeneratingItems: 'Traitement de {n} éléments...', + finishGeneratingItems: '{n} éléments ont été générés.', + noLovedPlaylist: 'Aucune playlist de pistes favorites !', + checkingUpdates: 'Recherche des mises à jour...', + noUpdateAvailable: 'Aucune mise à jour disponible.', + updateAvailable: 'Une mise à jour est disponible !', + wrongSpotifyUsername: "{username} n'est pas un nom d'utilisateur Spotify valide" + }, + settings: { + title: 'Paramètres', + language: 'Langue', + login: { + title: 'Connexion', + loggedIn: 'Vous êtes connecté en tant que {username}', + arl: { + title: 'Utiliser de préférence la connexion via ARL', + question: 'Comment obtenir mon ARL personnel ?', + howTo: { + prologue: { + p1: 'Deezer conserve une trace de votre connexion en utilisant un cookie appelé ARL.', + p2: 'Deemix utilise ce cookie pour obtenir les métadonnées dont il a besoin pour télécharger les pistes depuis Deezer.', + p3: 'Les ARLs restent valables pendant 3 mois, après quoi Deezer vous demande de vous reconnecter. La même méthode est utilisée dans deemix.', + p4: "En suivant l'un des modes opératoires ci-dessous, vous pouvez obtenir votre ARL personnel.", + warning: "N'utilisez cette méthode que si l'e-mail et le mot de passe ne fonctionnent pas." + }, + chromeSteps: { + title: 'Chrome', + step1: 'Ouvrez Chrome', + easyWay: { + title: 'Chrome (Méthode simple)', + step3: "Cliquez sur la petite icône représentant un cadenas située à côté de l'URL.", + step4: 'Cliquez sur Cookies > deezer.com > cookies > arl', + step5: 'Sélectionnez la chaîne de caractères située à côté de Contenu, et copiez-la' + }, + step4: "Allez sous l'onglet Application (si vous ne le voyez pas, cliquez sur la double flèche).", + videoGuide: { + text: 'Voici un {videoGuide}', + link: 'tutoriel vidéo' + } + }, + firefoxSteps: { + title: 'Firefox', + step1: 'Ouvrez Firefox', + step4: "Allez sous l'onglet Stockage (si vous ne le voyez pas, cliquez sur la double flèche)." + }, + commonSteps: { + step2: 'Allez sur www.deezer.com et connectez-vous à votre compte', + step3: 'Une fois la connexion effectuée, appuyez sur F12 pour ouvrir les outils du développeur.', + step5: 'Ouvrez le menu déroulant Cookies', + step6: 'Sélectionnez www.deezer.com', + step7: 'Recherchez le cookie `arl` (il doit comporter 192 caractères).', + step8: "Assurez-vous de ne copier que la valeur et non l'intégralité du cookie.", + lastStep: "Il s'agit de votre ARL personnel, vous pouvez maintenant l'utiliser dans l'application." + } + }, + update: "Forcer la réactualisation de l'ARL" + }, + logout: 'Déconnexion', + login: 'Connexion', + email: 'E-mail', + password: 'Mot de passe' + }, + appearance: { + title: 'Apparence', + slimDownloadTab: 'Onglet de téléchargement compact', + slimSidebar: 'Barre latérale compacte', + searchButton: 'Afficher le bouton de recherche', + bitrateTags: "Afficher l'indicateur de qualité audio dans la file d'attente de téléchargement" + }, + downloadPath: { + title: 'Emplacement De Téléchargement' + }, + templates: { + title: 'Modèles', + tracknameTemplate: 'Modèle pour le nom de piste', + tracknameAvailableVariables: 'Variables disponibles pour le nom de piste', + albumTracknameTemplate: "Modèle pour le nom de piste de l'album", + albumTracknameAvailableVariables: "Variables disponibles pour le nom de piste de l'album", + playlistTracknameTemplate: 'Modèle pour le nom de piste de la playlist', + playlistTracknameAvailableVariables: 'Variables disponibles pour le nom de piste de la playlist' + }, + folders: { + title: 'Dossiers', + createPlaylistFolder: 'Générer des dossiers par playlist', + playlistNameTemplate: 'Modèle pour le nom du dossier de playlist', + createArtistFolder: 'Générer des dossiers par artiste', + artistNameTemplate: "Modèle pour le nom du dossier d'artiste", + createAlbumFolder: 'Générer des dossiers par album', + albumNameTemplate: "Modèle pour le nom du dossier d'album", + createCDFolder: 'Générer des dossiers par CD', + createStructurePlaylist: 'Générer une structure de dossiers pour les playlists', + createSingleFolder: 'Générer une structure de dossiers pour les singles' + }, + trackTitles: { + title: 'Titres des pistes', + padTracks: + 'Longueur uniforme des numéros de piste (ajoute automatiquement des zéros devant le numéro initial de la piste)', + paddingSize: 'Nombre de zéros à ajouter en permanence devant le numéro initial de la piste', + illegalCharacterReplacer: 'Substitut aux caractères non autorisés (dans les noms de fichiers et de dossiers)' + }, + downloads: { + title: 'Téléchargements', + queueConcurrency: 'Téléchargements Simultanés', + maxBitrate: { + title: 'Débit Préféré', + 9: 'FLAC 1411kbps', + 3: 'MP3 320kbps', + 1: 'MP3 128kbps' + }, + overwriteFile: { + title: 'Les fichiers doivent-ils être écrasés ?', + y: 'Oui, écraser le fichier', + n: 'Non, ne pas écraser le fichier', + t: 'Écraser uniquement les métadonnées', + b: 'Non, conserver les deux fichiers et ajouter un numéro au doublon', + e: "Non, et ne pas tenir compte de l'extension du fichier", + l: 'Écraser uniquement si le débit est plus élevé (mp3 seulement)' + }, + fallbackBitrate: "Recourir à un débit plus faible si le débit préféré n'est pas disponible", + fallbackSearch: "Rechercher la piste ailleurs si le lien original n'est pas disponible", + fallbackISRC: "Rechercher la piste à l'aide de son ISRC si le lien original n'est pas disponible", + feelingLucky: 'Utiliser les CDNs et les caches (ancienne méthode de téléchargement des pistes)', + logErrors: "Créer un fichier journal d'erreurs", + logSearched: 'Créer un fichier journal des pistes recherchées', + createM3U8File: 'Créer un fichier de playlist', + syncedLyrics: 'Créer des fichiers .lrc (Paroles Synchronisées)', + playlistFilenameTemplate: 'Modèle du nom de fichier de la playlist', + clearQueueOnExit: "Effacer la file d'attente de téléchargement lors de la fermeture de l'application" + }, + covers: { + title: "Pochettes d'albums", + saveArtwork: 'Enregistrer Les Pochettes', + coverImageTemplate: 'Modèle pour le nom de la pochette', + saveArtworkArtist: "Enregistrer l'image de l'artiste", + artistImageTemplate: "Modèle pour le nom de l'image de l'artiste", + localArtworkSize: "Taille de l'illustration locale", + embeddedArtworkSize: "Taille de l'illustration incorporée aux fichiers audio", + localArtworkFormat: { + title: "Dans quel format souhaitez-vous l'illustration locale ?", + jpg: 'Une image jpeg', + png: 'Une image png', + both: 'À la fois jpeg et png' + }, + jpegImageQuality: "Qualité de l'image JPEG", + embeddedArtworkPNG: "Enregistrer l'illustration incorporée aux fichiers audio en tant que PNG", + embeddedPNGWarning: + 'Les images PNG ne sont pas officiellement utilisées par Deezer et pourraient causer des problèmes.', + imageSizeWarning: + "Toute valeur supérieure à x1200 n'est pas officiellement supportée par Deezer, vous pourriez donc rencontrer des problèmes.", + coverDescriptionUTF8: 'Enregistrer la description de la pochette au format UTF8 (iTunes Cover Fix)' + }, + tags: { + head: 'Métadonnées à sauvegarder', + title: 'Titre', + artist: 'Artiste', + artists: 'Métadonnée supplémentaire ARTISTS', + album: 'Album', + cover: 'Pochette', + trackNumber: 'Numéro De Piste', + trackTotal: 'Nombre De Pistes', + discNumber: 'Numéro Du Disque', + discTotal: 'Nombre De Disques', + albumArtist: "Artiste De l'Album", + genre: 'Genre', + year: 'Année', + date: 'Date', + explicit: 'Paroles Explicites', + isrc: 'ISRC', + length: 'Longueur De La Piste', + barcode: "Code-Barres De l'Album (UPC)", + bpm: 'BPM', + replayGain: 'Gain En Relecture (Replay Gain)', + label: "Label De l'Album", + lyrics: 'Paroles Non-Synchronisées', + syncedLyrics: 'Paroles Synchronisées', + copyright: "Droits d'Auteur (Copyright)", + composer: 'Compositeur', + involvedPeople: 'Personnes Impliquées', + source: 'ID de la source et de la piste', + artistsWarning: + 'La désactivation de la métadonnée ARTISTS sans utiliser la spécification standard ne préservera pas le support multi-artiste.' + }, + other: { + title: 'Autre', + autoCheckForUpdates: "Vérifier les mises à jour au démarrage de l'application", + savePlaylistAsCompilation: 'Enregistrer les playlists en tant que compilation', + useNullSeparator: 'Utiliser le caractère NULL comme séparateur', + saveID3v1: 'Enregistrer également les métadonnées ID3v1', + multiArtistSeparator: { + title: 'Comment aimeriez-vous séparer les artistes ?', + nothing: "Enregistrer uniquement l'artiste principal", + default: 'En utilisant la spécification standard', + andFeat: 'En utilisant & et feat.', + using: 'En utilisant "{separator}"', + warning: + "L'utilisation d'un séparateur autre que la spécification standard nécessitera l'ajout d'une métadonnée ARTISTS afin de préserver le support multi-artiste." + }, + singleAlbumArtist: "Enregistrer uniquement l'artiste principal de l'album", + albumVariousArtists: `Conserver "Various Artists" dans les Artistes de l'Album`, + removeAlbumVersion: `Supprimer "Album Version" du titre de la piste`, + removeDuplicateArtists: "Supprimer les combinaisons d'artistes", + dateFormat: { + title: 'Format de date pour les fichiers FLAC', + year: 'AAAA', + month: 'MM', + day: 'JJ' + }, + featuredToTitle: { + title: 'Que faire des artistes participants (featuring) ?', + 0: 'Ne rien faire', + 1: 'Les retirer du titre de la piste', + 3: "Les supprimer du titre de la piste et du titre de l'album", + 2: 'Les déplacer vers le titre de la piste' + }, + titleCasing: 'Casse pour le titre', + artistCasing: "Casse pour l'artiste", + casing: { + nothing: 'Conserver inchangé', + lower: 'minuscules', + upper: 'MAJUSCULES', + start: 'Majuscule Au Début De Chaque Mot', + sentence: 'Majuscule seulement au début de la phrase' + }, + previewVolume: 'Volume sonore des aperçus de pistes', + executeCommand: { + title: 'Commande à exécuter après le téléchargement', + description: "Laisser vide pour qu'aucune action n'ait lieu" + } + }, + spotify: { + title: 'Fonctionnalités Spotify', + clientID: 'Client ID Spotify', + clientSecret: 'Client Secret Spotify', + username: "Nom d'utilisateur Spotify", + question: 'Comment activer les Fonctionnalités Spotify ?', + howTo: { + prologue: { + p1: 'Les "Fonctionnalités Spotify" sont un ensemble de fonctionnalités qui vous permet de convertir les liens des pistes et albums Spotify en équivalents Deezer.', + p2: "Si vous introduisez un lien d'une Playlist Spotify, l'application convertira automatiquement tous les liens des pistes qu'elle contient en pistes Deezer correspondantes.", + p3: "En activant ces fonctionnalités, vous pourrez également consulter vos Playlists Spotify publiques dans l'onglet Favoris." + }, + info: 'Pour des raisons de sécurité, vous devrez fournir votre Client ID et votre Client Secret personnels.', + clientSecretQuestion: { + title: 'Comment obtenir mon Client ID ainsi que mon Client Secret personnels ?', + step1: { + text: 'Rendez-vous sur le {spotifyDevelopersDashboard} et connectez-vous avec votre compte Spotify.', + spotifyDevelopersDashboard: 'Tableau de bord Spotify pour les développeurs' + }, + step2: { + text: 'Cliquez sur "Create an App".', + imageAlt: 'Bouton Create an App' + }, + step3: { + text: 'Remplissez les champs "App name" et "App description" et cochez les deux cases. Cliquez ensuite sur le bouton "Create".', + imageAlt: 'Formulaire Create an App' + }, + step4: { + text: 'Vous pouvez maintenant visualiser le Client ID. Si vous cliquez sur "Show Client Secret", le Client Secret vous sera révélé.', + imageAlt: 'Ecran Client ID et Client Secret' + }, + step5: 'Vous pouvez maintenant copier-coller ces données dans les champs appropriés des paramètres.' + }, + usernameQuestion: { + title: "Comment obtenir mon nom d'utilisateur Spotify ?", + step1: { + text: "Vous pouvez obtenir votre nom d'utilisateur Spotify à partir de la page {overviewPage} sur site Web de Spotify.", + overviewPage: "Vue d'ensemble du compte" + } + } + } + }, + reset: 'Rétablir les valeurs par défaut', + resetMessage: 'Souhaitez-vous vraiment rétablir les paramètres par défaut ?', + save: 'Sauvegarder', + toasts: { + init: 'Paramètres chargés !', + update: 'Paramètres mis à jour !', + reset: 'Paramètres réinitialisés à leur valeur par défaut !', + ARLcopied: 'ARL copié dans le presse-papier' + } + }, + sidebar: { + home: 'accueil', + search: 'recherche', + charts: 'classements', + favorites: 'favoris', + linkAnalyzer: 'analyseur de lien', + settings: 'paramètres', + logs: 'journaux (logs)', + about: 'à propos' + }, + tracklist: { + downloadSelection: 'Télécharger la sélection' + } +} + +export default fr diff --git a/webui/src/lang/hr.mjs b/webui/src/lang/hr.mjs new file mode 100644 index 0000000..f8d454f --- /dev/null +++ b/webui/src/lang/hr.mjs @@ -0,0 +1,359 @@ +const hr = { + globals: { + welcome: 'Dobrodošli u deemix', + back: 'nazad', + loading: 'učitavanje', + download: 'Preuzmi {thing}', + by: 'by {artist}', + in: 'u {album}', + download_hint: 'Preuzmi', + play_hint: 'Play', + toggle_download_tab_hint: 'Proširi/Smanji', + clean_queue_hint: 'Čišćenje završeno', + cancel_queue_hint: 'Zaustavi sve', + listTabs: { + empty: '', + all: 'sve', + top_result: 'Najbolji rezultat', + album: 'album | albumi', + artist: 'izvođač | izvođači', + single: 'singl | singlovi', + title: 'naslov | naslovi', + track: 'pjesma | pjesme', + trackN: '0 pjesmi | {n} pjesma | {n} pjesme', + releaseN: '0 izdanja | {n} izdanje | {n} izdanja', + playlist: 'playlista | playliste', + compile: 'kompilacija | kompilacije', + ep: 'ep | eps', + spotifyPlaylist: 'spotify playlista | spotify playliste', + releaseDate: 'datum izdavanja', + error: 'greška' + } + }, + about: { + titles: { + usefulLinks: 'Korisne poveznice', + bugReports: 'Prijave grešaka', + contributing: 'Doprinosi', + donations: 'Donacije', + license: 'Licenca' + }, + subtitles: { + bugReports: 'Postoji nešto što ne radi u deemixu? Reci nam!', + contributing: 'Želiš doprinijeti ovom projektu? Možeš i to čak u više načina!', + donations: 'Želiš doprijeniti odmah? Možeš donirati!' + }, + usesLibrary: + 'Ova aplikacija koristi deemix biblioteku, koju možeš koristiti i ti kako bi napravio svoj UI za demix.', + thanks: `Hvala rtonno, uhwot i lollilol što su mi pomogli s ovim projektom te BasCurtiz što su napravili ikonu.`, + upToDate: { + text: `Ostani u tijeku s nadogradnjama prateći {newsChannel} na Telegramu.`, + newsChannel: 'kanal s novostima' + }, + officialWebsite: 'Službena web stranica', + officialRepo: 'Službeni repozitorij biblioteke', + officialWebuiRepo: 'Službeni WebUI repozitorij', + officialSubreddit: 'Službeni subreddit', + newsChannel: 'Kanal s novostima', + questions: { + text: `Ukoliko imate pitanja o aplikaciji, prvo potražite riješenje na {subreddit}. Tada, ako ne pronađete ništa, možete objaviti svoj problem na subredditu.`, + subreddit: 'subreddit' + }, + beforeReporting: `Prije prijavljivanja greške provjerite imate li instaliranu zadnju verziju aplikacije i da to što želite prijaviti je ustvari pogreška, a ne nešto što samo vama ne radi.`, + beSure: `Provjerite može li se pogreška reproducirati i na drugim uređajima i također NEMOJTE prijavljivati grešku ako je već prijavljena.`, + duplicateReports: 'Duplicirane prijave o greški bit će zatvorene, tako da pripazite na to.', + dontOpenIssues: `NEMOJTE otvarati issue za postavljanje pitanja, za to postoji subreddit.`, + newUI: { + text: `Ako ste vješti u pythonu možete probati napraviti novi UI za aplikaciju koristeći osnovnu biblioteku ili ispraviti pogrešku u biblioteci sa pull zahtjevom na {repo}.`, + repo: 'repozitoriju' + }, + acceptFeatures: `Prihavaćam i značajke, ali bez kompleksnih stvari, jer one mogu biti implementirane direktno u aplikaciji, a ne u biblioteci.`, + otherLanguages: `Ako ste vješti u drugom programskom jezikumožete probati portati deemix u drugi programski jezik!`, + understandingCode: `Trebate pomoć s razumijevanjem koda? Samo potraži waLplanet na Telegramu ili Redditu.`, + contributeWebUI: { + text: `Ako znaš Vue.js (JavaScript), HTML ili CSS možete doprinijeti za {webui}.`, + webui: 'WebUI' + }, + itsFree: `Trebate zapamtiti da je ovo besplatni projekt i trebali biste podržati autore koje volite prije podržavanja developera.`, + notObligated: `Nemojte se osjećati obveznim darivati, svejedno vas cijenim!`, + lincensedUnder: { + text: `Ovaj rad licenciran je unutar {gpl3}.`, + gpl3: 'GNU General Public License 3.0' + } + }, + charts: { + title: 'Ljestvice', + changeCountry: 'Promijeni državu', + download: 'Preuzmi ljestvicu' + }, + errors: { + title: 'Greške za {name}', + ids: { + invalidURL: 'URL nije prepoznat', + unsupportedURL: 'URL još nije podržan', + ISRCnotOnDeezer: 'Zapis ISRC još nije podržan na Deezeru', + notYourPrivatePlaylist: 'Ne možete preuzeti tuđe privatne playliste.', + spotifyDisabled: 'Spotify značajke nisu podešene ispravno.', + trackNotOnDeezer: 'Pjesma nije pronađena na Deezeru!', + albumNotOnDeezer: 'Album nije pronađen na Deezeru!', + notOnDeezer: 'Pjesma nije dostupna na Deezeru!', + notEncoded: 'Pjesma još nije enkodirana!', + notEncodedNoAlternative: 'Pjesma još nije enkodirana i nije pronađena alternativa!', + wrongBitrate: 'Pjesma nije pronađena u željenom bitrateu.', + wrongBitrateNoAlternative: 'Pjesma nije pronađena u željenom bitrateu i nije pronađena alternativa!', + no360RA: 'Pjesma nije dostupna u Reality Audio 360.', + notAvailable: 'Pjesma nije dostupna na Deezerovim serverima!', + notAvailableNoAlternative: 'Pjesma nije dostupna na Deezerovim serverima i alternativa nije pronađena!' + } + }, + favorites: { + title: 'Favoriti', + noPlaylists: 'Nisu pronađene playliste', + noAlbums: 'Omiljeni albumi nisu pronađeni', + noArtists: 'Omiljeni glazbenici nisu pronađeni', + noTracks: 'Omiljene pjesme nisu pronađene' + }, + home: { + needTologin: 'Trebate se prijaviti sa svojim Deezer računom kako biste mogli početi preuzimati pjesme.', + openSettings: 'Otvori postavke', + sections: { + popularPlaylists: 'Popularne playliste', + popularAlbums: 'Najpreslušaniji album' + } + }, + linkAnalyzer: { + info: 'Ovu sekciju možete koristiti kako biste saznali više informacija o linku koji pokušavate preuzeti.', + useful: + 'Ovo je korisno ako pokušavate preuzeti pjesme koje još nisu dostupne u vašoj zemlji i želite, na primjer, znati gdje su dostupne.', + linkNotSupported: 'Ovaj link još nije podržan', + linkNotSupportedYet: 'Čini se da ovaj link još nije podržan, pokušaj analizirati neki drugi.', + table: { + id: 'ID', + isrc: 'ISRC', + upc: 'UPC', + duration: 'Trajanje', + diskNumber: 'Broj diska', + trackNumber: 'Broj pjesme', + releaseDate: 'Datum izadavanja', + bpm: 'BPM', + label: 'Izdavačka kuća', + recordType: 'Vrsta zapisa', + genres: 'Žanrovi', + tracklist: 'Popis pjesama' + } + }, + search: { + startSearching: 'Počni pretraživati!', + description: + 'Možete pretražiti pjesmu, cijeli album, izvođača, playlistu... sve! Također, možete i zalijepiti Deezer link', + fans: '{n} obožavatelja', + noResults: 'Nema rezultata', + noResultsTrack: 'Pjesme nisu pronađene', + noResultsAlbum: 'Albumi nisu pronađeni', + noResultsArtist: 'Izvođači nisu pronađeni', + noResultsPlaylist: 'Playliste nisu pronađene' + }, + searchbar: 'Pretraži bilo što (ili samo zalijepi link)', + downloads: 'preuzimanja', + toasts: { + addedToQueue: '{item} dodan u red', + alreadyInQueue: '{item} je već u redu!', + finishDownload: '{item} završeno preuzimanje.', + allDownloaded: 'Sva preuzimanja završena!', + refreshFavs: 'Osvježavanje završeno!', + loggingIn: 'Prijavljivanje...', + loggedIn: 'Prijavljeni', + alreadyLogged: 'Već prijavljeni', + loginFailed: 'Prijava nije bila moguća', + loggedOut: 'Odjavljeni', + cancellingCurrentItem: 'Otkazujem trenutnu stavku.', + currentItemCancelled: 'Trenutna stavka otkazana.', + startAddingArtist: 'Dodajem {artist} album u red', + finishAddingArtist: 'Dodan {artist} album u red', + startConvertingSpotifyPlaylist: 'Pretvaram Spotify pjesme u Deezer pjesme', + finishConvertingSpotifyPlaylist: 'Spotify playlista pretvorena', + loginNeededToDownload: 'Trebate se prijaviti kako bi preuzeli pjesme!' + }, + settings: { + title: 'Postavke', + language: 'Jezik', + login: { + title: 'Prijava', + loggedIn: 'Prijavljeni ste kao {username}', + arl: { + question: 'Kako da dobijem svoj ARL?', + update: 'Ažuriraj ARL' + }, + logout: 'Odjavi se' + }, + appearance: { + title: 'Izgled', + slimDownloadTab: 'Tanka kartica za preuzimanje' + }, + downloadPath: { + title: 'Putanja za preuzimanja' + }, + templates: { + title: 'Predlošci', + tracknameTemplate: 'Naziv pjesme predložak', + albumTracknameTemplate: 'Pjesma albuma predložak', + playlistTracknameTemplate: 'Pjesma playliste predložak' + }, + folders: { + title: 'Mape', + createPlaylistFolder: 'Izradi mapu za playliste', + playlistNameTemplate: 'Mapa za playliste predložak', + createArtistFolder: 'Izradi mapu za izvođača', + artistNameTemplate: 'Izvođač mapa predložak', + createAlbumFolder: 'Izradi mapu za album', + albumNameTemplate: 'Album mapa predložak', + createCDFolder: 'Izradi mapu za CD', + createStructurePlaylist: 'Strkturiraj mape za playliste', + createSingleFolder: 'Strukturiraj mape za singlove' + }, + trackTitles: { + title: 'Naslovi pjesama', + padTracks: 'Pad tracks', + paddingSize: 'Prepiši veličinu paddinga', + illegalCharacterReplacer: 'Zamjena za nedozvoljeni znak' + }, + downloads: { + title: 'Preuzimanja', + queueConcurrency: 'Istovremena preuzimanja', + maxBitrate: { + title: 'Željeni bitrate', + 9: 'FLAC 1411kbps', + 3: 'MP3 320kbps', + 1: 'MP3 128kbps' + }, + overwriteFile: { + title: 'Trebam li prepisati datoteke?', + y: 'Da, prepiši datoteke', + n: 'Ne, nemoj prepisati datoteke', + t: 'Prepiši samo oznake', + b: 'Ne, zadrži obje datoteke i dodaj broj duplikatu' + }, + fallbackBitrate: 'Bitrate fallback', + fallbackSearch: 'Pretraživanje fallback', + logErrors: 'Izradi zapisnik datoteku za greške', + logSearched: 'Izradi zapisnik datoteku za pretražene pjesme', + createM3U8File: 'Izradi playlist datoteku', + syncedLyrics: 'Izradi .lrc datoteke (sinkronizirani lyrics)', + playlistFilenameTemplate: 'Naziv playliste predložak', + saveDownloadQueue: 'Spremi red za preuzimanje prilikom zatvaranja aplikacije' + }, + covers: { + title: 'Omoti albuma', + saveArtwork: 'Spremi omote', + coverImageTemplate: 'Naziv omota predložak', + saveArtworkArtist: 'Spremi sliku izvođača', + artistImageTemplate: 'Slika izvođača predložak', + localArtworkSize: 'Veličina lokalnog omota', + embeddedArtworkSize: 'Veličina ugrađenog omota', + localArtworkFormat: { + title: 'U kojem formatu želite lokalni omot?', + jpg: 'Jpeg slika', + png: 'Png slika', + both: 'I jpeg i png' + }, + jpegImageQuality: 'JPEG kvaliteta slike' + }, + tags: { + head: 'Koja oznake spremam', + title: 'Naslovi', + artist: 'Izvođač', + album: 'Album', + cover: 'Omot', + trackNumber: 'Broj pjesme', + trackTotal: 'Ukupno pjesama', + discNumber: 'Broj diska', + discTotal: 'Ukupno diskova', + albumArtist: 'Izvođač albuma', + genre: 'Žanr', + year: 'Godina', + date: 'Datum', + explicit: 'Eksplicitni lyrics', + isrc: 'ISRC', + length: 'Dužina pjesme', + barcode: 'Album barkod (UPC)', + bpm: 'BPM', + replayGain: 'Replay Gain', + label: 'Izdavačka kuća albuma', + lyrics: 'Nesinkronizirani lyrics', + copyright: 'Autorska prava', + composer: 'Skladatelj', + involvedPeople: 'Uključeni ljudi' + }, + other: { + title: 'Ostalo', + savePlaylistAsCompilation: 'Spremi playliste kao kompilacije', + useNullSeparator: 'Koristi null razdvojnik', + saveID3v1: 'Spremi i ID3v1 također', + multiArtistSeparator: { + title: 'Kako biste željeli razdvojiti izvođače?', + nothing: 'Spremi samo glavnog izvođača', + default: 'Koristeći standardnu specifikaciju', + andFeat: 'Koristeći & i feat.', + using: 'Koristeći "{separator}"' + }, + singleAlbumArtist: 'Spremi samo izvođača glavnog albuma', + albumVariousArtists: 'Zadrži "Various Artists" u Izvođačima albuma', + removeAlbumVersion: 'Izbriši "Album Version" iz naziva pjesme', + removeDuplicateArtists: 'Izbriši kombinacije izvođača', + dateFormat: { + title: 'Format datuma za FLAC datoteke', + year: 'YYYY', + month: 'MM', + day: 'DD' + }, + featuredToTitle: { + title: 'Što trebam napraviti s istaknutim izvođačima? (feat. i ft.)', + 0: 'Ništa', + 1: 'Izbriši ih iz naziva', + 3: 'Izbriši ih iz naziva i iz naziva albuma', + 2: 'Premjesti ih u naziv' + }, + titleCasing: 'Veličina slova naslova', + artistCasing: 'Veličina slova izvođača', + casing: { + nothing: 'Zadrži nepromijenjeno', + lower: 'sve malo', + upper: 'sve VELIKO', + start: 'Početak Svake Riječi', + sentence: 'Kao rečenica' + }, + previewVolume: 'Volumen pregleda', + executeCommand: { + title: 'Naredba za izvršenje nakon preuzimanja', + description: 'Ostavi prazno za bez akcije' + } + }, + spotify: { + title: 'Spotify značajke', + clientID: 'Spotify ClientID', + clientSecret: 'Spotify Client Secret', + username: 'Spotify korisničko ime' + }, + reset: 'Resetiraj na zadano', + save: 'Spremi', + toasts: { + init: 'Postavke učitane!', + update: 'Postavke ažurirane!', + ARLcopied: 'ARL kopiran u međuspremnik' + } + }, + sidebar: { + home: 'početna', + search: 'pretraživanje', + charts: 'ljestvice', + favorites: 'favoriti', + linkAnalyzer: 'analizator linka', + settings: 'postavke', + about: 'o programu' + }, + tracklist: { + downloadSelection: 'Preuzmi selekciju' + } +} + +export default hr diff --git a/webui/src/lang/id.mjs b/webui/src/lang/id.mjs new file mode 100644 index 0000000..cd490a1 --- /dev/null +++ b/webui/src/lang/id.mjs @@ -0,0 +1,357 @@ +const id = { + globals: { + welcome: 'Selamat datang di deemix', + back: 'kembali', + loading: 'memuat', + download: 'Mengunduh {thing}', + by: 'oleh {artist}', + in: 'di {album}', + download_hint: 'Unduh', + play_hint: 'Putar', + toggle_download_tab_hint: 'Buka/Tutup', + clean_queue_hint: 'Berhasil Mengosongkan', + cancel_queue_hint: 'Batalkan Semua', + listTabs: { + empty: '', + all: 'semua', + top_result: 'hasil teratas', + album: 'album | album', + artist: 'artis | artis', + single: 'singel | singel', + title: 'judul | judul', + track: 'lagu | lagu', + trackN: '0 lagu | {n} lagu | {n} lagu', + releaseN: '0 rilis | {n} rilis | {n} rilis', + playlist: 'daftar putar | daftar putar', + compile: 'kompilasi | kompilasi', + ep: 'ep | ep', + spotifyPlaylist: 'daftar putar spotify | daftar putar spotify', + releaseDate: 'tanggal rilis', + error: 'galat' + } + }, + about: { + titles: { + usefulLinks: 'Tautan Berguna', + bugReports: 'Laporan Kesalahan', + contributing: 'Kontirbutor', + donations: 'Donasi', + license: 'Lisensi' + }, + subtitles: { + bugReports: 'Ada yang tidak bekerja dengan baik di deemix? Beri tahu kami!', + contributing: 'Mau kontribusi dalam proyek ini? Kamu bisa lakukan dengan banyak hal!', + donations: 'Mau kontribusi secara finansial? Kamu bisa beri donasi!' + }, + usesLibrary: + 'Aplikasi ini menggunakan pustaka deemix, yang bisa kamu gunakan untuk membuat UI deemix milikmu sendiri.', + thanks: `Terima kasih kepada rtonno, uhwot dan lollilol yang telah membantuku dalam proyek ini, serta kepada BasCurtiz yang telah membuat ikon.`, + upToDate: { + text: `Ikuti {newsChannel} di Telegram agar tidak ketinggalan berita terbaru.`, + newsChannel: 'kanal berita deemix' + }, + officialWebsite: 'Situs Web Resmi', + officialRepo: 'Repositori Pustaka Resmi', + officialWebuiRepo: 'Repositori WebUI Resmi', + officialSubreddit: 'Subreddit Resmi', + newsChannel: 'Kanal Berita', + questions: { + text: `Kalau kamu punya pertanyaan atau masalah dengan aplikasi ini, tolong cari solusinya di {subreddit} kami terlebih dahulu. Kalau memang tidak ada, silakan buat pos baru berisikan persoalan tersebut.`, + subreddit: 'subreddit' + }, + beforeReporting: `Sebelum melaporkan masalah, pastikan kamu sudah memakai versi aplikasi terbaru dan hal yang akan kamu laporkan memang bukan kesalahan dari pihak kamu sendiri.`, + beSure: `Pastikan masalah tersebut bisa diemulasikan di mesin lain, dan juga JANGAN laporkan masalah yang sudah dilaporkan sebelumnya.`, + duplicateReports: 'Laporan duplikat akan kami tutup, jadi perhatikan baik-baik.', + dontOpenIssues: `JANGAN buka issue baru untuk mengirimkan pertanyaan, silakan lakukan di subreddit.`, + newUI: { + text: `Kalau kamu mahir pada python, kamu bisa coba membuat UI baru untuk aplikasi ini menggunakan pustaka dasar, atau membenarkan masalah di pustaka kami dengan melakukan pull request pada {repo} kami.`, + repo: 'repo' + }, + acceptFeatures: `Kami juga menerima fitur baru, tapi jangan yang terlalu kompleks, karena hal itu lebih baik diimplementasikan langsung di aplikasi daripada di pustaka.`, + otherLanguages: `Kalau kamu mahir dengan bahasa pemrograman lain, kamu bisa coba mentransfer deemix ke bahasa tersebut!`, + understandingCode: `Butuh bantuan untuk memahami kode deemix? Kontak waLplanet di Telegram atau Reddit.`, + contributeWebUI: { + text: `Kalau kamu paham Vue.js (JavaScript), HTML, atau CSS, kamu bisa berkontribusi pada {webui}.`, + webui: 'WebUI' + }, + itsFree: `Perlu diingat bahwa ini adalah proyek gratis dan dukung artis idolamu terlebih dahulu sebelum mendukung kami sebagai pengembang aplikasi.`, + notObligated: `Jangan merasa terpaksa untuk menyumbang, kami tetap menghargai kamu!`, + lincensedUnder: { + text: `Pekerjaan ini ada di bawah lisensi {gpl3}.`, + gpl3: 'GNU General Public License 3.0' + } + }, + charts: { + title: 'Tangga Lagu', + changeCountry: 'Ubah Negara', + download: 'Unduh Tangga Lagu' + }, + errors: { + title: 'Galat untuk {name}', + ids: { + invalidURL: 'URL tidak dikenal', + unsupportedURL: 'URL belum didukung', + ISRCnotOnDeezer: 'Lagu ISRC tidak tersedia di deezer', + notYourPrivatePlaylist: 'Kamu tidak bisa mengunduh daftar putar privat orang lain.', + spotifyDisabled: 'Fitur Spotify tidak diatur dengan benar.', + trackNotOnDeezer: 'Lagu tidak ditemukan di deezer!', + albumNotOnDeezer: 'Album tidak ditemukan di deezer!', + notOnDeezer: 'Lagu tidak ada di Deezer!', + notEncoded: 'Lagu belum di-encode!', + notEncodedNoAlternative: 'Lagu belum di-encode dan tidak ada alternatif lain!', + wrongBitrate: 'Lagu tidak tersedia pada bitrate yang diinginkan.', + wrongBitrateNoAlternative: 'Lagu tidak tersedia pada bitrate yang diinginkan dan tidak ada alternatif lain!', + no360RA: 'Lagu tidak tersedia pada Reality Audio 360.', + notAvailable: 'Lagu tidak tersedia pada server deezer!', + notAvailableNoAlternative: 'Lagu tidak tersedia pada server deezer dan tidak ada alternatif lain!' + } + }, + favorites: { + title: 'Favorit', + noPlaylists: 'Daftar Putar kosong', + noAlbums: 'Album Favorit kosong', + noArtists: 'Artis Favorit kosong', + noTracks: 'Lagu Favorit kosong' + }, + home: { + needTologin: 'Kamu harus masuk ke akun Deezer kamu sebelum bisa memulai pengunduhan.', + openSettings: 'Buka Pengaturan', + sections: { + popularPlaylists: 'Daftar putar populer', + popularAlbums: 'Album paling banyak diputar' + } + }, + linkAnalyzer: { + info: 'Di sini, kamu bisa mencari informasi lebih lanjut tentang tautan yang ingin kamu unduh.', + useful: + 'Contohnya, ini dapat berguna jika kamu ingin mengunduh lagu yang tidak tersedia di negaramu dan ingin tahu di negara mana lagu itu tersedia.', + linkNotSupported: 'Tautan seperti ini belum didukung', + linkNotSupportedYet: 'Sepertinya tautan ini belum didukung, silakan coba analisa tautan lain.', + table: { + id: 'ID', + isrc: 'ISRC', + upc: 'UPC', + duration: 'Durasi', + diskNumber: 'Nomor Disk', + trackNumber: 'Nomor Lagu', + releaseDate: 'Tanggal Rilis', + bpm: 'BPM', + label: 'Label', + recordType: 'Tipe Rekaman', + genres: 'Genre', + tracklist: 'Daftar Lagu' + } + }, + search: { + startSearching: 'Mulai cari!', + description: + 'Kamu bisa mencari lagu, album, artis, daftar putar.... apa pun! Kamu juga bisa memberikan tautan Deezer', + fans: '{n} fan', + noResults: 'Tak ada hasil', + noResultsTrack: 'Lagu tidak ditemukan', + noResultsAlbum: 'Album tidak ditemukan', + noResultsArtist: 'Artis tidak ditemukan', + noResultsPlaylist: 'Daftar putar tidak ditemukan' + }, + searchbar: 'Cari apa pun yang kamu mau (atau berikan tautannya saja)', + downloads: 'unduhan', + toasts: { + addedToQueue: '{item} ditambah ke antrian', + alreadyInQueue: '{item} sudah ada di antrian!', + finishDownload: '{item} selesai diunduh.', + allDownloaded: 'Seluruh unduhan selesai!', + refreshFavs: 'Penyegaran selesai!', + loggingIn: 'Masuk', + loggedIn: 'Telah masuk', + alreadyLogged: 'Telah masuk', + loginFailed: 'Tidak bisa masuk', + loggedOut: 'Belum masuk', + cancellingCurrentItem: 'Membatalkan item.', + currentItemCancelled: 'Item telah dibatalan.', + startAddingArtist: 'Menambahkan {artist} album ke antrian', + finishAddingArtist: '{artist} album telah ditambahkan ke antrian', + startConvertingSpotifyPlaylist: 'Mengonversi lagu spotify ke deezer', + finishConvertingSpotifyPlaylist: 'Daftar putar Spotify selesai dikonversi' + }, + settings: { + title: 'Pengaturan', + language: 'Bahasa', + login: { + title: 'Masuk', + loggedIn: 'Kamu telah masuk sebagai {username}', + arl: { + question: 'Bagaimana cara mendapat ARL?', + update: 'Perbarui ARL' + }, + logout: 'Keluar' + }, + appearance: { + title: 'Tampilan', + slimDownloadTab: 'Tab unduhan ramping' + }, + downloadPath: { + title: 'Direktori Unduhan' + }, + templates: { + title: 'Templat', + tracknameTemplate: 'Templat judul lagu', + albumTracknameTemplate: 'Templat judul album', + playlistTracknameTemplate: 'Templat judul daftar putar' + }, + folders: { + title: 'Folders', + createPlaylistFolder: 'Buat folder untuk daftar putar', + playlistNameTemplate: 'Templat folder daftar putar', + createArtistFolder: 'Buat folder untuk artis', + artistNameTemplate: 'Templat folder artis', + createAlbumFolder: 'Buat folder untuk album', + albumNameTemplate: 'Templat folder album', + createCDFolder: 'Buat folder untuk CD', + createStructurePlaylist: 'Buat struktur folder untuk daftar putar', + createSingleFolder: 'Buat struktur folder untuk singel' + }, + trackTitles: { + title: 'Judul lagu', + padTracks: 'Judul pad', + paddingSize: 'Timpa ukuran padding', + illegalCharacterReplacer: 'Pengubah Simbol Tak Terdukung' + }, + downloads: { + title: 'Unduhan', + queueConcurrency: 'Unduhan Bersamaan', + maxBitrate: { + title: 'Bitrate Prioritas', + 9: 'FLAC 1411kbps', + 3: 'MP3 320kbps', + 1: 'MP3 128kbps' + }, + overwriteFile: { + title: 'Apakah file mau ditimpa?', + y: 'Ya, silakan', + n: 'Tidak, jangan ditimpa', + t: 'Timpa tag-nya saja' + }, + fallbackBitrate: 'Rendahkan bitrate', + fallbackSearch: 'Cari bitrate lebih rendah', + logErrors: 'Buat file log untuk galat', + logSearched: 'Buat file log untuk lagu yang dicari', + createM3U8File: 'Buat file daftar putar', + syncedLyrics: 'Buat file .lrc (Sinkronisasikan Lirik)', + playlistFilenameTemplate: 'Templat nama file untuk daftar putar', + saveDownloadQueue: 'Simpan antrian pengunduhan saat menutup aplikasi' + }, + covers: { + title: 'Sampul album', + saveArtwork: 'Simpan Sampul', + coverImageTemplate: 'Templat nama sampul', + saveArtworkArtist: 'Simpan gambar artis', + artistImageTemplate: 'Templat gambar artis', + localArtworkSize: 'Ukuran sampul lokal', + embeddedArtworkSize: 'Ukuran sampul tertanam', + localArtworkFormat: { + title: 'Format gambar apa yang kamu mau untuk sampul lokal?', + jpg: 'Gambar JPEG', + png: 'Gambar PNG', + both: 'Keduanya' + }, + jpegImageQuality: 'Kualitas gambar JPEG' + }, + tags: { + head: 'Tag apa saja yang disimpan?', + title: 'Judul', + artist: 'Artis', + album: 'Album', + cover: 'Sampul', + trackNumber: 'Nomor Lagu', + trackTotal: 'Jumlah Lagu', + discNumber: 'Nomor Disk', + discTotal: 'Jumlah Disk', + albumArtist: 'Artis pada Album', + genre: 'Genre', + year: 'Tahun', + date: 'Tanggal', + explicit: 'Lirik Eksplisit', + isrc: 'ISRC', + length: 'Durasi', + barcode: 'Barcode Album (UPC)', + bpm: 'BPM', + replayGain: 'Replay Gain', + label: 'Label Album', + lyrics: 'Lirik Tak Tersinkronisasi', + copyright: 'Hak Cipta', + composer: 'Komposer', + involvedPeople: 'Orang-Orang Terlibat' + }, + other: { + title: 'Lainnya', + savePlaylistAsCompilation: 'Simpan daftar putar sebagai kompilasi', + useNullSeparator: 'Gunakan separator null', + saveID3v1: 'Simpan juga ID3v1', + multiArtistSeparator: { + title: 'Bagaimana kamu mau memisahkan nama artis?', + nothing: 'Simpan artis utamanya saja', + default: 'Gunakan spesifikasi standard', + andFeat: 'Gunakan & dan feat.', + using: 'Gunakan "{separator}"' + }, + singleAlbumArtist: 'Simpan artis utama saja', + albumVariousArtists: 'Simpan "Various Artists" sebagai artis', + removeAlbumVersion: 'Hapus "Versi Album" dari judul lagu', + removeDuplicateArtists: 'Hapus kombinasi artis', + dateFormat: { + title: 'Format tanggal untuk file FLAC', + year: 'YYYY', + month: 'MM', + day: 'DD' + }, + featuredToTitle: { + title: 'Apa yang harus dilakukan jika ada artis kedua?', + 0: 'Biarkan saja', + 1: 'Hapus dari judul lagu', + 3: 'Hapus dari judul lagu dan judul album', + 2: 'Pindahkan ke judul lagu' + }, + titleCasing: 'Kapitalisasi judul', + artistCasing: 'Kapitalisasi album', + casing: { + nothing: 'Biarkan seadanya', + lower: 'huruf kecil', + upper: 'HURUF KAPITAL', + start: 'Setiap Awal Kata', + sentence: 'Huruf pertama saja' + }, + previewVolume: 'Pratinjau volume', + executeCommand: { + title: 'Perintah yang dijalankan setelah pengunduhan', + description: 'Biarkan kosong jika tidak ada' + } + }, + spotify: { + title: 'Fitur Spotify', + clientID: 'clientID Spotify ', + clientSecret: 'Client Secret Spotify ', + username: 'Username Spotify' + }, + reset: 'Kembalikan ke Awal', + save: 'Simpan', + toasts: { + init: 'Pengaturan dimuat!', + update: 'Pengaturan diperbarui!', + ARLcopied: 'ARL tersalin ke papan klip' + } + }, + sidebar: { + home: 'utama', + search: 'cari', + charts: 'tangga lagu', + favorites: 'favorit', + linkAnalyzer: 'penganalisa tautan', + settings: 'pengaturan', + about: 'tentang' + }, + tracklist: { + downloadSelection: 'Seleksi unduhan' + } +} + +export default id diff --git a/webui/src/lang/index.js b/webui/src/lang/index.js new file mode 100644 index 0000000..b140dac --- /dev/null +++ b/webui/src/lang/index.js @@ -0,0 +1,44 @@ +// Using ISO 639-1 where possible +import ar from '@/lang/ar' +import de from '@/lang/de' +import el from '@/lang/el' +import en from '@/lang/en' +import es from '@/lang/es' +import fil from '@/lang/fil' +import fr from '@/lang/fr' +import hr from '@/lang/hr' +import id from '@/lang/id' +import it from '@/lang/it' +import ko from '@/lang/ko' +import pl from '@/lang/pl' +import pt from '@/lang/pt-pt' +import pt_br from '@/lang/pt-br' +import ru from '@/lang/ru' +import sr from '@/lang/sr' +import th from '@/lang/th' +import tr from '@/lang/tr' +import vi from '@/lang/vi' +import zh_tw from '@/lang/zh-tw' + +export const locales = { + ar, + de, + el, + en, + es, + fil, + fr, + hr, + id, + it, + ko, + pl, + pt_br, + pt, + ru, + sr, + th, + tr, + vi, + zh_tw, +} diff --git a/webui/src/lang/it.mjs b/webui/src/lang/it.mjs new file mode 100644 index 0000000..bd4d21b --- /dev/null +++ b/webui/src/lang/it.mjs @@ -0,0 +1,517 @@ +const it = { + globals: { + welcome: 'Benvenuto su deemix', + back: 'indietro', + loading: 'caricamento', + download: 'Scarica {thing}', + by: 'di {artist}', + in: 'in {album}', + download_hint: 'Scarica', + play_hint: 'Riproduci', + toggle_download_tab_hint: 'Espandi/Riduci', + clean_queue_hint: 'Pulisci Lista', + cancel_queue_hint: 'Cancella tutti i download', + open_downloads_folder: 'Apri la cartella di download', + cut: 'taglia', + copy: 'copia', + copyLink: 'copia link', + copyImageLink: 'copia link immagine', + copyDeezerLink: 'copia link deezer', + paste: 'incolla', + listTabs: { + all: 'tutto', + discography: 'discografia', + top_result: 'miglior risultato', + album: 'album', + artist: 'artista | artisti', + single: 'singolo | singoli', + title: 'titolo | titoli', + track: 'brano | brani', + releaseN: '0 dischi | {n} disco | {n} dischi', + playlist: 'playlist', + compile: 'compilation', + bundle: 'collezione | collezioni', + ep: 'ep', + more: 'Altri album', + featured: 'Compare in', + spotifyPlaylist: 'playlist spotify', + releaseDate: 'data di uscita', + error: 'errore', + empty: '', + trackN: '0 brani | {n} brano | {n} brani', + albumN: '{n} album', + artistN: '0 artisti | {n} artista | {n} artisti', + playlistN: '{n} playlist' + }, + yes: 'sì', + no: 'no', + empty: 'vuoto' + }, + about: { + appStatus: { + online: 'app online', + offline: 'app offline' + }, + updates: { + currentVersion: 'Versione attuale', + currentWebuiVersion: 'Versione WebUI attuale', + versionNotAvailable: 'N/A', + updateAvailable: `Non stai usando l'ultima versione disponibile: {version}`, + deemixVersion: 'Versione libreria deemix' + }, + titles: { + usefulLinks: 'Link Utili', + bugReports: 'Segnalazione di bug', + contributing: 'Contribuire al progetto', + donations: 'Donazioni', + license: 'Licenza' + }, + subtitles: { + bugReports: "C'è qualcosa di deemix che non funziona? Faccelo sapere!", + contributing: 'Vuoi contribuire a questo progetto? Puoi farlo in più modi!', + donations: 'Vuoi dare una mano economicamente? Puoi fare una donazione!' + }, + usesLibrary: + 'Questa app utilizza la libreria deemix, che puoi utilizzare per creare la tua Interfaccia Utente per deemix.', + thanks: `Un ringraziamento a rtonno, uhwot e lollilol per l'aiuto che mi stanno dando in questo progetto e a BasCurtiz per aver creato l'icona.`, + upToDate: { + text: `Rimani al passo con gli ultimi aggiornamenti seguendo il {newsChannel} su Telegram.`, + newsChannel: 'canale delle news' + }, + officialWebsite: 'Sito Ufficiale', + officialRepo: 'Repository Ufficiale della Libreria', + officialWebuiRepo: `Repository Ufficiale dell'Interfaccia Web`, + officialSubreddit: 'Subreddit Ufficiale', + newsChannel: 'Canale delle news', + devlogChannel: 'Canale Devlog', + questions: { + text: `Se dovessi avere domande o problemi con l'app, cerca prima una soluzione nel {subreddit}. Se non trovi nulla, puoi postare li il tuo problema.`, + subreddit: 'subreddit ufficiale' + }, + beforeReporting: `Prima di segnalare un problema controlla che quella che stai usando sia l'ultima versione dell'app e che ciò che vuoi segnalare sia effettivamente un problema e non qualcosa che non funziona solamente a te.`, + beSure: `Assicurati che il problema sia riproducibile su altri PC e NON segnalare un problema che è già stato segnalato.`, + duplicateReports: 'Le segnalazioni doppie verranno chiuse, tienilo presente.', + dontOpenIssues: `NON aprire issues per porre domande, per quello esiste un subreddit.`, + newUI: { + text: `Se te la cavi in python puoi provare a creare una nuova Interfaccia Utente per l'app usando la libreria base, oppure puoi correggere dei problemi nella libreria con una pull request nella {repo}.`, + repo: 'repo' + }, + acceptFeatures: `Accetto anche funzionalità, ma non cose complesse, dato che possono essere implementate direttamente nell'app invece che nella libreria.`, + otherLanguages: `Se te la cavi in altri linguaggi di programmazione, puoi provare a scrivere deemix in quei linguaggi!`, + understandingCode: `Serve aiuto per capire il codice? Scrivi a waLplanet su Telegram o Reddit`, + contributeWebUI: { + text: `Se te la cavi con Vue.js (JavaScript), HTML o CSS, puoi contribuire alla {webui}.`, + webui: 'WebUI' + }, + itsFree: `Ricordati che questo è un progetto gratuito e che dovresti supportare gli artisti che ami prima di supportare gli sviluppatori.`, + notObligated: `Non sentirti obbligato a donare, mi stai simpatico lo stesso!`, + lincensedUnder: { + text: `Questo progetto è sotto la licenza {gpl3}.`, + gpl3: 'GNU General Public License 3.0' + } + }, + charts: { + title: 'Classifiche', + changeCountry: 'Cambia Paese', + download: 'Scarica Classifica' + }, + errors: { + title: 'Errori riguardanti {name}', + postTitle: 'Errori dopo il download', + ids: { + invalidURL: 'URL non riconosciuto', + unsupportedURL: 'URL non ancora supportato', + ISRCnotOnDeezer: 'Questo ISRC non è disponibile su Deezer', + notYourPrivatePlaylist: 'Non puoi scaricare le playlist private degli altri.', + spotifyDisabled: 'Spotify Features non è impostato correttamente.', + trackNotOnDeezer: 'Brano non trovato su Deezer!', + albumNotOnDeezer: 'Album non trovato su Deezer!', + notOnDeezer: 'Brano non disponibile su Deezer!', + notEncoded: 'Brano non ancora codificato!', + notEncodedNoAlternative: 'Brano non ancora codificato e nessuna alternativa trovata!', + wrongBitrate: 'Brano non trovato con il bitrate specificato.', + wrongBitrateNoAlternative: 'Brano non trovato con il bitrate specificato e nessuna alternativa trovata!', + no360RA: 'Brano non disponibile in Reality Audio 360.', + notAvailable: 'Brano non presente sui server di Deezer!', + notAvailableNoAlternative: 'Brano non presente sui server di Deezer e nessuna alternativa trovata!', + noSpaceLeft: 'Spazio su disco esaurito!', + albumDoesntExists: 'Il brano non ha nessun album, impossibile ottenere informazioni', + wrongLicense: 'Il tuo account non può ascoltare brani in {bitrate}.', + wrongGeolocation: 'Il tuo account non può ascoltare questo brano dal tuo paese.', + wrongGeolocationNoAlternative: 'Il tuo account non può ascoltare questo brano dal e nessuna alternativa trovata.' + } + }, + favorites: { + title: 'Preferiti', + noPlaylists: 'Nessuna Playlist preferita trovata', + noAlbums: 'Nessun Album preferito trovato', + noArtists: 'Nessun Artista preferito trovato', + noTracks: 'Nessun Brano preferito trovato' + }, + home: { + needTologin: 'Devi accedere al tuo account Deezer, fino a quel momento non potrai scaricare nulla.', + openSettings: 'Apri le impostazioni', + sections: { + popularPlaylists: 'Playlist Popolari', + popularAlbums: 'Album più riprodotti' + } + }, + linkAnalyzer: { + info: 'Puoi utilizzare questa sezione per avere più informazioni riguardanti il link che stai cercando di scaricare.', + useful: + 'Ciò può esserti utile se stai cercando di scaricare brani che non sono disponibili nel tuo Paese e vuoi sapere in quale Paese sono invece disponibili, per esempio.', + linkNotSupported: 'Questo link non è ancora supportato', + linkNotSupportedYet: 'Sembra che questo link non sia ancora supportato, prova ad analizzarne un altro.', + table: { + id: 'ID', + isrc: 'ISRC', + upc: 'UPC', + duration: 'Durata', + diskNumber: 'Numero Disco', + trackNumber: 'Numero Traccia', + releaseDate: 'Data di uscita', + bpm: 'BPM', + label: 'Etichetta', + recordType: 'Tipologia di registrazione', + genres: 'Generi', + tracklist: 'Lista tracce', + readable: 'Leggibile', + available: 'Disponibile' + }, + countries: 'Paesi', + noCountries: 'Questo brano non è disponibile in nessun paese.' + }, + search: { + startSearching: 'Inizia a cercare!', + description: + 'Puoi cercare un brano, un intero album, un artista, una playlist.... quello che vuoi! Puoi anche incollare un link di Deezer', + fans: '{n} fan', + noResults: 'Nessun risultato', + noResultsTrack: 'Nessun brano trovato', + noResultsAlbum: 'Nessun album trovato', + noResultsArtist: 'Nessun artista trovato', + noResultsPlaylist: 'Nessuna playlist trovata', + error: 'Si è verificato un errore, riprova più tardi.' + }, + searchbar: 'Cerca qualsiasi cosa (o incolla semplicemente un link)', + downloads: 'download', + toasts: { + restoringQueue: 'Ripristinando la coda di download...', + queueRestored: 'Coda di download ripristinata!', + addedToQueue: '{item} aggiunto alla coda', + addedMoreToQueue: '{n} oggetti aggiunti alla coda', + alreadyInQueue: '{item} è già nella coda!', + finishDownload: '{item} ha finito di scaricarsi.', + allDownloaded: 'Tutti i download completati!', + refreshFavs: 'Preferiti ricaricati!', + loggingIn: 'Effettuando il login...', + loggedIn: 'Login effettuato', + alreadyLogged: 'Sei già loggato', + loginFailed: 'Impossibile loggarsi', + loggedOut: 'Disconnesso', + cancellingCurrentItem: 'Cancellando download corrente.', + currentItemCancelled: 'Download corrente cancellato.', + startAddingArtist: 'Aggiungendo gli album di {artist} alla coda', + finishAddingArtist: 'Aggiunto gli album di {artist} alla coda', + startConvertingSpotifyPlaylist: 'Convertendo i brani da spotify a deezer', + finishConvertingSpotifyPlaylist: 'Playlist di spotify convertita', + loginNeededToDownload: 'Devi accedere prima di poter scaricare brani!', + queueErrorCantStream: `Il tuo account non può ascoltare brani in {bitrate}!`, + deezerNotAvailable: 'Deezer non è disponibile nel tuo paese. Dovresti usare una VPN.', + deezerNotReachable: + "L'applicazione non riesce a contattare Deezer. Controlla la tua connessione internet, il tuo firewall o il tuo antivirus.", + startGeneratingItems: 'Elaborando {n} oggetti...', + finishGeneratingItems: '{n} oggetti generati.', + noLovedPlaylist: 'Nessuna playlist "Canzoni del cuore"!', + checkingUpdates: 'Cercando aggiornamenti...', + noUpdateAvailable: 'Nessun aggiornamento trovato', + updateAvailable: 'È disponibile un aggiornamento!', + wrongSpotifyUsername: '{username} non è un username di Spotify valido' + }, + settings: { + title: 'Impostazioni', + language: 'Lingua', + login: { + title: 'Login', + loggedIn: 'Sei loggato come {username}', + arl: { + title: "Usa l'ARL", + question: 'Come ottengo il mio ARL?', + howTo: { + prologue: { + p1: 'Deezer tiene traccia delle sessione di login utilizzando un cookie chiamato ARL.', + p2: 'Deemix utilizza lo stesso cookie per ottenere i dati utili per scaricare i brani da Deezer.', + p3: 'Gli ARL durano un massimo di 3 mesi, dopo di che Deezer ti chiede di rifare il login e te ne assegna un altro. Lo stesso metodo è usato da deemix.', + p4: 'Seguendo una delle prossime guide potrai ottenere il tuo ARL personale.', + warning: 'Usa questo metodo solo se il login con email e password non funziona.' + }, + chromeSteps: { + title: 'Chrome', + step1: 'Apri Chrome', + easyWay: { + title: 'Chrome (Semplificato)', + step3: `Clicca sull'icona del "lucchetto" vicino all'URL`, + step4: 'Clicca su Cookies > deezer.com > cookies > arl', + step5: 'Seleziona il testo vicino a Contenuti, e copiala' + }, + step4: 'Vai nella tab Application (se non la vedi clicca la doppia freccia in fondo alla barra)', + videoGuide: { + text: 'Ecco una {videoGuide}', + link: 'videoguida' + } + }, + firefoxSteps: { + title: 'Firefox', + step1: 'Apri Firefox', + step4: 'Vai nella tab Storage (se non la vedi clicca la doppia freccia in fondo alla barra)' + }, + commonSteps: { + step2: 'Vai su www.deezer.com e effettua il login nel tuo account', + step3: 'Dopo il login premi F12 per aprire i Developer Tools', + step5: 'Apri il dropdown "cookies"', + step6: 'Seleziona www.deezer.com', + step7: 'Trova il cookie `arl` (Dovrebbero essere 192 caratteri)', + step8: 'Copia solo il valore e non il cookie intero', + lastStep: "Quello è il tuo ARL, lo puoi utilizzare nell'app!" + } + }, + update: 'Aggiorna ARL' + }, + logout: 'Disconnettiti', + login: 'Login', + email: 'E-mail', + password: 'Password' + }, + appearance: { + title: 'Aspetto', + slimDownloadTab: 'Tab dei download slim', + slimSidebar: 'Sidebar slim', + searchButton: 'Mostra bottone di ricerca', + bitrateTags: 'Mostra targhetta qualità nei download' + }, + downloadPath: { + title: 'Cartella di download' + }, + templates: { + title: 'Template', + tracknameTemplate: 'Template nome brano', + tracknameAvailableVariables: 'Variabili nome brano disponibili', + albumTracknameTemplate: 'Template nome brano negli Album', + albumTracknameAvailableVariables: 'Variabili nome brano negli Album disponibili', + playlistTracknameTemplate: 'Template nome brano nelle Playlist', + playlistTracknameAvailableVariables: 'Variabili nome brano nelle Playlist disponibili' + }, + folders: { + title: 'Cartelle', + createPlaylistFolder: 'Crea cartelle per le Playlist', + playlistNameTemplate: 'Template nome della cartella Playlist', + createArtistFolder: 'Crea cartelle per gli Artisti', + artistNameTemplate: 'Template nome della cartella Artista', + createAlbumFolder: 'Crea cartelle per gli Album', + albumNameTemplate: 'Template nome della cartella Album', + createCDFolder: 'Crea cartelle per i CD', + createStructurePlaylist: 'Crea la struttura di cartelle per le Playlist', + createSingleFolder: 'Crea la struttura di cartelle per i brani singoli' + }, + trackTitles: { + title: 'Titoli brani', + padTracks: 'Aggiungi zeri ai numeri di traccia', + paddingSize: 'Sovrascrivi il numero di zeri da aggiungere', + illegalCharacterReplacer: 'Rimpiazza caratteri illegali con' + }, + downloads: { + title: 'Download', + queueConcurrency: 'Download simultanei', + maxBitrate: { + title: 'Bitrate preferito', + 9: 'FLAC 1411kbps', + 3: 'MP3 320kbps', + 1: 'MP3 128kbps' + }, + overwriteFile: { + title: 'Dovrei sovrascrivere i file già scaricati?', + y: 'Si, sovrascrivi i file', + n: 'No, non sovrascrivere i file', + t: 'Sovrascrivi solo i tag', + b: 'No, mantieni entrambi i file e aggiungi un numero al duplicato', + e: 'No, e non tener conto della estensione del file', + l: 'Sovrascrivi solo se il bitrate migliora (solo per mp3)' + }, + fallbackBitrate: 'Utilizza bitrate più bassi se il bitrate preferito non è disponibile', + fallbackSearch: 'Cerca il brano se il link originale non è disponibile', + fallbackISRC: 'Cerca tramite ISRC se il brano non è disponibile', + feelingLucky: 'Prova e usa il metodo vecchio di generazione degli URL', + logErrors: 'Crea file di log per gli errori', + logSearched: 'Crea file di log per le alternative cercate', + syncedLyrics: 'Crea i file .lrc (Testi Sincronizzati)', + createM3U8File: 'Crea i file playlist', + playlistFilenameTemplate: 'Template nome del file playlist', + clearQueueOnExit: "Pulisci la coda di download quando chiudi l'app" + }, + covers: { + title: 'Copertine', + saveArtwork: 'Salva copertina album', + coverImageTemplate: 'Template nome copertina album', + saveArtworkArtist: 'Salva copertina artista', + artistImageTemplate: 'Template nome copertina artista', + localArtworkSize: 'Dimensioni copertine locali', + embeddedArtworkSize: 'Dimensioni copertine incorporate', + localArtworkFormat: { + title: 'Come vuoi salvare le copertine locali?', + jpg: 'In jpeg', + png: 'In png', + both: 'Sia in jpeg che in png' + }, + jpegImageQuality: 'Qualità immagine JPEG', + embeddedArtworkPNG: 'Salva copertina incorporata come PNG', + embeddedPNGWarning: 'Le immagini PNG non sono usate ufficialmente da Deezer e potrebbero dare problemi', + imageSizeWarning: + 'Dimensioni maggiori di x1200 non sono usate ufficialmente da Deezer, potresti incontrare problemi', + coverDescriptionUTF8: 'Salva la descrizione della copertina in UTF8 (iTunes Cover Fix)' + }, + tags: { + head: 'Quali tag salvare', + title: 'Titolo', + artist: 'Artista', + artists: 'Tag ARTISTS extra', + album: 'Album', + cover: 'Copertina', + trackNumber: 'Numero Traccia', + trackTotal: 'Tracce Totali', + discNumber: 'Numero Disco', + discTotal: 'Dischi Totali', + albumArtist: "Artista dell'album", + genre: 'Genere', + year: 'Anno', + date: 'Data', + explicit: 'Testo Esplicito', + isrc: 'ISRC', + length: 'Durata Traccia', + barcode: "Barcode dell'album (UPC)", + bpm: 'BPM', + replayGain: 'Replay gain', + label: 'Casa Discografica', + lyrics: 'Testo non Sincronizzato', + syncedLyrics: 'Testo Sincronizzato', + copyright: 'Copyright', + composer: 'Compositori', + involvedPeople: 'Persone Coinvolte', + source: 'Sorgente e ID brano', + artistsWarning: + 'Disabilitare il tag ARTSITS mentre non si sta usando la specificazione standard non salverà il multiartist' + }, + other: { + title: 'Altro', + autoCheckForUpdates: "Controlla aggiornamenti all'avvio", + savePlaylistAsCompilation: 'Salva le playlist come Compilation', + useNullSeparator: 'Usa il carattere NULL come separatore', + saveID3v1: "Salva anche l'ID3v1", + multiArtistSeparator: { + title: 'Come vuoi separare gli artisti?', + nothing: "Salva solo l'artista principale", + default: 'Usando la specificazione standard', + andFeat: 'Usando & e feat.', + using: 'Usando "{separator}"', + warning: + 'Usando qualisasi separatore diverso dallo standard aggiugerà il tag ARTISTS per salvare il multiartist' + }, + singleAlbumArtist: "Salva solo l'artista dell'album principale", + albumVariousArtists: 'Lascia "Artisti Vari" negli artisti dell\'album', + removeAlbumVersion: 'Rimuovi "Album Version" dal titolo del brano', + removeDuplicateArtists: 'Rimuovi le combinazioni di artisti', + dateFormat: { + title: 'Formato della data per i file FLAC', + year: 'AAAA', + month: 'MM', + day: 'GG' + }, + featuredToTitle: { + title: 'Cosa dovrei fare con i feat?', + 0: 'Niente', + 1: 'Rimuovili dal titolo', + 3: "Rimuovili dal titolo e dal nome dell'album", + 2: 'Spostali sul titolo' + }, + titleCasing: 'Formato testo dei titoli', + artistCasing: 'Formato testo degli artisti', + casing: { + nothing: 'Non cambiare', + upper: 'TUTTO MAIUSCOLO', + lower: 'tutto minuscolo', + start: 'Prima Lettera Maiuscola', + sentence: 'Come una frase' + }, + previewVolume: 'Volume Anteprime', + executeCommand: { + title: 'Comando da eseguire dopo il download', + description: 'Lascia vuoto per nessuna azione' + } + }, + spotify: { + title: 'Spotify Features', + clientID: 'Spotify clientID', + clientSecret: 'Spotify Client Secret', + username: 'Spotify username', + question: 'Come attivo le Spotify Features?', + howTo: { + prologue: { + p1: 'Le "Spotify Features" sono degli strumenti che ti permettono di convertire i link dei brani e album di Spotify in link di Deezer.', + p2: "Se inserisci un link di una playlist di Spotify l'app convertirà tutti i brani di Spotify in brani di Deezer.", + p3: 'Abilitando questi strumenti potrai vedere le tue playlist pubbliche di Spotify nella tab favoriti.' + }, + info: 'Per ragioni di sicurezza dovrai fornire dei Client ID e Client Secret personali', + clientSecretQuestion: { + title: 'Come ottengo i miei Client ID e Client Secret?', + step1: { + text: 'Visita la {spotifyDevelopersDashboard} e effettua il login con il tuo account Spotify.', + spotifyDevelopersDashboard: 'Dashboard per sviluppatori di Spotify' + }, + step2: { + text: 'Premi su "Create an App".', + imageAlt: "Bottone Create an App button su Spotify for Developers's Dashboard" + }, + step3: { + text: 'Riempi "App name" e "App description" e spunta tutte le caselle. Poi premi il bottone "Create".', + imageAlt: 'Modulo Create an app' + }, + step4: { + text: 'Ora puoi vedere il tuo Client ID. Se premi su "Show Client Secret" potrai vedere il client secret.', + imageAlt: 'Schermata del client ID e Secret' + }, + step5: 'Ora puoi copiare e incollare i codici nei campi adeguati nelle impostazioni.' + }, + usernameQuestion: { + title: 'Dove trovo il mio Username di Spotify?', + step1: { + text: 'Puoi trovare il tuo Username di Spotify nella {overviewPage} sul sito di Spotify.', + overviewPage: 'Overview page' + } + } + } + }, + reset: 'Reimposta Default', + resetMessage: 'Sei sicuro di voler tornare alle impostazioni di default?', + save: 'Salva', + toasts: { + init: 'Impostazioni caricate!', + update: 'Impostazioni aggiornate!', + reset: 'Impostazioni di default ripristinate!', + ARLcopied: 'ARL copiato negli appunti' + } + }, + sidebar: { + home: 'home', + search: 'ricerca', + charts: 'classifiche', + favorites: 'preferiti', + linkAnalyzer: 'analizza link', + settings: 'impostazioni', + logs: 'log', + about: 'info' + }, + tracklist: { + downloadSelection: 'Scarica selezionati' + } +} + +export default it diff --git a/webui/src/lang/ko.mjs b/webui/src/lang/ko.mjs new file mode 100644 index 0000000..704cc83 --- /dev/null +++ b/webui/src/lang/ko.mjs @@ -0,0 +1,406 @@ +const ko = { + globals: { + welcome: 'Deemix에 오신 것을 환영합니다', + back: '뒤로', + loading: '불러오는 중', + download: '{thing} 다운로드', + by: '- {artist}', + in: '{album} 중', + download_hint: '다운로드', + play_hint: '재생', + toggle_download_tab_hint: '펼치기/접기', + clean_queue_hint: '비우기 완료', + cancel_queue_hint: '모두 취소', + open_downloads_folder: '다운로드 폴더 열기', + cut: '잘라내기', + copy: '복사', + copyLink: '링크 복사', + copyImageLink: '이미지 링크 복사', + copyDeezerLink: 'deezer 링크 복사', + paste: '붙여넣기', + listTabs: { + empty: '', + all: '전체', + top_result: '가장 일치하는 결과', + album: '앨범 | 앨범', + artist: '아티스트 | 아티스트', + single: '싱글 | 싱글', + title: '제목 | 제목', + track: '트랙 | 트랙', + releaseN: '0 발매 | {n} 발매 | {n} 발매', + playlist: '재생목록 | 재생목록', + compile: '편찬물 | 편찬물', + ep: 'ep | eps', + bundle: '번들 | 번들', + more: '더 많은 앨범', + featured: '특집', + spotifyPlaylist: '스포티파이 재생목록 | 스포티파이 재생목록', + releaseDate: '발매일자', + error: '오류', + trackN: '0 트랙 | {n} 트랙 | {n} 트랙', + albumN: '0 앨범 | {n} 앨범 | {n} 앨범', + artistN: '0 아티스트 | {n} 아티스트 | {n} 아티스트', + playlistN: '0 재생목록 | {n} 재생목록 | {n} 재생목록' + } + }, + about: { + appStatus: { + online: '프로그램 온라인', + offline: '프로그램 오프라인' + }, + updates: { + currentVersion: '현재 버전', + currentWebuiVersion: '현재 WebUI 버전', + versionNotAvailable: 'N/A', + updateAvailable: `최신 버전 ({version})으로 업데이트 할 수 있습니다`, + deemixVersion: 'deemix lib 버전' + }, + titles: { + usefulLinks: '유용한 링크', + bugReports: '버그 제보', + contributing: '기여자', + donations: '후원', + license: '이용정책' + }, + subtitles: { + bugReports: '무언가 안되는 것이 있다고요? 말해주세요!', + contributing: '이 프로젝트에 기여하고 싶다고요? 어렵지 않아요!', + donations: '금전적으로 지원하고 싶다고요? 후원하세요!' + }, + usesLibrary: + '이 프로그램은 deemix 라이브러리를 사용합니다, 해당 라이브러리로 자신만의 deemix를 만들 수 있습니다.', + thanks: `이 프로젝트를 도와준 rtonno, uhwot 그리고 lollilol님과 아이콘을 만들어준 BasCurtiz 그리고 scarvimane님에게 감사를.`, + upToDate: { + text: `새로운 업데이트 소식을 듣고 싶으면 텔레그램 {newsChannel}을 참고하세요.`, + newsChannel: '새소식 정보통' + }, + officialWebsite: '공식 웹사이트', + officialRepo: '공식 라이브러리 저장소', + officialWebuiRepo: '공식 WebUI 저장소', + officialSubreddit: '공식 서브레딧', + newsChannel: '새 소식 알리미', + questions: { + text: `프로그램에 대한 질문이나 문제에 관한 것은, 먼저 {subreddit}에서 답변을 검색해보세요. 그리고, 서브레딧에서 답변을 찾기 못한 경우에 다음 순서를 이용해주세요.`, + subreddit: '서브레딧' + }, + beforeReporting: `버그 제보를 하기 전에 먼저 최신 버전의 프로그램을 실행하고 있는지, 제보하고자 하는 것이 버그이지 오로지 당신의 목적을 이루기 위한 요구가 아님을 확인해주세요.`, + beSure: `해당 버그가 다른 장치에서도 재현이 가능한지 확인하고 이미 제보된 버그의 경우에는 중복해서 보고하지 마세요.`, + duplicateReports: '중복된 버그 제보의 경우는 해당 요청을 닫을 것이니, 두 눈 뜨고 지켜보세요.', + dontOpenIssues: `질문에 관한 것은 이슈를 열지 마세요, 서브레딧이 있습니다.`, + newUI: { + text: `만약 당신이 파이썬에 능통하고 기본적인 라이브러리를 이용하여 새로운 UI를 만들었거나, 라이브러리의 버그를 수정하였다면 {repo}에 풀 리퀘스트 해주세요.`, + repo: '저장소' + }, + acceptFeatures: `복잡하지 않은 기능 추가도 받습니다, 라이브러리가 아닌 앱에서 직접 구현할 수 있는 것으로요.`, + otherLanguages: `당신이 다른 프로그램 언어에 능통하면, 이 deemix 프로그램을 다른 프로그래밍 언어로 포팅할 수도 있습니다!`, + understandingCode: `코드를 이해하는 데 도움이 필요합니까? 위에 있는 waLplanet, 텔레그램, 서브레딧 링크를 누르세요.`, + contributeWebUI: { + text: `만약 당신이 Vue.js (JavaScript), HTML 또는 CSS 개발자라면 {webui}에 도움을 주세요.`, + webui: 'WebUI' + }, + itsFree: `사용하기 전에 이 프로그램이 무료 프로젝트이고 개발자를 지원하기 전에 예술가들을 먼저 지원해야 함을 기억하세요.`, + notObligated: `기부는 프로젝트를 지속할 수 있는 동력이 됩니다!`, + lincensedUnder: { + text: `이 작업이 요구하고 있는 라이센스는 아래와 같습니다 {gpl3}.`, + gpl3: 'GNU General Public License 3.0' + } + }, + charts: { + title: '차트', + changeCountry: '국가 변경', + download: '차트 다운로드' + }, + errors: { + title: '오류 발생: {name}', + ids: { + unsupportedURL: 'URL 지원 누락', + invalidURL: 'URL 인식 실패', + ISRCnotOnDeezer: '트랙 코드 식별이 불가능합니다', + notYourPrivatePlaylist: '다른 사람의 비공개 재생 목록을 다운로드 할 수 없습니다.', + spotifyDisabled: '스포티파이 기능이 올바르게 설정되지 않았습니다.', + trackNotOnDeezer: 'Deezer에서 트랙을 찾을 수 없습니다!', + albumNotOnDeezer: 'Deezer에서 앨범을 찾을 수 없습니다!', + notOnDeezer: 'Deezer에서 트랙을 찾을 수 없습니다!', + notEncoded: '트랙이 아직 변환(encode)되지 않았습니다!', + notEncodedNoAlternative: '트랙이 아직 변환(encode)되지 않았을 뿐더러 대체할 것을 찾지 못했습니다!', + wrongBitrate: '요구하는 비트레이트의 트랙을 찾을 수 없습니다.', + wrongBitrateNoAlternative: '요구하는 비트레이트를 찾을 수 없을 뿐더러 대체할 것을 찾지 못했습니다!', + no360RA: '해당 트랙은 360 리얼리티 오디오에 존재하지 않습니다.', + notAvailable: '해당 트랙은 Deezer 서버에 존재하지 않습니다!', + notAvailableNoAlternative: '해당 트랙은 Deezer 서버에 존재하지 않을 뿐더러 대체할 것을 찾지 못했습니다!', + noSpaceLeft: '장치에 여유 공간이 없습니다!', + albumDoesntExists: '트랙의 앨범이 존재하지 않습니다, 정보 수집에 실패했습니다.' + } + }, + favorites: { + title: '즐겨듣는 음악', + noPlaylists: '즐겨듣는 재생목록이 없습니다', + noAlbums: '즐겨듣는 앨범이 없습니다', + noArtists: '즐겨듣는 아티스트가 없습니다', + noTracks: '즐겨듣는 트랙이 없습니다' + }, + home: { + needTologin: '다운로드를 시작하기 전에 Deezer 계정에 로그인을 해야합니다.', + openSettings: '설정 열기', + sections: { + popularPlaylists: '인기있는 재생목록', + popularAlbums: '가장 많이 재생된 앨범' + } + }, + linkAnalyzer: { + info: '이 항목에서는 다운로드를 시도할 링크에 대한 더 많은 정보를 찾을 수 있습니다.', + useful: '접속한 국가에서는 재생할 수 없는 특정 트랙을 다운로드 하기 위해서 가능한 국가를 찾는데 유용하게 쓰입니다.', + linkNotSupported: '해당 링크는 아직 지원하지 않습니다', + linkNotSupportedYet: '해당 링크는 아직 지원하지 않습니다, 다른 링크로 시도해보세요.', + + table: { + id: 'ID', + isrc: 'ISRC', + upc: 'UPC', + duration: '길이', + diskNumber: '디스크 번호', + trackNumber: '트랙 번호', + releaseDate: '발매일자', + bpm: 'BPM', + label: '라벨', + recordType: '녹음 종류', + genres: '장르', + tracklist: '트랙목록' + } + }, + search: { + startSearching: '검색하세요!', + description: '트랙, 아티스트, 재생목록, Deezer 링크 등으로 검색할 수 있습니다!', + + fans: '{n}명의 팬들', + noResults: '결과 없음', + noResultsTrack: '발견된 트랙 없음', + noResultsAlbum: '발견된 앨범 없음', + noResultsArtist: '발견된 아티스트 없음', + noResultsPlaylist: '발견된 재생목록 없음' + }, + searchbar: '원하는 것을 검색하세요 (링크를 붙여넣을 수도 있습니다)', + downloads: '다운로드', + toasts: { + restoringQueue: '다운로드 대기 열 복원중...', + queueRestored: '다운로드 대기 열이 복원되었습니다!', + addedToQueue: '대기열에 {item}(이)가 추가되었습니다', + addedMoreToQueue: '대기열에 {n} 항목이 추가되었습니다', + alreadyInQueue: '{item}(이)가 이미 대기열에 존재합니다!', + finishDownload: '{item} 항목이 다운로드 완료되었습니다.', + allDownloaded: '모든 다운로드가 완료되었습니다!', + refreshFavs: '새로고침이 완료되었습니다!', + loggingIn: '로그인 하는 중...', + loggedIn: '로그인 되었습니다', + alreadyLogged: '이미 로그인되어 있습니다', + loginFailed: '로그인 할 수 없습니다', + loggedOut: '로그아웃 하였습니다', + cancellingCurrentItem: '현재 항목을 취소 중입니다.', + currentItemCancelled: '항목이 취소되었습니다.', + startAddingArtist: '{artist} 앨범을 대기열에 추가 중입니다', + finishAddingArtist: '{artist} 앨범이 대기열에 추가되었습니다', + startConvertingSpotifyPlaylist: '스포티파이 트랙을 Deezer 트랙으로 전환 중입니다', + finishConvertingSpotifyPlaylist: '스프토파이 재생 목록이 전환되었습니다', + loginNeededToDownload: '트랙을 다운로드하려면 로그인이 필요합니다!', + deezerNotAvailable: 'Deezer 사이트는 현재 귀하의 국가에서 사용이 불가능합니다. VPN을 사용하세요.', + startGeneratingItems: '{n}개의 항목 진행중...', + finishGeneratingItems: '{n}개의 항목이 생성되었습니다.' + }, + settings: { + title: '설정', + language: '언어', + login: { + title: '로그인', + loggedIn: '{username}(으)로 로그인되었습니다', + arl: { + question: 'ARL을 어떻게 확인합니까?', + update: 'ARL 업데이트' + }, + logout: '로그아웃', + question: '스포티파이 기능들을 쓰려면 어떻게 해야합니까?' + }, + appearance: { + title: '외관', + slimDownloadTab: '얇은 다운로드 탭', + slimSidebar: '얇은 사이드바' + }, + downloadPath: { + title: '다운로드 경로' + }, + templates: { + title: '템플릿', + tracknameTemplate: '트랙이름 템플릿', + tracknameAvailableVariables: '사용가능한 트랙이름 변수 목록', + albumTracknameTemplate: '앨범 트랙 템플릿', + albumTracknameAvailableVariables: '사용가능한 앨범 트랙 변수 목록', + playlistTracknameTemplate: '재생목록 트랙 템플릿', + playlistTracknameAvailableVariables: '사용가능한 재생 목록 트랙 변수 목록' + }, + folders: { + title: '폴더', + createPlaylistFolder: '재생목록을 위한 폴더 생성', + playlistNameTemplate: '재생목록 폴더 템플릿', + createArtistFolder: '아티스트를 위한 폴더 생성', + artistNameTemplate: '아티스트 폴더 템플릿', + createAlbumFolder: '앨범을 위한 폴더 생성', + albumNameTemplate: '앨범 폴더 템플릿', + createCDFolder: 'CD를 위한 폴더 생성', + createStructurePlaylist: '재생목록을 위한 폴더 구조 생성', + createSingleFolder: '싱글 앨범을 위한 폴더 구조 생성' + }, + trackTitles: { + title: '트랙 제목', + padTracks: '트랙 채워넣기', + paddingSize: '채워넣을 크기', + illegalCharacterReplacer: '지원하지 않는 글자 대체' + }, + downloads: { + title: '다운로드', + queueConcurrency: '동시 다운로드', + maxBitrate: { + title: '선호하는 비트레이트', + 9: 'FLAC 1411kbps', + 3: 'MP3 320kbps', + 1: 'MP3 128kbps' + }, + overwriteFile: { + title: '파일 덮어쓰기 여부', + y: '파일 덮어쓰기', + n: '파일 덮어쓰지 않기', + t: '태그만 덮어쓰기', + b: '모두 유지한 뒤 새 파일에 번호 넣기', + e: '확장자 변경하기' + }, + fallbackBitrate: '비트레이트 대비책', + fallbackSearch: '검색 대비책', + logErrors: '오류 발생시 로그 파일 생성', + logSearched: '검색한 트랙에 대한 로그 파일 생성', + createM3U8File: '재생목록 파일 생성', + syncedLyrics: '.lrc 파일 생성 (가사 동기화)', + playlistFilenameTemplate: '재생목록 파일이름 템플릿', + saveDownloadQueue: '프로그램을 닫을 때 다운로드 대기열 저장' + }, + covers: { + title: '앨범 커버', + saveArtwork: '커버 저장', + coverImageTemplate: '커버 이름 템플릿', + saveArtworkArtist: '아티스트 이미지 저장', + artistImageTemplate: '아티스트 이미지 템플릿', + localArtworkSize: '외부 저장 그림 크기', + embeddedArtworkSize: '내부 저장 그림 크기', + localArtworkFormat: { + title: '별도로 저장할 그림의 형식', + jpg: 'jpeg 이미지', + png: 'png 이미지', + both: 'jpeg와 png 모두' + }, + jpegImageQuality: 'JPEG 이미지 품질', + embeddedArtworkPNG: '포함된 그림의 형식을 PNG로 저장합니다', + embeddedPNGWarning: 'PNG는 Deezer에서 공식적으로 지원하지 않기 때문에 버그가 있을 수 있습니다', + imageSizeWarning: 'x1200 크기를 초과해서는 Deezer에서 공식적으로 사용되지 않기 때문에 문제가 생길 수 있습니다', + coverDescriptionUTF8: '커버 설명을 UTF8 포맷을 이용해 저장합니다 (iTunes 커버 오류 해결)' + }, + tags: { + head: '저장할 태그를 선택하세요', + title: '제목', + artist: '아티스트', + album: '앨범', + cover: '커버', + trackNumber: '트랙 번호', + trackTotal: '전체 트랙 크기', + discNumber: '디스크 번호', + discTotal: '전체 디스크 수', + albumArtist: '앨범 아티스트', + genre: '장르', + year: '연도', + date: '일자', + explicit: '노골적 가사', + isrc: 'ISRC', + length: '트랙 길이', + barcode: '앨범 바코드 (UPC)', + bpm: 'BPM', + replayGain: '리플레이 게인', + label: '앨범 라벨', + lyrics: '비동기 가사', + + copyright: '저작권', + composer: '작곡가', + involvedPeople: '관련있는 사람들', + source: '소스와 음악 ID' + }, + other: { + title: '기타', + savePlaylistAsCompilation: '재생목록을 편찬물로 저장', + useNullSeparator: 'null 구분자 사용', + saveID3v1: 'ID3v1 태그 형식으로 저장', + multiArtistSeparator: { + title: '아티스트를 어떻게 구분하시겠습니까?', + nothing: '주요 아티스트만 저장', + default: '표준 스펙을 사용', + andFeat: '& 기호와 feat 사용.', + using: '"{separator}" 사용' + }, + singleAlbumArtist: '주요 앨범 아티스트만 저장', + albumVariousArtists: '앨범 아티스트에 "Various Artists"(다양한 아티스트들) 유지', + removeAlbumVersion: '트랙 제목에 "Album Version"(앨범 버전) 제거', + removeDuplicateArtists: '아티스트들의 협업 제거', + dateFormat: { + title: 'FLAC 파일의 날짜 형식', + year: 'YYYY', + month: 'MM', + day: 'DD' + }, + featuredToTitle: { + title: '특집에 참여한 아티스트들에 할 수 있는 것이 무엇이 있나요?', + 0: '아무것도 하지 않음', + 1: '제목에서 제거', + 3: '앨범 제목과 트랙에서 제거', + 2: '제목으로 이동' + }, + titleCasing: '제목 케이싱', + artistCasing: '아티스트 케이싱', + casing: { + nothing: '변함없이 유지', + lower: '소문자로', + upper: '대문자로', + start: '각 단어 앞 글자를 대문자로', + sentence: '문장처럼' + }, + previewVolume: '미리듣기 볼륨', + executeCommand: { + title: '다운로드 후 실행할 명령어', + description: '빈칸으로 두면 아무 일도 없습니다' + } + }, + spotify: { + title: '스포티파이 기능', + clientID: 'Spotify ClientID', + clientSecret: 'Spotify Client Secret', + username: 'Spotify 사용자 이름', + question: '스포티파이 기능들을 사용하려면 어떻게 해야 합니까?' + }, + reset: '기본 설정으로 초기화', + resetMessage: '정말 기본 설정으로 돌아가시겠습니까?', + save: '저장', + toasts: { + init: '설정을 불러왔습니다!', + update: '새로운 설정으로 갱신되었습니다!', + reset: '설정이 원래대로 초기화 되었습니다!', + ARLcopied: 'ARL가 클립보드에 복사되었습니다' + } + }, + sidebar: { + home: '홈', + search: '검색', + charts: '차트', + favorites: '즐겨찾기', + linkAnalyzer: '링크 분석기', + settings: '설정', + about: '정보' + }, + tracklist: { + downloadSelection: '선택 다운로드' + } +} + +export default ko diff --git a/webui/src/lang/pl.mjs b/webui/src/lang/pl.mjs new file mode 100644 index 0000000..0374219 --- /dev/null +++ b/webui/src/lang/pl.mjs @@ -0,0 +1,384 @@ +const pl = { + globals: { + welcome: 'Witaj w deemix', + back: 'wróć', + loading: 'ładowanie', + download: 'Pobierz {thing}', + by: 'od {artist}', + in: 'w {album}', + download_hint: 'Pobierz', + play_hint: 'Odtwórz', + toggle_download_tab_hint: 'Rozszerz/Zwiń', + clean_queue_hint: 'Wyczyść ukończone', + cancel_queue_hint: 'Anuluj wszystkie', + open_downloads_folder: 'Otwórz pobrane', + cut: 'wytnij', + copy: 'kopiuj', + copyLink: 'kopiuj link', + copyImageLink: 'kopiuj link obrazu', + copyDeezerLink: 'kopiuj link deezera', + paste: 'wklej', + listTabs: { + empty: '', + all: 'wszystkie', + top_result: 'najlepszy wynik', + album: 'album | albumy', + artist: 'artysta | artyści', + single: 'singiel | single', + title: 'tytuł | tytuły', + track: 'utwór | utwory', + trackN: '0 utworów | {n} utwór | {n} utworów', + releaseN: '0 wydań | {n} wydanie | {n} wydań', + playlist: 'playlista | playlisty', + compile: 'kompilacja | kompilacje', + ep: 'ep | ep', + bundle: 'zestaw | zestawy', + more: 'Więcej albumów', + featured: 'Występuje w', + spotifyPlaylist: 'playlista spotify | playlisty spotify', + releaseDate: 'data wydania', + error: 'błąd' + } + }, + about: { + updates: { + currentVersion: 'Obecna wersja', + versionNotAvailable: 'N/A', + updateAvailable: `Nie masz najnowszej dostępnej wersji: {version}`, + deemixVersion: 'Wersja biblioteki deemix' + }, + titles: { + usefulLinks: 'Przydatne linki', + bugReports: 'Zgłoszenia błędów', + contributing: 'Wkład', + donations: 'Dotacje', + license: 'Licencja' + }, + subtitles: { + bugReports: 'Czy deemix działa inaczej niż powinien? Powiedz nam!', + contributing: 'Chcesz pomóc w tym projekcie? Możesz to zrobić na wiele sposobów!', + donations: 'Chcesz pomóc finansowo? Możesz nas wesprzeć!' + }, + usesLibrary: + 'Ten program używa biblioteki deemix, której możesz użyć do stworzenia własnego interfejsu użytkownika', + thanks: `Podziękowania dla rtonno, uhwot i lollilol za pomoc w tym projekcie oraz dla BasCurtiz za stworzenie ikony.`, + upToDate: { + text: `Bądź na bieżąco z aktualizacjami dołączając do {newsChannel} na Telegramie.`, + newsChannel: 'kanału wiadomości' + }, + officialWebsite: 'Oficjalna strona', + officialRepo: 'Oficjalne repozytorium biblioteki', + officialWebuiRepo: 'Oficjalne repozytorium WebUI', + officialSubreddit: 'Oficjalny subreddit', + newsChannel: 'Kanał wiadomości', + questions: { + text: `Jeżeli masz pytania lub problemy związane z aplikacją, szukaj odpowiedzi na {subreddit}. Jeżeli niczego nie znajdziesz, stwórz post na subreddicie.`, + subreddit: 'subreddicie' + }, + beforeReporting: `Przed zgłaszaniem błędu upewnij się, że masz najnowszą wersje aplikacji i to, co chcesz zgłosić jest błędem, a nie usterką z twojej strony.`, + beSure: `Upewnij się, że błąd można odtworzyć na innych urządzeniach i NIE ZGŁASZAJ błędów, które zostały już zgłoszone`, + duplicateReports: 'Identyczne zgłoszenia błędów będą zamykane, więc zwróć na to uwagę.', + dontOpenIssues: `NIE OTWIERAJ zgłoszeń do zadawania pytań, od tego jest subreddit.`, + newUI: { + text: `Jeżeli dobrze znasz Pythona, możesz spróbować stworzyć nowy interfejs dla aplikacji używając bazowej biblioteki lub naprawiać błędy w bibliotece tworząc pull request w {repo}.`, + repo: 'repozytorium' + }, + acceptFeatures: `Przyjmuję nowe funkcje, ale nic złożonego, co mogłoby być zaimplementowane w aplikacji, a nie w bibliotece.`, + otherLanguages: `Jeżeli dobrze znasz inny język programowania, możesz spróbować przeportować deemix do innych języków!`, + understandingCode: `Potrzebujesz pomocy w zrozumieniu kodu? Zapytaj waLplanet na Telegramie lub Reddicie.`, + contributeWebUI: { + text: `Jeżeli znasz Vue.js (JavaScript), HTML lub CSS, możesz pomóc w {webui}.`, + webui: 'WebUI' + }, + itsFree: `Pamiętaj, że ten projekt jest darmowy i powinieneś wspierać artystów przed twórcami aplikacji.`, + notObligated: `Nie czuj potrzeby płacenia, i tak cię doceniam!`, + lincensedUnder: { + text: `Ten projekt jest chroniony licencją {gpl3}.`, + gpl3: 'GNU General Public License 3.0' + } + }, + charts: { + title: 'Wykresy', + changeCountry: 'Zmień kraj', + download: 'Pobierz wykres' + }, + errors: { + title: 'Błędy dla {name}', + ids: { + invalidURL: 'Nierozpoznany URL', + unsupportedURL: 'Niewspierany URL', + ISRCnotOnDeezer: 'ISRC nie jest dostępne na Deezerze', + notYourPrivatePlaylist: 'Nie możesz pobierać czyichś prywatnych playlist.', + spotifyDisabled: 'Funkcje Spotify nie są poprawnie ustawione', + trackNotOnDeezer: 'Nie znaleziono utworu na Deezerze!', + albumNotOnDeezer: 'Nie znaleziono albumu na Deezerze!', + notOnDeezer: 'Utwór nie jest dostępny na Deezerze!', + notEncoded: 'Utwór nie jest jeszcze zakodowany!', + notEncodedNoAlternative: 'Utwór nie jest jeszcze zakodowany i nie można znaleźć alternatywy!', + wrongBitrate: 'Nie znaleziono utworu w wybranym bitrate.', + wrongBitrateNoAlternative: 'Nie znaleziono utworu w wybranym bitrate i nie mozna znaleźć alternatywy!', + no360RA: 'Utwór nie jest dostępny w Reality Audio 360.', + notAvailable: 'Utwór nie jest dostępny na serwerach Deezera!', + notAvailableNoAlternative: 'Utwór nie jest dostępny na serwerach Deezera i nie można znaleźć alternatywy!' + } + }, + favorites: { + title: 'Ulubione', + noPlaylists: 'Nie znaleziono playlist', + noAlbums: 'Nie znaleziono ulubionych albumów', + noArtists: 'Nie znaleziono ulubionych artystów', + noTracks: 'Nie znaleziono ulubonych utworów' + }, + home: { + needTologin: 'Musisz się zalogwać do konta na Deezerze zanim zaczniesz pobierać.', + openSettings: 'Otwórz ustawienia', + sections: { + popularPlaylists: 'Popularne playlisty', + popularAlbums: 'Najpopularniejsze albumy' + } + }, + linkAnalyzer: { + info: 'Możesz użyć tej sekcji, aby znaleźć więcej informacji o linku, który chcesz pobrać.', + useful: + 'Jest to przydatne na przykład gdy chcesz pobrać jakieś utwory, które nie są dostępne w twoim kraju i chcesz wiedzieć gdzie są dostępne.', + linkNotSupported: 'Ten link nie jest jeszcze wspierany', + linkNotSupportedYet: 'Wygląda na to, że ten link nie jest jeszcze wspierany. Spróbuj przeanalizować inny.', + table: { + id: 'ID', + isrc: 'ISRC', + upc: 'UPC', + duration: 'Czas', + diskNumber: 'Numer płyty', + trackNumber: 'Numer utworu', + releaseDate: 'Data wydania', + bpm: 'BPM', + label: 'Wytwórnia', + recordType: 'Rodzaj wydania', + genres: 'Gatunki', + tracklist: 'Lista utworów' + } + }, + search: { + startSearching: 'Zacznij szukać!', + description: 'Możesz wyszukać utwór, album, artystę, playlistę... wszystko! Możesz też wkleić link do Deezera', + fans: '{n} fanów', + noResults: 'Brak wyników', + noResultsTrack: 'Nie znaleziono utworów', + noResultsAlbum: 'Nie znaleziono albumów', + noResultsArtist: 'Nie znaleziono artystów', + noResultsPlaylist: 'Nie znaleziono playlist' + }, + searchbar: 'Szukaj czego chcesz (lub wklej link)', + downloads: 'pobrane', + toasts: { + restoringQueue: 'Przywracanie kolejki pobierania...', + queueRestored: 'Przywrócono kolejkę pobierania!', + addedToQueue: 'Dodano {item} do kolejki', + addedMoreToQueue: 'Dodano {n} przedmiotów do kolejki', + alreadyInQueue: '{item} jest już w kolejce!', + finishDownload: 'Ukończono pobieranie {item}.', + allDownloaded: 'Pobrano wszystkie!', + refreshFavs: 'Ukończono odświeżanie!', + loggingIn: 'Logowanie...', + loggedIn: 'Zalogowano', + alreadyLogged: 'Już zalogowano', + loginFailed: 'Nie można zalogować', + loggedOut: 'Wylogowano', + cancellingCurrentItem: 'Anulowanie przedmiotu.', + currentItemCancelled: 'Anulowano przedmiot.', + startAddingArtist: 'Dodawanie {artist} albumów do kolejki', + finishAddingArtist: 'Dodano {artist} albumów do kolejki', + startConvertingSpotifyPlaylist: 'Konwertowanie utworów Spotify na Deezer', + finishConvertingSpotifyPlaylist: 'Przekonwertowano playlistę Spotify', + loginNeededToDownload: 'Musisz się zalogować, aby pobierać utwory!' + }, + settings: { + title: 'Ustawienia', + language: 'Język', + login: { + title: 'Logowanie', + loggedIn: 'Zalogowano jako {username}', + arl: { + question: 'Jak zdobyć swój własny ARL?', + update: 'Zakualizuj ARL' + }, + logout: 'Wyloguj', + login: 'Zaloguj przez deezer.com' + }, + appearance: { + title: 'Wygląd', + slimDownloadTab: 'Cienka karta pobranych' + }, + downloadPath: { + title: 'Ścieżka pobierania' + }, + templates: { + title: 'Szablony', + tracknameTemplate: 'Szablon utworu', + albumTracknameTemplate: 'Szablon utworu z albumu', + playlistTracknameTemplate: 'Szablon utworu z playlisy' + }, + folders: { + title: 'Foldery', + createPlaylistFolder: 'Utwórz foldery dla playlist', + playlistNameTemplate: 'Szablon folderu playlisty', + createArtistFolder: 'Utwórz foldery dla artystów', + artistNameTemplate: 'Szablon folderu artysty', + createAlbumFolder: 'Utwórz foldery dla albumów', + albumNameTemplate: 'Szablon folderu albumu', + createCDFolder: 'Utwórz foldery dla płyt', + createStructurePlaylist: 'Utwórz strukturę folderów dla playlist', + createSingleFolder: 'Utwórz strukturę folderów dla singli' + }, + trackTitles: { + title: 'Tytuły utworow', + padTracks: 'Wypchaj utwory', + paddingSize: 'Rozmiar wypchania', + illegalCharacterReplacer: 'Zamiennik niedozwolonych znaków' + }, + downloads: { + title: 'Pobrane', + queueConcurrency: 'Równoległe pobieranie', + maxBitrate: { + title: 'Bitrate', + 9: 'FLAC 1411kbps', + 3: 'MP3 320kbps', + 1: 'MP3 128kbps' + }, + overwriteFile: { + title: 'Nadpisywać pliki?', + y: 'Tak', + n: 'Nie', + t: 'Tylko tagi', + b: 'Nie, dodaj numer do drugiego pliku', + e: 'Nie, nie patrz na rozszerzenia' + }, + fallbackBitrate: 'Rezerwowy bitrate', + fallbackSearch: 'Rezerwowe wyszukiwanie', + logErrors: 'Utwórz plik dziennika błędów', + logSearched: 'Utwórz plik dziennika wyszukiwanych utworów', + createM3U8File: 'Utwórz plik playlisty', + syncedLyrics: 'Utwórz plik .lrc (synchronizowany tekst)', + playlistFilenameTemplate: 'Szablon pliku playlisty', + saveDownloadQueue: 'Zapisz kolejkę pobierania przy zamykaniu aplikacji' + }, + covers: { + title: 'Okładki albumów', + saveArtwork: 'Zapisz okładki', + coverImageTemplate: 'Szablon nazwy okładki', + saveArtworkArtist: 'Zapisz zdjęcie artysty', + artistImageTemplate: 'Szablon zdjęcia artysty', + localArtworkSize: 'Rozmiar lokalnej okładki', + embeddedArtworkSize: 'Rozmiar osadzonej okładki', + localArtworkFormat: { + title: 'W jakim formacie ma zostać zapisana okładka?', + jpg: 'Plik JPEG', + png: 'Plik PNG', + both: 'Pliki JPEG i PNG' + }, + jpegImageQuality: 'Jakość JPEG', + embeddedArtworkPNG: 'Zapisz osadzoną okładkę jako PNG', + embeddedPNGWarning: 'PNG nie jest oficjalnie wspierane przez Deezer i może powodować błędy', + imageSizeWarning: 'Wszystko powyżej x1200 nie jest oficjalnie używane przez Deezera, więc mogą wystąpić problemy.' + }, + tags: { + head: 'Które tagi zapisać', + title: 'Tytuł', + artist: 'Artysta', + album: 'Album', + cover: 'Okładka', + trackNumber: 'Numer utworu', + trackTotal: 'Liczba utworów', + discNumber: 'Numer płyty', + discTotal: 'Liczba płyt', + albumArtist: 'Album Artist', + genre: 'Gatunek', + year: 'Rok', + date: 'Data', + explicit: 'Wulgarny tekst', + isrc: 'ISRC', + length: 'Długość', + barcode: 'Kod kreskowy albumu (UPC)', + bpm: 'BPM', + replayGain: 'Replay Gain', + label: 'Wytwórnia', + lyrics: 'Niezsynchronizowany tekst', + syncedLyrics: 'Zsynchronizowany tekst', + copyright: 'Prawa autorskie', + composer: 'Kompozytor', + involvedPeople: 'Zaangażowane osoby' + }, + other: { + title: 'Inne', + savePlaylistAsCompilation: 'Zapisz playlisty jako kompilacje', + useNullSeparator: 'Użyj separatora null', + saveID3v1: 'Zapisz ID3v1', + multiArtistSeparator: { + title: 'Jak oddzielić artystów?', + nothing: 'Zapisz tylko głównego artystę', + default: 'Standardowa specyfikacja', + andFeat: '& i feat.', + using: 'Używa "{separator}"' + }, + singleAlbumArtist: 'Zapisz tylko głównego autora albumu', + albumVariousArtists: 'Zostaw "Various Artists" w autorach albumu', + removeAlbumVersion: 'Usuń "Album Version" z tytułu utworu', + removeDuplicateArtists: 'Usuń kombinacje artystów', + dateFormat: { + title: 'Format daty dla plików FLAC', + year: 'YYYY', + month: 'MM', + day: 'DD' + }, + featuredToTitle: { + title: 'Co zrobić z dodatkowymi artystami?', + 0: 'Nic', + 1: 'Usuń z tytułu', + 3: 'Usuń z tytułu i tytułu albumu', + 2: 'Przenieś do tytułu' + }, + titleCasing: 'Rozmiar liter tytułu', + artistCasing: 'Rozmiar liter artysty', + casing: { + nothing: 'Zostaw', + lower: 'małe litery', + upper: 'DUŻE LITERY', + start: 'Na Początku Każdego Słowa', + sentence: 'Jak w zdaniu' + }, + previewVolume: 'Głośność podglądu', + executeCommand: { + title: 'Polecenie do wykonania po pobraniu', + description: 'Zostaw puste, aby nic nie robić' + } + }, + spotify: { + title: 'Funkcje Spotify', + clientID: 'Spotify ClientID', + clientSecret: 'Spotify Client Secret', + username: 'Nazwa użytkownika', + question: 'Jak włączyć funkcje Spotify?' + }, + reset: 'Przywróć domyślne', + save: 'Zapisz', + toasts: { + init: 'Załadowano ustawienia!', + update: 'Zaktualizowano ustawienia!', + ARLcopied: 'Skopiowano ARL do schowka' + } + }, + sidebar: { + home: 'strona główna', + search: 'szukaj', + charts: 'wykresy', + favorites: 'ulubione', + linkAnalyzer: 'analiza linków', + settings: 'ustawienia', + about: 'informacje' + }, + tracklist: { + downloadSelection: 'Pobierz wybrane' + } +} + +export default pl diff --git a/webui/src/lang/pt-br.mjs b/webui/src/lang/pt-br.mjs new file mode 100644 index 0000000..47e2428 --- /dev/null +++ b/webui/src/lang/pt-br.mjs @@ -0,0 +1,517 @@ +const pt_br = { + globals: { + welcome: 'bem-vindo ao deemix', + back: 'voltar', + loading: 'carregando', + download: 'Baixar {thing}', + by: 'por {artist}', + in: 'em {album}', + download_hint: 'Baixar', + play_hint: 'Reproduzir', + toggle_download_tab_hint: 'Expandir/Recolher', + clean_queue_hint: 'Limpar', + cancel_queue_hint: 'Cancelar todos', + open_downloads_folder: 'Abrir pasta de downloads', + cut: 'recortar', + copy: 'copiar', + copyLink: 'copiar link', + copyImageLink: 'copiar link da imagem', + copyDeezerLink: 'copiar link do deezer', + paste: 'colar', + listTabs: { + empty: '', + all: 'todos', + discography: 'discografia', + top_result: 'resultado principal', + album: 'álbum | álbuns', + artist: 'artista | artistas', + single: 'single | singles', + title: 'título | títulos', + track: 'faixa | faixas', + playlist: 'playlist | playlists', + compile: 'compilação | compilações', + ep: 'ep | eps', + bundle: 'pacote | pacotes', + more: 'Mais álbuns', + featured: 'Participação em', + spotifyPlaylist: 'playlist do Spotify | playlists do Spotify', + releaseDate: 'data de lançamento', + error: 'erro', + trackN: '0 faixas | {n} faixa | {n} faixas', + albumN: '0 álbuns | {n} álbum | {n} álbuns', + artistN: '0 artistas | {n} artista | {n} artistas', + releaseN: '0 lançamentos | {n} lançamento | {n} lançamentos', + playlistN: '0 playlists | {n} playlist | {n} playlists' + }, + yes: 'sim', + no: 'não', + empty: 'vazio' + }, + about: { + appStatus: { + online: 'app online', + offline: 'app offline' + }, + updates: { + currentVersion: 'Versão atual', + currentWebuiVersion: 'Versão WebUI atual', + versionNotAvailable: 'N/A', + updateAvailable: `Você está executando a versão mais recente: {version}`, + deemixVersion: 'versão do deemix lib' + }, + titles: { + usefulLinks: 'Links úteis', + bugReports: 'Reportar bugs', + contributing: 'Contribuições', + donations: 'Doações', + license: 'Licença' + }, + subtitles: { + bugReports: 'Algo não funcionando no deemix? Nos diga!', + contributing: 'Você quer contribuir para este projeto? Você pode fazer isso de diferentes maneiras!', + donations: 'Você quer contribuir monetariamente? Você pode fazer uma doação!' + }, + usesLibrary: + 'Esse app usa a biblioteca do deemix, no qual você pode usar para criar sua própria UI para o deemix', + thanks: `Agradecimentos para rtonno, uhwot e lollilol por ajudar neste projeto, e para BasCurtiz por fazer o ícone`, + upToDate: { + text: `Para mais novidades siga o {newsChannel} no Telegram.`, + newsChannel: 'canal de notícias' + }, + officialWebsite: 'Site oficial', + officialRepo: 'Repositório oficial da biblioteca', + officialWebuiRepo: 'Repositório oficial da WebUI', + officialSubreddit: 'Subreddit oficial', + newsChannel: 'Canal de notícias', + devlogChannel: 'Canal Devlog', + questions: { + text: `Se você tiver dúvidas ou problemas com o app, procure uma solução em {subreddit} primeiro. Caso você não encontre, você pode fazer um post explicando seu problema no subreddit.`, + subreddit: 'subreddit' + }, + beforeReporting: `Antes de reportar um bug, tenha certeza que você está rodando a versão mais recente do app, e o que você quer reportar seja realmente um bug e não algo que esteja acontecendo especialmente com você.`, + beSure: `Certifique-se que o bug é reproduzivel em outras máquinas e também NÃO reporte um bug se ele já foi reportado.`, + duplicateReports: 'Reportes de bugs duplicados serão fechados, então fique atento a isso.', + dontOpenIssues: `NÃO abra tópicos para fazer perguntas, há o subreddit para isso.`, + newUI: { + text: `Se você é fluente em Phython, você pode tentar fazer uma nova UI para o app usando a biblioteca base, ou consertar bugs da biblioteca com um pull request em {repo}.`, + repo: 'repo' + }, + acceptFeatures: `Eu aceito funcionalidades extras também, mas nada de coisas complexas, desde que ela possa ser implementada no app, e não na biblioteca.`, + otherLanguages: `Se você for fluente em outra linguagem de programação, você pode tentar portar o deemix para outra linguagem!`, + understandingCode: `Você precisa de ajuda para entender o código? Mande mensagem no RemixDex pelo Telegram ou pelo Reddit.`, + contributeWebUI: { + text: `Se você souber Vue.js (JavaScript), HTML ou CSS você pode contribuir para o {webui}.`, + webui: 'WebUI' + }, + itsFree: `Lembre-se que este projeto é livre e você deve dar suporte aos artistas que você ama antes de dar suporte aos desenvolvedores.`, + notObligated: `Não se sinta na obrigação de doar, eu agradeço de qualquer maneira!`, + lincensedUnder: { + text: `Esse é um projeto licenciado através da {gpl3}.`, + gpl3: 'GNU General Public License 3.0' + } + }, + charts: { + title: 'Mais ouvidas', + changeCountry: 'Mudar país', + download: 'Baixar mais ouvidas' + }, + errors: { + title: 'Erros para {name}', + postTitle: 'Após erros de download', + ids: { + invalidURL: 'URL inválido', + unsupportedURL: 'URL não suportado ainda', + ISRCnotOnDeezer: 'Faixa ISRC não está disponível ainda no Deezer', + notYourPrivatePlaylist: 'Você não pode baixar playlists privadas.', + spotifyDisabled: 'Os Recursos do Spotify não foram configurados corretamente.', + trackNotOnDeezer: 'Faixa não encontrada no Deezer!', + albumNotOnDeezer: 'Álbum não encontrado no Deezer!', + notOnDeezer: 'Faixa indisponível no Deezer!', + notEncoded: 'Faixa ainda não codificada!', + notEncodedNoAlternative: 'Faixa ainda não codificada e sem alternativas encontradas!', + wrongBitrate: 'Faixa não encontrada no bitrate desejado.', + wrongBitrateNoAlternative: 'Faixa não encontrada no bitrate desejado e nenhuma outra alternativa encontrada!', + no360RA: 'Faixa não disponível na qualidade Reality Audio 360.', + notAvailable: 'Faixa não disponível nos servidores do Deezer!', + notAvailableNoAlternative: + 'Faixa não disponível nos servidores do Deezer e nenhuma outra alternativa encontrada!', + noSpaceLeft: 'Espaço insuficiente no dispositivo!', + albumDoesntExists: 'O álbum da faixa não exite, falha ao obter informações.', + wrongLicense: 'A sua conta não permite reproduzir a faixa na qualidade desejada.', + wrongGeolocation: 'A sua conta não permite reproduzir a faixa a partir do país atual.', + wrongGeolocationNoAlternative: + "A sua conta não permite reproduzir a faixa a partir do país atual e nenhuma alternativa foi encontrada." + } + }, + favorites: { + title: 'Favoritos', + noPlaylists: 'Nenhuma playlist encontrada', + noAlbums: 'Nenhum álbum favorito encontrado', + noArtists: 'Nenhum artista favorito encontrado', + noTracks: 'Nenhuma faixa favorita encontrada' + }, + home: { + needTologin: 'Você precisa logar na sua conta do Deezer antes de começar a baixar músicas.', + openSettings: 'Abrir Configurações', + sections: { + popularPlaylists: 'Playlists populares', + popularAlbums: 'Álbuns mais ouvidos' + } + }, + linkAnalyzer: { + info: 'Você pode usar essa seção para encontrar mais informações sobre o link que você quer baixar.', + useful: + 'Isso é útil se você está tentando baixar algumas faixas que não estão disponíveis no seu país, e quer saber onde elas estão disponíveis, por exemplo.', + linkNotSupported: 'Esse link não é suportado ainda', + linkNotSupportedYet: 'Parece que esse link não é suportado ainda, tente analisar outro.', + table: { + id: 'ID', + isrc: 'ISRC', + upc: 'UPC', + duration: 'Duração', + diskNumber: 'Número do disco', + trackNumber: 'Número da faixa', + releaseDate: 'Data de lançamento', + bpm: 'BPM', + label: 'Gravadora', + recordType: 'Tipo de gravação', + genres: 'Gêneros', + tracklist: 'Tracklist', + readable: 'Leitura possível', + available: 'Disponível' + }, + countries: 'Países', + noCountries: 'Esta faixa não está disponível em qualquer país.' + }, + search: { + startSearching: 'Comece pesquisando!', + description: + 'Você pode pesquisar uma música, um álbum, um artista, uma playlist.... tudo! Você também pode colar um link do Deezer', + fans: '{n} fãs', + noResults: 'Nenhum resultado', + noResultsTrack: 'Nenhuma faixa encontrada', + noResultsAlbum: 'Nenhum álbum encontrado', + noResultsArtist: 'Nenhum artista encontrado', + noResultsPlaylist: 'Nenhuma playlist encontrada', + error: 'Ocorreu um erro. Tente novamente mais tarde.' + }, + searchbar: 'Pesquise algo (ou apenas cole um link)', + downloads: 'downloads', + toasts: { + restoringQueue: 'Restaurando fila de downloads...', + queueRestored: 'Fila de downloads restaurada!', + addedToQueue: '{item} adicionado à fila', + addedMoreToQueue: '{n} itens adicionados à fila', + alreadyInQueue: '{item} já está na fila!', + finishDownload: '{item} download concluído.', + allDownloaded: 'Todos os downloads foram concluídos!', + refreshFavs: 'Atualização concluída!', + loggingIn: 'Logando', + loggedIn: 'Logado', + alreadyLogged: 'Você já está logado', + loginFailed: 'Não foi possível entrar', + loggedOut: 'Desconectando', + cancellingCurrentItem: 'Cancelando item atual.', + currentItemCancelled: 'Item atual cancelado.', + startAddingArtist: 'Adicionando álbuns de {artist} à fila', + finishAddingArtist: 'Álbuns de {artist}adicionados a fila', + startConvertingSpotifyPlaylist: 'Convertendo faixas do Spotify para faixas do Deezer', + finishConvertingSpotifyPlaylist: 'Playlists do Spotify convertidas', + loginNeededToDownload: 'Você precisa fazer login para baixar faixas!', + queueErrorCantStream: `Sua conta não pode reproduzir a {bitrate}!`, + deezerNotAvailable: 'Deezer não disponível no seu país. Você precisa usar uma VPN.', + deezerNotReachable: "O aplicativo não consegue conectar-se ao Deezer. Verifique sua conexão com a Internet, firewall ou antivírus.", + startGeneratingItems: 'Processando {n} itens...', + finishGeneratingItems: '{n} itens gerados.', + noLovedPlaylist: 'Nenhuma playlist de músicas curtidas!', + checkingUpdates: 'Verificando por atualizações...', + noUpdateAvailable: 'Nenhuma atualização disponível', + updateAvailable: 'Uma atualização está disponível!', + wrongSpotifyUsername: '{username} não é um nome de usuário válido do Spotify' + }, + settings: { + title: 'Configurações', + language: 'Idioma', + login: { + title: 'Login', + loggedIn: 'Você está logado como {username}', + arl: { + title: 'Usar ARL', + question: 'Como eu consigo o meu ARL?', + howTo: { + prologue: { + p1: 'O Deezer mantém o registro de login da sessão usando um cookie chamado ARL.', + p2: 'O Deemix usa este cookie para obter os metadados necessários para fazer o download das faixas do Deezer.', + p3: 'ARLs duram por 3 meses, após isto o Deezer solicita que você faça login novamente. O mesmo método é usado no Deemix.', + p4: 'Seguindo um dos guias abaixo, você pode obter o ARL da sua conta.', + warning: 'Use este método somente se e-mail/senha não funcionar.' + }, + chromeSteps: { + title: 'Chrome', + step1: 'Abra o Chrome', + easyWay: { + title: 'Chrome (Modo fácil)', + step3: 'Clique no pequeno ícone de "cadeado" próximo ao URL', + step4: 'Clique em Cookies > deezer.com > cookies > arl', + step5: 'Selecione a string ao lado de Conteúdo, e Copiar' + }, + step4: 'Acesse a aba Aplicativo (se você não ver, clique na seta dupla)', + videoGuide: { + text: 'Aqui está um {videoGuide}', + link: 'guia em vídeo' + } + }, + firefoxSteps: { + title: 'Firefox', + step1: 'Abra o Firefox', + step4: 'Acesse a aba Armazenamento (se você não ver, clique na seta dupla)' + }, + commonSteps: { + step2: 'Acesse www.deezer.com e faça login na sua conta', + step3: 'Após fazer login, pressione F12 para abrir as Ferramentas de Desenvolvedor', + step5: 'Abra a lista Cookies', + step6: 'Selecione www.deezer.com', + step7: 'Encontre o cookie `arl` (Ele deve ter 192 caracteres de comprimento)', + step8: 'Certifique-se de copiar somente o valor e não o cookie completo', + lastStep: 'Este é o seu ARL, agora você pode usá-lo no aplicativo' + } + }, + update: 'Forçar atualizar ARL' + }, + logout: 'Sair', + login: 'Entrar', + email: 'E-mail', + password: 'Senha' + }, + appearance: { + title: 'Aparência', + slimDownloadTab: 'Aba de downloads pequena', + slimSidebar: 'Barra lateral pequena', + searchButton: 'Mostrar botão de pesquisa', + bitrateTags: 'Mostrar tag de qualidade na fila de downloads' + }, + downloadPath: { + title: 'Pasta de downloads' + }, + templates: { + title: 'Modelos', + tracknameTemplate: 'Modelo do nome da faixa', + tracknameAvailableVariables: 'Variáveis de nomes de faixas disponíveis', + albumTracknameTemplate: 'Modelo da faixa do álbum', + albumTracknameAvailableVariables: 'Variáveis de faixa do álbum disponíveis', + playlistTracknameTemplate: 'Modelo da faixa da playlist', + playlistTracknameAvailableVariables: 'Variáveis de faixa da playlist disponíveis' + }, + folders: { + title: 'Pastas', + createPlaylistFolder: 'Criar pasta para playlists', + playlistNameTemplate: 'Modelo da pasta de playlist', + createArtistFolder: 'Criar pasta para artista', + artistNameTemplate: 'Modelo da pasta de artistas', + createAlbumFolder: 'Criar pasta para álbuns', + albumNameTemplate: 'Modelo da pasta de álbuns', + createCDFolder: 'Criar pasta para CDs', + createStructurePlaylist: 'Criar estrutura de pastas para playlists', + createSingleFolder: 'Criar estrutura de pastas para singles' + }, + trackTitles: { + title: 'Título das faixas', + padTracks: 'Faixas com pad', + paddingSize: 'Sobrescrever tamanho do padding', + illegalCharacterReplacer: 'Substituir caracteres inválidos' + }, + downloads: { + title: 'Downloads', + queueConcurrency: 'Downloads simultâneos', + maxBitrate: { + title: 'Escolher taxa de bits', + 9: 'FLAC 1411kbps', + 3: 'MP3 320kbps', + 1: 'MP3 128kbps' + }, + overwriteFile: { + title: 'Sobrescrever arquivos?', + y: 'Sim, sobrescrever arquivos', + n: 'Não, não sobrescrever arquivos', + t: 'Sobrescrever apenas as tags', + b: 'Não, manter ambos os arquivos e adicionar número ao duplicado', + e: 'Não, e não olhar para as extensões', + l: 'Sobrescrever somente se atualizar o bitrate (somente MP3)' + }, + fallbackBitrate: 'Taxa de bits reserva', + fallbackSearch: 'Procurar reserva', + fallbackISRC: 'Reserva com pesquisa ISRC', + feelingLucky: 'Negociar com CDNs e caches', + logErrors: 'Criar arquivos de log para erros', + logSearched: 'Criar arquivos de log para faixas pesquisadas', + createM3U8File: 'Criar arquivo de playlist', + syncedLyrics: 'Criar arquivos .lrc (Letras sincronizadas)', + playlistFilenameTemplate: 'Modelo do nome do arquivo da playlist', + clearQueueOnExit: 'Limpar a fila de downloads quando fechar o app' + }, + covers: { + title: 'Capa dos álbuns', + saveArtwork: 'Salvar capas', + coverImageTemplate: 'Modelo do nome da capa', + saveArtworkArtist: 'Salvar imagem do artista', + artistImageTemplate: 'Modelo da imagem do artista', + localArtworkSize: 'Tamanho da capa local', + embeddedArtworkSize: 'Tamanho da capa embutida', + localArtworkFormat: { + title: 'Qual o formato da imagem você quer para a capa local?', + jpg: '.jpeg', + png: '.png', + both: 'Ambas, .jpeg e .png' + }, + jpegImageQuality: 'Qualidade da imagem JPEG', + embeddedArtworkPNG: 'Salvar capa embutida como PNG', + embeddedPNGWarning: 'PNGs não são oficialmente suportados pelo Deezer e podem ficar bugados', + imageSizeWarning: 'Tudo acima de x1200 não é oficialmente usado pelo Deezer, você pode encontrar problemas', + coverDescriptionUTF8: 'Salvar descrição da capa usando UTF-8 (correção para capa do iTunes)' + }, + tags: { + head: 'Quais tags salvar', + title: 'Título', + artist: 'Artista', + artists: 'Tag de ARTISTAS extras', + album: 'Álbum', + cover: 'Capa', + trackNumber: 'Número da faixa', + trackTotal: 'Total de faixas', + discNumber: 'Número de discos', + discTotal: 'Total de discos', + albumArtist: 'Artista do álbum', + genre: 'Gênero', + year: 'Ano', + date: 'Data', + explicit: 'Letras explícitas', + isrc: 'ISRC', + length: 'Tamanho da faixa', + barcode: 'Código de barras do álbum (UPC)', + bpm: 'BPM', + replayGain: 'Replay Gain', + label: 'Gravadora', + lyrics: 'Letras não sincronizadas', + syncedLyrics: 'Letras sincronizadas', + copyright: 'Copyright', + composer: 'Compositor', + involvedPeople: 'Pessoas envolvidas', + source: 'Fonte e ID da música', + artistsWarning: + 'Desabilitar a tag ARTISTAS embora não use a especificação padrão, não preservará o suporte para vários artistas' + }, + other: { + title: 'Outros', + autoCheckForUpdates: 'Verificar por atualizações ao iniciar', + savePlaylistAsCompilation: 'Salvar playlists como uma compilação', + useNullSeparator: 'Usar separador nulo', + saveID3v1: 'Salvar ID3v1', + multiArtistSeparator: { + title: 'Como você gostaria de separar os artistas?', + nothing: 'Salvar apenas o artista principal', + default: 'Usar a especificação padrão', + andFeat: 'Usar & e feat.', + using: 'Usar "{separator}"', + warning: + 'Usar qualquer separador diferente do que a especificação padrão irá adicionar uma tag de ARTISTAS extra para preservar o suporte a vários artistas' + }, + singleAlbumArtist: 'Salvar apenas o artista principal', + albumVariousArtists: 'Manter "Various Artists" nos Artistas do Álbum', + removeAlbumVersion: 'Remover "Album Version" do título da faixa', + removeDuplicateArtists: 'Remover combinação de artistas', + dateFormat: { + title: 'Formato da data para arquivos FLAC', + year: 'AAAA', + month: 'MM', + day: 'DD' + }, + featuredToTitle: { + title: 'O que devo fazer com artistas participantes?', + 0: 'Nada', + 1: 'Remover do título da faixa', + 3: 'Remover do título da faixa e do álbum', + 2: 'Mover para o título da faixa' + }, + titleCasing: 'Formatação do título', + artistCasing: 'Formatação do artista', + casing: { + nothing: 'Manter inalterado', + lower: 'minúsculo', + upper: 'MAIÚSCULO', + start: 'Começo De Cada Palavra', + sentence: 'Como uma frase' + }, + previewVolume: 'Volume da prévia', + executeCommand: { + title: 'Comando para executar depois de baixar', + description: 'Deixe em branco para nenhuma ação' + } + }, + spotify: { + title: 'Recursos do Spotify', + clientID: 'Spotify clientID', + clientSecret: 'Spotify Client Secret', + username: 'Usuário do Spotify', + question: 'Como habilitar os Recursos do Spotify?', + howTo: { + prologue: { + p1: '"Recursos do Spotify" é um conjunto de recursos que lhe permite converter links de faixas e álbuns do Spotify para links do Deezer.', + p2: 'Se você fornecer um link para uma playlist do Spotify, o aplicativo vai automaticamente converter todos os links das faixas dentro dela para faixas do Deezer.', + p3: 'Ativar este conjunto de recursos irá permitir que você veja as suas playlists públicas do Spotify também na aba Favoritos.' + }, + info: 'Por motivos de segurança, você vai precisar fornecer o seu próprio Client ID e Client Secret', + clientSecretQuestion: { + title: 'Como obtenho o meu Client ID e Client Secret?', + step1: { + text: 'Acesse o {spotifyDevelopersDashboard} e faça login com a sua conta do Spotify.', + spotifyDevelopersDashboard: "Spotify for Developers's Dashboard" + }, + step2: { + text: 'Clique em "Create an App".', + imageAlt: "Create an App button on Spotify for Developers's Dashboard" + }, + step3: { + text: 'Preencha os campos "App name" e "App description" e marque ambas as caixas de seleção. Então clique em "Create".', + imageAlt: 'Create an app form' + }, + step4: { + text: 'Agora você poderá ver o Client ID. Se você clicar em "Show Client Secret" ele será revelado.', + imageAlt: 'Screen of client ID and Secret' + }, + step5: 'Agora você pode copiar e colar estes resultados nos campos apropriados nas configurações.' + }, + usernameQuestion: { + title: 'Como obtenho meu nome de usuário do Spotify?', + step1: { + text: 'Você pode obter o seu nome de usuário do Spotify na página {overviewPage} no site do Spotify.', + overviewPage: 'Visão geral da conta' + } + } + } + }, + reset: 'Restaurar padrão', + resetMessage: 'Deseja realmente restaurar as configurações padrão?', + save: 'Salvar', + toasts: { + init: 'Configurações carregadas!', + update: 'Configurações atualizadas!', + reset: 'Configurações restauradas para o padrão!', + ARLcopied: 'ARL copiado para a área de transferência' + } + }, + sidebar: { + home: 'início', + search: 'pesquisar', + charts: 'paradas', + favorites: 'favoritos', + linkAnalyzer: 'analisar links', + settings: 'configurações', + logs: 'logs', + about: 'sobre' + }, + tracklist: { + downloadSelection: 'Baixar seleção' + } +} + +export default pt_br diff --git a/webui/src/lang/pt-pt.mjs b/webui/src/lang/pt-pt.mjs new file mode 100644 index 0000000..5379de3 --- /dev/null +++ b/webui/src/lang/pt-pt.mjs @@ -0,0 +1,509 @@ +const pt = { + globals: { + welcome: 'Bem-vindo ao deemix', + back: 'voltar', + loading: 'A carregar', + download: 'Transferir {thing}', + by: 'por {artist}', + in: 'em {album}', + download_hint: 'Transferir', + play_hint: 'Tocar', + toggle_download_tab_hint: 'Expandir/Recolher', + clean_queue_hint: 'Limpar Finalizados', + cancel_queue_hint: 'Cancelar Tudo', + open_downloads_folder: 'Abrir pasta Transferências', + cut: 'cortar', + copy: 'copiar', + copyLink: 'copiar ligação', + copyImageLink: 'copiar ligação da imagem', + copyDeezerLink: 'copiar ligação do deezer', + paste: 'colar', + listTabs: { + empty: '', + all: 'Tudo', + top_result: 'melhor resultado', + album: 'álbum | álbums', + artist: 'artista | artistas', + single: 'single | singles', + title: 'título | títulos', + track: 'faixa | faixas', + playlist: 'lista de reprodução | listas de reprodução', + compile: 'compilação | compilações', + ep: 'ep | eps', + bundle: 'pacote | pacotes', + more: 'Mais álbuns', + featured: 'Featured in', + spotifyPlaylist: 'lista de reprodução spotify | listas de reprodução spotify', + releaseDate: 'data de lançamento', + error: 'erro', + trackN: '0 faixas | {n} faixa | {n} faixas', + albumN: '0 albuns | {n} album | {n} albuns', + artistN: '0 artistas | {n} artista | {n} artistas', + releaseN: '0 lançamentos | {n} lançamento | {n} lançamento', + playlistN: '0 listas de reprodução | {n} lista de reprodução | {n} listas de reprodução' + }, + yes: 'sim', + no: 'no', + empty: 'vazio' + }, + about: { + appStatus: { + online: 'app online', + offline: 'app offline' + }, + updates: { + currentVersion: 'Versão Atual', + currentWebuiVersion: 'Versão Atual do WebUI', + versionNotAvailable: 'N/D', + updateAvailable: `Não estás a usar a versão mais recente: {version}`, + deemixVersion: 'versão deemix lib' + }, + titles: { + usefulLinks: 'Ligações Úteis', + bugReports: 'Relatório de erros', + contributing: 'Contribuir', + donations: 'Doações', + license: 'Licenças' + }, + subtitles: { + bugReports: 'Existe alguma coisa que não funciona no deemix? Informa-nos!', + contributing: 'Queres contribuir para o projecto? Podes fazê-lo de diferentes formas!', + donations: 'Desejas contribuir monetariamente? Faz uma doação!' + }, + usesLibrary: + 'Esta aplicação usa a biblioteca deemix, que poderás usar para desenvolver o teu proprio UI para o deemix.', + thanks: `Agradeço a rtonno, uhwot and lollilol por me ajudarem neste projeto e a BasCurtiz por elaborarem o ícone.`, + upToDate: { + text: `Mantém-te atualizado seguindo o {newsChannel} no Telegram.`, + newsChannel: 'canal de notícias' + }, + officialWebsite: 'Site Oficial', + officialRepo: 'Repositório Oficial da Biblioteca', + officialWebuiRepo: 'Repositório Oficial WebUI', + officialSubreddit: 'Subreddit Oficial', + newsChannel: 'Canal de Notícias', + questions: { + text: `Caso tenhas alguma duvida ou problema com a app, primeiro procura por uma solução no {subreddit}. Caso não encontres nada podes criar uma publicação com a tua questão.`, + subreddit: 'subreddit' + }, + beforeReporting: `Antes de reportares um bug certifica-te que estás a correr a versão mais recente e que se trata realmentede um bug e não apenas algo que não funciona do teu lado.`, + beSure: `Certifica-te que o erro é reprodutivel noutros dispositivos e NÃO reportes um bug que já tenha sido reportado.`, + duplicateReports: 'Bug reports duplicados serão fechados, mantém-te atento a isso.', + dontOpenIssues: `NÃO abras issues para colocar questões, existe um subreddit para isso.`, + newUI: { + text: `Caso sejas fluente em python podes tentar criar um novo UI para a aplicação recorrendo à biblioteca base ou corrigir erros na biblioteca com um pull request no {repo}.`, + repo: 'repositório' + }, + acceptFeatures: `Também aceito funcionalidades não complexas caso possam ser implementadas directamente na app e não na biblioteca.`, + otherLanguages: `Caso sejas fluente noutra linguagem de programação podes tentar migrar o deemix para outra linguagem de programação!`, + understandingCode: `Precisas de ajuda a compreender o código? Acede a waLplanet no Telegram ou no Reddit.`, + contributeWebUI: { + text: `Caso saibas Vue.js (JavaScript), HTML ou CSS podes contribuir para o {webui}.`, + webui: 'WebUI' + }, + itsFree: `Deves ter em conta que que este projeto é gratuito e deverás apoiar os artistas que aprecias antes de apoiares os programadores.`, + notObligated: `Não te sintas obrigado a doar, agradeço-te na mesma!`, + lincensedUnder: { + text: `Este trabalho esta licenciado sobre a {gpl3}.`, + gpl3: 'GNU Licença publica geral 3.0' + } + }, + charts: { + title: 'Tabelas', + changeCountry: 'Alterar país', + download: 'Transferir tabela' + }, + errors: { + title: 'Erros para {name}', + postTitle: 'Erros após transferência', + ids: { + invalidURL: 'URL não reconhecido', + unsupportedURL: 'URL ainda não suportado', + ISRCnotOnDeezer: 'Faixa ISRC não disponível no deezer', + notYourPrivatePlaylist: 'Nao podes baixar listas de reprodução privadas de outros.', + spotifyDisabled: 'Funcionalidades do Spotify não estão definidas corretamente.', + trackNotOnDeezer: 'Faixa não encontrada no deezer!', + albumNotOnDeezer: 'Álbum não encontrado no deezer!', + notOnDeezer: 'Faixa não encontrada no Deezer!', + notEncoded: 'Faixa ainda não codificada!', + notEncodedNoAlternative: 'Faixa ainda não codificada e não foi encontrada alternativa!', + wrongBitrate: 'Faixa não encontrada no bitrate desejado.', + wrongBitrateNoAlternative: 'Faixa não encontrada no bitrate desejado e não foi encontrada alternativa!', + no360RA: 'Faixa não disponível em Reality Audio 360.', + notAvailable: 'Faixa não disponível nos servidores do deezer!', + notAvailableNoAlternative: 'Faixa não disponível nos servidores do deezer e não foi encontrada alternativa!', + noSpaceLeft: 'O dispositivo não tem armazenamento disponível!', + albumDoesntExists: 'A faixa do álbum não existe, recolha de informação falhou.', + wrongLicense: 'A tua conta não permite fazer streaming da faixa com o bitrate desejado.', + wrongGeolocation: 'A tua conta não permite fazer streaming da faixa a partir do teu país.', + wrongGeolocationNoAlternative: + 'A tua conta não permite fazer streaming da faixa a partir do teu país e não foi encontrada nenhuma alternativa.' + } + }, + favorites: { + title: 'Favoritos', + noPlaylists: 'Listas de reprodução não encontradas', + noAlbums: 'Álbuns favoritos não encontrados', + noArtists: 'Artistas favoritos não encontrados', + noTracks: 'Faixas favoritas não encontradas' + }, + home: { + needTologin: 'Antes de iniciar transferências é necessário efetuar autenticação na conta Deezer.', + openSettings: 'Abrir Definições', + sections: { + popularPlaylists: 'Listas de reprodução populares', + popularAlbums: 'Álbuns mais ouvidos' + } + }, + linkAnalyzer: { + info: 'Podes usar esta secção para obteres mais informação sobre o link que estás a tentar transferir.', + useful: + 'Isto é útil caso estejas a tentar transferir faixas que não estão disponíveis no teu país e queres saber onde estão disponíveis, por exemplo.', + linkNotSupported: 'Este link ainda não é suportado', + linkNotSupportedYet: 'Parece que este link ainda não é suportado, tenta analisar outro.', + table: { + id: 'ID', + isrc: 'ISRC', + upc: 'UPC', + duration: 'Duração', + diskNumber: 'Número do disco', + trackNumber: 'Número da faixa', + releaseDate: 'Data de lançamento', + bpm: 'BPM', + label: 'Editora', + recordType: 'Tipo de Disco', + genres: 'Géneros', + tracklist: 'Lista de faixas', + readable: 'Legível', + available: 'Disponível' + }, + countries: 'Países', + noCountries: 'Esta faixa não está disponível em nenhum país.' + }, + search: { + startSearching: 'Começa a pesquisar!', + description: + 'Podes perquisar uma música, um álbum inteiro, um artista, uma lista de reprodução... tudo! Também podes colar um link do Deezer', + fans: '{n} fãs', + noResults: 'Sem resultados', + noResultsTrack: 'Faixa não encontrada', + noResultsAlbum: 'Álbum não encontrado', + noResultsArtist: 'Artista não encontrado', + noResultsPlaylist: 'Lista de reprodução não encontrada', + error: 'Ocorreu um erro, tenta novamente mais tarde.' + }, + searchbar: 'Procura o que quiseres (ou cola uma ligação)', + downloads: 'transferências', + toasts: { + addedToQueue: '{item} adicionados à fila', + alreadyInQueue: '{item} já está na fila!', + finishDownload: '{item} foi transferido.', + allDownloaded: 'Todas as transferências terminadas!', + refreshFavs: 'Recarregamento terminado!', + loggingIn: 'A autenticar', + loggedIn: 'Autenticado', + alreadyLogged: 'Já estás autenticado', + loginFailed: 'Não foi possível iniciar sessão', + loggedOut: 'Sessão encerrada', + cancellingCurrentItem: 'A cancelar item atual.', + currentItemCancelled: 'Item atual cancelado.', + startAddingArtist: 'A adicionar {artist} álbuns à fila', + finishAddingArtist: 'Adicionados {artist} álbuns à fila', + startConvertingSpotifyPlaylist: 'A converter faixas do spotify em faixas do deezer', + finishConvertingSpotifyPlaylist: 'Lista de reprodução do Spotify convertida.', + loginNeededToDownload: 'É necessário iniciar sessão para transferir faixas!', + deezerNotAvailable: 'O Deezer não está disponível no teu país. Deverás utilizar uma VPN.', + deezerNotReachable: + 'A app não consegue ligar-se ao Deezer. Verifica a tua ligação à internet, a tua firewall ou o teu antivirus.', + startGeneratingItems: 'A processar {n} itens...', + finishGeneratingItems: '{n} itens gerados.', + noLovedPlaylist: 'No loved tracks playlist!', + checkingUpdates: 'A procurar atualizações...', + noUpdateAvailable: 'Não existem novas atualizações', + updateAvailable: 'Existe uma atualização disponível!', + wrongSpotifyUsername: '{username} não é um nome de utilizador válido no spotify' + }, + settings: { + title: 'Definições', + language: 'Idioma', + login: { + title: 'Inicio de Sessão', + loggedIn: 'Estás autenticado como {username}', + arl: { + question: 'Como obter o meu ARL?', + update: 'Atualizar ARL', + howTo: { + prologue: { + p1: 'O Deezer monitoriza sessões abertas utilizando um cookie chamado ARL.', + p2: 'O Deemix utiliza este cookie para obter metadata necessária para transferir faixas do Deezer.', + p3: 'Os ARL duram 3 meses, após esse período o Deezer solicita novo inicio de sessão. O mesmo método é usado no deemix.', + p4: 'Seguindo um dos guias mais abaixo poderás obter o teu próprio ARL.', + warning: 'Utiliza este método apenas no caso do email e palavra-passe não funcionarem.' + }, + chromeSteps: { + title: 'Chrome', + step1: 'Abrir Chrome', + easyWay: { + title: 'Chrome (Método simples)', + step3: 'Clique no pequeno cadeado ao lado do URL', + step4: 'Clique em Cookies > deezer.com > cookies > arl', + step5: 'Seleciona o texto após Conteúdo, e faz cópia' + }, + step4: 'Vai ao separador Aplicação (caso não o vejas clique na seta dupla)', + videoGuide: { + text: 'Aqui tens um {videoGuide}', + link: 'guia em vídeo' + } + }, + firefoxSteps: { + title: 'Firefox', + step1: 'Abrir Firefox', + step4: 'Ir ao separador Armazenamento (caso não o vejas clique na seta dupla)' + }, + commonSteps: { + step2: 'Acede a www.deezer.com e inicia a sessão na tua conta', + step3: 'Após inicio de sessão carrega no F12 para abrir as Ferramentas de Programador', + step5: 'Expandir cookie', + step6: 'Seleciona www.deezer.com', + step7: 'Procura o cookie `arl` (Deverá ter 192 caracteres)', + step8: 'Certifica-te que apenas copias o valor e não o cookie completo', + lastStep: 'E isso é o teu ARL que agora poderás utilizar na tua app' + } + } + }, + logout: 'Sair', + login: 'Iniciar sessão', + email: 'E-mail', + password: 'Palavra-passe' + }, + appearance: { + title: 'Aspeto', + slimDownloadTab: 'Separador de transferências estreito', + slimSidebar: 'Barra lateral estreita', + searchButton: 'Mostrar botão de pesquisa', + bitrateTags: 'Mostrar etiqueta de qualidade na fila de transferências' + }, + downloadPath: { + title: 'Caminho das transferências' + }, + templates: { + title: 'Formatos', + tracknameTemplate: 'Formato do nome de faixa', + tracknameAvailableVariables: 'Variáveis associadas ao nome das faixas', + albumTracknameTemplate: 'Formato do nome de Álbum', + albumTracknameAvailableVariables: 'Variáveis associadas ao nome dos álbuns', + playlistTracknameTemplate: 'Formato do nome de lista de reprodução', + playlistTracknameAvailableVariables: 'Variáveis associadas ao nome das listas de reprodução' + }, + folders: { + title: 'Pastas', + createPlaylistFolder: 'Criar pasta para lista de reprodução', + playlistNameTemplate: 'Formato da pasta de lista de reprodução', + createArtistFolder: 'Criar pasta para artista', + artistNameTemplate: 'Formato da pasta de artista', + createAlbumFolder: 'Criar pasta para álbum', + albumNameTemplate: 'Formato da pasta de álbum', + createCDFolder: 'Criar pasta para CDs', + createStructurePlaylist: 'Criar estrutura de pastas para listas reprodução', + createSingleFolder: 'Criar estrutura de pastas para singles' + }, + trackTitles: { + title: 'Título', + padTracks: 'Bloco de Faixas', + paddingSize: 'Substituir tamanho do preenchimento', + illegalCharacterReplacer: 'Substituir caractere inválido' + }, + downloads: { + title: 'Transferências', + queueConcurrency: 'Transferências concorrentes', + maxBitrate: { + title: 'Bitrate preferencial', + 9: 'FLAC 1411kbps', + 3: 'MP3 320kbps', + 1: 'MP3 128kbps' + }, + overwriteFile: { + title: 'Ficheiros existentes. Substituir?', + y: 'Sim, substituir o ficheiro', + n: 'Não substituir o ficheiro', + t: 'Substituir apenas as etiquetas', + b: 'Não, manter ambos os ficheiros e numerar o ficheiro duplicado', + e: 'Não e ignorar as extensões' + }, + fallbackBitrate: 'Bitrate fallback', + fallbackSearch: 'Fallback de pesquisa', + fallbackISRC: 'Fallback com pesquisa ISRC', + feelingLucky: 'Arriscar com CDNs e caches', + logErrors: 'Criar histórico para erros', + logSearched: 'Criar histórico para faixas pesquisadas', + createM3U8File: 'Criar ficheiro de lista de reprodução', + syncedLyrics: 'Criar ficheiro .lrc (Letra Sincronizada)', + playlistFilenameTemplate: 'Formato do nome de ficheiro da lista de reprodução', + clearQueueOnExit: 'Limpar fila de transferências ao fechar a aplicação' + }, + covers: { + title: 'Capas do Álbum', + saveArtwork: 'Guardar capas', + coverImageTemplate: 'Modelo do nome da capa', + saveArtworkArtist: 'Salvar imagem do artista', + artistImageTemplate: 'Modelo de imagem do artista', + localArtworkSize: 'Tamanho da arte gráfica local', + embeddedArtworkSize: 'Tamanho da arte gráfica incorporada', + localArtworkFormat: { + title: 'Em que formato desejas guardar localmente a arte gráfica?', + jpg: 'Em jpeg', + png: 'Em png', + both: 'Em jpeg e em png' + }, + jpegImageQuality: 'Qualidade de imagem JPEG', + embeddedArtworkPNG: 'Guardar arte gráfica incorporada como PNG', + embeddedPNGWarning: 'PNGs não são oficialmente suportados pelo Deezer e podem ocorrer erros', + imageSizeWarning: + 'Qualquer resolução acima de x1200 não são oficialmente suportados pelo Deezer e podem ocorrer erros', + coverDescriptionUTF8: 'Guardar descrição da capa como UTF8? (iTunes Cover Fix)' + }, + tags: { + head: 'Etiquetas a guardar', + title: 'Título', + artist: 'Artista', + artists: 'Etiqueta extra ARTISTAS', + album: 'Álbum', + cover: 'Capa', + trackNumber: 'Número de faixa', + trackTotal: 'Total de faixas', + discNumber: 'Número do Disco', + discTotal: 'Total de Discos', + albumArtist: 'Artista do Álbum', + genre: 'Género', + year: 'Ano', + date: 'Data', + explicit: 'Letra Explícita', + isrc: 'ISRC', + length: 'Duração da faixa', + barcode: 'Código de barras do álbum (UPC)', + bpm: 'BPM', + replayGain: 'ReplayGain', + label: 'Editora do álbum', + lyrics: 'Letra da música não sincronizada', + syncedLyrics: 'Letra da música sincronizada', + copyright: 'Direitos de Autor', + composer: 'Compositor', + involvedPeople: 'Pessoas envolvidas', + artistsWarning: + 'Desativar a etiqueta ARTISTAS ao não usar especificações padrão, não preservará o suporte a multi-artistas' + }, + other: { + title: 'Outros', + autoCheckForUpdates: 'Procurar novas atualizações ao iniciar', + savePlaylistAsCompilation: 'Guardar listas de reprodução como compilação', + useNullSeparator: 'Usar separador nulo', + saveID3v1: 'Também guardar ID3v1', + multiArtistSeparator: { + title: 'Como queres separarar os artistas?', + nothing: 'Guardar apenas o artista principal', + default: 'Usar especificação padrão', + andFeat: 'Usar & e feat.', + using: 'Usar "{separator}"', + warning: + 'Utilizar outro separador para além das especificações standard irão adicionar uma etiqueta extra ARTISTAS para perservar o suporte a multi-artistas' + }, + singleAlbumArtist: 'Guardar apenas o artista principal do álbum', + albumVariousArtists: 'Manter "Various Artists" nos Artistas do Álbum', + removeAlbumVersion: 'Remover "Album Version" do título da faixa', + removeDuplicateArtists: 'Remover combinação de artistas', + dateFormat: { + title: 'Formato de data nos ficheiros FLAC', + year: 'AAAA', + month: 'MM', + day: 'DD' + }, + featuredToTitle: { + title: 'O que devo fazer com artistas convidados/participações?', + 0: 'Nada', + 1: 'Remover do título', + 3: 'Remover do título e do título do album', + 2: 'Movê-lo para o título' + }, + titleCasing: 'Caixa do Título', + artistCasing: 'Caixa do Artista', + casing: { + nothing: 'Manter inalterado', + lower: 'minusculas', + upper: 'MAIÚSCULAS', + start: 'Início De Cada Palavra', + sentence: 'Como uma frase' + }, + previewVolume: 'Volume de Pré-visualização', + executeCommand: { + title: 'Comando a executar após transferir', + description: 'Deixar em branco para nenhuma acção' + } + }, + spotify: { + title: 'Funcionalidades Spotify', + clientID: 'Spotify clientID', + clientSecret: 'Spotify Client Secret', + username: 'nome de utilizador Spotify', + question: 'Como ativo as funcionalidades Spotify?', + howTo: { + prologue: { + p1: '"Funcionalidades Spotify" são um conjunto de funcionalidades que permitem converter ligações de faixas e álbuns do Spotify em ligações do Deezer.', + p2: 'Caso forneças uma ligação para uma lista de reprodução Spotify a aplicação converterá automaticamente tosas as ligações de faixas em ligações de faixas Deezer.', + p3: 'Ao ativar estas funcionalidades também permitirá ver as tuas listas de reprodução públicas no separator Favoritos.' + }, + info: 'Por razões de segurança, deverás fornecer o teu próprio Client ID e Client Secret', + clientSecretQuestion: { + title: 'Como obtenho o meu Client ID e Client Secret?', + step1: { + text: 'Ligar a {spotifyDevelopersDashboard} e iniciar sessão com a tua conta Spotify.', + spotifyDevelopersDashboard: "Spotify for Developers's Dashboard" + }, + step2: { + text: 'Clique em "Create an App".', + imageAlt: "Botão 'Create an App' no 'Spotify for Developers's Dashboard'" + }, + step3: { + text: 'Preenche os campos "App name" e "App description" e marca ambas as caixas de seleção. E depois clique no botão "Create".', + imageAlt: 'Formulário "Create an app form"' + }, + step4: { + text: 'O Client ID já está visível. Caso clique em "Show Client Secret" o segredo do cliente será revelado.', + imageAlt: 'Imagem do client ID e Secret' + }, + step5: 'Copia e cola os resultados nos campos correspondentes das definições.' + }, + usernameQuestion: { + title: 'Como obtenho o meu nome de utilizador Spotify?', + step1: { + text: 'Podes obter o teu nome de utilizador na {overviewPage} no site do Spotify.', + overviewPage: 'Overview page' + } + } + } + }, + reset: 'Repor definições padrão', + resetMessage: 'Tens a certeza que queres repor as definições padrão?', + save: 'Guardar', + toasts: { + init: 'Definições carregadas!', + update: 'Definições atualizadas', + reset: 'Definições padrão repostas!', + ARLcopied: 'ARL copiado para area de transferencia' + } + }, + sidebar: { + home: 'início', + search: 'pesquisa', + charts: 'tabelas', + favorites: 'favoritos', + linkAnalyzer: 'analizador de links', + settings: 'definições', + logs: 'logs', + about: 'sobre' + }, + tracklist: { + downloadSelection: 'Transferir selecionados' + } +} + +export default pt diff --git a/webui/src/lang/ru.mjs b/webui/src/lang/ru.mjs new file mode 100644 index 0000000..e378c22 --- /dev/null +++ b/webui/src/lang/ru.mjs @@ -0,0 +1,516 @@ +const ru = { + globals: { + welcome: 'Добро пожаловать в deemix', + back: 'назад', + loading: 'загрузка', + download: 'Скачать {thing}', + by: '{artist}', + in: 'из {album}', + download_hint: 'Скачать', + play_hint: 'Прослушать', + toggle_download_tab_hint: 'Показать/Скрыть', + clean_queue_hint: 'Очистить завершённые', + cancel_queue_hint: 'Очистить всё', + open_downloads_folder: 'Открыть папку с загрузками', + cut: 'вырезать', + copy: 'копировать', + copyLink: 'копировать ссылку', + copyImageLink: 'копировать URL картинки', + copyDeezerLink: 'копировать ссылку deezer', + paste: 'вставить', + listTabs: { + empty: '', + all: 'все', + top_result: 'лучший результат', + album: 'альбом | альбомы | альбомы', + artist: 'исполнитель | исполнители | исполнители', + single: 'сингл | синглы | синглы', + title: 'название', + track: 'трек | треки | треки', + trackN: '{n} трек | {n} трека | {n} треков', + releaseN: '{n} релиз | {n} релиза | {n} релизов', + playlist: 'плейлист | плейлисты | плейлисты', + compile: 'сплит | сплиты | сплиты', + ep: 'ep', + bundle: 'бандл | бандлы | бандлы', + more: 'Больше альбомов', + featured: 'Представлено в', + spotifyPlaylist: 'плейлист spotify | плейлисты spotify | плейлисты spotify', + releaseDate: 'Дата выхода', + error: 'ошибка', + albumN: '{n} альбом | {n} альбома | {n} альбомов', + artistN: '{n} исполнитель | {n} исполнителя | {n} исполнителей', + playlistN: '{n} плейлист | {n} плейлиста | {n} плейлистов' + }, + yes: 'да', + no: 'нет', + empty: 'пусто' + }, + about: { + appStatus: { + online: 'приложение онлайн', + offline: 'приложение оффлайн' + }, + updates: { + currentVersion: 'Текущая версия', + currentWebuiVersion: 'Текущая версия WebUI', + versionNotAvailable: 'Н/Д', + updateAvailable: `Вы используете не последнюю доступную версию: {version}`, + deemixVersion: 'Версия библиотеки deemix' + }, + titles: { + usefulLinks: 'Полезные ссылки', + bugReports: 'Отчёты об ошибках', + contributing: 'Помощь проекту', + donations: 'Пожертвования', + license: 'Лицензия' + }, + subtitles: { + bugReports: 'Что-то не работает? Сообщите нам!', + contributing: 'Хотите внести вклад в развитие этого проекта? Это можно сделать разными способами!', + donations: 'Хотите поддержать материально? Можно сделать пожертвование!' + }, + usesLibrary: + 'Приложение использует библиотеку deemix, с помощью которой вы можете разработать собственный UI для deemix.', + thanks: `Спасибо rtonno, uhwot и lollilol за помощь с этим проектом, а также BasCurtiz за иконку.`, + upToDate: { + text: `Следите за последними обновлениями на {newsChannel} в Telegram.`, + newsChannel: 'канале' + }, + officialWebsite: 'Официальный сайт', + officialRepo: 'Официальный репозиторий библиотеки', + officialWebuiRepo: 'Официальный репозиторий WebUI', + officialSubreddit: 'Официальный сабреддит', + newsChannel: 'Канал новостей', + questions: { + text: `Если у вас возникли вопросы или проблемы с приложением, поищите решение на {subreddit}. Если не нашли решение, можете создать новый пост и описать вашу проблему.`, + subreddit: 'сабреддите' + }, + beforeReporting: `Перед тем, как сообщать об ошибках, убедитесь, что вы используете последнюю версию приложения и что проблема не на вашей стороне.`, + beSure: `Убедитесь, что ошибка возникает и на других устройствах. Также НЕ сообщайте об ошибке, если про неё уже известно.`, + duplicateReports: 'Повторные сообщения об ошибках рассматриваться не будут.', + dontOpenIssues: `НЕ используйте репозиторий для вопросов автору, для этого есть сабреддит.`, + newUI: { + text: `Если вы хорошо знаете python, то можете сделать новый UI для приложения с использованием базовой библиотеки или пофиксить в ней баги и сделать pull request в {repo}.`, + repo: 'репозитории' + }, + acceptFeatures: `Можете предложить новые функции, но не слишком сложные, так как они будут добавлены в приложение, а не в саму библиотеку.`, + otherLanguages: `Если вы хорошо знаете другой язык программирования, можете портировать на нём deemix!`, + understandingCode: `Не можете разобраться в коде? Свяжитесь с waLplanet в Telegram или на Reddit.`, + contributeWebUI: { + text: `Если вы знаете Vue.js (JavaScript), HTML или CSS, можете внести вклад в развитие {webui}.`, + webui: 'WebUI' + }, + itsFree: `Помните, что это бесплатное приложение и вам следует поддерживать понравившихся исполнителей прежде, чем поддерживать разработчиков.`, + notObligated: `Вы не обязаны делать пожертвования, я всё равно вас ценю!`, + lincensedUnder: { + text: `Проект распространяется под лицензией {gpl3}.`, + gpl3: 'GNU General Public License 3.0' + } + }, + charts: { + title: 'Чарты', + changeCountry: 'Сменить страну', + download: 'Скачать чарт' + }, + errors: { + title: 'Ошибки {name}', + postTitle: 'Ошибки после скачивания', + ids: { + invalidURL: 'URL не распознан', + unsupportedURL: 'URL не поддерживается', + ISRCnotOnDeezer: 'ISRC данного трека недоступен на Deezer', + notYourPrivatePlaylist: 'Вы не можете скачивать чужие приватные плейлисты.', + spotifyDisabled: 'Неправильно настроены параметры Spotify.', + trackNotOnDeezer: 'Трек не найден на Deezer!', + albumNotOnDeezer: 'Альбом не найден на Deezer!', + notOnDeezer: 'Трек недоступен на Deezer!', + notEncoded: 'Трек ещё не перекодирован!', + notEncodedNoAlternative: 'Трек не перекодирован, альтернатив не найдено!', + wrongBitrate: 'Данного трека нет в нужном битрейте.', + wrongBitrateNoAlternative: 'Данного трека нет в нужном битрейте. Альтернатив не найдено!', + no360RA: 'Трек недоступен в формате Reality Audio 360.', + notAvailable: 'Трек недоступен на серверах Deezer!', + notAvailableNoAlternative: 'Трек недоступен на серверах Deezer. Альтернатив не найдено!', + noSpaceLeft: 'На устройстве не осталось свободного места!', + albumDoesntExists: 'Альбома не существует, информация не получена', + wrongLicense: 'Ваш аккаунт не может играть данный трек с желаемым битрейтом.', + wrongGeolocation: 'Ваш аккаунт не может играть данный трек из вашей текущей страны.', + wrongGeolocationNoAlternative: + 'Ваш аккаунт не может играть данный трек из вашей текущей страны. Альтернатив не найдено.' + } + }, + favorites: { + title: 'Избранное', + noPlaylists: 'Плейлисты не найдены', + noAlbums: 'Избранные альбомы не найдены', + noArtists: 'Избранные исполнители не найдены', + noTracks: 'Избранные треки не найдены' + }, + home: { + needTologin: 'Вам необходимо войти под своей учетной записью Deezer, прежде чем вы сможете скачивать.', + openSettings: 'Открыть настройки', + sections: { + popularPlaylists: 'Популярные плейлисты', + popularAlbums: 'Самые прослушиваемые альбомы' + } + }, + linkAnalyzer: { + info: 'Используйте этот раздел, чтобы узнать информацию о ссылке, которую требуется скачать.', + useful: + 'Этот раздел нужен, если вы хотите загрузить треки, недоступные в вашей стране, а также посмотреть, где они доступны.', + linkNotSupported: 'Ссылка не поддерживается', + linkNotSupportedYet: 'Эта ссылка не поддерживается, попробуйте вставить другую.', + table: { + id: 'ID', + isrc: 'ISRC', + upc: 'UPC', + duration: 'Продолжительность', + diskNumber: 'Номер диска', + trackNumber: 'Номер трека', + releaseDate: 'Дата выхода', + bpm: 'BPM', + label: 'Издатель', + recordType: 'Тип', + genres: 'Жанр', + tracklist: 'Треклист', + readable: 'Читабельный', + available: 'Доступен' + }, + countries: 'Страны, где доступен данный трек', + noCountries: 'Этот трек недоступен ни в одной стране.' + }, + search: { + startSearching: 'Начните искать!', + description: 'Здесь можно найти трек, альбом, исполнителя, плейлист... всё! Можно также вставить ссылку Deezer', + fans: '{n} поклонников', + noResults: 'Нет результатов', + noResultsTrack: 'Треков не найдено', + noResultsAlbum: 'Альбомов не найдено', + noResultsArtist: 'Исполнителей не найдено', + noResultsPlaylist: 'Плейлистов не найдено' + }, + searchbar: 'Ищите, что хотите (или вставьте ссылку)', + downloads: 'загрузки', + toasts: { + restoringQueue: 'Восстановление очереди загрузок...', + queueRestored: 'Очередь восстановлена!', + addedToQueue: '{item} добавлено в очередь', + addedMoreToQueue: '{n} загрузок добавлены в очередь', + alreadyInQueue: '{item} уже присутствует в очереди!', + finishDownload: 'Загрузка {item} завершена.', + allDownloaded: 'Все загрузки завершены!', + refreshFavs: 'Обновление завершено!', + loggingIn: 'Вход...', + loggedIn: 'Вход выполнен', + alreadyLogged: 'Вход уже выполнен', + loginFailed: 'Вход не выполнен', + loggedOut: 'Вы вышли из аккаунта', + cancellingCurrentItem: 'Отмена текущей загрузки.', + currentItemCancelled: 'Отменено.', + startAddingArtist: 'Добавление альбомов {artist} в очередь', + finishAddingArtist: 'Альбомы {artist} добавлены в очередь', + startConvertingSpotifyPlaylist: 'Добавление плейлиста Spotify в очередь', + finishConvertingSpotifyPlaylist: 'Spotify плейлист добавлен в очередь', + loginNeededToDownload: 'Войдите в аккаунт, чтобы скачивать треки!', + deezerNotAvailable: 'Deezer недоступен в вашей стране. Используйте VPN.', + startGeneratingItems: 'Обработка {n} загрузок...', + finishGeneratingItems: 'Обработано {n} загрузок.', + noLovedPlaylist: 'Нет плейлиста с любимыми треками!', + checkingUpdates: 'Проверка обновлений...', + noUpdateAvailable: 'Обновления программы не найдены', + updateAvailable: 'Доступно обновление программы!' + }, + settings: { + title: 'Настройки', + language: 'Язык', + login: { + title: 'Вход', + loggedIn: 'Вы вошли как {username}', + arl: { + title: 'Либо используйте ARL', + question: 'Как узнать свой ARL?', + howTo: { + prologue: { + p1: 'Deezer отслеживает сеанс входа в систему с помощью файла cookie под названием ARL.', + p2: 'Deemix использует этот файл cookie для получения метаданных, необходимых для загрузки треков с Deezer.', + p3: 'Длительность авторизации через ARL - 3 месяца, после чего Deezer снова просит вас войти в систему. Тот же метод используется в deemix.', + p4: 'Следуя одному из приведенных ниже руководств, вы можете получить ARL для собственной учетной записи.', + warning: 'Используйте этот метод, только если электронная почта и пароль не работают.' + }, + chromeSteps: { + title: 'Chrome', + step1: 'Откройте Chrome', + easyWay: { + title: 'Chrome (простой способ)', + step3: 'Нажмите на маленький значок «замок» рядом с URL-адресом.', + step4: 'Выберите «Файлы cookie» > deezer.com > Файлы cookie > arl', + step5: 'Выберите строку рядом с Контент, выделите ее всю и скопируйте' + }, + step4: 'Перейдите на вкладку «Application» (если вы ее не видите, нажмите двойную стрелку )', + videoGuide: { + text: 'Вот {videoGuide}', + link: 'видео инструкция' + } + }, + firefoxSteps: { + title: 'Firefox', + step1: 'Откройте Firefox', + step4: 'Перейдите на вкладку «Хранилище» (если вы ее не видите, нажмите двойную стрелку)' + }, + commonSteps: { + step2: 'Перейдите на сайт www.deezer.com и войдите в свою учетную запись.', + step3: 'После входа в систему нажмите F12, чтобы открыть инструменты разработчика.', + step5: 'Откройте раскрывающийся список файлов cookie', + step6: 'Выберите www.deezer.com', + step7: 'Найдите файл cookie `arl` (он должен быть длиной 192 символа)', + step8: 'Убедитесь, что скопировано только значение, а не весь файл cookie.', + lastStep: 'Это ваш ARL, теперь вы можете использовать его в приложении' + } + }, + update: 'Обновить ARL' + }, + logout: 'Выйти', + login: 'Авторизоваться', + email: 'Электронная почта', + password: 'Пароль' + }, + appearance: { + title: 'Внешний вид', + slimDownloadTab: 'Компактная вкладка с загрузками', + slimSidebar: 'Компактная левая панель', + searchButton: 'Показывать кнопку поиска', + bitrateTags: 'Показывать битрейт в очереди загрузок' + }, + downloadPath: { + title: 'Путь для сохранения' + }, + templates: { + title: 'Шаблоны', + tracknameTemplate: 'Шаблон названия трека', + tracknameAvailableVariables: 'Доступные переменные для названия трека', + albumTracknameTemplate: 'Шаблон названия трека альбома', + albumTracknameAvailableVariables: 'Доступные переменные для названия трека альбома', + playlistTracknameTemplate: 'Шаблон названия трека плейлиста', + playlistTracknameAvailableVariables: 'Доступные переменные для названия трека плейлиста' + }, + folders: { + title: 'Папки', + createPlaylistFolder: 'Создавать папки для плейлистов', + playlistNameTemplate: 'Название папки плейлиста', + createArtistFolder: 'Создавать папки для исполнителя', + artistNameTemplate: 'Название папки исполнителя', + createAlbumFolder: 'Создавать папки для альбома', + albumNameTemplate: 'Название папки альбома', + createCDFolder: 'Создавать папки для CD', + createStructurePlaylist: 'Создавать структуру папок для плейлистов', + createSingleFolder: 'Создавать структуру папок для синглов' + }, + trackTitles: { + title: 'Названия треков', + padTracks: 'Добавлять ноль к номерам треков (01, 02, ...)', + paddingSize: 'Кол-во цифр в номере', + illegalCharacterReplacer: 'Замена для запрещённых в имени символов' + }, + downloads: { + title: 'Загрузки', + queueConcurrency: 'Количество одновременных загрузок', + maxBitrate: { + title: 'Предпочитаемый битрейт', + 9: 'FLAC 1411kbps', + 3: 'MP3 320kbps', + 1: 'MP3 128kbps' + }, + overwriteFile: { + title: 'Нужно ли перезаписывать файлы?', + y: 'Да, перезаписать файл', + n: 'Нет, не перезаписывать', + t: 'Обновить только теги', + b: 'Нет, оставить оба файла и добавить номер к дубликату', + e: 'Нет, вне зависимости от расширения' + }, + fallbackBitrate: 'Загружать с битрейтом ниже, если текущий недоступен', + fallbackSearch: 'Искать похожий трек, если запрашиваемый недоступен', + fallbackISRC: 'Искать похожий трек, если запрашиваемый по ISRC недоступен', + feelingLucky: 'Скачать при наличии на CDN и в кэше', + logErrors: 'Сохранять логи ошибок', + logSearched: 'Сохранять лог истории поиска', + createM3U8File: 'Создавать файлы плейлистов', + syncedLyrics: 'Создать .lrc файлы (синхронизированная лирика)', + playlistFilenameTemplate: 'Шаблон названия плейлиста', + saveDownloadQueue: 'Сохранять текущую очередь загрузок при закрытии приложения' + }, + covers: { + title: 'Обложки', + saveArtwork: 'Сохранять файл обложки', + coverImageTemplate: 'Шаблон названия обложки', + saveArtworkArtist: 'Сохранять файл изображения исполнителя', + artistImageTemplate: 'Шаблон названия изображения', + localArtworkSize: 'Размер сохраненной обложки', + embeddedArtworkSize: 'Размер встроенной в теги обложки', + localArtworkFormat: { + title: 'В каком формате сохранять обложки?', + jpg: 'jpeg', + png: 'png', + both: 'jpeg и png' + }, + jpegImageQuality: 'Качество JPEG', + embeddedArtworkPNG: 'Сохранять вложенную обложку в PNG', + embeddedPNGWarning: 'PNG официально не поддерживается в Deezer. Могут быть баги', + imageSizeWarning: 'Обложки с разрешением выше x1200 не поддерживаются в Deezer. Могут быть проблемы', + coverDescriptionUTF8: 'Сохранять описание обложки в UTF8 (iTunes Fix)' + }, + tags: { + head: 'Какие теги сохранять', + title: 'Название', + artist: 'Исполнитель', + artists: 'Дополнительный тег ARTISTS', + album: 'Альбом', + cover: 'Обложка', + trackNumber: 'Номер трека', + trackTotal: 'Кол-во треков', + discNumber: 'Номер диска', + discTotal: 'Кол-во дисков', + albumArtist: 'Исполнитель альбома', + genre: 'Жанр', + year: 'Год', + date: 'Дата', + explicit: 'Метка о нецензурной лексике', + isrc: 'Уникальный код трека (ISRC)', + length: 'Продолжительность', + barcode: 'Уникальный код альбома (UPC)', + bpm: 'BPM', + replayGain: 'Replay Gain', + label: 'Издатель', + lyrics: 'Текст песни', + syncedLyrics: 'Синхрон. текст песни', + copyright: 'Права (копирайт)', + composer: 'Композитор', + involvedPeople: 'Вовлечённые люди', + source: 'Источник и ID песни', + artistsWarning: + 'Отключение тега ARTISTS без использования стандартной спецификации не сохранит поддержку нескольких исполнителей.' + }, + other: { + title: 'Разное', + autoCheckForUpdates: 'Проверять наличие обновлений программы при запуске', + savePlaylistAsCompilation: 'Сохранять плейлисты как сборники', + useNullSeparator: 'Использовать null в качестве разделителя', + saveID3v1: 'Сохранить также ID3v1', + multiArtistSeparator: { + title: 'Как разделять несколько исполнителей?', + nothing: 'Сохранить только основного', + default: 'Используя стандартную спецификацию', + andFeat: 'Используя & и feat.', + using: 'Используя "{separator}"', + warning: + 'Использование любого разделителя, отличного от стандартной спецификации, добавит дополнительный тег ARTISTS, чтобы сохранить поддержку нескольких исполнителей.' + }, + singleAlbumArtist: 'Сохранить только основного исполнителя альбома', + albumVariousArtists: 'Оставить "Various Artists" в исполнителях альбома', + removeAlbumVersion: 'Удалить "Album Version" из названия трека', + removeDuplicateArtists: 'Удалить повторяющихся исполнителей', + dateFormat: { + title: 'Формат даты для FLAC файлов', + year: 'ГГГГ', + month: 'ММ', + day: 'ДД' + }, + featuredToTitle: { + title: 'Что делать с приглашёнными исполнителями (feat.)?', + 0: 'Ничего', + 1: 'Удалить из названия трека', + 3: 'Удалить из названия трека и альбома', + 2: 'Добавить в название трека' + }, + titleCasing: 'Регистр названия', + artistCasing: 'Регистр исполнителя', + casing: { + nothing: 'Не менять', + lower: 'в нижнем регистре', + upper: 'В ВЕРХНЕМ РЕГИСТРЕ', + start: 'Каждое Слово С Заглавной Буквы', + sentence: 'Как в предложении' + }, + previewVolume: 'Громкость прослушивания', + executeCommand: { + title: 'Выполнять команды по окончании загрузок', + description: 'Оставьте пустым, если ничего не требуется' + } + }, + spotify: { + title: 'Функции Spotify', + clientID: 'Spotify Client ID', + clientSecret: 'Spotify Client Secret', + username: 'имя пользователя Spotify', + question: 'Как включить «Функции Spotify»?', + howTo: { + prologue: { + p1: '«Функции Spotify» — это набор функций, которые позволяют конвертировать ссылки на треки и альбомы Spotify в ссылки Deezer.', + p2: 'Если вы предоставите ссылку на плейлист Spotify, приложение автоматически преобразует все ссылки на треки внутри него в треки deezer.', + p3: 'Включение этого набора функций позволит вам также видеть общедоступные плейлисты Spotify на вкладке «Избранное».' + }, + info: 'Из соображений безопасности вам нужно будет указать свои Client ID и Client Secret.', + clientSecretQuestion: { + title: 'Как получить Client ID и Client Secret?', + step1: { + text: 'Перейдите на страницу {spotifyDevelopersDashboard} и войдите в свою учетную запись Spotify.', + spotifyDevelopersDashboard: 'информационной панели Spotify для разработчиков' + }, + step2: { + text: 'Нажмите «Создать приложение».', + imageAlt: 'Кнопка «Создать приложение» на информационной панели Spotify для разработчиков' + }, + step3: { + text: 'Заполните поля «Имя приложения» и «Описание приложения» и установите флажок. Затем нажмите на кнопку «Создать».', + imageAlt: 'Создание формы приложения' + }, + step4: { + text: 'Теперь вы можете увидеть Client ID. Если вы нажмете «Показать Client Secret», Client Secret будет раскрыт.', + imageAlt: 'Скриншот с Client ID и Client Secret' + }, + step5: 'Теперь вы можете скопировать и вставить эти результаты в соответствующие поля в настройках.' + }, + usernameQuestion: { + title: 'Как мне получить свое имя пользователя Spotify?', + step1: { + text: 'Вы можете получить свое имя пользователя Spotify на {overviewPage} на веб-сайте Spotify.', + overviewPage: 'странице обзора профиля' + } + } + } + }, + reset: 'По умолчанию', + resetMessage: 'Вы уверены, что хотите вернуться к настройкам по умолчанию?', + save: 'Сохранить', + toasts: { + init: 'Настройки загружены!', + update: 'Настройки обновлены!', + reset: 'Настройки сброшены по умолчанию!', + ARLcopied: 'ARL скопирован в буфер обмена' + }, + logs: { + title: 'Логи', + areLogsActive: 'Активно' + } + }, + sidebar: { + home: 'главная', + search: 'поиск', + charts: 'чарты', + favorites: 'избранное', + linkAnalyzer: 'анализ ссылок', + settings: 'настройки', + logs: 'логи', + about: 'о проекте' + }, + tracklist: { + downloadSelection: 'Скачать выбранные' + }, + logs: { + event: 'Событие', + data: 'Данные' + } +} + +export default ru diff --git a/webui/src/lang/sr.mjs b/webui/src/lang/sr.mjs new file mode 100644 index 0000000..a189ad3 --- /dev/null +++ b/webui/src/lang/sr.mjs @@ -0,0 +1,421 @@ +const sr = { + globals: { + welcome: 'Добродошли у deemix', + back: 'назад', + loading: 'Учитавам', + download: 'Преузми {thing}', + by: '{artist}', + in: 'на {album}', + download_hint: 'Преузми', + play_hint: 'Репродукуј', + toggle_download_tab_hint: 'Рашири/Скупи', + clean_queue_hint: 'Склони завршено', + cancel_queue_hint: 'Откажи све', + open_downloads_folder: 'Отвори Downloads фолдер', + cut: 'исеци', + copy: 'копирај', + copyLink: 'копирај линк', + copyImageLink: 'копирај линк до слике', + copyDeezerLink: 'копирај deezer линк', + paste: 'налепи', + listTabs: { + empty: '', + all: 'све', + top_result: 'најбољи резултат', + album: 'албум | албуме', + artist: 'извођача | извођаче', + single: 'сингл | синглове', + title: 'наслов | наслове', + track: 'песму | песме', + releaseN: '0 издања | {n} издање | {n} издања', + playlist: 'плејлисту | плејлисте', + compile: 'компилацију | компилације', + ep: 'еп | еп-ови', + bundle: 'bundle | bundle-ови', + more: 'Још албума', + featured: 'Појављује се у', + spotifyPlaylist: 'Spotify плејлисту | Spotify плејлисте', + releaseDate: 'датум издавања', + error: 'грешка', + trackN: '0 песама | {n} песма | {n} песама', + albumN: '0 албума | {n} албум | {n} албума', + artistN: '0 извођача | {n} извођач | {n} извођача', + playlistN: '0 плејлисти | {n} плејлиста | {n} плејлисти' + } + }, + about: { + appStatus: { + online: 'апликација је на мрежи', + offline: 'апликација је ван мреже' + }, + updates: { + currentVersion: 'Тренутна верзија', + currentWebuiVersion: 'Тренутна WebUI верзија', + versionNotAvailable: 'N/A', + updateAvailable: `Немате најновије доступну верзију: {version}`, + deemixVersion: 'Верзија deemix библиотеке' + }, + titles: { + usefulLinks: 'Корисни линкови', + bugReports: 'Пријављивање грешака', + contributing: 'Доприноси', + donations: 'Донације', + license: 'Лиценца' + }, + subtitles: { + bugReports: 'Да ли нешто не ради у deemix-у? Обавестите нас!', + contributing: 'Желите да допринесете овом пројекту? Постоји више начина да то урадите!', + donations: 'Желите да допринесете новчано? Можете да нам донирате!' + }, + usesLibrary: + 'Ова апликација користи deemix библиотеку, коју можете да користите да направите свој кориснички интерфејс за deemix.', + thanks: `Хвала корисницима rtonno, uhwot и lollilol што су ми помогли на овом пројекту и хвала кориснику BasCurtiz што је направио иконицу.`, + upToDate: { + text: `Останите у току са најновијим вестима преко нашег {newsChannel} на апликацији Телеграм.`, + newsChannel: 'канала са новостима' + }, + officialWebsite: 'Званични вебсајт', + officialRepo: 'Званични репозиторијум библиотеке', + officialWebuiRepo: 'Званични репозиторијум WebUI-а', + officialSubreddit: 'Званични подредит', + newsChannel: 'Канал са новостима', + questions: { + text: `Уколико имате питања или проблеме са апликацијом, потражите прво решење на {subreddit}. Након тога, уколико нисте нашли одговор, можете да направите нови пост са описом проблема на подредиту.`, + subreddit: 'подредиту' + }, + beforeReporting: `Пре него што пријавите грешку, проверите да ли имате најновију верзију апликације. Такође, постарајте се да то што желите да пријавите не представља неку грешку која се јавља само код вас.`, + beSure: `Проверите да ли се грешка може репродуковати на другим уређајима. НЕМОЈТЕ да пријављујете грешку уколико је већ пријављена.`, + duplicateReports: 'Дупликати пријављених грешака биће затворени, обратите пажњу на то.', + dontOpenIssues: `НЕМОЈТЕ да отварате issue да бисте поставили питање, постоји подредит за ту намену.`, + newUI: { + text: `Уколико знате Пајтон, можете да пробате да направите нови UI за апликацију користећи основну библиотеку, или да исправите багове у библиотеци слањем pull request-a на {repo}.`, + repo: 'репозиторијум' + }, + acceptFeatures: `Прихватам и нове опције, уколико нису превише сложене, које се могу имплементирати у апликацији а не библиотеци.`, + otherLanguages: `Уколико знате неки други програмски језик, можете да пробате да портујете deemix на други програмски језик!`, + understandingCode: `Треба вам помоћ да разумете код? Потражите waLplanet на Телеграму или Редиту.`, + contributeWebUI: { + text: `Ако знате Vue.js (JavaScript), HTML или CSS, можете да допринесете {webui}-у.`, + webui: 'WebUI' + }, + itsFree: `Имајте на уму да је ово бесплатни пројекат и да би требало да подржите извођаче које волите пре него да подржите програмере.`, + notObligated: `Не осећајте обавезу да донирате, свакако вас ценим!`, + lincensedUnder: { + text: `Ова апликација је објављена под лиценцом {gpl3}.`, + gpl3: 'GNU General Public License 3.0' + } + }, + charts: { + title: 'Топ листе', + changeCountry: 'Промени земљу', + download: 'Преузми топ листу' + }, + errors: { + title: 'Грешке за {name}', + ids: { + invalidURL: 'URL није препознат', + unsupportedURL: 'URL још није подржан', + ISRCnotOnDeezer: 'ISRC наслова није доступан на Deezer-у', + notYourPrivatePlaylist: 'Не можете да преузмете туђе приватне плејлисте', + spotifyDisabled: 'Spotify опције нису исправно подешене.', + trackNotOnDeezer: 'Песма није пронађена на Deezer-у!', + albumNotOnDeezer: 'Албум није пронађен на Deezer-у!', + notOnDeezer: 'Песма није доступна на Deezer-у!', + notEncoded: 'Песма још није енкодирана!', + notEncodedNoAlternative: 'Песма још није енкодирана и нема пронађених алтернатива!', + wrongBitrate: 'Нисам пронашао песму у жељеном битрејту.', + wrongBitrateNoAlternative: 'Нисам пронашао песму у жељеном битрејту и нема пронађених алтернатива!', + no360RA: 'Песма није доступна у Reality Audio 360.', + notAvailable: 'Песна није доступна на Deezer-овим серверима!', + notAvailableNoAlternative: 'Песна није доступна на Deezer-овим серверима и нема пронађених алтернатива!', + noSpaceLeft: 'Нема више слободног простора на уређају!', + albumDoesntExists: 'Албум песме не постоји, нисам успео да прикупим информације.', + wrongLicense: 'Ваш налог не може да стримује песму у жељеном битрејту.', + wrongGeolocation: 'Ваш налог не може да стримује песму из тренутне земље.' + } + }, + favorites: { + title: 'Омиљено', + noPlaylists: 'Нема плејлисти', + noAlbums: 'Нема омиљених албума', + noArtists: 'Нема омиљених извођача', + noTracks: 'Нема омиљених наслова' + }, + home: { + needTologin: 'Морате да се пријавите на свој Deezer налог пре него што кренете са преузимањем.', + openSettings: 'Отвори Подешавања', + sections: { + popularPlaylists: 'Популарне плејлисте', + popularAlbums: 'Најслушанији албуми' + } + }, + linkAnalyzer: { + info: 'Можете да користе ову секцију да сазнате више информација о линку који желите да преузмете.', + useful: + 'Ово можете бити корисно уколико желите да преузмете неке песме које нису доступне у вашој земљи а желите да сазнате са којих локација су доступне.', + linkNotSupported: 'Овај линк још није подржан', + linkNotSupportedYet: 'Изгледа да овај линк још није подржан, пробајте да анализирате неки други.', + table: { + id: 'ID', + isrc: 'ISRC', + upc: 'UPC', + duration: 'Трајање', + diskNumber: 'Број диска', + trackNumber: 'Број песме', + releaseDate: 'Датум објављивања', + bpm: 'BPM', + label: 'Издавачка кућа', + recordType: 'Record Type', + genres: 'Жанрови', + tracklist: 'Tracklist' + } + }, + search: { + startSearching: 'Започните претрагу!', + description: + 'Можете да тражите песму, цео албум, извођача, плејлисту.... било шта! Можете и да налепите Deezer линк', + fans: '{n} фанова', + noResults: 'Нема резултата', + noResultsTrack: 'Нема пронађених песама', + noResultsAlbum: 'Нема пронађених албума', + noResultsArtist: 'Нема пронађених извођача', + noResultsPlaylist: 'Нема пронађених плејлисти' + }, + searchbar: 'Претражите било шта (или налепите линк)', + downloads: 'преузимања', + toasts: { + restoringQueue: 'Обнављам ред за преузимање...', + queueRestored: 'Ред за преузимање је обновљен!', + addedToQueue: '{item} - додато у ред', + addedMoreToQueue: '{n} ставке(и) додате у ред', + alreadyInQueue: '{item} је већ у реду!', + finishDownload: '{item} - завршено преузимање.', + allDownloaded: 'Сва преузимања су завршена!', + refreshFavs: 'Освежавање завршено!', + loggingIn: 'Пријављивање...', + loggedIn: 'Пријављени', + alreadyLogged: 'Већ сте пријављени', + loginFailed: 'Нисам могао да вас пријавим', + loggedOut: 'Одјављени', + cancellingCurrentItem: 'Отказујем тренутну ставку.', + currentItemCancelled: 'Тренутно ставка отказана.', + startAddingArtist: 'Додајем албуме извођача {artist} у ред', + finishAddingArtist: 'Додао албуме извођача {artist} у ред', + startConvertingSpotifyPlaylist: 'Конвертујем Spotify песме у Deezer пезме', + finishConvertingSpotifyPlaylist: 'Spotify плејлиста је конвертована', + loginNeededToDownload: 'Морате да се пријавите да бисте преузели песме!', + deezerNotAvailable: 'Deezer није доступан у вашој земљи. Требало би да користите VPN.', + startGeneratingItems: 'Обрађујем {n} ставки...', + finishGeneratingItems: 'Генерисао {n} ставки.' + }, + settings: { + title: 'Подешавања', + language: 'Језик', + login: { + title: 'Пријављивање', + loggedIn: 'Пријављени сте као {username}', + arl: { + question: 'Како да набавим свој ARL?', + update: 'Ажурирај ARL' + }, + logout: 'Одјава', + login: 'Пријава преко deezer.com' + }, + loginWithCredentials: { + title: 'Пријава имејлом и шифром', + login: 'Пријава' + }, + appearance: { + title: 'Приказ', + slimDownloadTab: 'Танки таб за преузимање', + slimSidebar: 'Танка бочна трака' + }, + downloadPath: { + title: 'Путања за смештање преузетих фајлова' + }, + templates: { + title: 'Шаблони', + tracknameTemplate: 'Шаблон имена песме', + tracknameAvailableVariables: 'Доступне променљиве за име песме', + albumTracknameTemplate: 'Шаблон имена албума', + albumTracknameAvailableVariables: 'Доступне променљиве за албум', + playlistTracknameTemplate: 'Шаблон имена плејлисте', + playlistTracknameAvailableVariables: 'Доступне променљиве за плејлисту' + }, + folders: { + title: 'Фолдери', + createPlaylistFolder: 'Направи фолдер за плејлисте', + playlistNameTemplate: 'Шаблон фолдера за плејлисте', + createArtistFolder: 'Направи фолдер за извођача', + artistNameTemplate: 'Шаблон фолдера за извођача', + createAlbumFolder: 'Направи фолдер за албум', + albumNameTemplate: 'Шаблон фолдера за албум', + createCDFolder: 'Направи фолдер за CD-ове', + createStructurePlaylist: 'Направи низ фолдера за плејлисте', + createSingleFolder: 'Направи низ фолдера за синглове' + }, + trackTitles: { + title: 'Наслови песама', + padTracks: 'Pad tracks', + paddingSize: 'Overwrite padding size', + illegalCharacterReplacer: 'Замена нелегалних знакова' + }, + downloads: { + title: 'Преузимања', + queueConcurrency: 'Број истовремених преузимања', + maxBitrate: { + title: 'Жељени битрејт', + 9: 'FLAC 1411kbps', + 3: 'MP3 320kbps', + 1: 'MP3 128kbps' + }, + overwriteFile: { + title: 'Да ли да прегазим постојеће фајлове?', + y: 'Да, прегази фајл', + n: 'Не, немој да прегазиш фајл', + t: 'Препиши само тагове', + b: 'Не, задржи оба фајла и додај број дупликату', + e: 'Не, и не гледај екстензије' + }, + fallbackBitrate: 'Bitrate fallback', + fallbackSearch: 'Search fallback', + logErrors: 'Направи фајл са извештајем о грешкама', + logSearched: 'Направи фајл са извештајем о претраживаним песмама', + createM3U8File: 'Направи фајл за плејлисту', + syncedLyrics: 'Направи .lrc фајлове (Sync Lyrics)', + playlistFilenameTemplate: 'Шаблон за фајл за плејлисте', + saveDownloadQueue: 'Сними ред за преузимање приликом затварања апликације' + }, + covers: { + title: 'Омоти албума', + saveArtwork: 'Сними омоте', + coverImageTemplate: 'Шаблон за име омота', + saveArtworkArtist: 'Сачувај слику извођача', + artistImageTemplate: 'Шаблон за слику извођача', + localArtworkSize: 'Величина локалних слика', + embeddedArtworkSize: 'Величина уграђених слика', + localArtworkFormat: { + title: 'У ком формату желите да снимите локалне слике?', + jpg: 'JPEG слика', + png: 'PNG слика', + both: 'И JPEG и PNG' + }, + jpegImageQuality: 'Квалитет JPEG слике', + embeddedArtworkPNG: 'Сними уграђене слике као PNG', + embeddedPNGWarning: 'Deezer нема званичну подршку за PNG формат па може доћи до багова', + imageSizeWarning: 'Deezer не подржава све изнад x1200, може доћи до грешака', + coverDescriptionUTF8: 'Сачувај опис омота као UTF8 (iTunes Cover Fix)' + }, + tags: { + head: 'Које тагове да сачувам', + title: 'Наслов', + artist: 'Извођач', + album: 'Албум', + cover: 'Омот албума', + trackNumber: 'Број песме', + trackTotal: 'Укупно песама', + discNumber: 'Број диска', + discTotal: 'Укупно дискова', + albumArtist: 'Извођач албума', + genre: 'Жанр', + year: 'Година', + date: 'Датум', + explicit: 'Експлицитан текст', + isrc: 'ISRC', + length: 'Дужина песме', + barcode: 'Баркод албума (UPC)', + bpm: 'BPM', + replayGain: 'Replay Gain', + label: 'Издавачка кућа', + lyrics: 'Несинхронизован текст песме', + syncedLyrics: 'Синхронизован текст песме', + copyright: 'Ауторска права', + composer: 'Композитор', + involvedPeople: 'Укључени људи', + source: 'Порекло и ID песме' + }, + other: { + title: 'Остало', + savePlaylistAsCompilation: 'Сачувај плејлисте као компилације', + useNullSeparator: 'Користи null сепаратор', + saveID3v1: 'Сними и ID3v1', + multiArtistSeparator: { + title: 'Како желите да раздвојите више извођача?', + nothing: 'Сними само главног извођача', + default: 'Користећи стандардну спецификацију', + andFeat: 'Користећи & и feat.', + using: "Користећи '{separator}'" + }, + singleAlbumArtist: 'Сними само име главног извођача на албуму', + albumVariousArtists: "Задржи 'Various Artists' као извођаче на албуму", + removeAlbumVersion: "Уклони 'Album Version' из наслова песме", + removeDuplicateArtists: 'Уклони комбинацију извођача', + dateFormat: { + title: 'Формат датума за FLAC фајлове', + year: 'ГГГГ', + month: 'ММ', + day: 'ДД' + }, + featuredToTitle: { + title: 'Шта да урадим са истакнутим извођачима?', + 0: 'Ништа', + 1: 'Уклони их из имена песме', + 3: 'Уклони их из имена песме и албума', + 2: 'Премести их у наслов' + }, + titleCasing: 'Величина слова наслова', + artistCasing: 'Величина слова извођача', + casing: { + nothing: 'Остави непромењено', + lower: 'малим словима', + upper: 'ВЕЛИКИМ СЛОВИМА', + start: 'Почетак Сваке Речи Великим Словима', + sentence: 'Као у реченици' + }, + previewVolume: 'Јачина звука за преслушавање', + executeCommand: { + title: 'Команда коју да извршим након преузимања', + description: 'Оставите празно за неизвршавање акције' + } + }, + spotify: { + title: 'Spotify опције', + clientID: 'Spotify ClientID', + clientSecret: 'Spotify Client Secret', + username: 'Spotify корисничко име', + question: 'Како да омогућим Spotify опције?' + }, + reset: 'Врати на почетне вредности', + resetMessage: 'Да ли сте сигурни да желите да се вратите на почетне вредности?', + save: 'Сними', + toasts: { + init: 'Подешавања учитана!', + update: 'Подешавања ажурирана!', + reset: 'Подешавања враћена на почетне вредности!', + ARLcopied: 'ARL копиран у оставу' + }, + logs: { + title: 'Дневници', + areLogsActive: 'Укључени' + } + }, + sidebar: { + home: 'почетна', + search: 'претрага', + charts: 'топ листе', + favorites: 'омиљено', + linkAnalyzer: 'анализа линкова', + settings: 'подешавања', + logs: 'дневници', + about: 'о програму' + }, + tracklist: { + downloadSelection: 'Преузми одабрано' + }, + logs: { + event: 'Догађај', + data: 'Подаци' + } +} + +export default sr diff --git a/webui/src/lang/th.mjs b/webui/src/lang/th.mjs new file mode 100644 index 0000000..4c47ee2 --- /dev/null +++ b/webui/src/lang/th.mjs @@ -0,0 +1,419 @@ +const th = { + globals: { + welcome: 'ยินดีต้อนรับสู่ deemix', + back: 'กลับ', + loading: 'กำลังโหลด', + download: 'ดาวน์โหลด {thing}', + by: 'โดย {artist}', + in: 'ใน {album}', + download_hint: 'ดาวน์โหลด', + play_hint: 'เล่น', + toggle_download_tab_hint: 'ขยาย/ยุบ', + clean_queue_hint: 'เคลียร์ที่ดาวน์โหลดเสร็จแล้ว', + cancel_queue_hint: 'ยกเลิกทั้งหมด', + open_downloads_folder: 'เปิดโฟลเดอร์ดาวน์โหลด', + cut: 'ตัด', + copy: 'คัดลอก', + copyLink: 'คัดลอกลิงก์', + copyImageLink: 'คัดลอกลิงค์รูปภาพ', + copyDeezerLink: 'คัดลอกลิงค์ deezer', + paste: 'วาง', + listTabs: { + empty: '', + all: 'ทั้งหมด', + top_result: 'ผลลัพธ์ที่ดีที่สุด', + album: 'อัลบั้ม | อัลบั้ม', + artist: 'ศิลปิน | ศิลปิน', + single: 'ซิงเกิล | ซิงเกิล', + title: 'ชื่อเพลง | ชื่อเพลง', + track: 'เพลง | เพลง', + releaseN: '0 เผยแพร่ | {n} เผยแพร่ | {n} เผยแพร่', + playlist: 'เพลย์ลิสต์ | เพลย์ลิสต์', + compile: 'อัลบั้มรวมเพลง | อัลบั้มรวมเพลง', + ep: 'อีพี | อีพี ', + bundle: 'ชุดรวม | ชุดรวม', + more: 'อัลบั้มเพิ่มเติม', + featured: 'มีส่วนร่วมใน', + spotifyPlaylist: 'เพลย์ลิสต์ Spotify | เพลย์ลิสต์ Spotify', + releaseDate: 'วันที่เผยแพร่', + error: 'ข้อผิดพลาด', + trackN: '0 เพลง | {n} เพลง | {n} เพลง ', + albumN: '0 อัลบั้ม | {n} อัลบั้ม | {n} อัลบั้ม', + artistN: '0 ศิลปิน | {n} ศิลปิน | {n} ศิลปิน', + playlistN: '0 เพลย์ลิสต์ | {n} เพลย์ลิสต์ | {n} เพลย์ลิสต์' + } + }, + about: { + appStatus: { + online: 'แอปออนไลน์', + offline: 'แอปออฟไลน์' + }, + updates: { + currentVersion: 'รุ่นปัจจุบัน', + currentWebuiVersion: 'รุ่น WebUI ปัจจุบัน', + versionNotAvailable: 'ไม่มี', + updateAvailable: `คุณไม่ได้ใช้แอปรุ่นล่าสุดที่มี: {version}`, + deemixVersion: 'รุ่นไลบรารี deemix' + }, + titles: { + usefulLinks: 'ลิงก์ที่มีประโยชน์', + bugReports: 'รายงานบั๊ก', + contributing: 'การมีส่วนร่วม', + donations: 'การบริจาค', + license: 'สัญญาอนุญาต' + }, + subtitles: { + bugReports: 'มีบางอย่างใน deemix ที่ใช้งานไม่ได้หรือ บอกเราสิ!', + contributing: 'คุณต้องการมีส่วนร่วมในโครงการนี้หรือไม่? คุณสามารถทำได้หลายวิธี!', + donations: 'หากคุณต้องการมีส่วนช่วยเหลือด้านการเงิน? คุณสามารถบริจาคได้!' + }, + usesLibrary: 'แอปนี้ใช้ไลบรารี deemix ซึ่งคุณสามารถใช้เพื่อสร้าง UI ของคุณเองสำหรับ deemix', + thanks: `ขอขอบคุณ rtonno, uhwot และ lolililol ที่ช่วยเหลือผมในโครงการนี้และ BasCurtiz ที่ช่วยทำไอคอนแอป`, + upToDate: { + text: `ติดตามการอัปเดตผ่าน {newsChannel} ใน Telegram.`, + newsChannel: 'แชนแนลข่าวสาร' + }, + officialWebsite: 'เว็บไซต์หลัก', + officialRepo: 'พื้นที่เก็บข้อมูลไลบรารีหลัก', + officialWebuiRepo: 'พื้นที่เก็บข้อมูล WebUI หลัก', + officialSubreddit: 'ซับเรดดิตหลัก', + newsChannel: 'แชนแนลข่าวสาร', + questions: { + text: `หากคุณมีข้อสงสัยหรือพบปัญหาเกี่ยวกับแอป ให้ค้นหาแนวทางแก้ไขใน{subreddit}ก่อน ถ้าไม่พบปัญหาที่เหมือนกันกับกรณีของคุณก็ให้คุณสร้างโพสต์ใหม่`, + subreddit: 'ซับเรดดิต' + }, + beforeReporting: `ก่อนที่จะรายงานจุดบกพร่อง ตรวจสอบให้แน่ใจว่าคุณกำลังใช้งานแอปเวอร์ชันล่าสุดและสิ่งที่คุณต้องการรายงานนั้นเป็นข้อบกพร่องจริง ๆ และไม่ใช่สิ่งผิดปกติที่เกิดขึ้นในเครื่องของคุณเท่านั้น`, + beSure: `ตรวจสอบให้แน่ใจว่าสามารถทำบักซ้ำได้บนเครื่องอื่น และ อย่า รายงานจุดบกพร่องหากมีการรายงานเข้ามาแล้ว`, + duplicateReports: 'การรายงานข้อผิดพลาดที่ซ้ำกันจะถูกปิด ดังนั้นโปรดดูให้ดี', + dontOpenIssues: `ห้ามOpen Issue เพื่อถามคำถาม เรามีซับเรดดิตไว้สำหรับการตอบคำถามแล้ว`, + newUI: { + text: `หากคุณถนัดภาษา python คุณสามารถลองสร้าง UI สำหรับแอปโดยใช้งานไลบราลีนี้ได้ หรือแก้บั๊กด้วยการส่ง pull request มายัง {repo}.`, + repo: 'repo' + }, + acceptFeatures: `เราเปิดรับคุณสมบัติใหม่ด้วย แต่ต้องไม่ใช่สิ่งที่ซับซ้อน เพราะสามารถปรับใช้งานได้โดยตรงในแอป ไม่ใช่ในไลบรารี`, + otherLanguages: `หากคุณถนัดการเขียนโปรแกรมด้วยภาษาอื่น คุณสามารถลองพอร์ต deemix เป็นภาษาโปรแกรมอื่น ๆ ได้!`, + understandingCode: `หากคุณต้องการความช่วยเหลือในการทำความเข้าใจโค้ด สามารถติดต่อ waLplanet ได้ทาง Telegram หรือ Reddit`, + contributeWebUI: { + text: `หากคุณถนัดภาษา Vue.js (JavaScript), HTML หรือ CSS คุณสามารถมีส่วนร่วมในการพัฒนา {webui} ได้`, + webui: 'WebUI' + }, + itsFree: `พึงระลึกเสมอว่า นี่เป็นโปรเจ็กต์ฟรีและคุณควรสนับสนุนศิลปินที่คุณรัก ก่อนที่จะสนับสนุนนักพัฒนาโปรแกรมนี้`, + notObligated: `อย่ารู้สึกว่าโดนบังคับให้บริจาค ยังไงก็เราก็ขอขอบคุณ!`, + lincensedUnder: { + text: `ผลงานนี้ใช้{gpl3}.`, + gpl3: 'สัญญาอนุญาตสาธารณะทั่วไปของกนู 3.0' + } + }, + charts: { + title: 'ชาร์ตเพลง', + changeCountry: 'เปลี่ยนประเทศ', + download: 'ดาวน์โหลดเพลงทั้งชาร์ต' + }, + errors: { + title: 'ข้อผิดพลาด {name}', + ids: { + invalidURL: 'ไม่รู้จัก URL นี้', + unsupportedURL: 'ยังไม่รองรับ URL นี้', + ISRCnotOnDeezer: 'ไม่มีรหัส ISRC ของเพลงนี้บน Deezer', + notYourPrivatePlaylist: 'คุณไม่สามารถดาวน์โหลดเพลย์ลิสต์ส่วนตัวของผู้อื่นได้', + spotifyDisabled: 'คุณสมบัติ Spotify ไม่ได้รับการตั้งค่าอย่างถูกต้อง', + trackNotOnDeezer: 'ไม่พบเพลงนี้ใน Deezer!', + albumNotOnDeezer: 'ไม่พบอัลบั้มนี้ใน Deezer!', + notOnDeezer: 'เพลงนี้ไม่พร้อมใช้งานใน Deezer!', + notEncoded: 'เพลงยังไม่ได้เข้ารหัส!', + notEncodedNoAlternative: 'เพลงยังไม่ได้เข้ารหัสและไม่พบทางเลือกอื่น!', + wrongBitrate: 'ไม่พบเพลงที่ต้องการในอัตราบิตเรตนี้', + wrongBitrateNoAlternative: 'ไม่พบเพลงที่ต้องการในอัตราบิตเรตนี้ และไม่พบตัวเลือกอื่น!', + no360RA: 'เพลงนี้ไม่มีในรูปแบบ Reality Audio 360.', + notAvailable: 'เพลงนี้ไม่พร้อมใช้งานบนเซิร์ฟเวอร์ของ Deezer!', + notAvailableNoAlternative: 'เพลงนี้ไม่พร้อมใช้งานบนเซิร์ฟเวอร์ของ Deezer และไม่พบทางเลือกอื่น!', + noSpaceLeft: 'ไม่มีพื้นที่เหลือบนอุปกรณ์!', + albumDoesntExists: 'ไม่มีอัลบั้มของเพลงนี้ ไม่สามารถรวบรวมข้อมูลได้', + wrongLicense: 'บัญชีของคุณไม่สามารถสตรีมเพลงในบิตเรตที่ต้องการได้', + wrongGeolocation: 'บัญชีของคุณไม่สามารถสตรีมเพลงจากประเทศปัจจุบันของคุณได้' + } + }, + favorites: { + title: 'รายการที่ชื่นชอบ', + noPlaylists: 'ไม่พบเพลย์ลิสต์ที่ชื่นชอบ', + noAlbums: 'ไม่พบอัลบั้มที่ชื่นชอบ', + noArtists: 'ไม่พบศิลปินที่ชื่นชอบ', + noTracks: 'ไม่พบเพลงที่ชื่นชอบ' + }, + home: { + needTologin: 'คุณต้องลงชื่อเข้าใช้บัญชี Deezer ของคุณก่อนจึงจะสามารถเริ่มการดาวน์โหลดได้', + openSettings: 'เปิดการตั้งค่า', + sections: { + popularPlaylists: 'เพลย์ลิสต์ยอดนิยม', + popularAlbums: 'อัลบั้มที่มีการสตรีมมากที่สุด' + } + }, + linkAnalyzer: { + info: 'คุณสามารถใช้ส่วนนี้เพื่อค้นหาข้อมูลเพิ่มเติมเกี่ยวกับลิงก์ที่คุณกำลังพยายามดาวน์โหลด', + useful: + 'หากคุณต้องการดาวน์โหลดเพลงที่ไม่พร้อมงานในประเทศของคุณ และต้องการทราบว่าเพลงเหล่านั้นพร้อมใช้งานในประเทศไหน ตัววิเคราะห์ลิงก์นี้อาจช่วยคุณได้', + linkNotSupported: 'ลิงก์นี้ยังไม่รองรับ', + linkNotSupportedYet: 'ดูเหมือนว่าลิงก์นี้ยังไม่รองรับ ลองวิเคราะห์ลิงก์อื่น', + table: { + id: 'ID', + isrc: 'ISRC', + upc: 'UPC', + duration: 'ระยะเวลา', + diskNumber: 'หมายเลขดิสก์', + trackNumber: 'หมายเลขเพลง', + releaseDate: 'วันที่เผยแพร่', + bpm: 'BPM', + label: 'ค่ายเพลง', + recordType: 'ประเภทการบันทึกเสียง', + genres: 'ประเภท', + tracklist: 'รายชื่อเพลง' + } + }, + search: { + startSearching: 'เริ่มการค้นหา!', + description: 'คุณสามารถค้นหาเพลงทั้งอัลบั้ม ศิลปิน เพลย์ลิสต์.... อะไรได้ทั้งนั้น! หรือจะวางลิงก์ Deezer ก็ได้', + fans: 'แฟนเพลง {n} คน', + noResults: 'ไม่มีผลลัพธ์', + noResultsTrack: 'ไม่พบเพลง', + noResultsAlbum: 'ไม่พบอัลบั้ม', + noResultsArtist: 'ไม่พบศิลปิน', + noResultsPlaylist: 'ไม่พบเพลย์ลิสต์' + }, + searchbar: 'ค้นหาเพลงที่คุณต้องการ (หรือจะวางลิงก์ก็ได้)', + downloads: 'ดาวน์โหลด', + toasts: { + restoringQueue: 'กำลังกู้คืนคิวการดาวน์โหลด...', + queueRestored: 'กู้คืนคิวดาวน์โหลดแล้ว!', + addedToQueue: '{item} ถูกเพิ่มในคิวแล้ว', + addedMoreToQueue: 'เพิ่ม {n} รายการในคิวแล้ว', + alreadyInQueue: '{item} อยู่ในคิวแล้ว!', + finishDownload: 'ดาวน์โหลด {item} เสร็จแล้ว', + allDownloaded: 'การดาวน์โหลดทั้งหมดเสร็จสิ้น!', + refreshFavs: 'รีเฟรชเสร็จแล้ว!', + loggingIn: 'กำลังเข้าสู่ระบบ...', + loggedIn: 'เข้าสู่่ระบบแล้ว', + alreadyLogged: 'เข้าสู่่ระบบอยู่แล้ว', + loginFailed: 'ไม่สามารถเข้าสู่ระบบได้', + loggedOut: 'ออกจากระบบแล้ว', + cancellingCurrentItem: 'กำลังยกเลิกรายการปัจจุบัน', + currentItemCancelled: 'รายการปัจจุบันถูกยกเลิกแล้ว', + startAddingArtist: 'กำลังเพิ่มอัลบั้มของ {artist} ไปยังคิว', + finishAddingArtist: 'เพิ่มอัลบั้มของ {artist} ไปยังคิวแล้ว', + startConvertingSpotifyPlaylist: 'กำลังแปลงเพลงจาก Spotify เป็นเพลง Deezer', + finishConvertingSpotifyPlaylist: 'แปลงเพลย์ลิสต์ Spotify แล้ว', + loginNeededToDownload: 'คุณต้องเข้าสู่ระบบเพื่อดาวน์โหลดแทร็ก!', + deezerNotAvailable: 'Deezer ไม่มีการให้บริการในประเทศของคุณ คุณควรใช้ VPN', + startGeneratingItems: 'กำลังประมวลผล {n} รายการ...', + finishGeneratingItems: 'สร้างแล้ว {n} รายการ' + }, + settings: { + title: 'การตั้งค่า', + language: 'ภาษา', + login: { + title: 'เข้าสู่ระบบ', + loggedIn: 'คุณเข้าสู่ระบบด้วย {username}', + arl: { + question: 'ฉันจะหารหัส ARL ของตัวเองได้อย่างไร?', + update: 'อัปเดต ARL' + }, + logout: 'ออกจากระบบ', + login: 'เข้าสู่ระบบผ่าน deezer.com' + }, + loginWithCredentials: { + title: 'เข้าสู่ระบบด้วยรหัสรับรองตัวตน', + login: 'เข้าสู่ระบบ' + }, + appearance: { + title: 'หน้าตาแอป', + slimDownloadTab: 'ลดขนาดแถบดาวน์โหลด', + slimSidebar: 'ลดขนาดแถบด้านข้าง' + }, + downloadPath: { + title: 'ตำแหน่งการดาวน์โหลด' + }, + templates: { + title: 'เทมเพลต', + tracknameTemplate: 'เทมเพลตชื่อเพลง', + tracknameAvailableVariables: 'ตัวแปรชื่อเพลงที่ใช้ได้', + albumTracknameTemplate: 'เทมเพลตอัลบั้มเพลง', + albumTracknameAvailableVariables: 'ตัวแปรชื่ออัลบั้มที่สามารถใช้ได้', + playlistTracknameTemplate: 'เทมเพลตชื่อเพลย์ลิสต์', + playlistTracknameAvailableVariables: 'ตัวแปรชื่อเพลย์ลิสต์ที่สามารถใช้ได้' + }, + folders: { + title: 'โฟลเดอร์', + createPlaylistFolder: 'สร้างโฟลเดอร์สำหรับเพลย์ลิสต์', + playlistNameTemplate: 'เทมเพลตชื่อโฟลเดอร์เพลย์ลิสต์', + createArtistFolder: 'สร้างโฟลเดอร์สำหรับศิลปิน', + artistNameTemplate: 'เทมเพลตชื่อโฟลเดอร์ศิลปิน', + createAlbumFolder: 'สร้างโฟลเดอร์สำหรับอัลบั้ม', + albumNameTemplate: 'เทมเพลตชื่อโฟลเดอร์อัลบั้ม', + createCDFolder: 'สร้างโฟลเดอร์สำหรับซีดี', + createStructurePlaylist: 'สร้างโครงสร้างโฟลเดอร์สำหรับเพลย์ลิสต์', + createSingleFolder: 'สร้างโครงสร้างโฟลเดอร์สำหรับซิงเกิล' + }, + trackTitles: { + title: 'ชื่อเพลง', + padTracks: 'เพิ่มช่องว่างในชื่อเพลง', + paddingSize: 'ขนาดช่องว่างบันทึกทับ', + illegalCharacterReplacer: 'การแทนที่อักขระที่ใช้งานไม่ได้' + }, + downloads: { + title: 'ดาวน์โหลด', + queueConcurrency: 'จำนวนการดาวน์โหลดพร้อมกัน', + maxBitrate: { + title: 'บิตเรตที่ต้องการ', + 9: 'FLAC 1411kbps', + 3: 'MP3 320kbps', + 1: 'MP3 128kbps' + }, + overwriteFile: { + title: 'อนุญาตให้บันทึกทับไฟล์เดิมหรือไม่?', + y: 'ใช่ บันทึกทับไฟล์เดิมเลย', + n: 'ไม่ อย่าบันทึกทับไฟล์เดิม', + t: 'บันทึกทับเฉพาะแท็ก', + b: 'ไม่ เก็บทั้งสองไฟล์และเพิ่มหมายเลขลงในสำเนาที่ซ้ำ', + e: 'ไม่ และไม่ต้องสนใจนามสกุลไฟล์' + }, + fallbackBitrate: 'บิตเรตทางเลือกสำรอง', + fallbackSearch: 'การค้นหาทางเลือกสำรอง', + logErrors: 'สร้างไฟล์บันทึกข้อผิดพลาด', + logSearched: 'สร้างไฟล์บันทึกรายการเพลงที่ค้นหา', + createM3U8File: 'สร้างไฟล์เพลย์ลิสต์', + syncedLyrics: 'สร้างไฟล์ .lrc (เนื้อเพลงซิงโครไนซ์)', + playlistFilenameTemplate: 'เทมเพลตชื่อไฟล์เพลย์ลิสต์', + saveDownloadQueue: 'บันทึกคิวดาวน์โหลดเมื่อปิดแอป' + }, + covers: { + title: 'ภาพปกอัลบั้ม', + saveArtwork: 'บันทึกภาพปกอัลบั้ม', + coverImageTemplate: 'เทมเพลตชื่อภาพปก', + saveArtworkArtist: 'บันทึกภาพศิลปิน', + artistImageTemplate: 'เทมเพลตภาพศิลปิน', + localArtworkSize: 'ขนาดภาพปกอัลบั้มในโฟลเดอร์', + embeddedArtworkSize: 'ขนาดภาพปกอัลบั้มที่ฝังในไฟล์', + localArtworkFormat: { + title: 'คุณต้องการบันทึกภาพปกอัลบั้มในโฟลเดอร์เป็นไฟล์ประเภทใด', + jpg: 'ภาพ jpeg', + png: 'ภาพ png', + both: 'บันทึกทั้งภาพ jpeg และ png' + }, + jpegImageQuality: '= คุณภาพของภาพ JPEG', + embeddedArtworkPNG: 'บันทึกภาพปกอัลบั้มที่ฝังในไฟล์เป็นไฟล์ PNG', + embeddedPNGWarning: 'ไฟล์ PNG ไม่ได้รับการสนับสนุนอย่างเป็นทางการจาก Deezer และอาจทำให้มีปัญหาได้', + imageSizeWarning: 'ไฟล์ที่ขนาดมากกว่า x1200 ไม่ได้ถูกใช้อย่างเป็นทางการโดย Deezer คุณอาจพบปัญหาได้', + coverDescriptionUTF8: 'บันทึกคำอธิบายภาพปกโดยใช้ UTF8 (แก้ไขปก iTunes)' + }, + tags: { + head: 'แท็กที่ต้องการบันทึก', + title: 'ชื่อเพลง', + artist: 'ศิลปิน', + album: 'อัลบั้ม', + cover: 'ภาพปกอัลบั้ม', + trackNumber: 'ลำดับเพลง', + trackTotal: 'จำนวนเพลง', + discNumber: 'หมายเลขแผ่น', + discTotal: 'จำนวนแผ่นทั้งหมด', + albumArtist: 'ศิลปินในอัลบั้ม', + genre: 'ประเภท', + year: 'ปี', + date: 'วันที่', + explicit: 'เนื้อเพลงโจ่งแจ้ง', + isrc: 'ISRC', + length: 'ความยาวเพลง', + barcode: 'บาร์โค้ดอัลบั้ม (UPC)', + bpm: 'BPM', + replayGain: 'Replay Gain', + label: 'ค่ายเพลง', + lyrics: 'เนื้อเพลงที่ไม่ซิงโครไนซ์', + syncedLyrics: 'เนื้อเพลงซิงโครไนซ์', + copyright: 'ลิขสิทธิ์', + composer: 'ผู้แต่งเพลง', + involvedPeople: 'ผู้มีส่วนร่วม', + source: 'แหล่งที่มาและรหัสเพลง' + }, + other: { + title: 'การตั้งค่าอื่น ๆ', + savePlaylistAsCompilation: 'บันทึกเพลย์ลิสต์เป็นอัลบั้มรวมเพลง', + useNullSeparator: 'ใช้ตัวคั่นค่า null', + saveID3v1: 'บันทึก ID3v1 ด้วย', + multiArtistSeparator: { + title: 'คุณต้องการแยกชื่อศิลปินอย่างไร?', + nothing: 'บันทึกเฉพาะศิลปินหลักเท่านั้น', + default: 'ใช้การระบุแบบมาตรฐานดั้งเดิม', + andFeat: 'ใช้ & และ feat.', + using: 'ใช้ "{separator}"' + }, + singleAlbumArtist: 'บันทึกเฉพาะศิลปินหลักของอัลบั้ม', + albumVariousArtists: 'เก็บ "หลายศิลปิน" ไว้ในอัลบั้มของศิลปิน', + removeAlbumVersion: 'ลบ "อัลบั้มเวอร์ชัน" ออกจากชื่อเพลง', + removeDuplicateArtists: 'ลบการรวมศิลปิน', + dateFormat: { + title: 'รูปแบบวันที่สำหรับไฟล์ FLAC', + year: 'ปปปป', + month: 'มม', + day: 'ดด' + }, + featuredToTitle: { + title: 'คุณต้องการจัดการชื่อศิลปินร่วมอย่างไร?', + 0: 'ไม่ต้องเปลี่ยนแปลงอะไร', + 1: 'เอาออกจากชื่อไฟล์', + 3: 'ลบออกจากชื่อไฟล์และชื่ออัลบั้ม', + 2: 'ย้ายไปไว้ในชื่อไฟล์' + }, + titleCasing: 'ตัวพิมพ์ใหญ่-พิมพ์เล็ก ชื่อเพลง', + artistCasing: 'ตัวพิมพ์ใหญ่-พิมพ์เล็ก ชื่อศิลปิน', + casing: { + nothing: 'ไม่ต้องเปลี่ยนแปลงอะไร', + lower: 'ตัวพิมพ์เล็ก', + upper: 'ตัวพิมพ์ใหญ่', + start: 'อักษรตัวแรกของทุกคำขึ้นต้นด้วยตัวพิมพ์ใหญ่', + sentence: 'ตัวพิมพ์ใหญ่เฉพาะอักษรตัวแรกเท่านั้นเหมือนในประโยค' + }, + previewVolume: 'ระดับเสียงตัวอย่างเพลง', + executeCommand: { + title: 'รันคำสั่งเมื่อเสร็จสิ้นการดาวน์โหลด', + description: 'เว้นว่างไว้หากไม่ต้องการทำอะไรเพิ่มเติม' + } + }, + spotify: { + title: 'คุณสมบัติ Spotify', + clientID: 'Spotify ClientID', + clientSecret: 'Spotify Client Secret', + username: 'ชื่อผู้ใช้ Spotify', + question: 'ฉันจะเปิดใช้งานคุณสมบัติ Spotify ได้อย่างไร?' + }, + reset: 'รีเซ็ตเป็นค่าเริ่มต้น', + resetMessage: 'คุณแน่ใจหรือไม่ว่าต้องการกลับไปใช้การตั้งค่าเริ่มต้น?', + save: 'บันทึก', + toasts: { + init: 'โหลดการตั้งค่าแล้ว!', + update: 'อัปเดตการตั้งค่าแล้ว!', + reset: 'การตั้งค่าถูกรีเซ็ตเป็นค่าเริ่มต้น!', + ARLcopied: 'คัดลอก ARL ไปยังคลิปบอร์ดแล้ว' + }, + logs: { + title: 'บันทึก', + areLogsActive: 'เปิดใช้งานอยู่' + } + }, + sidebar: { + home: 'หน้าแรก', + search: 'ค้นหา', + charts: 'ชาร์ตเพลง', + favorites: 'รายการที่ชื่นชอบ', + linkAnalyzer: 'ตัววิเคราะห์ลิงก์', + settings: 'การตั้งค่า', + logs: 'บันทึก', + about: 'เกี่ยวกับ' + }, + tracklist: { + downloadSelection: 'ดาวน์โหลดรายการที่เลือก' + }, + logs: { + event: 'เหตุการณ์', + data: 'ข้อมูล' + } +} + +export default th diff --git a/webui/src/lang/tr.mjs b/webui/src/lang/tr.mjs new file mode 100644 index 0000000..10b9095 --- /dev/null +++ b/webui/src/lang/tr.mjs @@ -0,0 +1,356 @@ +const tr = { + globals: { + welcome: `Deemix'e hoş geldin.`, + back: `geri`, + loading: `yükleniyor`, + download: 'İndir {thing}', + by: '{artist} tarafından', + in: '{album} içinde', + download_hint: 'İndir', + play_hint: 'Oynat', + toggle_download_tab_hint: 'Genişlet/Daralt', + clean_queue_hint: 'Tamamlananları Temizle', + cancel_queue_hint: 'Hepsini ', + listTabs: { + empty: '', + all: 'Tümü', + top_result: 'top result', + album: 'albüm | albümler', + artist: 'sanatçı | sanatçılar', + single: 'single | singlelar', + title: 'başlık | başlıklar', + track: 'Parça | Parçalar', + trackN: '0 parça | {n} parça | {n} parça', + releaseN: '0 yayınlanan | {n} yayınlanan | {n} yayınlanan', + playlist: 'oynatma listesi | oynatma listeleri', + compile: 'derleme | derlemeler', + ep: 'kayıt | kayıtlar', + spotifyPlaylist: 'spotify oynatma listesi | oynatma listeleri', + releaseDate: 'yayınlanma tarihi', + error: 'hata' + } + }, + about: { + titles: { + usefulLinks: 'Yararlı Bağlantılar', + bugReports: 'Hata Raporları', + contributing: 'Katkı Sağlayanlar', + donations: 'Bağışlar', + license: 'Lisans' + }, + subtitles: { + bugReports: "Deemix'te çalışmayan bir şey mi var?, Bize bildirin!", + contributing: 'Projeye katkı sağlamak mı istiyorsun? Farklı yollardan sağlayabilirsin!', + donations: 'Bütçe yardımı mı yapmak istiyorsun? Bağış yapabilirsin!' + }, + usesLibrary: + 'deemix kendi kullanıcı arabiriminizi oluşturabileceğiniz, kendine özgü kütüphanesini kullanıyor.', + thanks: ` rtonno, uhwot ve lollilol'a bu projeye yaptığı katkılardan ve BasCurtiz'e ikonlardan dolayı teşekkür ederim.`, + upToDate: { + text: `{newsChannel} takip ederek güncellemelerden haberdar olun.`, + newsChannel: 'Telegramdaki haber kanalını' + }, + officialWebsite: 'İlgili İnternet Sitemiz', + officialRepo: 'İlgili Kütüphanemiz', + officialWebuiRepo: 'İlgili Web Kullanıcı Arayüzü Kütüphanemiz.', + officialSubreddit: 'İlgili Subreddit adresimiz', + newsChannel: 'Haber Kanalı', + questions: { + text: `Eğer uygulama ile ilgili sorularınız veya bir probleminiz varsa,ilk önce {subreddit} sorununuzu arayın. Eğer bir şey bulamazsanız, sorununuz ile ilgili bir gönderi paylaşabilirsiniz.`, + subreddit: 'subreddit adresinden' + }, + beforeReporting: `Bir hatayı bildirmeden önce, uygulamanın son sürümünde olduğunuza veya sorunun sizden kaynaklı olmayıp bir hata olduğuna emin olduktan sonra emin olun.`, + beSure: `Hatanın başka cihazlarda da olduğunu doğrulayın ve Bildirilen bir hatayı tekrar bildirmeyin.`, + duplicateReports: 'Birbirinin aynısı olan hata bildirileri kapatılacaktır, o yüzden dikkatli olun.', + dontOpenIssues: `Soru sormak için hata bildirisi yollamayın, bunun için bir subreddit adresimiz var.`, + newUI: { + text: `Eğer Phython kullanmakta iyiysen, ana kütüphaneyi kullanan bir kullanıcı arayüzü yapmayı deneyebilir, veya kütüphanedeki hataları düzeltmek için {repo}.`, + repo: 'deposuna değişiklik isteği yollayabilirsin' + }, + acceptFeatures: `Yeni özellikleri de kabul ediyorum, fakat karışık şeyleri kütüphaneye değil uygulamaya eklendiği için kabul edemiyorum.`, + otherLanguages: `Eğer diğer programlama dillerinde kendine güveniyorsan, deemix'i farklı dillere port etmeye çalışabilirsin!`, + understandingCode: `Kodu anlamak için yardım mı lazım? Reddit üzerinden veya Telegramdan waLplanet'e ulaş.`, + contributeWebUI: { + text: `Eğer Vue.js (JavaScript), HTML veya CSS biliyorsan, {webui}.`, + webui: 'Web Kullanıcı Arayüzüne katkıda bulanabilirsin' + }, + itsFree: `Bunun ücretsiz bir proje olduğunu ve geliştiricilerden önce sevdiğiniz sanatçıları desteklemeniz gerektiğini unutmayın.`, + notObligated: `Kendinizi bağış yapmak zorunda hissetmeyin!, Sizi her halinizle seviyorum!`, + lincensedUnder: { + text: `Bu çalışma lisanslıdır: {gpl3}.`, + gpl3: 'GNU General Public License 3.0' + } + }, + charts: { + title: 'Grafikler', + changeCountry: 'Ülke Değiştir', + download: 'Grafiği İndir' + }, + errors: { + title: '{name} Hatalı bulundu', + ids: { + invalidURL: 'URL geçersiz.', + unsupportedURL: 'URL şimdilik desteklenmiyor', + ISRCnotOnDeezer: 'ISRC parça deezerda bulunmuyor', + notYourPrivatePlaylist: 'Başkalarının özel oynatma listelerini indiremezsin.', + spotifyDisabled: 'Spotify Özellikleri doğru şekilde ayarlanmamış.', + trackNotOnDeezer: `Parça Deezer'da bulunamadı!`, + albumNotOnDeezer: `Albüm Deezer'da bulunamadı!`, + notOnDeezer: `Parça Deezer'da yok!`, + notEncoded: `Parça henüz dönüştürülmedi!`, + notEncodedNoAlternative: 'Parça henüz dönüştürülmedi ve alternatifi bulunamadı!', + wrongBitrate: 'Parça, istenen kalitede bulunamadı!', + wrongBitrateNoAlternative: 'Parça veya alternatifler istenen kalitede bulunamadı!', + no360RA: 'Parça 360 Derece gerçekçi ses olarak bulunamadı!', + notAvailable: 'Parça Deezer sunucularında bulunamadı!', + notAvailableNoAlternative: 'Parça veya Alternatifleri Deezer sunucularında bulunamadı.!' + } + }, + favorites: { + title: 'Favoriler', + noPlaylists: 'Oynatma listesi bulunamadı.', + noAlbums: 'Favori albümler bulunamadı.', + noArtists: 'Favori sanatçılar bulunamadı.', + noTracks: 'Favori parçalar bulunamadı.' + }, + home: { + needTologin: 'İndirmeden önce Deezer hesabına giriş yapmalısın.', + openSettings: 'Ayarları Aç', + sections: { + popularPlaylists: 'Popüler Oynatma Listeleri', + popularAlbums: 'En çok dinlenen albümler' + } + }, + linkAnalyzer: { + info: 'İndirmeye çalıştığın link hakkında daha fazla bilgi için burayı kullanabilirsin.', + useful: 'Mesela, ülkende dinlenebilir olmayan parçaların nerelerde var olduğunu bulmak için kullanabilirsin.', + linkNotSupported: 'Bu link şimdilik desteklenmemektedir.', + linkNotSupportedYet: 'Bu link şimdilik desteklenmiyor gibi duruyor, başkasını analiz etmeyi dene.', + table: { + id: 'ID', + isrc: 'ISRC', + upc: 'UPC', + duration: 'Süre', + diskNumber: 'Sıra numarası', + trackNumber: 'Parça numarası', + releaseDate: 'Yayınlanma tarihi', + bpm: 'BPM', + label: 'Etiketi', + recordType: 'Kayıt Şekli', + genres: 'Türü', + tracklist: 'Parça listesi' + } + }, + search: { + startSearching: 'Aramayı Başlat!', + description: + 'Bir parçayı, tüm albümü, bir sanatçıyı, bir oynatma listesini... kısaca her şeyi aratabilirsin! Ayrıca Deezer Linki de yapıştırabilirsin!', + fans: '{n} Hayranlar', + noResults: 'Sonuç Bulunamadı', + noResultsTrack: 'Parça bulunamadı', + noResultsAlbum: 'Albüm bulunamadı', + noResultsArtist: 'Sanatçı bulunamadı', + noResultsPlaylist: 'Oynatma Listesi bulunamadı' + }, + searchbar: 'İstediğin bir şeyi arat (ya da bir link yapıştır.)', + downloads: 'İndirilenler', + toasts: { + addedToQueue: '{item} kuyruğa eklendi', + alreadyInQueue: '{item} çoktan kuyrukta!', + finishDownload: '{item} indirmesi tamamlandı.', + allDownloaded: 'Tüm indirmeler tamamlandı!', + refreshFavs: 'Yenileme tamamlandı.!', + loggingIn: 'Giriş yapılıyor', + loggedIn: 'Giriş yapıldı', + alreadyLogged: 'Çoktan giriş yapıldı', + loginFailed: 'Giriş yapılamadı', + loggedOut: 'Oturum kapatıldı.', + cancellingCurrentItem: 'Geçerli öğe iptal ediliyor.', + currentItemCancelled: 'Geçerli öğe iptal edildi.', + startAddingArtist: '{artist} albüm kuyruğa ekleniyor', + finishAddingArtist: '{artist} albüm kuyruğa eklendi.', + startConvertingSpotifyPlaylist: 'Spotify parçaları deezer parçalarına dönüştürülüyor.', + finishConvertingSpotifyPlaylist: 'Spotify oynatma listesi dönüştürüldü.' + }, + settings: { + title: 'Ayarlar', + language: 'Dil', + login: { + title: 'Giriş', + loggedIn: '{username} olarak giriş yaptın.', + arl: { + question: `Kendi ARL'mi nasıl alırım?`, + update: 'ARL güncelle.' + }, + logout: 'Çıkış' + }, + appearance: { + title: 'Görünüm', + slimDownloadTab: 'İnce indirme sekmesi' + }, + downloadPath: { + title: 'İndirilen dizin' + }, + templates: { + title: 'Şablonlar', + tracknameTemplate: 'Parça ismi şablonu', + albumTracknameTemplate: 'Albüm parçası şablonu', + playlistTracknameTemplate: 'Oynatma listesi parça şablonu' + }, + folders: { + title: 'Dosyalar', + createPlaylistFolder: 'Oynatma listesi için dosya oluştur', + playlistNameTemplate: 'Oynatma listesi dosyası şablonu', + createArtistFolder: 'Sanatçı için dosya oluştur', + artistNameTemplate: 'Sanatçı dosyası şablonu', + createAlbumFolder: 'Albüm için dosya oluştur', + albumNameTemplate: 'Albüm dosyası şablonu', + createCDFolder: 'CDler için dosya oluştur', + createStructurePlaylist: 'Oynatma listeleri için dosya kökü oluştur', + createSingleFolder: 'Singlelar için dosya kökü oluştur' + }, + trackTitles: { + title: 'Parça başlıkları', + padTracks: 'İz Numaraları', + paddingSize: 'İz Numaralarını değiştir', + illegalCharacterReplacer: 'Illegal Karakter Düzenleyici' + }, + downloads: { + title: 'İndirilenler', + queueConcurrency: 'Devam eden indirmeler', + maxBitrate: { + title: 'Tercih edilmiş Bitrateler (kaliteler)', + 9: 'FLAC 1411kbps', + 3: 'MP3 320kbps', + 1: 'MP3 128kbps' + }, + overwriteFile: { + title: 'Dosyaların üstüne yazmalı mıyım?', + y: 'Evet, üstüne yaz', + n: 'Hayır, üstüne yazma', + t: 'Sadece izleri üstüne yaz' + }, + fallbackBitrate: 'Bitrate düşürme', + fallbackSearch: 'Düşürme ara', + logErrors: 'Hatalar için günlük tut', + logSearched: 'Aranmış parçalar için günlük tut', + createM3U8File: 'Oynatma sıra listesi oluştur', + syncedLyrics: '.lrc dosyaları oluştur (Senkronize şarkı sözleri)', + playlistFilenameTemplate: 'Oynatma listesi şablonu', + saveDownloadQueue: 'Uygulamayı kapatırken indirme kuyruğunu kaydet' + }, + covers: { + title: 'Albüm kapakları', + saveArtwork: 'Kapakları kaydet', + coverImageTemplate: 'Kapak ismi şablonu', + saveArtworkArtist: 'Sanatçı fotoğrafını kaydet', + artistImageTemplate: 'Şarkıcı fotoğraf şablonu', + localArtworkSize: 'Yerel fotoğraf boyutu', + embeddedArtworkSize: 'Gömülü fotoğraf boyutu', + localArtworkFormat: { + title: 'Yerel fotoğrafın hangi formatta olmasını istersin?', + jpg: 'Jpeg dosyası', + png: 'Png dosyası', + both: 'Her ikisi' + }, + jpegImageQuality: 'JPEG görüntü kalitesi' + }, + tags: { + head: 'Hangi izler kayıt edilsin?', + title: 'Başlık', + artist: 'Sanatçı', + album: 'Albüm', + cover: 'Kapak', + trackNumber: 'Parça Numarası', + trackTotal: 'Tüm Parça', + discNumber: 'Plak Sayısı', + discTotal: 'Tüm Plak', + albumArtist: 'Sanatçı Albümü', + genre: 'Tür', + year: 'Yıl', + date: 'Tarih', + explicit: 'Cinsel içerikli şarkı sözleri', + isrc: 'ISRC', + length: 'Parça Uzunluğu', + barcode: 'Albüm Barkodu (UPC)', + bpm: 'BPM', + replayGain: 'Ses Yüksekliği Normalleştirici', + label: 'Albüm Etiketi', + lyrics: 'Senkronize edilmemiş şarkı sözleri', + copyright: 'Telif hakkı', + composer: 'Besteleyen', + involvedPeople: 'Alakalı Kişiler' + }, + other: { + title: 'Diğer', + savePlaylistAsCompilation: 'Oynatma listelerini derleme olarak kaydet', + useNullSeparator: 'Boşluk ayırıcı kullan', + saveID3v1: 'ID3v1 dosyasını da kaydet', + multiArtistSeparator: { + title: 'Sanatçılarınızı nasıl ayırmak istersiniz?', + nothing: 'Sadece ana sanatçıyı kaydet', + default: 'Genel prosedür uygulansın', + andFeat: 'Kullanılanlar & ve Feat.', + using: 'Kullanılan "{separator}"' + }, + singleAlbumArtist: 'Sadece ana albüm sanatçısını kaydet', + albumVariousArtists: '"Çeşitli sanatçılar"ı sanatçı albümlerinde tut', + removeAlbumVersion: '"Albüm Sürümü"nü parça başlığından çıkart', + removeDuplicateArtists: 'Sanatçı topluluğunu çıkart', + dateFormat: { + title: 'FLAC dosyalar için zaman formatı', + year: 'YYYY', + month: 'AA', + day: 'GG' + }, + featuredToTitle: { + title: 'Öne çıkan sanatçıları ne yapmalıyım?', + 0: 'Elleme', + 1: 'Başlıktan çıkart', + 3: 'Başlıktan ve albüm başlığından çıkart', + 2: 'Başlığa taşı' + }, + titleCasing: 'Albüm harfi', + artistCasing: 'Sanatçı harfi', + casing: { + nothing: 'Değiştirmeden bırak', + lower: 'küçük harf', + upper: 'BÜYÜK HARF', + start: 'Kelimenin başı ile başla', + sentence: 'Cümle gibi yap' + }, + previewVolume: 'Ses önizlemesi', + executeCommand: { + title: 'İndirdikten sonra komut uygula', + description: 'Bir şey yapmamak için boş bırak' + } + }, + spotify: { + title: 'Spotify Özelliği', + clientID: 'Spotify clientID', + clientSecret: 'Spotify Client Secret', + username: 'Spotify Kullanıcı Adı' + }, + reset: 'Varsayılana sıfırla', + save: 'Kaydet', + toasts: { + init: 'Ayarlar yüklendi!', + update: 'Ayarlar güncellendi!', + ARLcopied: 'ARL panoya kopyalandı!' + } + }, + sidebar: { + home: 'Ana sayfa', + search: 'Ara', + charts: 'Grafikler', + favorites: 'Favoriler', + linkAnalyzer: 'Link Analizörü', + settings: 'Ayarlar', + about: 'Hakkında' + }, + tracklist: { + downloadSelection: 'İndirme bölümü' + } +} + +export default tr diff --git a/webui/src/lang/vi.mjs b/webui/src/lang/vi.mjs new file mode 100644 index 0000000..7bb1481 --- /dev/null +++ b/webui/src/lang/vi.mjs @@ -0,0 +1,357 @@ +const vi = { + globals: { + welcome: 'Chào mừng đến với deemix', + back: 'trở lại', + loading: 'đang tải', + download: 'Tải xuống {thing}', + by: 'bởi {artist}', + in: 'trong {album}', + download_hint: 'Tải xuống', + play_hint: 'Phát', + toggle_download_tab_hint: 'Mở rộng/Giấu', + clean_queue_hint: 'Xóa những file đã tải xong', + cancel_queue_hint: 'Hủy tất cả', + listTabs: { + empty: '', + all: 'tất cả', + top_result: 'kết quả hàng đầu', + album: 'album | album', + artist: 'Nghệ sĩ | Nghệ sĩ', + single: 'đơn | đơn', + title: 'tiêu đề | tiêu đề', + track: 'Bài hát | Bài hát', + trackN: '0 Bài hát | {n} Bài hát | {n} Bài hát', + releaseN: '0 sản phẩm | {n} sản phẩm | {n} sản phẩm', + playlist: 'playlist | playlist', + compile: 'tổng hợp | tổng hợp', + ep: 'ep | ep', + spotifyPlaylist: 'playlist của spotify | playlist của spotify', + releaseDate: 'ngày phát hành', + error: 'lỗi' + } + }, + about: { + titles: { + usefulLinks: 'Link hữu dụng', + bugReports: 'Báo lỗi', + contributing: 'Đóng góp', + donations: 'Quyên góp', + license: 'Bằng phép' + }, + subtitles: { + bugReports: 'Bạn thấy có gì đó không hoạt động trong deemix? Xin hãy báo với chúng tôi!', + contributing: 'Bạn muốn đóng góp cho dự án này? Bạn có thể làm điều đó với nhiều cách khác nhau!', + donations: 'Bạn muốn ủng hộ kinh phí? Bạn có thể quyên góp tại đây!' + }, + usesLibrary: + 'Ứng dụng này sử dụng thư viện deemix, bạn có thể dùng nó để tạo một UI riêng cho deemix.', + thanks: `Cảm ơn rtonno, uhwotlollilol đã giúp tôi với dự án này và BasCurtiz với việc thiết kế biểu tượng.`, + upToDate: { + text: `Cập nhật app bằng cách theo dõi {newsChannel} trên Telegram.`, + newsChannel: 'kênh tin tức' + }, + officialWebsite: 'Website chính thức', + officialRepo: 'Repo thư viện chính thức', + officialWebuiRepo: 'Repo WebUI chính thức', + officialSubreddit: 'Subreddit chính thức', + newsChannel: 'Kênh tin tức', + questions: { + text: `Nếu bạn có câu hỏi hoặc vấn đề về ứng dụng này, xin hãy tìm giải pháp trên {subreddit} trước. Sau đó, nếu bạn không tìm được gì thì bạn có thể tạo một bài đăng về vấn đề của bạn trên subreddit dó.`, + subreddit: 'subreddit' + }, + beforeReporting: `Trước khi báo lỗi hãy đảm bảo bạn đang sử dụng phiên bản mới nhất của ứng dụng và lỗi bạn đang gặp không phải là do bạn.`, + beSure: `Hãy đảm bảo là lỗi này vẫn có thể xảy ra trên các thiết bị khác và XIN ĐỪNG báo lỗi đã được báo rồi.`, + duplicateReports: 'Những bản báo lỗi trùng nhau sẽ bị đóng, xin bạn hãy để ý điều này.', + dontOpenIssues: `XIN ĐỪNG mở vấn đề để hỏi, bạn có thể dùng subreddit trên cho việc đó.`, + newUI: { + text: `Nếu bạn thành thạo với python bạn có thể tạo một UI mới bằng cách sử dụng thư viện gốc, hoặc sửa lỗi trong thư viện đó với một pull request trên {repo}.`, + repo: 'repo này' + }, + acceptFeatures: `Tôi có chấp nhận yêu cầu về tính năng mới nhưng không quá phức tạp bởi vì chúng có thể được triển khai trực tiếp vào ứng dụng thay vì vào thư viện.`, + otherLanguages: `Nếu bạn thành thạo với một ngôn ngữ khác, bạn có thể port deemix sang ngôn ngữ đó!`, + understandingCode: `Bạn muốn hiểu code của deemix? Xin hãy liên lạc waLplanet trên Telegram hoặc Reddit.`, + contributeWebUI: { + text: `Nếu bạn biết Vue.js (JavaScript), HTML hoặc CSS, bạn có thể góp phần phát triển {webui}.`, + webui: 'WebUI' + }, + itsFree: `Bạn nên nhớ rằng đây là một dự án phi lợi nhuậnbạn nên ủng hộ những Nghệ sĩ yêu thích của bạn trước khi ủng hộ nhà phát triển.`, + notObligated: `Đừng nghĩ rằng bạn phải đóng góp tiền, tôi vẫn sẽ rất biết ơn bạn!`, + lincensedUnder: { + text: `Dự án này được cấp phép bởi {gpl3}.`, + gpl3: 'GNU General Public License 3.0' + } + }, + charts: { + title: 'Bảng xếp hạng', + changeCountry: 'Thay đổi quốc gia', + download: 'Tải xuống bảng xếp hạng này' + }, + errors: { + title: 'Lỗi {name}', + ids: { + invalidURL: 'Không nhận diện được URL', + unsupportedURL: 'URL này chưa được hỗ trợ', + ISRCnotOnDeezer: 'ISRC của bài hát này hiện không có trên Deezer', + notYourPrivatePlaylist: 'Bạn không thể tải xuống playlist riêng của người khác.', + spotifyDisabled: 'Chức năng Spotify chưa được thiết lập đúng cách.', + trackNotOnDeezer: 'Bài hát không có trên Deezer!', + albumNotOnDeezer: 'Album không có trên Deezer!', + notOnDeezer: 'Bài hát chưa có trên Deezer!', + notEncoded: 'Bài hát chưa được encode!', + notEncodedNoAlternative: 'Bài hát chưa được encode và không có bản thay thế nào khác!', + wrongBitrate: 'Bài hát này không có ở bitrate bạn muốn.', + wrongBitrateNoAlternative: 'Bài hát này không có ở bitrate bạn muốn và không có bản thay thế nào khác!', + no360RA: 'Bài hát này không có ở dạng Reality Audio 360.', + notAvailable: 'Bài hát này không có trên server của Deezer!', + notAvailableNoAlternative: 'Bài hát này không có trên server của Deezer và không có bản thay thế nào khác!' + } + }, + favorites: { + title: 'Yêu thích', + noPlaylists: 'Không tìm được Playlist', + noAlbums: 'Không tìm được Album Yêu thích', + noArtists: 'Không tìm được Nghệ sĩ Yêu thích', + noTracks: 'Không tìm được Bài hát Yêu thích' + }, + home: { + needTologin: 'Bạn cần phải đăng nhập vào tài khoản Deezer trước khi bắt đầu tải xuống.', + openSettings: 'Mở Cài đặt', + sections: { + popularPlaylists: 'Playlist Nổi tiếng', + popularAlbums: 'Album được stream nhiều nhất' + } + }, + linkAnalyzer: { + info: 'Bạn có thể sử dụng chức năng này để kiếm thêm thông tin về đường link mà bạn muốn tải xuống.', + useful: + 'Chức năng này rất hữu dụng nếu bạn muốn tải các bài hát hiện không có sẵn ở quốc gia của bạn và muốn biết các quốc gia được hỗ trợ.', + linkNotSupported: 'Đường link này chưa được hỗ trợ', + linkNotSupportedYet: 'Đường link này chưa được hỗ trợ, xin hãy thử lại với một đường link khác.', + table: { + id: 'ID', + isrc: 'ISRC', + upc: 'UPC', + duration: 'Thời lượng', + diskNumber: 'Số đĩa', + trackNumber: 'Số bài hát', + releaseDate: 'Ngày phát hành', + bpm: 'BPM', + label: 'Hãng', + recordType: 'Loại Thu âm', + genres: 'Thể loại', + tracklist: 'Danh sách các bài hát' + } + }, + search: { + startSearching: 'Bắt đầu tìm kiếm!', + description: 'Bạn có thể tìm một bài hát, album, nghệ sĩ, playlist, v.v...! Bạn cũng có thể dùng link của Deezer', + fans: '{n} người hâm mộ', + noResults: 'Không có kết quả', + noResultsTrack: 'Không tìm được bài hát nào', + noResultsAlbum: 'Không tìm được album nào', + noResultsArtist: 'Không tìm được nghệ sĩ nào', + noResultsPlaylist: 'Không tìm được playlist nào' + }, + searchbar: 'Tìm những gì bạn muốn (bạn cũng có thể sữ dụng một đường link)', + downloads: 'Tải xuống', + toasts: { + addedToQueue: '{item} đã được đưa vào hàng chờ', + alreadyInQueue: '{item} đã đang trong hàng chờ!', + finishDownload: '{item} đã tải xong.', + allDownloaded: 'Tất cả các bài hát đã được tải xuống!', + refreshFavs: 'Tải lại hoàn tất!', + loggingIn: 'Đang đăng nhập', + loggedIn: 'Đăng nhập thành công', + alreadyLogged: 'Đã đăng nhập', + loginFailed: 'Không thể đăng nhập', + loggedOut: 'Đăng xuất', + cancellingCurrentItem: 'Đang hủy file hiện tại.', + currentItemCancelled: 'File hiện tại đã bị hủy.', + startAddingArtist: 'Đang đưa {artist} album vào hàng chờ', + finishAddingArtist: 'Đã đưa {artist} album vào hàng chờ', + startConvertingSpotifyPlaylist: 'Đang chuyển đổi các bài hát từ Spotify sang Deezer', + finishConvertingSpotifyPlaylist: 'Playlist của Spotify đã được chuyển đổi', + loginNeededToDownload: 'Bạn cần phải đang nhập để tải nhạc!' + }, + settings: { + title: 'Cài đặt', + language: 'Ngôn ngữ', + login: { + title: 'Đăng nhập', + loggedIn: 'Bạn đã đăng nhập với tên {username}', + arl: { + question: 'Làm cách nào để có ARL của tôi?', + update: 'Cập nhật ARL' + }, + logout: 'Đăng xuất' + }, + appearance: { + title: 'Giao diện', + slimDownloadTab: 'Thanh tải xuống nhỏ' + }, + downloadPath: { + title: 'Nơi tải xuống' + }, + templates: { + title: 'Bản mẫu', + tracknameTemplate: 'Bài hát mẫu', + albumTracknameTemplate: 'Bài hát trong album mẫu', + playlistTracknameTemplate: 'Bài hát trong playlist mẫu' + }, + folders: { + title: 'Thư mục', + createPlaylistFolder: 'Tạo thư mục cho playlist', + playlistNameTemplate: 'Thư mục playlist mẫu', + createArtistFolder: 'Tạo thư mục cho nghệ sĩ', + artistNameTemplate: 'Thư mục Nghệ sĩ mẫu', + createAlbumFolder: 'Tạo thư mục cho album', + albumNameTemplate: 'Thư mục cho album mẫu', + createCDFolder: 'Tạo thư mục cho đĩa CD', + createStructurePlaylist: 'Tạo thư mục có kết cấu cho playlist', + createSingleFolder: 'Tạo thư mục có kết cấu cho đĩa đơn' + }, + trackTitles: { + title: 'Tên bài hát', + padTracks: 'Đệm tên bài hát', + paddingSize: 'Ghì đè kích cỡ phần đệm', + illegalCharacterReplacer: 'Thay các kí tự không hợp lệ với' + }, + downloads: { + title: 'Tải xuống', + queueConcurrency: 'Số lượng tải xuống cùng lúc', + maxBitrate: { + title: 'Bitrate ưa thích', + 9: 'FLAC 1411kbps', + 3: 'MP3 320kbps', + 1: 'MP3 128kbps' + }, + overwriteFile: { + title: 'Tôi có nên ghi đè file này không?', + y: 'Có, hãy ghi đè file này', + n: 'Không, đừng ghi đè file này', + t: 'Chỉ ghi đè các tag' + }, + fallbackBitrate: 'Bitrate dự phòng', + fallbackSearch: 'Search dự phòng', + logErrors: 'Tạo file log khi có lỗi', + logSearched: 'Tạo file log khi bạn tìm Bài hát', + createM3U8File: 'Tạo file playlist', + syncedLyrics: 'Tạo file .lrc (Lời Bài hát)', + playlistFilenameTemplate: 'Tên playlist mẫu', + saveDownloadQueue: 'Lưu hàng chờ download khi đóng ứng dụng' + }, + covers: { + title: 'Bìa album', + saveArtwork: 'Lưu bìa', + coverImageTemplate: 'Tên bìa mẫu', + saveArtworkArtist: 'Lưu hình Nghệ sĩ', + artistImageTemplate: 'Hình nghệ sĩ mẫu', + localArtworkSize: 'Kích cỡ file bìa', + embeddedArtworkSize: 'Kích cỡ bìa trong file bài hát', + localArtworkFormat: { + title: 'Bạn muốn file bìa ở định dạng nào?', + jpg: 'jpg', + png: 'png', + both: 'Cả jpg và png' + }, + jpegImageQuality: 'Chất lượng file JPEG' + }, + tags: { + head: 'Những tag sẽ được lưu', + title: 'Tiêu đề', + artist: 'Nghệ sĩ', + album: 'Album', + cover: 'Bìa', + trackNumber: 'Số bài hát', + trackTotal: 'Tổng số bài hát', + discNumber: 'Số đĩa', + discTotal: 'Tổng số đĩa', + albumArtist: 'Nghệ sĩ của album', + genre: 'Thể loại', + year: 'Năm', + date: 'Ngày', + explicit: 'Lời explicit', + isrc: 'ISRC', + length: 'Thời lượng', + barcode: 'Mã vạch của album (UPC)', + bpm: 'BPM', + replayGain: 'ReplayGain', + label: 'Nhãn hiệu album', + lyrics: 'Lời', + copyright: 'Bản quyền', + composer: 'Nhà soạn nhạc', + involvedPeople: 'Những người liên quan' + }, + other: { + title: 'Khác', + savePlaylistAsCompilation: 'Lưu playlist dưới dạng tuyển tập', + useNullSeparator: 'Dùng dải phân cách null', + saveID3v1: 'Lưu ID3v1', + multiArtistSeparator: { + title: 'Bạn muốn phân cách các nghệ sĩ như thế nào?', + nothing: 'Chỉ lưu nghệ sĩ chính', + default: 'Dùng quy cách tiêu chuẩn', + andFeat: 'Dùng & và feat.', + using: 'Dùng "{separator}"' + }, + singleAlbumArtist: 'Chỉ lưu Nghệ sĩ Album chính', + albumVariousArtists: 'Giữ nguyên "Nhiều Nghệ sĩ" trong Nghệ sĩ Album', + removeAlbumVersion: 'Bỏ "Phiên bản Album" khỏi tên bài hát', + removeDuplicateArtists: 'Bỏ các tên nghệ sĩ phối hợp', + dateFormat: { + title: 'Định dạng ngày cho file FLAC ', + year: 'YYYY', + month: 'MM', + day: 'DD' + }, + featuredToTitle: { + title: 'Tôi nên làm gì với các nghệ sĩ đóng góp?', + 0: 'Không làm gì cả', + 1: 'Bỏ chúng khỏi tên bài hát', + 3: 'Bỏ chúng khỏi tên bài hát và tên album', + 2: 'Đưa chúng vào tên bài hát' + }, + titleCasing: 'Định dạng tên bài hát', + artistCasing: 'Định dạng tên nghệ sĩ', + casing: { + nothing: 'Không đổi', + lower: 'chữ thường', + upper: 'CHỮ HOA', + start: 'Viết Hoa Ở Chữ Cái Đầu Tiên Của Mỗi Từ', + sentence: 'Như một câu' + }, + previewVolume: 'Âm lượng nghe thử', + executeCommand: { + title: 'Thực hiện những lệnh này khi đã tải xuống xong', + description: 'Để trống nếu bạn không muốn thực hiện lệnh nào' + } + }, + spotify: { + title: 'Chức năng Spotify', + clientID: 'ClientID của Spotify', + clientSecret: 'Client Secret của Spotify', + username: 'Tên tài khoản của Spotify' + }, + reset: 'Quay trở lại cài đặt mặc định', + save: 'Lưu', + toasts: { + init: 'Cài đặt đã được thiết lập!', + update: 'Cài đặt cập nhật thành công!', + ARLcopied: 'ARL đã được sao chép vào clipboard' + } + }, + sidebar: { + home: 'trang chủ', + search: 'tìm kiếm', + charts: 'bảng xếp hạng', + favorites: 'yêu thích', + linkAnalyzer: 'phân tích link', + settings: 'cài đặt', + about: 'thông tin' + }, + tracklist: { + downloadSelection: 'Tải xuống những mục đã chọn' + } +} + +export default vi diff --git a/webui/src/lang/zh-tw.mjs b/webui/src/lang/zh-tw.mjs new file mode 100644 index 0000000..c2ebdd9 --- /dev/null +++ b/webui/src/lang/zh-tw.mjs @@ -0,0 +1,400 @@ +const zh_tw = { + globals: { + welcome: '歡迎使用 deemix', + back: '返回', + loading: '載入中', + download: '下載 {thing}', + by: '{artist}', + in: '於 {album}', + download_hint: '下載', + play_hint: '播放', + toggle_download_tab_hint: '展開/折疊', + clean_queue_hint: '清除完成', + cancel_queue_hint: '取消全部', + open_downloads_folder: '開啟下載資料夾', + cut: '剪下', + copy: '複製', + copyLink: '複製連結', + copyImageLink: '複製圖片連結', + copyDeezerLink: '複製 deezer 連結', + paste: '貼上', + listTabs: { + empty: '', + all: '所有', + top_result: '最佳結果', + album: '專輯|專輯', + artist: '藝人|藝人', + single: '單曲', + title: '標題|標題', + track: '歌曲|歌曲', + releaseN: '0 發行| {n} 發行| {n} 發行', + playlist: '播放清單|播放清單', + compile: '合輯|合輯', + ep: '迷你專輯 | 迷你專輯', + bundle: 'bundle | bundles', + more: '更多專輯', + featured: '出現於', + spotifyPlaylist: 'Spotify 播放清單 | Spotify 播放清單', + releaseDate: '發布日期', + error: '錯誤', + trackN: '0 首歌曲| {n} 首歌曲| {n} 首歌曲', + albumN: '0 個專輯 | {n} 個專輯 | {n} 個專輯', + artistN: '0 個藝人 | {n} 個藝人 | {n} 個藝人', + playlistN: '0 個播放清單 | {n} 個播放清單 | {n} 個播放清單' + } + }, + about: { + appStatus: { + online: '上線中', + offline: '離線中' + }, + updates: { + currentVersion: '目前版本', + currentWebuiVersion: '目前前端版本', + versionNotAvailable: 'N/A', + updateAvailable: `您尚未更新至最新版本:{version}`, + deemixVersion: 'deemix 函示庫版本' + }, + titles: { + usefulLinks: '實用連結', + bugReports: '錯誤報告', + contributing: '貢獻', + donations: '贊助', + license: '使用許可' + }, + subtitles: { + bugReports: '使用 deemix 時,遇到了什麼問題嗎?歡迎回報錯誤!', + contributing: '您想替這個專案提出貢獻嗎?您可以透過許多不同的方式來幫忙!', + donations: '您想要捐款嗎?可以贊助我們!' + }, + usesLibrary: '本程式基於 deemix 函示庫。您可以使用該函示庫來製作自己的前端。', + thanks: `感謝 rtonnouhwotlollilol 對於本專案的貢獻,另外也感謝 BasCurtiz 幫忙製作本專案的圖示`, + upToDate: { + text: `您可於 Telegram 上關注{newsChannel}以取得最新動態。`, + newsChannel: '最新消息頻道' + }, + officialWebsite: '官方網站', + officialRepo: '官方函示版本庫', + officialWebuiRepo: '官方 WebUI 版本庫', + officialSubreddit: '官方 Subreddit', + newsChannel: '最新消息頻道', + questions: { + text: `如果您對本程式有疑問或問題,請先在{subreddit}上搜尋解決方案。如果找不到任何解決方法,則可以在我們的 subreddit 上發布與您問題相關的文章。`, + subreddit: ' subreddit ' + }, + beforeReporting: `在報告錯誤之前,請確保您正在運行最新版本的程式,並且要報告的內容真的是一個錯誤,而不僅是您自己遇到的問題。`, + beSure: `請確保您所想回報的錯誤可在其他台裝置上再現的,並且請勿回報已知錯誤。`, + duplicateReports: '請注意,重複的錯誤報告將被移除。', + dontOpenIssues: `請勿透過本版本庫的 Issues 問問題,我們開 subreddit 是有原因的。`, + newUI: { + text: `如果您精通 Python,則可以嘗試使用我們的函示庫來建立新的 UI,或者透過{repo}提出錯誤相關的 PR。`, + repo: '我們的版本庫' + }, + acceptFeatures: `我也歡迎你提交新的功能-但前提是這個功能不能過於複雜-過於複雜的功能,應被新增至程式內而非函示庫內。`, + otherLanguages: `如果您精通其他程式語言,你也可以嘗試將 deemix 移植到其他程式語言中!`, + understandingCode: `你需要幫助了解本專案的程式碼嗎?只需在 Telegram 或 Reddit 上按一下 waLplanet。`, + contributeWebUI: { + text: `如果你熟悉 Vue.js(JavaScript)、HTML 或 CSS,你也可以參與 {webui} 前端的貢獻。`, + webui: 'WebUI' + }, + itsFree: `記得,這是一個免費的專案在支持開發人員之前,應該先支持你喜歡的歌手或藝人。`, + notObligated: `別認為你有義務捐款,無論如何我們都感謝您!`, + lincensedUnder: { + text: `本作品使用 {gpl3} 許可授權。`, + gpl3: 'GNU General Public License 3.0' + } + }, + charts: { + title: '排行榜', + changeCountry: '改變國家', + download: '下載排行榜' + }, + errors: { + title: '{name} 的錯誤', + ids: { + invalidURL: '無法識別網址', + unsupportedURL: '尚不支持此網址', + ISRCnotOnDeezer: '無法在 Deezer 上使用單曲 ISRC', + notYourPrivatePlaylist: '您無法下載他人的私人播放清單。', + spotifyDisabled: 'Spotify 功能未正確設定。', + trackNotOnDeezer: '在 Deezer 上找不到此歌曲!', + albumNotOnDeezer: '在 Deezer 上找不到此專輯!', + notOnDeezer: '無法在 Deezer 上載入此歌曲!', + notEncoded: '本歌曲尚未編碼!', + notEncodedNoAlternative: '本歌曲尚未編碼,且無法找到其他替代歌曲!', + wrongBitrate: '找不到符合所設位元率的歌曲。', + wrongBitrateNoAlternative: '找不到符合所設位元率的歌曲,且無法找到其他替代歌曲!', + no360RA: '本歌曲並不支援 Reality Audio 360。', + notAvailable: '無法在 Deezer 伺服器載入此歌曲!', + notAvailableNoAlternative: '無法在 Deezer 伺服器載入此歌曲,且無法找到其他替代歌曲!', + noSpaceLeft: '本裝置可用空間已用盡!', + albumDoesntExists: '本歌曲的專輯不存在,無法取得資訊' + } + }, + favorites: { + title: '收藏', + noPlaylists: '尚未收藏任何播放清單', + noAlbums: '尚未收藏任何專輯', + noArtists: '尚未收藏任何藝人', + noTracks: '尚未收藏任何歌曲' + }, + home: { + needTologin: '您需要先登入 Deezer 帳戶,然後才能開始下載。', + openSettings: '開啟設定', + sections: { + popularPlaylists: '熱門播放清單', + popularAlbums: '熱門專輯' + } + }, + linkAnalyzer: { + info: '您可以透過此工具取得您所想下載的連結的相關資訊。', + useful: '比如,當您所想下載的歌曲無法在您的國家播放,且您想知道哪些國家可以播放此歌曲時,您可使用此工具。', + linkNotSupported: '尚未支援此連結', + linkNotSupportedYet: '我們似乎尚未支援此連結,請改用其他連結。', + table: { + id: 'ID', + isrc: 'ISRC', + upc: 'UPC', + duration: '長度', + diskNumber: '光碟編號', + trackNumber: '歌曲編號', + releaseDate: '發布日期', + bpm: 'BPM', + label: '標籤', + recordType: '媒體類型', + genres: '類型', + tracklist: '歌曲清單' + } + }, + search: { + startSearching: '開始搜尋!', + description: '您可以搜索歌曲名稱、專輯、藝人、播放清單...等等。您也可以直接貼上 Deezer 網址。', + fans: '{n} 個粉絲', + noResults: '無搜尋結果', + noResultsTrack: '找不到歌曲', + noResultsAlbum: '找不到專輯', + noResultsArtist: '找不到藝人', + noResultsPlaylist: '找不到播放清單' + }, + searchbar: '搜尋任何關鍵字(或貼上連結)', + downloads: '下載', + toasts: { + restoringQueue: '正在恢復下載清單...', + queueRestored: '下載清單已恢復!', + addedToQueue: '已新增 {item} 到下載清單中', + addedMoreToQueue: '已新增 {n} 個項目到下載清單中', + alreadyInQueue: '{item} 已在下載清單中!', + finishDownload: '{item} 已完成下載。', + allDownloaded: '全部下載完成!', + refreshFavs: '刷新完成!', + loggingIn: '登入中...', + loggedIn: '登入', + alreadyLogged: '已登入', + loginFailed: '無法登入', + loggedOut: '登出', + cancellingCurrentItem: '取消當前項目。', + currentItemCancelled: '當前項目已取消。', + startAddingArtist: '已新增 {artist} 個專輯到下載清單中', + finishAddingArtist: '已新增 {artist} 個專輯到下載清單中', + startConvertingSpotifyPlaylist: '將 Spotify 歌曲轉換為 Deezer 歌曲中', + finishConvertingSpotifyPlaylist: '已轉換 Spotify 播放清單', + loginNeededToDownload: '您需要登入才能下載歌曲!', + deezerNotAvailable: 'Deezer 在您所在的國家/地區無法使用。請您使用 VPN。', + startGeneratingItems: '生成 {n} 個項目中...', + finishGeneratingItems: '已生成 {n} 個項目.' + }, + settings: { + title: '設定', + language: '語言', + login: { + title: '登入', + loggedIn: '目前以 {username} 的身份登入', + arl: { + question: '如何取得自己的 ARL?', + update: '更新 ARL' + }, + logout: '登出', + login: '透過 deezer.com 登入' + }, + appearance: { + title: '外觀', + slimDownloadTab: '薄型下載分頁', + slimSidebar: '薄型測欄' + }, + downloadPath: { + title: '下載目錄' + }, + templates: { + title: '檔案名稱格式', + tracknameTemplate: '單曲名稱格式', + albumTracknameTemplate: '專輯單曲名稱格式', + playlistTracknameTemplate: '播放清單單曲名稱格式' + }, + folders: { + title: '資料夾', + createPlaylistFolder: '替播放清單建立資料夾', + playlistNameTemplate: '播放清單資料夾名稱格式', + createArtistFolder: '替藝人建立資料夾', + artistNameTemplate: '藝人資料夾名稱格式', + createAlbumFolder: '替專輯建立資料夾', + albumNameTemplate: '專輯資料夾名稱格式', + createCDFolder: '替 CD 建立資料夾', + createStructurePlaylist: '建立播放清單資料夾結構', + createSingleFolder: '建立單曲資料夾結構' + }, + trackTitles: { + title: '單曲名稱', + padTracks: '歌曲數目字串填充', + paddingSize: '覆蓋數目字串填充長度', + illegalCharacterReplacer: '替換非法字元' + }, + downloads: { + title: '下載', + queueConcurrency: '並行下載', + maxBitrate: { + title: '偏好位元率', + 9: 'FLAC 1411kbps', + 3: 'MP3 320kbps', + 1: 'MP3 128kbps' + }, + overwriteFile: { + title: '是否要覆蓋檔案?', + y: '是,覆蓋檔案', + n: '否,請勿覆蓋檔案', + t: '僅覆蓋標籤', + b: '否,保留兩個檔案並在重複的檔名中加入一個數字', + e: '否,不顧慮附檔名' + }, + fallbackBitrate: '當偏好位元率無法下載時,下載其他版本', + fallbackSearch: '當搜尋結果無法使用時,使用其他搜尋結果', + logErrors: '記錄錯誤至日誌', + logSearched: '記錄搜尋歌曲至日誌', + createM3U8File: '建立播放清單檔案', + syncedLyrics: '建立 .lrc 檔案(同步歌詞)', + playlistFilenameTemplate: '播放清單檔名格式', + saveDownloadQueue: '關閉應用程式時,保存下載清單' + }, + covers: { + title: '專輯封面', + saveArtwork: '保存封面', + coverImageTemplate: '封面檔名格式', + saveArtworkArtist: '保存藝人照片', + artistImageTemplate: '藝人照片檔名格式', + localArtworkSize: '本地圖片大小', + embeddedArtworkSize: '嵌入圖片大小', + localArtworkFormat: { + title: '您希望本地圖片採用哪種格式?', + jpg: 'JPEG', + png: 'PNG', + both: 'JPEG 及 PNG' + }, + jpegImageQuality: 'JPEG 影像品質', + embeddedArtworkPNG: '將嵌入式圖片存為 PNG', + embeddedPNGWarning: 'Deezer 官方並不支援 PNG,結果可能有誤', + imageSizeWarning: 'Deezer 官方並不使用高於 x1200 的圖片,您可能會遇到問題', + coverDescriptionUTF8: '使用 UTF8 保存封面敘述(修正 iTunes 專輯封面)' + }, + tags: { + head: '要保存哪些標籤', + title: '標題', + artist: '藝人', + album: '專輯', + cover: '專輯封面', + trackNumber: '單曲編號', + trackTotal: '總計歌曲', + discNumber: '光碟編號', + discTotal: '光碟總數', + albumArtist: '專輯藝人', + genre: '類型', + year: '年', + date: '日期', + explicit: '不良歌詞', + isrc: 'ISRC', + length: '單曲長度', + barcode: '專輯條碼(UPC)', + bpm: 'BPM', + replayGain: '重播增益(Replay Gain)', + label: '專輯標籤', + lyrics: '不同步的歌詞', + syncedLyrics: '同步歌詞', + copyright: '版權', + composer: '作曲家', + involvedPeople: '相關藝人', + source: '來源歌曲 ID' + }, + other: { + title: '其他', + savePlaylistAsCompilation: '將播放清單儲存為合輯', + useNullSeparator: '使用空分隔符', + saveID3v1: '保存 ID3v1 標籤', + multiArtistSeparator: { + title: '如何隔開作者名稱?', + nothing: '僅保留主作者', + default: '使用標準規格', + andFeat: '使用 & 及 feat.', + using: '使用 "{separator}"' + }, + singleAlbumArtist: '僅儲存專輯主作者名稱', + albumVariousArtists: '於專輯作者欄位中保留「多位藝人 (Various Artists)」字樣', + removeAlbumVersion: '於單曲名稱中移除「專輯版本 (Album Version)」字樣', + removeDuplicateArtists: '移除重複的作者名稱', + dateFormat: { + title: 'FLAC 檔案日期格式', + year: 'YYYY', + month: 'MM', + day: 'DD' + }, + featuredToTitle: { + title: '如何處理客串藝人名稱 (如 feat. 等字樣) ?', + 0: '什麼都不做', + 1: '從標題中刪除', + 3: '從標題和專輯標題中刪除', + 2: '將其移至標題' + }, + titleCasing: '歌曲名稱大小寫', + artistCasing: '藝人名稱大小寫', + casing: { + nothing: '保持不變', + lower: '小寫', + upper: '大寫', + start: '字詞開頭大寫', + sentence: '句子大寫' + }, + previewVolume: '預覽音量', + executeCommand: { + title: '下載後執行指令', + description: '留空則不執行' + } + }, + spotify: { + title: 'Spotify 功能', + clientID: 'Spotify 客戶端 ID', + clientSecret: 'Spotify 客戶端密碼', + username: 'Spotify 用戶名', + question: '如何啟用 Spotify 功能?' + }, + reset: '重設至預設', + resetMessage: '你確定要重設所有設定嗎?', + save: '儲存', + toasts: { + init: '已載入設定!', + update: '已更新設定!', + reset: '已重設設定!', + ARLcopied: '已複製 ARL 到剪貼簿中' + } + }, + sidebar: { + home: '首頁', + search: '搜尋', + charts: '排行榜', + favorites: '收藏', + linkAnalyzer: '連結分析', + settings: '設定', + about: '關於' + }, + tracklist: { + downloadSelection: '下載所選' + } +} + +export default zh_tw diff --git a/webui/src/plugins/composition-api.js b/webui/src/plugins/composition-api.js new file mode 100644 index 0000000..187f919 --- /dev/null +++ b/webui/src/plugins/composition-api.js @@ -0,0 +1,4 @@ +import Vue from 'vue' +import VueCompositionAPI from '@vue/composition-api' + +Vue.use(VueCompositionAPI) diff --git a/webui/src/plugins/i18n.js b/webui/src/plugins/i18n.js new file mode 100644 index 0000000..c0f482c --- /dev/null +++ b/webui/src/plugins/i18n.js @@ -0,0 +1,44 @@ +import Vue from 'vue' +import VueI18n from 'vue-i18n' + +import { locales } from '@/lang' + +Vue.use(VueI18n) + +const storedLocale = localStorage.getItem('locale') +const DEFAULT_LANG = storedLocale || 'en' + +document.querySelector('html').setAttribute('lang', DEFAULT_LANG) + +const i18n = new VueI18n({ + locale: DEFAULT_LANG, + fallbackLocale: 'en', + messages: locales, + pluralizationRules: { + /** + * @param {number} choice A choice index given by the input to $tc: `$tc('path.to.rule', choiceIndex)` + * @param {number} choicesLength An overall amount of available choices + * @returns A final choice index to select plural word by + */ + ru(choice /*, choicesLength */) { + const n = Math.abs(choice) % 100 + const n1 = n % 10 + + if (n > 10 && n < 20) { + return 2 + } + + if (n1 > 1 && n1 < 5) { + return 1 + } + + if (n1 === 1) { + return 0 + } + + return 2 + } + } +}) + +export default i18n diff --git a/webui/src/router.js b/webui/src/router.js new file mode 100644 index 0000000..2f762c4 --- /dev/null +++ b/webui/src/router.js @@ -0,0 +1,178 @@ +import Vue from 'vue' +import VueRouter from 'vue-router' + +// Pages +import About from '@/components/pages/About.vue' +import InfoArl from '@/components/pages/InfoArl.vue' +import InfoSpotifyFeatures from '@/components/pages/InfoSpotifyFeatures.vue' +import Artist from '@/components/pages/Artist.vue' +import Charts from '@/components/pages/Charts.vue' +import Errors from '@/components/pages/Errors.vue' +import Favorites from '@/components/pages/Favorites.vue' +import Home from '@/components/pages/Home.vue' +import LinkAnalyzer from '@/components/pages/LinkAnalyzer.vue' +import Search from '@/components/pages/Search.vue' +import Settings from '@/components/pages/Settings.vue' +import Tracklist from '@/components/pages/Tracklist.vue' + +import { fetchData } from '@/utils/api' +import EventBus from '@/utils/EventBus' + +Vue.use(VueRouter) + +const routes = [ + { + path: '/', + name: 'Home', + component: Home, + meta: { + notKeepAlive: true + } + }, + { + path: '/tracklist/:type/:id', + name: 'Tracklist', + component: Tracklist + }, + { + path: '/artist/:id', + name: 'Artist', + component: Artist, + meta: { + notKeepAlive: true + } + }, + { + path: '/album/:id', + name: 'Album', + component: Tracklist + }, + { + path: '/playlist/:id', + name: 'Playlist', + component: Tracklist + }, + { + path: '/spotify-playlist/:id', + name: 'Spotify Playlist', + component: Tracklist + }, + { + path: '/charts', + name: 'Charts', + component: Charts, + meta: { + notKeepAlive: true + } + }, + { + path: '/favorites', + name: 'Favorites', + component: Favorites, + meta: { + notKeepAlive: true + } + }, + { + path: '/errors', + name: 'Errors', + component: Errors + }, + { + path: '/link-analyzer', + name: 'Link Analyzer', + component: LinkAnalyzer + }, + { + path: '/about', + name: 'About', + component: About + }, + { + path: '/info-arl', + name: 'ARL', + component: InfoArl + }, + { + path: '/info-spotify', + name: 'Spotify Features', + component: InfoSpotifyFeatures + }, + { + path: '/settings', + name: 'Settings', + component: Settings + }, + { + path: '/search', + name: 'Search', + component: Search, + meta: { + notKeepAlive: true + } + }, + // 404 client side + { + path: '*', + component: Home + } +] + +const router = new VueRouter({ + mode: 'history', + base: location.base, + routes, + scrollBehavior() { + return { x: 0, y: 0 } + } +}) + +router.beforeEach((to, _, next) => { + switch (to.name) { + case 'Tracklist': { + // const getTracklistParams = { + // type: to.params.type, + // id: to.params.id + // } + console.warn('This should never happen.') + break + } + case 'Album': { + const getTracklistParams = { + type: 'album', + id: to.params.id + } + fetchData('getTracklist', getTracklistParams).then(albumData => { + EventBus.$emit('showAlbum', albumData) + }) + break + } + case 'Playlist': { + const getTracklistParams = { + type: 'playlist', + id: to.params.id + } + fetchData('getTracklist', getTracklistParams).then(playlistData => { + EventBus.$emit('showPlaylist', playlistData) + }) + break + } + case 'Spotify Playlist': { + const getTracklistParams = { + type: 'spotifyplaylist', + id: to.params.id + } + fetchData('getTracklist', getTracklistParams).then(spotifyPlaylistData => { + EventBus.$emit('showSpotifyPlaylist', spotifyPlaylistData) + }) + break + } + + default: + break + } + + next() +}) + +export default router diff --git a/webui/src/store/index.js b/webui/src/store/index.js new file mode 100644 index 0000000..0725a61 --- /dev/null +++ b/webui/src/store/index.js @@ -0,0 +1,17 @@ +import Vuex, { Store } from 'vuex' +import Vue from 'vue' + +import appInfo from '@/store/modules/appInfo' +import login from '@/store/modules/login' +import errors from '@/store/modules/errors' + +Vue.use(Vuex) + +export default new Store({ + modules: { + appInfo, + login, + errors + }, + strict: process.env.NODE_ENV !== 'production' +}) diff --git a/webui/src/store/modules/appInfo.js b/webui/src/store/modules/appInfo.js new file mode 100644 index 0000000..292e1ff --- /dev/null +++ b/webui/src/store/modules/appInfo.js @@ -0,0 +1,199 @@ +/** + * @typedef {object} AppInfo + * @property {string} currentCommit + * @property {string} latestCommit + * @property {boolean} updateAvailable + * @property {string} deemixVersion + * @property {number} previewVolume + * @property {boolean} hasSlimDownloads + * @property {boolean} hasSlimSidebar + */ + +import { + getInitialPreviewVolume, + checkInitialSlimDownloads, + checkInitialSlimSidebar, + checkInitialShowBitrateTags, + checkInitialShowSearchButton +} from '@/data/settings' + +/** + * @returns {AppInfo} + */ +const state = () => ({ + currentCommit: null, + latestCommit: null, + updateAvailable: false, + deemixVersion: null, + previewVolume: getInitialPreviewVolume(), + hasSlimDownloads: checkInitialSlimDownloads(), + hasSlimSidebar: checkInitialSlimSidebar(), + showBitrateTags: checkInitialShowBitrateTags(), + showSearchButton: checkInitialShowSearchButton() +}) + +const actions = { + /** + * @param {any} action + * @param {AppInfo} payload + */ + setAppInfo({ commit }, payload) { + commit('SET_CURRENT_COMMIT', payload.currentCommit) + commit('SET_DEEMIX_VERSION', payload.deemixVersion) + }, + setUpdateInfo({ commit }, payload) { + commit('SET_LATEST_COMMIT', payload.latestCommit) + commit('SET_UPDATE_AVAILABLE', payload.updateAvailable) + }, + /** + * @param {any} action + * @param {AppInfo['previewVolume']} payload + */ + setPreviewVolume({ commit }, payload) { + commit('SET_PREVIEW_VOLUME', payload) + localStorage.setItem('previewVolume', payload.toString()) + }, + /** + * @param {any} action + * @param {AppInfo['hasSlimDownloads']} payload + */ + setSlimDownloads({ commit }, payload) { + commit('SET_SLIM_DOWNLOADS', payload) + localStorage.setItem('slimDownloads', payload.toString()) + }, + /** + * @param {any} action + * @param {AppInfo['hasSlimSidebar']} payload + */ + setSlimSidebar({ commit }, payload) { + commit('SET_SLIM_SIDEBAR', payload) + localStorage.setItem('slimSidebar', payload.toString()) + + // Moves all toast messages when the option changes + Array.from(document.getElementsByClassName('toastify')).forEach(toast => { + toast.style.transform = `translate(${payload ? '3rem' : '14rem'}, 0)` + }) + }, + /** + * @param {any} action + * @param {AppInfo['showBitrateTags']} payload + */ + setShowBitrateTags({ commit }, payload) { + commit('SET_SHOW_BITRATE_TAGS', payload) + localStorage.setItem('showBitrateTags', payload.toString()) + }, + /** + * @param {any} action + * @param {AppInfo['showBitrateTags']} payload + */ + setShowSearchButton({ commit }, payload) { + commit('SET_SHOW_SEARCH_BUTTON', payload) + localStorage.setItem('showSearchButton', payload.toString()) + } +} + +const getters = { + /** + * @param {AppInfo} state + * @returns {AppInfo} + */ + getAppInfo: state => state, + /** + * @param {AppInfo} state + * @returns {AppInfo['previewVolume']} + */ + getPreviewVolume: state => state.previewVolume, + /** + * @param {AppInfo} state + * @returns {AppInfo['hasSlimDownloads']} + */ + getSlimDownloads: state => state.hasSlimDownloads, + /** + * @param {AppInfo} state + * @returns {AppInfo['hasSlimSidebar']} + */ + getSlimSidebar: state => state.hasSlimSidebar, + /** + * @param {AppInfo} state + * @returns {AppInfo['showBitrateTags']} + */ + getShowBitrateTags: state => state.showBitrateTags, + /** + * @param {AppInfo} state + * @returns {AppInfo['showSearchButton']} + */ + getShowSearchButton: state => state.showSearchButton +} + +const mutations = { + /** + * @param {AppInfo} state + * @param {AppInfo['currentCommit']} payload + */ + SET_CURRENT_COMMIT(state, payload) { + state.currentCommit = payload + }, + /** + * @param {AppInfo} state + * @param {AppInfo['latestCommit']} payload + */ + SET_LATEST_COMMIT(state, payload) { + state.latestCommit = payload + }, + /** + * @param {AppInfo} state + * @param {AppInfo['updateAvailable']} payload + */ + SET_UPDATE_AVAILABLE(state, payload) { + state.updateAvailable = payload + }, + /** + * @param {AppInfo} state + * @param {AppInfo['deemixVersion']} payload + */ + SET_DEEMIX_VERSION(state, payload) { + state.deemixVersion = payload + }, + /** + * @param {AppInfo} state + * @param {AppInfo['previewVolume']} payload + */ + SET_PREVIEW_VOLUME(state, payload) { + state.previewVolume = payload + }, + /** + * @param {AppInfo} state + * @param {AppInfo['hasSlimDownloads']} payload + */ + SET_SLIM_DOWNLOADS(state, payload) { + state.hasSlimDownloads = payload + }, + /** + * @param {AppInfo} state + * @param {AppInfo['hasSlimSidebar']} payload + */ + SET_SLIM_SIDEBAR(state, payload) { + state.hasSlimSidebar = payload + }, + /** + * @param {AppInfo} state + * @param {AppInfo['showBitrateTags']} payload + */ + SET_SHOW_BITRATE_TAGS(state, payload) { + state.showBitrateTags = payload + }, + /** + * @param {AppInfo} state + * @param {AppInfo['showSearchButton']} payload + */ + SET_SHOW_SEARCH_BUTTON(state, payload) { + state.showSearchButton = payload + } +} + +export default { + state, + getters, + actions, + mutations +} diff --git a/webui/src/store/modules/errors.js b/webui/src/store/modules/errors.js new file mode 100644 index 0000000..f46f3d5 --- /dev/null +++ b/webui/src/store/modules/errors.js @@ -0,0 +1,44 @@ +const state = () => ({ + artist: '', + bitrate: '', + cover: '', + downloaded: 0, + errors: [], + failed: 0, + id: '', + progress: 0, + silent: true, + size: 0, + title: '', + type: '', + uuid: '' +}) + +const actions = { + setErrors({ commit }, payload) { + commit('SET_ERRORS', payload) + } +} + +const getters = { + getErrors: state => state +} + +const mutations = { + SET_ERRORS(state, payload) { + // The payload has useless data for the GUI, so only the needed data is saved in the store + for (const errorName in state) { + // eslint-disable-next-line no-prototype-builtins + if (state.hasOwnProperty(errorName)) { + state[errorName] = payload[errorName] + } + } + } +} + +export default { + state, + getters, + actions, + mutations +} diff --git a/webui/src/store/modules/login.js b/webui/src/store/modules/login.js new file mode 100644 index 0000000..a17f31f --- /dev/null +++ b/webui/src/store/modules/login.js @@ -0,0 +1,153 @@ +import { SPOTIFY_STATUS } from '@/constants' +import { fetchData } from '@/utils/api' + +const getDefaultState = () => ({ + arl: localStorage.getItem('arl') || '', + accessToken: localStorage.getItem('accessToken') || '', + status: null, + user: { + id: null, + name: '', + picture: '' + }, + spotifyUser: { + id: localStorage.getItem('spotifyUser'), + name: null, + picture: null + }, + // This does not always represent the truth because the status update on the server is async + // and at the moment there's no way to notice the status change. Therefore a fetch of the status + // is needed everytime we need to use it + spotifyStatus: SPOTIFY_STATUS.DISABLED, + clientMode: false +}) + +const state = () => { + return getDefaultState() +} + +const actions = { + login({ commit, dispatch }, payload) { + const { arl, user, status } = payload + + dispatch('setARL', { arl }) + commit('SET_USER', user) + commit('SET_STATUS', status) + }, + logout({ commit }) { + localStorage.removeItem('arl') + localStorage.removeItem('accessToken') + + commit('RESET_LOGIN') + }, + setARL({ commit }, payload) { + let { saveOnLocalStorage } = payload + const { arl } = payload + + saveOnLocalStorage = typeof saveOnLocalStorage === 'undefined' ? true : saveOnLocalStorage + + commit('SET_ARL', arl) + + if (saveOnLocalStorage) { + localStorage.setItem('arl', arl) + } + }, + setAccessToken({ commit }, payload) { + let { saveOnLocalStorage } = payload + const { accessToken } = payload + + saveOnLocalStorage = typeof saveOnLocalStorage === 'undefined' ? true : saveOnLocalStorage + + commit('SET_ACCESS_TOKEN', accessToken) + + if (saveOnLocalStorage) { + localStorage.setItem('accessToken', accessToken) + } + }, + removeARL({ commit }) { + commit('SET_ARL', '') + + localStorage.removeItem('arl') + }, + removeAccessToken({ commit }) { + commit('SET_ACCESS_TOKEN', '') + + localStorage.removeItem('accessToken') + }, + setUser({ commit }, payload) { + commit('SET_USER', payload) + }, + setClientMode({ commit }, payload) { + commit('SET_CLIENT_MODE', payload) + }, + setSpotifyStatus({ commit }, newSpotifyStatus) { + commit('SET_SPOTIFY_STATUS', newSpotifyStatus) + }, + setSpotifyUserId({ commit }, newSpotifyUserId) { + commit('SET_SPOTIFY_USER_ID', newSpotifyUserId) + }, + /** + * Returning a Promise so that who calls this action is sure that + * the fetching is complete after the statement + * + * @example + * await store.dispatch('refreshSpotifyStatus') + * // From here the status is refreshed + */ + refreshSpotifyStatus({ commit }) { + return fetchData('spotifyStatus').then(response => { + commit('SET_SPOTIFY_STATUS', response.spotifyEnabled ? SPOTIFY_STATUS.ENABLED : SPOTIFY_STATUS.DISABLED) + }) + } +} + +const getters = { + getARL: state => state.arl, + getAccessToken: state => state.accessToken, + getUser: state => state.user, + getSpotifyUser: state => state.spotifyUser, + getClientMode: state => state.clientMode, + + isLoggedIn: state => !!state.arl, + isLoggedWithSpotify: state => !!state.spotifyUser.id && state.spotifyStatus === SPOTIFY_STATUS.ENABLED +} + +const mutations = { + SET_ARL(state, payload) { + state.arl = payload + }, + SET_ACCESS_TOKEN(state, payload) { + state.accessToken = payload + }, + SET_STATUS(state, payload) { + state.status = payload + }, + SET_USER(state, payload) { + state.user = payload + }, + SET_CLIENT_MODE(state, payload) { + state.clientMode = payload + }, + RESET_LOGIN(state) { + // Needed for reactivity + const clientMode = state.clientMode + Object.assign(state, getDefaultState()) + state.clientMode = clientMode + }, + SET_SPOTIFY_STATUS(state, newSpotifyStatus) { + state.spotifyStatus = newSpotifyStatus + }, + SET_SPOTIFY_USER_ID(state, newSpotifyUserId) { + state.spotifyUser = { + ...state.spotifyUser, + id: newSpotifyUserId + } + } +} + +export default { + state, + getters, + actions, + mutations +} diff --git a/webui/src/styles/css/base.css b/webui/src/styles/css/base.css new file mode 100644 index 0000000..06ac00d --- /dev/null +++ b/webui/src/styles/css/base.css @@ -0,0 +1,111 @@ +:root { + font-size: 16px; + + --main-scroll: theme('colors.grayscale.300'); + --panels-scroll: hsl(180, 2%, 17%); + --toast-background: hsla(240, 12%, 16%, 0.85); + --toast-secondary: hsla(240, 12%, 16%, 0.15); + --toast-text: hsla(0, 0%, 100%, 0.85); + + --primary-color: hsl(210, 100%, 52%); /* will remove variable */ + --primary-text: theme('colors.grayscale.870'); /* will remove variable */ + --secondary-color: hsl(46, 100%, 57%); /* will remove variable */ +} + +:root[data-theme='light'] { + --main-background: theme('colors.white'); + --secondary-background: theme('colors.grayscale.930'); + --foreground: theme('colors.grayscale.200'); + --panels-background: hsl(216, 4%, 78%); + + --table-bg: theme('colors.white'); + --table-zebra: theme('colors.grayscale.900'); + --table-highlight: theme('colors.grayscale.840'); +} + +:root[data-theme='dark'] { + --main-background: hsl(240, 10%, 8%); + --secondary-background: hsl(240, 12%, 16%); /* e.g. search bar bg */ + --foreground: theme('colors.grayscale.930'); /* primary text + icons in main + search */ + --panels-background: hsl(240, 15%, 12%); /* panel left + right bg */ + + --table-bg: hsl(240, 10%, 8%); /* e.g. results table bg 1st row */ + --table-zebra: hsl(240, 15%, 11%); /* e.g. results table bg 2nd alternate */ + --table-highlight: hsl(240, 10%, 22%); /* e.g. hover bg color on table selection */ +} + +:root[data-theme='purple'] { + --main-background: hsl(261, 74%, 6%); + --secondary-background: hsl(257, 61%, 10%); + --foreground: theme('colors.grayscale.930'); + --panels-background: hsl(257, 70%, 9%); + + --table-bg: hsl(261, 74%, 6%); + --table-zebra: hsl(257, 61%, 10%); + --table-highlight: hsl(257, 66%, 27%); +} + +@layer base { + input[type='text'], + input[type='password'], + input[type='number'], + select { + border-radius: 4px; + background-color: var(--secondary-background); + padding: 0 1rem; + width: 100%; + min-height: 3rem; + line-height: 3rem; + color: var(--foreground); + } + + input[type='text'], + input[type='password'], + input[type='number'] { + padding: 0 16px; + } + + input[type='checkbox'] { + display: inline-block; + position: relative; + opacity: 0.5; + margin: 3px; + border: 2px solid gray; + border-radius: 2px; + background-color: none; + padding: 7px; + } + + input[type='checkbox']:checked { + opacity: 1; + border-width: 0; + background-color: var(--primary-color); + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' height='18' viewBox='3 3 18 18' width='18'%3E%3Cpath fill='%23ffffff' d='M 10,17 5,12 6.41,10.59 10,14.17 17.59,6.58 19,8 Z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E"); + background-position: center center; + padding: 9px; + color: var(--primary-text); + } + + select { + background-clip: border-box; + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' viewBox='0 0 24 24' width='24'%3E%3Cpath style='fill:gray;fill-opacity:0.5' d='M7 10l5 5 5-5z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E"); + background-position: calc(100% - 8px) center; + background-repeat: no-repeat; + background-size: 24px; + padding-right: 40px; + } + + a { + color: dodgerblue; + } +} + +/* hide marker on summary */ +details > summary { + list-style: none; + + /* WebKit browsers */ + &::-webkit-details-marker { + display: none; + } +} diff --git a/webui/src/styles/css/components.css b/webui/src/styles/css/components.css new file mode 100644 index 0000000..3a9d44d --- /dev/null +++ b/webui/src/styles/css/components.css @@ -0,0 +1,79 @@ +@layer components { + /* Button */ + .btn { + @apply relative h-8 px-2 py-0 text-sm font-semibold uppercase border border-transparent border-solid rounded text-grayscale-900; + + font-family: inherit; + transition: transform 50ms ease-in-out; + } + + .btn:active { + transform: scale(0.98); + } + + .btn[disabled] { + @apply text-gray-300 bg-gray-600 opacity-75 cursor-not-allowed; + } + + .btn-only-icon { + @apply flex items-center justify-center w-12 px-1 py-0; + + min-width: 24px; + } + + .btn-primary { + @apply bg-primary; + } + .btn-flat { + background-color: rgba(0, 0, 0, 0); + color: var(--foreground); + } + + .btn-primary:hover { + @apply bg-blue-600 border-foreground; + } + + /* Section tabs */ + .section-tabs { + @apply flex mt-4 mb-6 list-none cursor-pointer; + } + + .section-tabs__tab { + @apply flex-1 p-3 text-xl text-center capitalize border-t-4 rounded-b border-foreground bg-background-main; + } + + .section-tabs__tab.active { + @apply text-primary border-primary bg-background-main; + } + + .section-tabs__tab:hover { + @apply text-primary border-primary bg-background-secondary; + @apply bg-opacity-25; + } + + /* Image header */ + .image-header header { + @apply px-6 pt-56 pb-2 bg-cover rounded-t-lg; + + background-position: 0% 35%; + } + + /* Fixed footer */ + .fixed-footer footer { + @apply sticky bottom-0 flex flex-row items-center justify-end w-full h-16 mt-6; + } + + /* Release grid */ + .release-grid { + @apply grid gap-4; + + grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr)); + } + + .tag { + padding: 3px; + background-color: var(--primary-color); + font-size: 10px; + border-radius: 3px; + } +} diff --git a/webui/src/styles/css/helpers.css b/webui/src/styles/css/helpers.css new file mode 100644 index 0000000..da52ef4 --- /dev/null +++ b/webui/src/styles/css/helpers.css @@ -0,0 +1,36 @@ +.changing-theme { + /* Applied to ALL elements when changing theme */ + transition: all 200ms ease-in-out; +} + +[v-cloak] { + /* Attribute removed after that a component finished loading */ + display: none; +} + +.clickable { + cursor: pointer !important; +} + +.coverart { + /* ? Why? */ + background-color: var(--secondary-background); +} + +.release { + display: inline-block; + width: 156px; +} + +.spin { + animation: spin 500ms infinite ease-out reverse; +} + +@keyframes spin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} diff --git a/webui/src/styles/css/icons.css b/webui/src/styles/css/icons.css new file mode 100644 index 0000000..b4233d7 --- /dev/null +++ b/webui/src/styles/css/icons.css @@ -0,0 +1,25 @@ +.material-icons.title-icon { + margin-right: 0.3125em; + margin-left: -3px; +} + +.material-icons.title-icon.title-icon--right { + margin-right: 0px; + margin-left: 0.3125em; +} + +.material-icons.title-icon.title-icon--explicit { + color: hsl(240, 5%, 59%); +} + +.material-icons.title-icon.title-icon--new { + color: hsl(27, 100%, 50%); +} + +.material-icons.disabled { + @apply opacity-50 cursor-default; +} + +.material-icons.mirrored { + transform: scaleX(-1); +} diff --git a/webui/src/styles/css/normalize.css b/webui/src/styles/css/normalize.css new file mode 100644 index 0000000..9bb2c1d --- /dev/null +++ b/webui/src/styles/css/normalize.css @@ -0,0 +1,66 @@ +@layer base { + * { + box-sizing: border-box; + margin: 0; + padding: 0; + } + + table, + caption, + tbody, + tfoot, + thead, + tr, + th, + td { + margin: 0; + border: 0; + padding: 0; + vertical-align: baseline; + font: inherit; + font-size: 100%; + } + + table { + border-collapse: collapse; + border-spacing: 0; + } + + /* Taken from Tailwind's Preflight */ + button, + [type='button'], + [type='reset'], + [type='submit'] { + appearance: button; + } + + input[type='text'], + input[type='password'], + input[type='number'], + input[type='search'], + input[type='checkbox'], + select { + appearance: none; + } + + [type='number']::-webkit-inner-spin-button, + [type='number']::-webkit-outer-spin-button { + height: auto; + } + + button, + [role='button'] { + cursor: pointer; + } + + p { + word-break: break-word; + } + + *, + ::before, + ::after { + border-width: 0; + border-style: solid; + } +} diff --git a/webui/src/styles/css/tables.css b/webui/src/styles/css/tables.css new file mode 100644 index 0000000..ef99aec --- /dev/null +++ b/webui/src/styles/css/tables.css @@ -0,0 +1,140 @@ +.table { + width: 100%; + -webkit-border-horizontal-spacing: 0px; + -webkit-border-vertical-spacing: 0px; +} +.table tbody tr:not(.table__row-no-highlight):hover { + background: var(--table-highlight); + cursor: default; +} +.table tr { + transition: background-color 175ms ease-in-out; + background: var(--table-bg); +} +.table tr:nth-child(even) { + transition: background-color 175ms ease-in-out; + background: var(--table-zebra); +} +.table tr:not(:last-child) { + border-bottom: 1px solid var(--table-highlight); +} +.table td, .table th { + vertical-align: middle; +} +.table th .sortable { + user-select: none; +} +.table th .sort-asc::after, .table th .sort-desc::after { + padding-left: 3px; + line-height: 0.7em; + font-size: 0.7em; +} +.table th .sort-asc::after { + content: '\25b2'; +} +.table th .sort-desc::after { + content: '\25bc'; +} +.table td { + padding: 7px 10px; +} +.table td:first-child { + padding: 7px 10px 7px 20px; +} +.table td:last-child { + padding: 7px 20px 7px 10px; +} +.table td img { + vertical-align: middle; +} + +/* === Tracks Table === */ +.table--tracks { + border-collapse: collapse; +} +.table--tracks thead { + border-bottom: 2px solid var(--table-highlight); +} +.table--tracks tr:first-child td:first-child { + border-top-left-radius: 3px; +} +.table--tracks tr:first-child td:last-child { + border-top-right-radius: 3px; +} +.table--tracks tr:last-child td:first-child { + border-bottom-left-radius: 3px; +} +.table--tracks tr:last-child td:last-child { + border-bottom-right-radius: 3px; +} + +/* === Tracklist Table === */ +.table--tracklist thead { + border-bottom: 2px solid var(--table-highlight); + text-transform: capitalize; +} +.table--tracklist th { + padding: 7px 10px; + height: 45px; +} +.table--tracklist th:first-child { + padding: 7px 10px 7px 20px; +} +.table--tracklist th:last-child { + padding: 7px 20px 7px 10px; +} +.table--tracklist td { + height: 35px; +} + +/* === Charts Table === */ +.table--charts td { + height: 35px; +} + +.table .table__icon { + box-sizing: content-box; + width: 32px; +} +.table .table__icon--big { + width: 48px; + text-align: center; +} +.table .table__cell--x-small { + width: 0.32%; +} +.table .table__cell--small { + width: 3.2%; +} +.table .table__cell--medium { + width: 28.7%; +} +.table .table__cell--large { + width: 50%; +} +.table .table__cell--left { + text-align: left; +} +.table .table__cell--center { + text-align: center; +} +.table .table__cell--right { + text-align: right; +} +.table .table__cell-content.table__cell-content--vertical-center { + display: flex; + align-items: center; +} +.track_row > td > img { + width: 32px; + height: 32px; +} +.track_row > td > a > img { + width: 56px; + height: 56px; +} + +.table--tracklist .clickable:hover, +.table--charts .clickable:hover { + text-decoration: underline; +} diff --git a/webui/src/styles/css/tailwind.css b/webui/src/styles/css/tailwind.css new file mode 100644 index 0000000..b5c61c9 --- /dev/null +++ b/webui/src/styles/css/tailwind.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/webui/src/styles/css/toasts.css b/webui/src/styles/css/toasts.css new file mode 100644 index 0000000..9b1b580 --- /dev/null +++ b/webui/src/styles/css/toasts.css @@ -0,0 +1,26 @@ +.toast-icon { + @apply flex items-center mr-2; +} + +.circle-loader { + @apply inline-block w-4 h-4; + border: 2px solid var(--primary-color); + border-radius: 50%; + border-bottom: 2px solid var(--secondary-background); + animation: spin 1s linear infinite; +} + +.toastify { + @apply flex items-center; + box-shadow: 0 3px 6px -1px rgba(0, 0, 0, 0.12), 0 10px 36px -4px rgba(0, 0, 0, 0.3); + background: var(--toast-background); + color: var(--toast-text); +} + +.toastify toast { + @apply flex items-center; +} + +.toastify .circle-loader { + border-bottom-color: var(--toast-secondary); +} diff --git a/webui/src/styles/css/typography.css b/webui/src/styles/css/typography.css new file mode 100644 index 0000000..53a4172 --- /dev/null +++ b/webui/src/styles/css/typography.css @@ -0,0 +1,21 @@ +.primary-text { + @apply mb-1 transition-colors duration-200 ease-in-out; +} + +.primary-text:hover { + @apply text-primary; +} + +.secondary-text { + @apply mb-1 text-sm opacity-75; +} + +@layer utilities { + .uppercase-first-letter::first-letter { + @apply uppercase; + } + + .lowercase-first-letter::first-letter { + @apply lowercase; + } +} diff --git a/webui/src/styles/vendor/OpenSans.css b/webui/src/styles/vendor/OpenSans.css new file mode 100644 index 0000000..181ea45 --- /dev/null +++ b/webui/src/styles/vendor/OpenSans.css @@ -0,0 +1,630 @@ +/* cyrillic-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 300; + font-display: swap; + src: url('fonts/OpenSans/memnYaGs126MiZpBA-UFUKWyV9hmIqOjjg.woff2') format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 300; + font-display: swap; + src: url('fonts/OpenSans/memnYaGs126MiZpBA-UFUKWyV9hvIqOjjg.woff2') format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 300; + font-display: swap; + src: url('fonts/OpenSans/memnYaGs126MiZpBA-UFUKWyV9hnIqOjjg.woff2') format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 300; + font-display: swap; + src: url('fonts/OpenSans/memnYaGs126MiZpBA-UFUKWyV9hoIqOjjg.woff2') format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 300; + font-display: swap; + src: url('fonts/OpenSans/memnYaGs126MiZpBA-UFUKWyV9hkIqOjjg.woff2') format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 300; + font-display: swap; + src: url('fonts/OpenSans/memnYaGs126MiZpBA-UFUKWyV9hlIqOjjg.woff2') format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 300; + font-display: swap; + src: url('fonts/OpenSans/memnYaGs126MiZpBA-UFUKWyV9hrIqM.woff2') format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 400; + font-display: swap; + src: url('fonts/OpenSans/mem6YaGs126MiZpBA-UFUK0Udc1UAw.woff2') format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 400; + font-display: swap; + src: url('fonts/OpenSans/mem6YaGs126MiZpBA-UFUK0ddc1UAw.woff2') format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 400; + font-display: swap; + src: url('fonts/OpenSans/mem6YaGs126MiZpBA-UFUK0Vdc1UAw.woff2') format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 400; + font-display: swap; + src: url('fonts/OpenSans/mem6YaGs126MiZpBA-UFUK0adc1UAw.woff2') format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 400; + font-display: swap; + src: url('fonts/OpenSans/mem6YaGs126MiZpBA-UFUK0Wdc1UAw.woff2') format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 400; + font-display: swap; + src: url('fonts/OpenSans/mem6YaGs126MiZpBA-UFUK0Xdc1UAw.woff2') format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 400; + font-display: swap; + src: url('fonts/OpenSans/mem6YaGs126MiZpBA-UFUK0Zdc0.woff2') format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 600; + font-display: swap; + src: url('fonts/OpenSans/memnYaGs126MiZpBA-UFUKXGUdhmIqOjjg.woff2') format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 600; + font-display: swap; + src: url('fonts/OpenSans/memnYaGs126MiZpBA-UFUKXGUdhvIqOjjg.woff2') format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 600; + font-display: swap; + src: url('fonts/OpenSans/memnYaGs126MiZpBA-UFUKXGUdhnIqOjjg.woff2') format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 600; + font-display: swap; + src: url('fonts/OpenSans/memnYaGs126MiZpBA-UFUKXGUdhoIqOjjg.woff2') format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 600; + font-display: swap; + src: url('fonts/OpenSans/memnYaGs126MiZpBA-UFUKXGUdhkIqOjjg.woff2') format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 600; + font-display: swap; + src: url('fonts/OpenSans/memnYaGs126MiZpBA-UFUKXGUdhlIqOjjg.woff2') format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 600; + font-display: swap; + src: url('fonts/OpenSans/memnYaGs126MiZpBA-UFUKXGUdhrIqM.woff2') format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 700; + font-display: swap; + src: url('fonts/OpenSans/memnYaGs126MiZpBA-UFUKWiUNhmIqOjjg.woff2') format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 700; + font-display: swap; + src: url('fonts/OpenSans/memnYaGs126MiZpBA-UFUKWiUNhvIqOjjg.woff2') format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 700; + font-display: swap; + src: url('fonts/OpenSans/memnYaGs126MiZpBA-UFUKWiUNhnIqOjjg.woff2') format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 700; + font-display: swap; + src: url('fonts/OpenSans/memnYaGs126MiZpBA-UFUKWiUNhoIqOjjg.woff2') format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 700; + font-display: swap; + src: url('fonts/OpenSans/memnYaGs126MiZpBA-UFUKWiUNhkIqOjjg.woff2') format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 700; + font-display: swap; + src: url('fonts/OpenSans/memnYaGs126MiZpBA-UFUKWiUNhlIqOjjg.woff2') format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 700; + font-display: swap; + src: url('fonts/OpenSans/memnYaGs126MiZpBA-UFUKWiUNhrIqM.woff2') format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 800; + font-display: swap; + src: url('fonts/OpenSans/memnYaGs126MiZpBA-UFUKW-U9hmIqOjjg.woff2') format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 800; + font-display: swap; + src: url('fonts/OpenSans/memnYaGs126MiZpBA-UFUKW-U9hvIqOjjg.woff2') format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 800; + font-display: swap; + src: url('fonts/OpenSans/memnYaGs126MiZpBA-UFUKW-U9hnIqOjjg.woff2') format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 800; + font-display: swap; + src: url('fonts/OpenSans/memnYaGs126MiZpBA-UFUKW-U9hoIqOjjg.woff2') format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 800; + font-display: swap; + src: url('fonts/OpenSans/memnYaGs126MiZpBA-UFUKW-U9hkIqOjjg.woff2') format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 800; + font-display: swap; + src: url('fonts/OpenSans/memnYaGs126MiZpBA-UFUKW-U9hlIqOjjg.woff2') format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 800; + font-display: swap; + src: url('fonts/OpenSans/memnYaGs126MiZpBA-UFUKW-U9hrIqM.woff2') format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 300; + font-display: swap; + src: url('fonts/OpenSans/mem5YaGs126MiZpBA-UN_r8OX-hpOqc.woff2') format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 300; + font-display: swap; + src: url('fonts/OpenSans/mem5YaGs126MiZpBA-UN_r8OVuhpOqc.woff2') format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 300; + font-display: swap; + src: url('fonts/OpenSans/mem5YaGs126MiZpBA-UN_r8OXuhpOqc.woff2') format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 300; + font-display: swap; + src: url('fonts/OpenSans/mem5YaGs126MiZpBA-UN_r8OUehpOqc.woff2') format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 300; + font-display: swap; + src: url('fonts/OpenSans/mem5YaGs126MiZpBA-UN_r8OXehpOqc.woff2') format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 300; + font-display: swap; + src: url('fonts/OpenSans/mem5YaGs126MiZpBA-UN_r8OXOhpOqc.woff2') format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 300; + font-display: swap; + src: url('fonts/OpenSans/mem5YaGs126MiZpBA-UN_r8OUuhp.woff2') format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url('fonts/OpenSans/mem8YaGs126MiZpBA-UFWJ0bbck.woff2') format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url('fonts/OpenSans/mem8YaGs126MiZpBA-UFUZ0bbck.woff2') format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url('fonts/OpenSans/mem8YaGs126MiZpBA-UFWZ0bbck.woff2') format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url('fonts/OpenSans/mem8YaGs126MiZpBA-UFVp0bbck.woff2') format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url('fonts/OpenSans/mem8YaGs126MiZpBA-UFWp0bbck.woff2') format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url('fonts/OpenSans/mem8YaGs126MiZpBA-UFW50bbck.woff2') format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url('fonts/OpenSans/mem8YaGs126MiZpBA-UFVZ0b.woff2') format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 600; + font-display: swap; + src: url('fonts/OpenSans/mem5YaGs126MiZpBA-UNirkOX-hpOqc.woff2') format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 600; + font-display: swap; + src: url('fonts/OpenSans/mem5YaGs126MiZpBA-UNirkOVuhpOqc.woff2') format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 600; + font-display: swap; + src: url('fonts/OpenSans/mem5YaGs126MiZpBA-UNirkOXuhpOqc.woff2') format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 600; + font-display: swap; + src: url('fonts/OpenSans/mem5YaGs126MiZpBA-UNirkOUehpOqc.woff2') format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 600; + font-display: swap; + src: url('fonts/OpenSans/mem5YaGs126MiZpBA-UNirkOXehpOqc.woff2') format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 600; + font-display: swap; + src: url('fonts/OpenSans/mem5YaGs126MiZpBA-UNirkOXOhpOqc.woff2') format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 600; + font-display: swap; + src: url('fonts/OpenSans/mem5YaGs126MiZpBA-UNirkOUuhp.woff2') format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url('fonts/OpenSans/mem5YaGs126MiZpBA-UN7rgOX-hpOqc.woff2') format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url('fonts/OpenSans/mem5YaGs126MiZpBA-UN7rgOVuhpOqc.woff2') format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url('fonts/OpenSans/mem5YaGs126MiZpBA-UN7rgOXuhpOqc.woff2') format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url('fonts/OpenSans/mem5YaGs126MiZpBA-UN7rgOUehpOqc.woff2') format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url('fonts/OpenSans/mem5YaGs126MiZpBA-UN7rgOXehpOqc.woff2') format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url('fonts/OpenSans/mem5YaGs126MiZpBA-UN7rgOXOhpOqc.woff2') format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url('fonts/OpenSans/mem5YaGs126MiZpBA-UN7rgOUuhp.woff2') format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 800; + font-display: swap; + src: url('fonts/OpenSans/mem5YaGs126MiZpBA-UN8rsOX-hpOqc.woff2') format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 800; + font-display: swap; + src: url('fonts/OpenSans/mem5YaGs126MiZpBA-UN8rsOVuhpOqc.woff2') format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 800; + font-display: swap; + src: url('fonts/OpenSans/mem5YaGs126MiZpBA-UN8rsOXuhpOqc.woff2') format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 800; + font-display: swap; + src: url('fonts/OpenSans/mem5YaGs126MiZpBA-UN8rsOUehpOqc.woff2') format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 800; + font-display: swap; + src: url('fonts/OpenSans/mem5YaGs126MiZpBA-UN8rsOXehpOqc.woff2') format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 800; + font-display: swap; + src: url('fonts/OpenSans/mem5YaGs126MiZpBA-UN8rsOXOhpOqc.woff2') format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 800; + font-display: swap; + src: url('fonts/OpenSans/mem5YaGs126MiZpBA-UN8rsOUuhp.woff2') format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} diff --git a/webui/src/styles/vendor/animate.css b/webui/src/styles/vendor/animate.css new file mode 100644 index 0000000..772a60c --- /dev/null +++ b/webui/src/styles/vendor/animate.css @@ -0,0 +1,3625 @@ +@charset "UTF-8"; + +/*! + * animate.css -https://daneden.github.io/animate.css/ + * Version - 3.7.1 + * Licensed under the MIT license - http://opensource.org/licenses/MIT + * + * Copyright (c) 2019 Daniel Eden + */ + +@-webkit-keyframes bounce { + from, + 20%, + 53%, + 80%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 40%, + 43% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + -webkit-transform: translate3d(0, -30px, 0); + transform: translate3d(0, -30px, 0); + } + + 70% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + -webkit-transform: translate3d(0, -15px, 0); + transform: translate3d(0, -15px, 0); + } + + 90% { + -webkit-transform: translate3d(0, -4px, 0); + transform: translate3d(0, -4px, 0); + } +} + +@keyframes bounce { + from, + 20%, + 53%, + 80%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 40%, + 43% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + -webkit-transform: translate3d(0, -30px, 0); + transform: translate3d(0, -30px, 0); + } + + 70% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + -webkit-transform: translate3d(0, -15px, 0); + transform: translate3d(0, -15px, 0); + } + + 90% { + -webkit-transform: translate3d(0, -4px, 0); + transform: translate3d(0, -4px, 0); + } +} + +.bounce { + -webkit-animation-name: bounce; + animation-name: bounce; + -webkit-transform-origin: center bottom; + transform-origin: center bottom; +} + +@-webkit-keyframes flash { + from, + 50%, + to { + opacity: 1; + } + + 25%, + 75% { + opacity: 0; + } +} + +@keyframes flash { + from, + 50%, + to { + opacity: 1; + } + + 25%, + 75% { + opacity: 0; + } +} + +.flash { + -webkit-animation-name: flash; + animation-name: flash; +} + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes pulse { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 50% { + -webkit-transform: scale3d(1.05, 1.05, 1.05); + transform: scale3d(1.05, 1.05, 1.05); + } + + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +@keyframes pulse { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 50% { + -webkit-transform: scale3d(1.05, 1.05, 1.05); + transform: scale3d(1.05, 1.05, 1.05); + } + + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +.pulse { + -webkit-animation-name: pulse; + animation-name: pulse; +} + +@-webkit-keyframes rubberBand { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 30% { + -webkit-transform: scale3d(1.25, 0.75, 1); + transform: scale3d(1.25, 0.75, 1); + } + + 40% { + -webkit-transform: scale3d(0.75, 1.25, 1); + transform: scale3d(0.75, 1.25, 1); + } + + 50% { + -webkit-transform: scale3d(1.15, 0.85, 1); + transform: scale3d(1.15, 0.85, 1); + } + + 65% { + -webkit-transform: scale3d(0.95, 1.05, 1); + transform: scale3d(0.95, 1.05, 1); + } + + 75% { + -webkit-transform: scale3d(1.05, 0.95, 1); + transform: scale3d(1.05, 0.95, 1); + } + + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +@keyframes rubberBand { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 30% { + -webkit-transform: scale3d(1.25, 0.75, 1); + transform: scale3d(1.25, 0.75, 1); + } + + 40% { + -webkit-transform: scale3d(0.75, 1.25, 1); + transform: scale3d(0.75, 1.25, 1); + } + + 50% { + -webkit-transform: scale3d(1.15, 0.85, 1); + transform: scale3d(1.15, 0.85, 1); + } + + 65% { + -webkit-transform: scale3d(0.95, 1.05, 1); + transform: scale3d(0.95, 1.05, 1); + } + + 75% { + -webkit-transform: scale3d(1.05, 0.95, 1); + transform: scale3d(1.05, 0.95, 1); + } + + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +.rubberBand { + -webkit-animation-name: rubberBand; + animation-name: rubberBand; +} + +@-webkit-keyframes shake { + from, + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 10%, + 30%, + 50%, + 70%, + 90% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + + 20%, + 40%, + 60%, + 80% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } +} + +@keyframes shake { + from, + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 10%, + 30%, + 50%, + 70%, + 90% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + + 20%, + 40%, + 60%, + 80% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } +} + +.shake { + -webkit-animation-name: shake; + animation-name: shake; +} + +@-webkit-keyframes headShake { + 0% { + -webkit-transform: translateX(0); + transform: translateX(0); + } + + 6.5% { + -webkit-transform: translateX(-6px) rotateY(-9deg); + transform: translateX(-6px) rotateY(-9deg); + } + + 18.5% { + -webkit-transform: translateX(5px) rotateY(7deg); + transform: translateX(5px) rotateY(7deg); + } + + 31.5% { + -webkit-transform: translateX(-3px) rotateY(-5deg); + transform: translateX(-3px) rotateY(-5deg); + } + + 43.5% { + -webkit-transform: translateX(2px) rotateY(3deg); + transform: translateX(2px) rotateY(3deg); + } + + 50% { + -webkit-transform: translateX(0); + transform: translateX(0); + } +} + +@keyframes headShake { + 0% { + -webkit-transform: translateX(0); + transform: translateX(0); + } + + 6.5% { + -webkit-transform: translateX(-6px) rotateY(-9deg); + transform: translateX(-6px) rotateY(-9deg); + } + + 18.5% { + -webkit-transform: translateX(5px) rotateY(7deg); + transform: translateX(5px) rotateY(7deg); + } + + 31.5% { + -webkit-transform: translateX(-3px) rotateY(-5deg); + transform: translateX(-3px) rotateY(-5deg); + } + + 43.5% { + -webkit-transform: translateX(2px) rotateY(3deg); + transform: translateX(2px) rotateY(3deg); + } + + 50% { + -webkit-transform: translateX(0); + transform: translateX(0); + } +} + +.headShake { + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + -webkit-animation-name: headShake; + animation-name: headShake; +} + +@-webkit-keyframes swing { + 20% { + -webkit-transform: rotate3d(0, 0, 1, 15deg); + transform: rotate3d(0, 0, 1, 15deg); + } + + 40% { + -webkit-transform: rotate3d(0, 0, 1, -10deg); + transform: rotate3d(0, 0, 1, -10deg); + } + + 60% { + -webkit-transform: rotate3d(0, 0, 1, 5deg); + transform: rotate3d(0, 0, 1, 5deg); + } + + 80% { + -webkit-transform: rotate3d(0, 0, 1, -5deg); + transform: rotate3d(0, 0, 1, -5deg); + } + + to { + -webkit-transform: rotate3d(0, 0, 1, 0deg); + transform: rotate3d(0, 0, 1, 0deg); + } +} + +@keyframes swing { + 20% { + -webkit-transform: rotate3d(0, 0, 1, 15deg); + transform: rotate3d(0, 0, 1, 15deg); + } + + 40% { + -webkit-transform: rotate3d(0, 0, 1, -10deg); + transform: rotate3d(0, 0, 1, -10deg); + } + + 60% { + -webkit-transform: rotate3d(0, 0, 1, 5deg); + transform: rotate3d(0, 0, 1, 5deg); + } + + 80% { + -webkit-transform: rotate3d(0, 0, 1, -5deg); + transform: rotate3d(0, 0, 1, -5deg); + } + + to { + -webkit-transform: rotate3d(0, 0, 1, 0deg); + transform: rotate3d(0, 0, 1, 0deg); + } +} + +.swing { + -webkit-transform-origin: top center; + transform-origin: top center; + -webkit-animation-name: swing; + animation-name: swing; +} + +@-webkit-keyframes tada { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 10%, + 20% { + -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); + transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); + } + + 30%, + 50%, + 70%, + 90% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + } + + 40%, + 60%, + 80% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + } + + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +@keyframes tada { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 10%, + 20% { + -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); + transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); + } + + 30%, + 50%, + 70%, + 90% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + } + + 40%, + 60%, + 80% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + } + + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +.tada { + -webkit-animation-name: tada; + animation-name: tada; +} + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes wobble { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 15% { + -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + } + + 30% { + -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + } + + 45% { + -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + } + + 60% { + -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + } + + 75% { + -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes wobble { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 15% { + -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + } + + 30% { + -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + } + + 45% { + -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + } + + 60% { + -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + } + + 75% { + -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.wobble { + -webkit-animation-name: wobble; + animation-name: wobble; +} + +@-webkit-keyframes jello { + from, + 11.1%, + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 22.2% { + -webkit-transform: skewX(-12.5deg) skewY(-12.5deg); + transform: skewX(-12.5deg) skewY(-12.5deg); + } + + 33.3% { + -webkit-transform: skewX(6.25deg) skewY(6.25deg); + transform: skewX(6.25deg) skewY(6.25deg); + } + + 44.4% { + -webkit-transform: skewX(-3.125deg) skewY(-3.125deg); + transform: skewX(-3.125deg) skewY(-3.125deg); + } + + 55.5% { + -webkit-transform: skewX(1.5625deg) skewY(1.5625deg); + transform: skewX(1.5625deg) skewY(1.5625deg); + } + + 66.6% { + -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg); + transform: skewX(-0.78125deg) skewY(-0.78125deg); + } + + 77.7% { + -webkit-transform: skewX(0.390625deg) skewY(0.390625deg); + transform: skewX(0.390625deg) skewY(0.390625deg); + } + + 88.8% { + -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg); + transform: skewX(-0.1953125deg) skewY(-0.1953125deg); + } +} + +@keyframes jello { + from, + 11.1%, + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 22.2% { + -webkit-transform: skewX(-12.5deg) skewY(-12.5deg); + transform: skewX(-12.5deg) skewY(-12.5deg); + } + + 33.3% { + -webkit-transform: skewX(6.25deg) skewY(6.25deg); + transform: skewX(6.25deg) skewY(6.25deg); + } + + 44.4% { + -webkit-transform: skewX(-3.125deg) skewY(-3.125deg); + transform: skewX(-3.125deg) skewY(-3.125deg); + } + + 55.5% { + -webkit-transform: skewX(1.5625deg) skewY(1.5625deg); + transform: skewX(1.5625deg) skewY(1.5625deg); + } + + 66.6% { + -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg); + transform: skewX(-0.78125deg) skewY(-0.78125deg); + } + + 77.7% { + -webkit-transform: skewX(0.390625deg) skewY(0.390625deg); + transform: skewX(0.390625deg) skewY(0.390625deg); + } + + 88.8% { + -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg); + transform: skewX(-0.1953125deg) skewY(-0.1953125deg); + } +} + +.jello { + -webkit-animation-name: jello; + animation-name: jello; + -webkit-transform-origin: center; + transform-origin: center; +} + +@-webkit-keyframes heartBeat { + 0% { + -webkit-transform: scale(1); + transform: scale(1); + } + + 14% { + -webkit-transform: scale(1.3); + transform: scale(1.3); + } + + 28% { + -webkit-transform: scale(1); + transform: scale(1); + } + + 42% { + -webkit-transform: scale(1.3); + transform: scale(1.3); + } + + 70% { + -webkit-transform: scale(1); + transform: scale(1); + } +} + +@keyframes heartBeat { + 0% { + -webkit-transform: scale(1); + transform: scale(1); + } + + 14% { + -webkit-transform: scale(1.3); + transform: scale(1.3); + } + + 28% { + -webkit-transform: scale(1); + transform: scale(1); + } + + 42% { + -webkit-transform: scale(1.3); + transform: scale(1.3); + } + + 70% { + -webkit-transform: scale(1); + transform: scale(1); + } +} + +.heartBeat { + -webkit-animation-name: heartBeat; + animation-name: heartBeat; + -webkit-animation-duration: 1.3s; + animation-duration: 1.3s; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; +} + +@-webkit-keyframes bounceIn { + from, + 20%, + 40%, + 60%, + 80%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + + 0% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } + + 20% { + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + + 40% { + -webkit-transform: scale3d(0.9, 0.9, 0.9); + transform: scale3d(0.9, 0.9, 0.9); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(1.03, 1.03, 1.03); + transform: scale3d(1.03, 1.03, 1.03); + } + + 80% { + -webkit-transform: scale3d(0.97, 0.97, 0.97); + transform: scale3d(0.97, 0.97, 0.97); + } + + to { + opacity: 1; + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +@keyframes bounceIn { + from, + 20%, + 40%, + 60%, + 80%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + + 0% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } + + 20% { + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + + 40% { + -webkit-transform: scale3d(0.9, 0.9, 0.9); + transform: scale3d(0.9, 0.9, 0.9); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(1.03, 1.03, 1.03); + transform: scale3d(1.03, 1.03, 1.03); + } + + 80% { + -webkit-transform: scale3d(0.97, 0.97, 0.97); + transform: scale3d(0.97, 0.97, 0.97); + } + + to { + opacity: 1; + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +.bounceIn { + -webkit-animation-duration: 0.75s; + animation-duration: 0.75s; + -webkit-animation-name: bounceIn; + animation-name: bounceIn; +} + +@-webkit-keyframes bounceInDown { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -3000px, 0); + transform: translate3d(0, -3000px, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(0, 25px, 0); + transform: translate3d(0, 25px, 0); + } + + 75% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + + 90% { + -webkit-transform: translate3d(0, 5px, 0); + transform: translate3d(0, 5px, 0); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes bounceInDown { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -3000px, 0); + transform: translate3d(0, -3000px, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(0, 25px, 0); + transform: translate3d(0, 25px, 0); + } + + 75% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + + 90% { + -webkit-transform: translate3d(0, 5px, 0); + transform: translate3d(0, 5px, 0); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.bounceInDown { + -webkit-animation-name: bounceInDown; + animation-name: bounceInDown; +} + +@-webkit-keyframes bounceInLeft { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(-3000px, 0, 0); + transform: translate3d(-3000px, 0, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(25px, 0, 0); + transform: translate3d(25px, 0, 0); + } + + 75% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + + 90% { + -webkit-transform: translate3d(5px, 0, 0); + transform: translate3d(5px, 0, 0); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes bounceInLeft { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(-3000px, 0, 0); + transform: translate3d(-3000px, 0, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(25px, 0, 0); + transform: translate3d(25px, 0, 0); + } + + 75% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + + 90% { + -webkit-transform: translate3d(5px, 0, 0); + transform: translate3d(5px, 0, 0); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.bounceInLeft { + -webkit-animation-name: bounceInLeft; + animation-name: bounceInLeft; +} + +@-webkit-keyframes bounceInRight { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + + from { + opacity: 0; + -webkit-transform: translate3d(3000px, 0, 0); + transform: translate3d(3000px, 0, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(-25px, 0, 0); + transform: translate3d(-25px, 0, 0); + } + + 75% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } + + 90% { + -webkit-transform: translate3d(-5px, 0, 0); + transform: translate3d(-5px, 0, 0); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes bounceInRight { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + + from { + opacity: 0; + -webkit-transform: translate3d(3000px, 0, 0); + transform: translate3d(3000px, 0, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(-25px, 0, 0); + transform: translate3d(-25px, 0, 0); + } + + 75% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } + + 90% { + -webkit-transform: translate3d(-5px, 0, 0); + transform: translate3d(-5px, 0, 0); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.bounceInRight { + -webkit-animation-name: bounceInRight; + animation-name: bounceInRight; +} + +@-webkit-keyframes bounceInUp { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + + from { + opacity: 0; + -webkit-transform: translate3d(0, 3000px, 0); + transform: translate3d(0, 3000px, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + + 75% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + + 90% { + -webkit-transform: translate3d(0, -5px, 0); + transform: translate3d(0, -5px, 0); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes bounceInUp { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + + from { + opacity: 0; + -webkit-transform: translate3d(0, 3000px, 0); + transform: translate3d(0, 3000px, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + + 75% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + + 90% { + -webkit-transform: translate3d(0, -5px, 0); + transform: translate3d(0, -5px, 0); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.bounceInUp { + -webkit-animation-name: bounceInUp; + animation-name: bounceInUp; +} + +@-webkit-keyframes bounceOut { + 20% { + -webkit-transform: scale3d(0.9, 0.9, 0.9); + transform: scale3d(0.9, 0.9, 0.9); + } + + 50%, + 55% { + opacity: 1; + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + + to { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } +} + +@keyframes bounceOut { + 20% { + -webkit-transform: scale3d(0.9, 0.9, 0.9); + transform: scale3d(0.9, 0.9, 0.9); + } + + 50%, + 55% { + opacity: 1; + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + + to { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } +} + +.bounceOut { + -webkit-animation-duration: 0.75s; + animation-duration: 0.75s; + -webkit-animation-name: bounceOut; + animation-name: bounceOut; +} + +@-webkit-keyframes bounceOutDown { + 20% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + + 40%, + 45% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} + +@keyframes bounceOutDown { + 20% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + + 40%, + 45% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} + +.bounceOutDown { + -webkit-animation-name: bounceOutDown; + animation-name: bounceOutDown; +} + +@-webkit-keyframes bounceOutLeft { + 20% { + opacity: 1; + -webkit-transform: translate3d(20px, 0, 0); + transform: translate3d(20px, 0, 0); + } + + to { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} + +@keyframes bounceOutLeft { + 20% { + opacity: 1; + -webkit-transform: translate3d(20px, 0, 0); + transform: translate3d(20px, 0, 0); + } + + to { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} + +.bounceOutLeft { + -webkit-animation-name: bounceOutLeft; + animation-name: bounceOutLeft; +} + +@-webkit-keyframes bounceOutRight { + 20% { + opacity: 1; + -webkit-transform: translate3d(-20px, 0, 0); + transform: translate3d(-20px, 0, 0); + } + + to { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} + +@keyframes bounceOutRight { + 20% { + opacity: 1; + -webkit-transform: translate3d(-20px, 0, 0); + transform: translate3d(-20px, 0, 0); + } + + to { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} + +.bounceOutRight { + -webkit-animation-name: bounceOutRight; + animation-name: bounceOutRight; +} + +@-webkit-keyframes bounceOutUp { + 20% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + + 40%, + 45% { + opacity: 1; + -webkit-transform: translate3d(0, 20px, 0); + transform: translate3d(0, 20px, 0); + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} + +@keyframes bounceOutUp { + 20% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + + 40%, + 45% { + opacity: 1; + -webkit-transform: translate3d(0, 20px, 0); + transform: translate3d(0, 20px, 0); + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} + +.bounceOutUp { + -webkit-animation-name: bounceOutUp; + animation-name: bounceOutUp; +} + +@-webkit-keyframes fadeIn { + from { + opacity: 0; + } + + to { + opacity: 1; + } +} + +@keyframes fadeIn { + from { + opacity: 0; + } + + to { + opacity: 1; + } +} + +.fadeIn { + -webkit-animation-name: fadeIn; + animation-name: fadeIn; +} + +@-webkit-keyframes fadeInDown { + from { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes fadeInDown { + from { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.fadeInDown { + -webkit-animation-name: fadeInDown; + animation-name: fadeInDown; +} + +@-webkit-keyframes fadeInDownBig { + from { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes fadeInDownBig { + from { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.fadeInDownBig { + -webkit-animation-name: fadeInDownBig; + animation-name: fadeInDownBig; +} + +@-webkit-keyframes fadeInLeft { + from { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes fadeInLeft { + from { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.fadeInLeft { + -webkit-animation-name: fadeInLeft; + animation-name: fadeInLeft; +} + +@-webkit-keyframes fadeInLeftBig { + from { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes fadeInLeftBig { + from { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.fadeInLeftBig { + -webkit-animation-name: fadeInLeftBig; + animation-name: fadeInLeftBig; +} + +@-webkit-keyframes fadeInRight { + from { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes fadeInRight { + from { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.fadeInRight { + -webkit-animation-name: fadeInRight; + animation-name: fadeInRight; +} + +@-webkit-keyframes fadeInRightBig { + from { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes fadeInRightBig { + from { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.fadeInRightBig { + -webkit-animation-name: fadeInRightBig; + animation-name: fadeInRightBig; +} + +@-webkit-keyframes fadeInUp { + from { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes fadeInUp { + from { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.fadeInUp { + -webkit-animation-name: fadeInUp; + animation-name: fadeInUp; +} + +@-webkit-keyframes fadeInUpBig { + from { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes fadeInUpBig { + from { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.fadeInUpBig { + -webkit-animation-name: fadeInUpBig; + animation-name: fadeInUpBig; +} + +@-webkit-keyframes fadeOut { + from { + opacity: 1; + } + + to { + opacity: 0; + } +} + +@keyframes fadeOut { + from { + opacity: 1; + } + + to { + opacity: 0; + } +} + +.fadeOut { + -webkit-animation-name: fadeOut; + animation-name: fadeOut; +} + +@-webkit-keyframes fadeOutDown { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} + +@keyframes fadeOutDown { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} + +.fadeOutDown { + -webkit-animation-name: fadeOutDown; + animation-name: fadeOutDown; +} + +@-webkit-keyframes fadeOutDownBig { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} + +@keyframes fadeOutDownBig { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} + +.fadeOutDownBig { + -webkit-animation-name: fadeOutDownBig; + animation-name: fadeOutDownBig; +} + +@-webkit-keyframes fadeOutLeft { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} + +@keyframes fadeOutLeft { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} + +.fadeOutLeft { + -webkit-animation-name: fadeOutLeft; + animation-name: fadeOutLeft; +} + +@-webkit-keyframes fadeOutLeftBig { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} + +@keyframes fadeOutLeftBig { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} + +.fadeOutLeftBig { + -webkit-animation-name: fadeOutLeftBig; + animation-name: fadeOutLeftBig; +} + +@-webkit-keyframes fadeOutRight { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} + +@keyframes fadeOutRight { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} + +.fadeOutRight { + -webkit-animation-name: fadeOutRight; + animation-name: fadeOutRight; +} + +@-webkit-keyframes fadeOutRightBig { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} + +@keyframes fadeOutRightBig { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} + +.fadeOutRightBig { + -webkit-animation-name: fadeOutRightBig; + animation-name: fadeOutRightBig; +} + +@-webkit-keyframes fadeOutUp { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } +} + +@keyframes fadeOutUp { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } +} + +.fadeOutUp { + -webkit-animation-name: fadeOutUp; + animation-name: fadeOutUp; +} + +@-webkit-keyframes fadeOutUpBig { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} + +@keyframes fadeOutUpBig { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} + +.fadeOutUpBig { + -webkit-animation-name: fadeOutUpBig; + animation-name: fadeOutUpBig; +} + +@-webkit-keyframes flip { + from { + -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) + rotate3d(0, 1, 0, -360deg); + transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + + 40% { + -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) + rotate3d(0, 1, 0, -190deg); + transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) + rotate3d(0, 1, 0, -190deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + + 50% { + -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) + rotate3d(0, 1, 0, -170deg); + transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) + rotate3d(0, 1, 0, -170deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 80% { + -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0) + rotate3d(0, 1, 0, 0deg); + transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0) + rotate3d(0, 1, 0, 0deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + to { + -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) + rotate3d(0, 1, 0, 0deg); + transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } +} + +@keyframes flip { + from { + -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) + rotate3d(0, 1, 0, -360deg); + transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + + 40% { + -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) + rotate3d(0, 1, 0, -190deg); + transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) + rotate3d(0, 1, 0, -190deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + + 50% { + -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) + rotate3d(0, 1, 0, -170deg); + transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) + rotate3d(0, 1, 0, -170deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 80% { + -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0) + rotate3d(0, 1, 0, 0deg); + transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0) + rotate3d(0, 1, 0, 0deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + to { + -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) + rotate3d(0, 1, 0, 0deg); + transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } +} + +.animated.flip { + -webkit-backface-visibility: visible; + backface-visibility: visible; + -webkit-animation-name: flip; + animation-name: flip; +} + +@-webkit-keyframes flipInX { + from { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 60% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + opacity: 1; + } + + 80% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + } + + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} + +@keyframes flipInX { + from { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 60% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + opacity: 1; + } + + 80% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + } + + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} + +.flipInX { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInX; + animation-name: flipInX; +} + +@-webkit-keyframes flipInY { + from { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 60% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + opacity: 1; + } + + 80% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + } + + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} + +@keyframes flipInY { + from { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 60% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + opacity: 1; + } + + 80% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + } + + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} + +.flipInY { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInY; + animation-name: flipInY; +} + +@-webkit-keyframes flipOutX { + from { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + + 30% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + opacity: 1; + } + + to { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + opacity: 0; + } +} + +@keyframes flipOutX { + from { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + + 30% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + opacity: 1; + } + + to { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + opacity: 0; + } +} + +.flipOutX { + -webkit-animation-duration: 0.75s; + animation-duration: 0.75s; + -webkit-animation-name: flipOutX; + animation-name: flipOutX; + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; +} + +@-webkit-keyframes flipOutY { + from { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + + 30% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + opacity: 1; + } + + to { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + opacity: 0; + } +} + +@keyframes flipOutY { + from { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + + 30% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + opacity: 1; + } + + to { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + opacity: 0; + } +} + +.flipOutY { + -webkit-animation-duration: 0.75s; + animation-duration: 0.75s; + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipOutY; + animation-name: flipOutY; +} + +@-webkit-keyframes lightSpeedIn { + from { + -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg); + transform: translate3d(100%, 0, 0) skewX(-30deg); + opacity: 0; + } + + 60% { + -webkit-transform: skewX(20deg); + transform: skewX(20deg); + opacity: 1; + } + + 80% { + -webkit-transform: skewX(-5deg); + transform: skewX(-5deg); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes lightSpeedIn { + from { + -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg); + transform: translate3d(100%, 0, 0) skewX(-30deg); + opacity: 0; + } + + 60% { + -webkit-transform: skewX(20deg); + transform: skewX(20deg); + opacity: 1; + } + + 80% { + -webkit-transform: skewX(-5deg); + transform: skewX(-5deg); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.lightSpeedIn { + -webkit-animation-name: lightSpeedIn; + animation-name: lightSpeedIn; + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; +} + +@-webkit-keyframes lightSpeedOut { + from { + opacity: 1; + } + + to { + -webkit-transform: translate3d(100%, 0, 0) skewX(30deg); + transform: translate3d(100%, 0, 0) skewX(30deg); + opacity: 0; + } +} + +@keyframes lightSpeedOut { + from { + opacity: 1; + } + + to { + -webkit-transform: translate3d(100%, 0, 0) skewX(30deg); + transform: translate3d(100%, 0, 0) skewX(30deg); + opacity: 0; + } +} + +.lightSpeedOut { + -webkit-animation-name: lightSpeedOut; + animation-name: lightSpeedOut; + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; +} + +@-webkit-keyframes rotateIn { + from { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, -200deg); + transform: rotate3d(0, 0, 1, -200deg); + opacity: 0; + } + + to { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +@keyframes rotateIn { + from { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, -200deg); + transform: rotate3d(0, 0, 1, -200deg); + opacity: 0; + } + + to { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +.rotateIn { + -webkit-animation-name: rotateIn; + animation-name: rotateIn; +} + +@-webkit-keyframes rotateInDownLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } + + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +@keyframes rotateInDownLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } + + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +.rotateInDownLeft { + -webkit-animation-name: rotateInDownLeft; + animation-name: rotateInDownLeft; +} + +@-webkit-keyframes rotateInDownRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } + + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +@keyframes rotateInDownRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } + + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +.rotateInDownRight { + -webkit-animation-name: rotateInDownRight; + animation-name: rotateInDownRight; +} + +@-webkit-keyframes rotateInUpLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } + + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +@keyframes rotateInUpLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } + + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +.rotateInUpLeft { + -webkit-animation-name: rotateInUpLeft; + animation-name: rotateInUpLeft; +} + +@-webkit-keyframes rotateInUpRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -90deg); + transform: rotate3d(0, 0, 1, -90deg); + opacity: 0; + } + + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +@keyframes rotateInUpRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -90deg); + transform: rotate3d(0, 0, 1, -90deg); + opacity: 0; + } + + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +.rotateInUpRight { + -webkit-animation-name: rotateInUpRight; + animation-name: rotateInUpRight; +} + +@-webkit-keyframes rotateOut { + from { + -webkit-transform-origin: center; + transform-origin: center; + opacity: 1; + } + + to { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, 200deg); + transform: rotate3d(0, 0, 1, 200deg); + opacity: 0; + } +} + +@keyframes rotateOut { + from { + -webkit-transform-origin: center; + transform-origin: center; + opacity: 1; + } + + to { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, 200deg); + transform: rotate3d(0, 0, 1, 200deg); + opacity: 0; + } +} + +.rotateOut { + -webkit-animation-name: rotateOut; + animation-name: rotateOut; +} + +@-webkit-keyframes rotateOutDownLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; + } + + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } +} + +@keyframes rotateOutDownLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; + } + + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } +} + +.rotateOutDownLeft { + -webkit-animation-name: rotateOutDownLeft; + animation-name: rotateOutDownLeft; +} + +@-webkit-keyframes rotateOutDownRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; + } + + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } +} + +@keyframes rotateOutDownRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; + } + + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } +} + +.rotateOutDownRight { + -webkit-animation-name: rotateOutDownRight; + animation-name: rotateOutDownRight; +} + +@-webkit-keyframes rotateOutUpLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; + } + + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } +} + +@keyframes rotateOutUpLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; + } + + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } +} + +.rotateOutUpLeft { + -webkit-animation-name: rotateOutUpLeft; + animation-name: rotateOutUpLeft; +} + +@-webkit-keyframes rotateOutUpRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; + } + + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 90deg); + transform: rotate3d(0, 0, 1, 90deg); + opacity: 0; + } +} + +@keyframes rotateOutUpRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; + } + + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 90deg); + transform: rotate3d(0, 0, 1, 90deg); + opacity: 0; + } +} + +.rotateOutUpRight { + -webkit-animation-name: rotateOutUpRight; + animation-name: rotateOutUpRight; +} + +@-webkit-keyframes hinge { + 0% { + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + + 20%, + 60% { + -webkit-transform: rotate3d(0, 0, 1, 80deg); + transform: rotate3d(0, 0, 1, 80deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + + 40%, + 80% { + -webkit-transform: rotate3d(0, 0, 1, 60deg); + transform: rotate3d(0, 0, 1, 60deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + opacity: 1; + } + + to { + -webkit-transform: translate3d(0, 700px, 0); + transform: translate3d(0, 700px, 0); + opacity: 0; + } +} + +@keyframes hinge { + 0% { + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + + 20%, + 60% { + -webkit-transform: rotate3d(0, 0, 1, 80deg); + transform: rotate3d(0, 0, 1, 80deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + + 40%, + 80% { + -webkit-transform: rotate3d(0, 0, 1, 60deg); + transform: rotate3d(0, 0, 1, 60deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + opacity: 1; + } + + to { + -webkit-transform: translate3d(0, 700px, 0); + transform: translate3d(0, 700px, 0); + opacity: 0; + } +} + +.hinge { + -webkit-animation-duration: 2s; + animation-duration: 2s; + -webkit-animation-name: hinge; + animation-name: hinge; +} + +@-webkit-keyframes jackInTheBox { + from { + opacity: 0; + -webkit-transform: scale(0.1) rotate(30deg); + transform: scale(0.1) rotate(30deg); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + } + + 50% { + -webkit-transform: rotate(-10deg); + transform: rotate(-10deg); + } + + 70% { + -webkit-transform: rotate(3deg); + transform: rotate(3deg); + } + + to { + opacity: 1; + -webkit-transform: scale(1); + transform: scale(1); + } +} + +@keyframes jackInTheBox { + from { + opacity: 0; + -webkit-transform: scale(0.1) rotate(30deg); + transform: scale(0.1) rotate(30deg); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + } + + 50% { + -webkit-transform: rotate(-10deg); + transform: rotate(-10deg); + } + + 70% { + -webkit-transform: rotate(3deg); + transform: rotate(3deg); + } + + to { + opacity: 1; + -webkit-transform: scale(1); + transform: scale(1); + } +} + +.jackInTheBox { + -webkit-animation-name: jackInTheBox; + animation-name: jackInTheBox; +} + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes rollIn { + from { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes rollIn { + from { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.rollIn { + -webkit-animation-name: rollIn; + animation-name: rollIn; +} + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes rollOut { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + } +} + +@keyframes rollOut { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + } +} + +.rollOut { + -webkit-animation-name: rollOut; + animation-name: rollOut; +} + +@-webkit-keyframes zoomIn { + from { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } + + 50% { + opacity: 1; + } +} + +@keyframes zoomIn { + from { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } + + 50% { + opacity: 1; + } +} + +.zoomIn { + -webkit-animation-name: zoomIn; + animation-name: zoomIn; +} + +@-webkit-keyframes zoomInDown { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +@keyframes zoomInDown { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +.zoomInDown { + -webkit-animation-name: zoomInDown; + animation-name: zoomInDown; +} + +@-webkit-keyframes zoomInLeft { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +@keyframes zoomInLeft { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +.zoomInLeft { + -webkit-animation-name: zoomInLeft; + animation-name: zoomInLeft; +} + +@-webkit-keyframes zoomInRight { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +@keyframes zoomInRight { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +.zoomInRight { + -webkit-animation-name: zoomInRight; + animation-name: zoomInRight; +} + +@-webkit-keyframes zoomInUp { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +@keyframes zoomInUp { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +.zoomInUp { + -webkit-animation-name: zoomInUp; + animation-name: zoomInUp; +} + +@-webkit-keyframes zoomOut { + from { + opacity: 1; + } + + 50% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } + + to { + opacity: 0; + } +} + +@keyframes zoomOut { + from { + opacity: 1; + } + + 50% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } + + to { + opacity: 0; + } +} + +.zoomOut { + -webkit-animation-name: zoomOut; + animation-name: zoomOut; +} + +@-webkit-keyframes zoomOutDown { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + to { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +@keyframes zoomOutDown { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + to { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +.zoomOutDown { + -webkit-animation-name: zoomOutDown; + animation-name: zoomOutDown; +} + +@-webkit-keyframes zoomOutLeft { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); + } + + to { + opacity: 0; + -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0); + transform: scale(0.1) translate3d(-2000px, 0, 0); + -webkit-transform-origin: left center; + transform-origin: left center; + } +} + +@keyframes zoomOutLeft { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); + } + + to { + opacity: 0; + -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0); + transform: scale(0.1) translate3d(-2000px, 0, 0); + -webkit-transform-origin: left center; + transform-origin: left center; + } +} + +.zoomOutLeft { + -webkit-animation-name: zoomOutLeft; + animation-name: zoomOutLeft; +} + +@-webkit-keyframes zoomOutRight { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); + } + + to { + opacity: 0; + -webkit-transform: scale(0.1) translate3d(2000px, 0, 0); + transform: scale(0.1) translate3d(2000px, 0, 0); + -webkit-transform-origin: right center; + transform-origin: right center; + } +} + +@keyframes zoomOutRight { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); + } + + to { + opacity: 0; + -webkit-transform: scale(0.1) translate3d(2000px, 0, 0); + transform: scale(0.1) translate3d(2000px, 0, 0); + -webkit-transform-origin: right center; + transform-origin: right center; + } +} + +.zoomOutRight { + -webkit-animation-name: zoomOutRight; + animation-name: zoomOutRight; +} + +@-webkit-keyframes zoomOutUp { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + to { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +@keyframes zoomOutUp { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + to { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +.zoomOutUp { + -webkit-animation-name: zoomOutUp; + animation-name: zoomOutUp; +} + +@-webkit-keyframes slideInDown { + from { + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes slideInDown { + from { + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.slideInDown { + -webkit-animation-name: slideInDown; + animation-name: slideInDown; +} + +@-webkit-keyframes slideInLeft { + from { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes slideInLeft { + from { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.slideInLeft { + -webkit-animation-name: slideInLeft; + animation-name: slideInLeft; +} + +@-webkit-keyframes slideInRight { + from { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes slideInRight { + from { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.slideInRight { + -webkit-animation-name: slideInRight; + animation-name: slideInRight; +} + +@-webkit-keyframes slideInUp { + from { + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes slideInUp { + from { + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.slideInUp { + -webkit-animation-name: slideInUp; + animation-name: slideInUp; +} + +@-webkit-keyframes slideOutDown { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + to { + visibility: hidden; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} + +@keyframes slideOutDown { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + to { + visibility: hidden; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} + +.slideOutDown { + -webkit-animation-name: slideOutDown; + animation-name: slideOutDown; +} + +@-webkit-keyframes slideOutLeft { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + to { + visibility: hidden; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} + +@keyframes slideOutLeft { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + to { + visibility: hidden; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} + +.slideOutLeft { + -webkit-animation-name: slideOutLeft; + animation-name: slideOutLeft; +} + +@-webkit-keyframes slideOutRight { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + to { + visibility: hidden; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} + +@keyframes slideOutRight { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + to { + visibility: hidden; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} + +.slideOutRight { + -webkit-animation-name: slideOutRight; + animation-name: slideOutRight; +} + +@-webkit-keyframes slideOutUp { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + to { + visibility: hidden; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } +} + +@keyframes slideOutUp { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + to { + visibility: hidden; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } +} + +.slideOutUp { + -webkit-animation-name: slideOutUp; + animation-name: slideOutUp; +} + +.animated { + -webkit-animation-duration: 1s; + animation-duration: 1s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} + +.animated.infinite { + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; +} + +.animated.delay-1s { + -webkit-animation-delay: 1s; + animation-delay: 1s; +} + +.animated.delay-2s { + -webkit-animation-delay: 2s; + animation-delay: 2s; +} + +.animated.delay-3s { + -webkit-animation-delay: 3s; + animation-delay: 3s; +} + +.animated.delay-4s { + -webkit-animation-delay: 4s; + animation-delay: 4s; +} + +.animated.delay-5s { + -webkit-animation-delay: 5s; + animation-delay: 5s; +} + +.animated.fast { + -webkit-animation-duration: 800ms; + animation-duration: 800ms; +} + +.animated.faster { + -webkit-animation-duration: 500ms; + animation-duration: 500ms; +} + +.animated.slow { + -webkit-animation-duration: 2s; + animation-duration: 2s; +} + +.animated.slower { + -webkit-animation-duration: 3s; + animation-duration: 3s; +} + +@media (print), (prefers-reduced-motion: reduce) { + .animated { + -webkit-animation-duration: 1ms !important; + animation-duration: 1ms !important; + -webkit-transition-duration: 1ms !important; + transition-duration: 1ms !important; + -webkit-animation-iteration-count: 1 !important; + animation-iteration-count: 1 !important; + } +} diff --git a/webui/src/styles/vendor/material-icons.css b/webui/src/styles/vendor/material-icons.css new file mode 100644 index 0000000..c0335a5 --- /dev/null +++ b/webui/src/styles/vendor/material-icons.css @@ -0,0 +1,24 @@ +/* fallback */ +@font-face { + font-family: 'Material Icons'; + font-style: normal; + font-weight: 400; + src: url('fonts/icons/MaterialIcons-Regular.ttf') format('truetype'); +} + +.material-icons { + font-family: 'Material Icons'; + font-weight: normal; + font-style: normal; + font-size: 24px; + line-height: 1; + letter-spacing: normal; + text-transform: none; + display: inline-block; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-feature-settings: 'liga'; + font-feature-settings: 'liga'; + -webkit-font-smoothing: antialiased; +} diff --git a/webui/src/use/favorites.js b/webui/src/use/favorites.js new file mode 100644 index 0000000..60926cb --- /dev/null +++ b/webui/src/use/favorites.js @@ -0,0 +1,77 @@ +import { ref, computed } from '@vue/composition-api' + +import store from '@/store' +import { fetchData } from '@/utils/api' +import { toast } from '@/utils/toasts' +import i18n from '@/plugins/i18n' +import { SPOTIFY_STATUS } from '@/constants' + +const favoriteArtists = ref([]) +const favoriteAlbums = ref([]) +const favoriteSpotifyPlaylists = ref([]) +const favoritePlaylists = ref([]) +const favoriteTracks = ref([]) +const lovedTracksPlaylist = ref('') +const isLoggedWithSpotify = computed(() => store.getters.isLoggedWithSpotify) + +const isRefreshingFavorites = ref(false) + +const setAllFavorites = data => { + const { tracks, albums, artists, playlists, lovedTracks } = data + + isRefreshingFavorites.value = false + + favoriteArtists.value = artists || [] + favoriteAlbums.value = albums || [] + favoritePlaylists.value = playlists || [] + favoriteTracks.value = tracks || [] + lovedTracksPlaylist.value = lovedTracks || [] +} + +const setSpotifyPlaylists = response => { + if (response.error) { + favoriteSpotifyPlaylists.value = [] + switch (response.error) { + case 'spotifyNotEnabled': + store.dispatch('setSpotifyStatus', SPOTIFY_STATUS.DISABLED).catch(console.error) + break + case 'wrongSpotifyUsername': + toast(i18n.t('toasts.wrongSpotifyUsername', { username: response.username }), 'person_off') + break + default: + break + } + return + } + + favoriteSpotifyPlaylists.value = response || [] +} + +const refreshFavorites = async ({ isInitial = false }) => { + if (!isInitial) { + isRefreshingFavorites.value = true + } + + await store.dispatch('refreshSpotifyStatus') + + fetchData('getUserFavorites').then(setAllFavorites).catch(console.error) + + if (isLoggedWithSpotify.value) { + const spotifyUser = store.getters.getSpotifyUser.id + + fetchData('getUserSpotifyPlaylists', { spotifyUser }).then(setSpotifyPlaylists).catch(console.error) + } else { + favoriteSpotifyPlaylists.value = [] + } +} + +export const useFavorites = () => ({ + favoriteArtists, + favoriteAlbums, + favoriteSpotifyPlaylists, + favoritePlaylists, + favoriteTracks, + lovedTracksPlaylist, + isRefreshingFavorites, + refreshFavorites +}) diff --git a/webui/src/use/main-search.js b/webui/src/use/main-search.js new file mode 100644 index 0000000..de18035 --- /dev/null +++ b/webui/src/use/main-search.js @@ -0,0 +1,17 @@ +import { ref } from '@vue/composition-api' +import { fetchData } from '@/utils/api' + +const searchResult = ref({}) + +function performMainSearch(searchTerm) { + fetchData('mainSearch', { term: searchTerm }).then(data => { + searchResult.value = data + }) +} + +export function useMainSearch() { + return { + searchResult, + performMainSearch + } +} diff --git a/webui/src/use/online.js b/webui/src/use/online.js new file mode 100644 index 0000000..6eea25d --- /dev/null +++ b/webui/src/use/online.js @@ -0,0 +1,13 @@ +import { ref } from '@vue/composition-api' + +const isOnline = ref(navigator.onLine) + +window.addEventListener('online', () => { + isOnline.value = true +}) + +window.addEventListener('offline', () => { + isOnline.value = false +}) + +export const useOnline = () => ({ isOnline }) diff --git a/webui/src/use/search.js b/webui/src/use/search.js new file mode 100644 index 0000000..9546988 --- /dev/null +++ b/webui/src/use/search.js @@ -0,0 +1,22 @@ +import { ref } from '@vue/composition-api' +import { fetchData } from '@/utils/api' + +const result = ref({}) + +function performSearch({ term, type, start = 0, nb = 30 }) { + fetchData('search', { + term, + type, + start, + nb + }).then(data => { + result.value = data + }) +} + +export function useSearch() { + return { + result, + performSearch + } +} diff --git a/webui/src/use/theme.js b/webui/src/use/theme.js new file mode 100644 index 0000000..b6da7b7 --- /dev/null +++ b/webui/src/use/theme.js @@ -0,0 +1,46 @@ +import { ref, watch } from '@vue/composition-api' + +/** + * @typedef {string} Theme + */ + +const THEMES = { + dark: 'dark', + light: 'light', + purple: 'purple' +} + +const initialTheme = localStorage.getItem('selectedTheme') || document.documentElement.dataset.theme || THEMES.dark +const currentTheme = ref(initialTheme) + +watch(currentTheme, (newTheme, oldTheme) => { + // No operation needed + if (oldTheme === newTheme) return + + localStorage.setItem('selectedTheme', newTheme) + document.documentElement.dataset.theme = newTheme + + animateAllElements() +}) + +function animateAllElements() { + // Animating everything to have a smoother theme switch + const allElements = document.querySelectorAll('*') + + allElements.forEach(el => { + el.classList.add('changing-theme') + }) + + document.documentElement.addEventListener('transitionend', function transitionHandler() { + allElements.forEach(el => { + el.classList.remove('changing-theme') + }) + + document.documentElement.removeEventListener('transitionend', transitionHandler) + }) +} + +export const useTheme = () => ({ + THEMES, + currentTheme +}) diff --git a/webui/src/utils/EventBus.js b/webui/src/utils/EventBus.js new file mode 100644 index 0000000..68b11ec --- /dev/null +++ b/webui/src/utils/EventBus.js @@ -0,0 +1,4 @@ +// https://alligator.io/vuejs/global-event-bus/ +import Vue from 'vue' + +export default new Vue() diff --git a/webui/src/utils/adjust-volume.js b/webui/src/utils/adjust-volume.js new file mode 100644 index 0000000..25ce2ae --- /dev/null +++ b/webui/src/utils/adjust-volume.js @@ -0,0 +1,27 @@ +// https://stackoverflow.com/questions/7451508/html5-audio-playback-with-fade-in-and-fade-out#answer-13149848 +export function adjustVolume(element, newVolume, { duration = 1000, easing = swing, interval = 13 } = {}) { + const originalVolume = element.volume + const delta = newVolume - originalVolume + + if (!delta || !duration || !easing || !interval) { + element.volume = newVolume + return Promise.resolve() + } + + const ticks = Math.floor(duration / interval) + let tick = 1 + + return new Promise(resolve => { + const timer = setInterval(() => { + element.volume = originalVolume + easing(tick / ticks) * delta + if (++tick === ticks) { + clearInterval(timer) + resolve() + } + }, interval) + }) +} + +export function swing(p) { + return 0.5 - Math.cos(p * Math.PI) / 2 +} diff --git a/webui/src/utils/api.js b/webui/src/utils/api.js new file mode 100644 index 0000000..0efcec4 --- /dev/null +++ b/webui/src/utils/api.js @@ -0,0 +1,47 @@ +export function fetchData(key, data = {}, method = 'GET') { + const url = new URL(`${window.location.origin}${location.base}api/${key}`) + + Object.keys(data).forEach(key => { + url.searchParams.append(key, data[key]) + }) + + return fetch(url.href, { method }) + .then(response => response.json()) + .catch(error => { + console.error('There has been a problem with your fetch operation:', error) + return Promise.reject(error) + }) +} + +export function sendToServer(key, data) { + const url = new URL(`${window.location.origin}${location.base}api/${key}`) + + Object.keys(data).forEach(key => { + url.searchParams.append(key, data[key]) + }) + + fetch(url.href).catch(error => { + console.error('There has been a problem with your fetch operation:', error) + }) +} + +export function postToServer(endpoint, data) { + const url = new URL(`${window.location.origin}${location.base}api/${endpoint}`) + + return fetch(url, { + body: JSON.stringify(data), + headers: { + 'Content-Type': 'application/json' + }, + method: 'POST' + }) + .then(response => { + if (!response.ok) { + throw new Error('Network response was not ok') + } + return response.json() + }) + .catch(error => { + console.error('There has been a problem with your fetch operation:', error) + }) +} diff --git a/webui/src/utils/countries.js b/webui/src/utils/countries.js new file mode 100644 index 0000000..cc11a85 --- /dev/null +++ b/webui/src/utils/countries.js @@ -0,0 +1,251 @@ +export const COUNTRIES = { + AF: 'Afghanistan', + AX: '\u00C5land Islands', + AL: 'Albania', + DZ: 'Algeria', + AS: 'American Samoa', + AD: 'Andorra', + AO: 'Angola', + AI: 'Anguilla', + AQ: 'Antarctica', + AG: 'Antigua and Barbuda', + AR: 'Argentina', + AM: 'Armenia', + AW: 'Aruba', + AU: 'Australia', + AT: 'Austria', + AZ: 'Azerbaijan', + BS: 'Bahamas', + BH: 'Bahrain', + BD: 'Bangladesh', + BB: 'Barbados', + BY: 'Belarus', + BE: 'Belgium', + BZ: 'Belize', + BJ: 'Benin', + BM: 'Bermuda', + BT: 'Bhutan', + BO: 'Bolivia, Plurinational State of', + BQ: 'Bonaire, Sint Eustatius and Saba', + BA: 'Bosnia and Herzegovina', + BW: 'Botswana', + BV: 'Bouvet Island', + BR: 'Brazil', + IO: 'British Indian Ocean Territory', + BN: 'Brunei Darussalam', + BG: 'Bulgaria', + BF: 'Burkina Faso', + BI: 'Burundi', + KH: 'Cambodia', + CM: 'Cameroon', + CA: 'Canada', + CV: 'Cape Verde', + KY: 'Cayman Islands', + CF: 'Central African Republic', + TD: 'Chad', + CL: 'Chile', + CN: 'China', + CX: 'Christmas Island', + CC: 'Cocos (Keeling) Islands', + CO: 'Colombia', + KM: 'Comoros', + CG: 'Congo', + CD: 'Congo, the Democratic Republic of the', + CK: 'Cook Islands', + CR: 'Costa Rica', + CI: "C\u00F4te d'Ivoire", + HR: 'Croatia', + CU: 'Cuba', + CW: 'Cura\u00E7ao', + CY: 'Cyprus', + CZ: 'Czech Republic', + DK: 'Denmark', + DJ: 'Djibouti', + DM: 'Dominica', + DO: 'Dominican Republic', + EC: 'Ecuador', + EG: 'Egypt', + SV: 'El Salvador', + GQ: 'Equatorial Guinea', + ER: 'Eritrea', + EE: 'Estonia', + ET: 'Ethiopia', + FK: 'Falkland Islands (Malvinas)', + FO: 'Faroe Islands', + FJ: 'Fiji', + FI: 'Finland', + FR: 'France', + GF: 'French Guiana', + PF: 'French Polynesia', + TF: 'French Southern Territories', + GA: 'Gabon', + GM: 'Gambia', + GE: 'Georgia', + DE: 'Germany', + GH: 'Ghana', + GI: 'Gibraltar', + GR: 'Greece', + GL: 'Greenland', + GD: 'Grenada', + GP: 'Guadeloupe', + GU: 'Guam', + GT: 'Guatemala', + GG: 'Guernsey', + GN: 'Guinea', + GW: 'Guinea-Bissau', + GY: 'Guyana', + HT: 'Haiti', + HM: 'Heard Island and McDonald Islands', + VA: 'Holy See (Vatican City State)', + HN: 'Honduras', + HK: 'Hong Kong', + HU: 'Hungary', + IS: 'Iceland', + IN: 'India', + ID: 'Indonesia', + IR: 'Iran, Islamic Republic of', + IQ: 'Iraq', + IE: 'Ireland', + IM: 'Isle of Man', + IL: 'Israel', + IT: 'Italy', + JM: 'Jamaica', + JP: 'Japan', + JE: 'Jersey', + JO: 'Jordan', + KZ: 'Kazakhstan', + KE: 'Kenya', + KI: 'Kiribati', + KP: "Korea, Democratic People's Republic of", + KR: 'Korea, Republic of', + KW: 'Kuwait', + KG: 'Kyrgyzstan', + LA: "Lao People's Democratic Republic", + LV: 'Latvia', + LB: 'Lebanon', + LS: 'Lesotho', + LR: 'Liberia', + LY: 'Libya', + LI: 'Liechtenstein', + LT: 'Lithuania', + LU: 'Luxembourg', + MO: 'Macao', + MK: 'Macedonia, the Former Yugoslav Republic of', + MG: 'Madagascar', + MW: 'Malawi', + MY: 'Malaysia', + MV: 'Maldives', + ML: 'Mali', + MT: 'Malta', + MH: 'Marshall Islands', + MQ: 'Martinique', + MR: 'Mauritania', + MU: 'Mauritius', + YT: 'Mayotte', + MX: 'Mexico', + FM: 'Micronesia, Federated States of', + MD: 'Moldova, Republic of', + MC: 'Monaco', + MN: 'Mongolia', + ME: 'Montenegro', + MS: 'Montserrat', + MA: 'Morocco', + MZ: 'Mozambique', + MM: 'Myanmar', + NA: 'Namibia', + NR: 'Nauru', + NP: 'Nepal', + NL: 'Netherlands', + NC: 'New Caledonia', + NZ: 'New Zealand', + NI: 'Nicaragua', + NE: 'Niger', + NG: 'Nigeria', + NU: 'Niue', + NF: 'Norfolk Island', + MP: 'Northern Mariana Islands', + NO: 'Norway', + OM: 'Oman', + PK: 'Pakistan', + PW: 'Palau', + PS: 'Palestine, State of', + PA: 'Panama', + PG: 'Papua New Guinea', + PY: 'Paraguay', + PE: 'Peru', + PH: 'Philippines', + PN: 'Pitcairn', + PL: 'Poland', + PT: 'Portugal', + PR: 'Puerto Rico', + QA: 'Qatar', + RE: 'R\u00E9union', + RO: 'Romania', + RU: 'Russian Federation', + RW: 'Rwanda', + BL: 'Saint Barth\u00E9lemy', + SH: 'Saint Helena, Ascension and Tristan da Cunha', + KN: 'Saint Kitts and Nevis', + LC: 'Saint Lucia', + MF: 'Saint Martin (French part)', + PM: 'Saint Pierre and Miquelon', + VC: 'Saint Vincent and the Grenadines', + WS: 'Samoa', + SM: 'San Marino', + ST: 'Sao Tome and Principe', + SA: 'Saudi Arabia', + SN: 'Senegal', + RS: 'Serbia', + SC: 'Seychelles', + SL: 'Sierra Leone', + SG: 'Singapore', + SX: 'Sint Maarten (Dutch part)', + SK: 'Slovakia', + SI: 'Slovenia', + SB: 'Solomon Islands', + SO: 'Somalia', + ZA: 'South Africa', + GS: 'South Georgia and the South Sandwich Islands', + SS: 'South Sudan', + ES: 'Spain', + LK: 'Sri Lanka', + SD: 'Sudan', + SR: 'Suriname', + SJ: 'Svalbard and Jan Mayen', + SZ: 'Swaziland', + SE: 'Sweden', + CH: 'Switzerland', + SY: 'Syrian Arab Republic', + TW: 'Taiwan, Province of China', + TJ: 'Tajikistan', + TZ: 'Tanzania, United Republic of', + TH: 'Thailand', + TL: 'Timor-Leste', + TG: 'Togo', + TK: 'Tokelau', + TO: 'Tonga', + TT: 'Trinidad and Tobago', + TN: 'Tunisia', + TR: 'Turkey', + TM: 'Turkmenistan', + TC: 'Turks and Caicos Islands', + TV: 'Tuvalu', + UG: 'Uganda', + UA: 'Ukraine', + AE: 'United Arab Emirates', + GB: 'United Kingdom', + US: 'United States', + UM: 'United States Minor Outlying Islands', + UY: 'Uruguay', + UZ: 'Uzbekistan', + VU: 'Vanuatu', + VE: 'Venezuela, Bolivarian Republic of', + VN: 'Viet Nam', + VG: 'Virgin Islands, British', + VI: 'Virgin Islands, U.S.', + WF: 'Wallis and Futuna', + EH: 'Western Sahara', + YE: 'Yemen', + ZM: 'Zambia', + ZW: 'Zimbabwe' +} diff --git a/webui/src/utils/dates.js b/webui/src/utils/dates.js new file mode 100644 index 0000000..e9a60a5 --- /dev/null +++ b/webui/src/utils/dates.js @@ -0,0 +1,14 @@ +/** + * @param {Date} dateToCheck + * @returns {boolean} The passed date is less than 3 days distant from today, + * therefore it's considered a new release, if referring to a track or album + */ +export function checkNewRelease(dateToCheck) { + const now = new Date() + now.setHours(0, 0, 0, 0) + + dateToCheck = new Date(dateToCheck) + dateToCheck.setDate(dateToCheck.getDate() + 3) + + return now.getTime() <= dateToCheck.getTime() +} diff --git a/webui/src/utils/downloads.js b/webui/src/utils/downloads.js new file mode 100644 index 0000000..129a575 --- /dev/null +++ b/webui/src/utils/downloads.js @@ -0,0 +1,21 @@ +import { postToServer } from '@/utils/api' + +/** + * @param {string} url + * @param {number|null} bitrate + */ +export function sendAddToQueue(url, bitrate = null) { + if (!url) throw new Error('No URL given to sendAddToQueue function!') + + postToServer('addToQueue', { url, bitrate }) +} + +/** + * @param {{ link: string }[]} releases + * @returns {string} + */ +export function aggregateDownloadLinks(releases) { + const links = releases.map(release => release.link) + + return links.join(';') +} diff --git a/webui/src/utils/flags.js b/webui/src/utils/flags.js new file mode 100644 index 0000000..40f1019 --- /dev/null +++ b/webui/src/utils/flags.js @@ -0,0 +1,43 @@ +import ar from 'flag-icon-css/flags/4x3/sa.svg' +import br from 'flag-icon-css/flags/4x3/br.svg' +import de from 'flag-icon-css/flags/4x3/de.svg' +import es from 'flag-icon-css/flags/4x3/es.svg' +import fr from 'flag-icon-css/flags/4x3/fr.svg' +import gb from 'flag-icon-css/flags/4x3/gb.svg' +import gr from 'flag-icon-css/flags/4x3/gr.svg' +import hr from 'flag-icon-css/flags/4x3/hr.svg' +import id from 'flag-icon-css/flags/4x3/id.svg' +import it from 'flag-icon-css/flags/4x3/it.svg' +import ko from 'flag-icon-css/flags/4x3/kr.svg' +import ph from 'flag-icon-css/flags/4x3/ph.svg' +import pl from 'flag-icon-css/flags/4x3/pl.svg' +import pt from 'flag-icon-css/flags/4x3/pt.svg' +import rs from 'flag-icon-css/flags/4x3/rs.svg' +import ru from 'flag-icon-css/flags/4x3/ru.svg' +import th from 'flag-icon-css/flags/4x3/th.svg' +import tr from 'flag-icon-css/flags/4x3/tr.svg' +import tw from 'flag-icon-css/flags/4x3/tw.svg' +import vn from 'flag-icon-css/flags/4x3/vn.svg' + +export const flags = { + ar: { name: 'العربية', eng: 'Arabic', flag: ar }, + de: { name: 'Deutsch', eng: 'German', flag: de }, + el: { name: 'ελληνικά', eng: 'Greek', flag: gr }, + en: { name: 'English', eng: 'English', flag: gb }, + es: { name: 'Español', eng: 'Spanish', flag: es }, + fil: { name: 'Wikang Filipino', eng: 'Filipino', flag: ph }, + fr: { name: 'Français', eng: 'French', flag: fr }, + hr: { name: 'Hrvatski Jezik', eng: 'Croatian', flag: hr }, + id: { name: 'Bahasa Indonesia', eng: 'Indonesian', flag: id }, + it: { name: 'Italiano', eng: 'Italian', flag: it }, + ko: { name: '한국어', eng: 'Korean', flag: ko }, + pl: { name: 'Polszczyzna', eng: 'Polish', flag: pl }, + pt_br: { name: 'Português Brasileiro', eng: 'Portuguese of Brasil', flag: br }, + pt: { name: 'Português', eng: 'Portuguese', flag: pt }, + ru: { name: 'Русский', eng: 'Russian', flag: ru }, + sr: { name: 'српски језик', eng: 'Serbian', flag: rs }, + th: { name: 'ไทย', eng: 'Thai', flag: th }, + tr: { name: 'Türkçe', eng: 'Turkish', flag: tr }, + vi: { name: 'Tiếng Việt', eng: 'Vietnamese', flag: vn }, + zh_tw: { name: '漢語', eng: 'Chinese', flag: tw }, +} diff --git a/webui/src/utils/forms.js b/webui/src/utils/forms.js new file mode 100644 index 0000000..c045ee7 --- /dev/null +++ b/webui/src/utils/forms.js @@ -0,0 +1,12 @@ +/** + * @param {HTMLFormElement} formEl + * @returns {function(item: string): {}} + * @since 1.6.1 + */ +export const getFormItem = formEl => item => { + const element = formEl.elements.namedItem(item) + + return { + [item]: element.value + } +} diff --git a/webui/src/utils/socket.js b/webui/src/utils/socket.js new file mode 100644 index 0000000..4e245c4 --- /dev/null +++ b/webui/src/utils/socket.js @@ -0,0 +1,37 @@ +class CustomSocket extends WebSocket { + constructor(args) { + super(args) + this.listeners = {} + } + + emit(key, data) { + if (this.readyState !== WebSocket.OPEN) return false + + this.send(JSON.stringify({ key, data })) + } + + on(key, cb) { + if (!Object.keys(this.listeners).includes(key)) { + // console.log('on:', key) + this.listeners[key] = cb + + this.addEventListener('message', event => { + const messageData = JSON.parse(event.data) + + if (messageData.key === key) { + cb(messageData.data) + } + }) + } + } + + off(key) { + if (Object.keys(this.listeners).includes(key)) { + // console.log('off:', key) + this.removeEventListener('message', this.listeners[key]) + delete this.listeners[key] + } + } +} + +export const socket = new CustomSocket((location.protocol === 'https:' ? 'wss://' : 'ws://') + location.host + location.base) diff --git a/webui/src/utils/texts.js b/webui/src/utils/texts.js new file mode 100644 index 0000000..338a1da --- /dev/null +++ b/webui/src/utils/texts.js @@ -0,0 +1,4 @@ +/** + * @param {string} text + */ +export const upperCaseFirstLowerCaseRest = text => text.charAt(0).toUpperCase() + text.slice(1).toLowerCase() diff --git a/webui/src/utils/toasts.js b/webui/src/utils/toasts.js new file mode 100644 index 0000000..7eacf13 --- /dev/null +++ b/webui/src/utils/toasts.js @@ -0,0 +1,118 @@ +import Toastify from 'toastify-js' +import 'toastify-js/src/toastify.css' +import '@/styles/css/toasts.css' + +const sharedOptions = { + gravity: 'bottom', + position: 'left' +} + +const toastsWithId = {} + +export const toast = function (msg, icon = null, dismiss = true, id = null) { + if (toastsWithId[id]) { + const toastObj = toastsWithId[id] + + const toastElement = document.querySelectorAll(`div.toastify[toast_id=${id}]`) + + if (msg) { + toastElement.forEach(toast => { + const messages = toast.querySelectorAll('.toast-message') + + messages.forEach(message => { + message.innerText = msg + }) + }) + } + + if (icon) { + const iconNode = document.createElement('span') + iconNode.classList.add('toast-icon') + + if (icon === 'loading') { + const loader = document.createElement('div') + loader.classList.add('circle-loader') + iconNode.appendChild(loader) + } else { + const materialIcon = document.createElement('i') + materialIcon.classList.add('material-icons') + materialIcon.appendChild(document.createTextNode(icon)) + iconNode.appendChild(materialIcon) + } + + toastElement.forEach(toast => { + const icons = toast.querySelectorAll('.toast-icon') + + icons.forEach(toastIcon => { + toastIcon.parentNode.replaceChild(iconNode, toastIcon) + }) + }) + } + if (dismiss !== null && dismiss) { + toastElement.forEach(toast => { + toast.classList.add('dismissable') + }) + + setTimeout(() => { + toastObj.hideToast() + + delete toastsWithId[id] + }, 3000) + } + } else { + const iconNode = document.createElement('span') + iconNode.classList.add('toast-icon') + if (icon == null) { + iconNode.appendChild(document.createTextNode('')) + } else if (icon === 'loading') { + const loader = document.createElement('div') + loader.classList.add('circle-loader') + iconNode.appendChild(loader) + } else { + const materialIcon = document.createElement('i') + materialIcon.classList.add('material-icons') + materialIcon.appendChild(document.createTextNode(icon)) + iconNode.appendChild(materialIcon) + } + const messageNode = document.createElement('span') + messageNode.classList.add('toast-message') + messageNode.appendChild(document.createTextNode(msg)) + + const toastNode = document.createElement('toast') + toastNode.appendChild(iconNode) + toastNode.appendChild(messageNode) + + const toastObj = Toastify({ + ...sharedOptions, + node: toastNode, + duration: dismiss ? 3000 : 0, + className: dismiss ? 'dismissable' : '', + onClick() { + let dismissable = true + + if (id) { + const toastClasses = document.querySelector(`div.toastify[toast_id=${id}]`).classList + + if (toastClasses) { + dismissable = Array.prototype.slice.call(toastClasses).includes('dismissable') + } + } + if (toastObj && dismissable) { + toastObj.hideToast() + + if (id) { + delete toastsWithId[id] + } + } + }, + offset: { + x: localStorage.getItem('slimSidebar') === 'true' ? '3rem' : '14rem' + } + }).showToast() + if (id) { + toastsWithId[id] = toastObj + + toastObj.toastElement.setAttribute('toast_id', id) + } + } +} diff --git a/webui/src/utils/utils.js b/webui/src/utils/utils.js new file mode 100644 index 0000000..9059b00 --- /dev/null +++ b/webui/src/utils/utils.js @@ -0,0 +1,157 @@ +/** + * Climbs the DOM until the root is reached, storing every node passed. + * @param {HTMLElement} el + * @return {Array} Contains all the nodes between el and the root + * @since 0.0.0 + */ +export function generatePath(el) { + if (!el) { + throw new Error('No element passed to the generatePath function!') + } + + const path = [el] + + while ((el = el.parentNode) && el !== document) { + path.push(el) + } + + return path +} + +/** + * @param {string} text + * @returns {boolean} + * @since 0.0.0 + */ +export function isValidURL(text) { + const lowerCaseText = text.toLowerCase() + + if (lowerCaseText.startsWith('http')) { + if ( + lowerCaseText.includes('deezer.com') || + lowerCaseText.includes('deezer.page.link') || + lowerCaseText.includes('open.spotify.com') || + lowerCaseText.includes('link.tospotify.com') + ) { + return true + } + } else if (lowerCaseText.startsWith('spotify:')) { + return true + } + return false +} + +/** + * @param {number} duration + * @returns {string} + * @since 0.0.0 + */ +export function convertDuration(duration) { + const mm = Math.floor(duration / 60) + + // Convert from seconds only to mm:ss format + let ss = duration - mm * 60 // Add leading zero if ss < 0 + + if (ss < 10) { + ss = '0' + ss + } + + return mm + ':' + ss +} + +/** + * @param {number} duration + * @returns {[number, number, number]} + * @since 0.0.0 + */ +export function convertDurationSeparated(duration) { + let mm = Math.floor(duration / 60) + + const hh = Math.floor(mm / 60) + const ss = duration - mm * 60 + + mm -= hh * 60 + + return [hh, mm, ss] +} + +/** + * @param {number} x + * @returns {string} + * @since 0.0.0 + * @deprecated + */ +export const numberWithDots = x => x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.') + +// On scroll event, returns currentTarget = null +// Probably on other events too +export function debounce(func, wait, immediate) { + let timeout + return function () { + const context = this + const args = arguments + const later = function () { + timeout = null + if (!immediate) func.apply(context, args) + } + const callNow = immediate && !timeout + clearTimeout(timeout) + timeout = setTimeout(later, wait) + if (callNow) func.apply(context, args) + } +} + +/** + * Workaround to copy to the clipboard cross-OS by generating a + * ghost input and copying the passed String + * + * @param {string} text Text to copy + * @returns void + * @since 0.0.0 + */ +export function copyToClipboard(text) { + const ghostInput = document.createElement('input') + + document.body.appendChild(ghostInput) + ghostInput.setAttribute('type', 'text') + ghostInput.setAttribute('value', text) + ghostInput.select() + ghostInput.setSelectionRange(0, 99999) + document.execCommand('copy') + ghostInput.remove() +} + +/** + * @param {object|array} obj + * @param {...any} props + * @returns {any|null} property requested + * @since 0.0.0 + */ +export function getPropertyWithFallback(obj, ...props) { + for (const prop of props) { + // Example: this.is.an.example + const hasDotNotation = /\./.test(prop) + + // Searching the properties in the object + const valueToTest = hasDotNotation + ? prop.split('.').reduce((o, i) => { + if (o) return o[i] + return undefined + }, obj) + : obj[prop] + + if (typeof valueToTest !== 'undefined') { + return valueToTest + } + } + + return null +} + +export default { + isValidURL, + convertDuration, + convertDurationSeparated, + numberWithDots, + debounce +} diff --git a/webui/tailwind.config.js b/webui/tailwind.config.js new file mode 100644 index 0000000..1a9a1a9 --- /dev/null +++ b/webui/tailwind.config.js @@ -0,0 +1,64 @@ +const defaultTheme = require('tailwindcss/defaultTheme') + +module.exports = { + future: { + removeDeprecatedGapUtilities: true, + purgeLayersByDefault: true + }, + purge: { + // https://medium.com/@kyis/vue-tailwind-purgecss-the-right-way-c70d04461475 + content: [`./public/**/*.html`, `./public/**/*.ejs`, `./src/**/*.vue`, `./src/**/*.js`], + defaultExtractor(content) { + const contentWithoutStyleBlocks = content.replace(//gi, '') + return contentWithoutStyleBlocks.match(/[A-Za-z0-9-_/:]*[A-Za-z0-9-_/]+/g) || [] + }, + whitelist: [], + whitelistPatterns: [ + /-(leave|enter|appear)(|-(to|from|active))$/, + /^(?!(|.*?:)cursor-move).+-move$/, + /^router-link(|-exact)-active$/ + ] + }, + theme: { + extend: { + colors: { + grayscale: { + 100: 'hsl(0, 0%, 10%)', + 200: 'hsl(0, 0%, 20%)', + 300: 'hsl(0, 0%, 30%)', + 400: 'hsl(0, 0%, 40%)', + 500: 'hsl(0, 0%, 50%)', + 600: 'hsl(0, 0%, 60%)', + 700: 'hsl(0, 0%, 70%)', + 800: 'hsl(0, 0%, 80%)', + 840: 'hsl(0, 0%, 84%)', // Remove maybe + 870: 'hsl(0, 0%, 87%)', // Remove maybe + 900: 'hsl(0, 0%, 90%)', + 930: 'hsl(0, 0%, 93%)' // Remove maybe + }, + primary: 'hsl(210, 100%, 52%)', + background: { + main: 'var(--main-background)', + secondary: 'var(--secondary-background)' + }, + foreground: 'var(--foreground)', + panels: { + bg: 'var(--panels-background)' + } + }, + fontFamily: { + sans: ['Open Sans', ...defaultTheme.fontFamily.sans] + } + } + }, + variants: { + textColor: ({ after }) => after(['group-hover']), + margin: ({ before }) => before(['first']), + borderWidth: ['responsive', 'first', 'hover', 'focus'], + cursor: ['responsive', 'hover'] + }, + corePlugins: { + preflight: false + }, + plugins: [] +} diff --git a/webui/tests/testlang.js b/webui/tests/testlang.js new file mode 100644 index 0000000..85b6fbc --- /dev/null +++ b/webui/tests/testlang.js @@ -0,0 +1,52 @@ +async function loadLang(lang_id) { + let language_module + const result = [] + try { + language_module = await import(`../src/lang/${lang_id}.mjs`) + language_module = language_module.default + } catch (e) { + language_module = {} + } + function parseObject(obj, root = '') { + for (const [key, value] of Object.entries(obj)) { + if (typeof value === 'string') { + result.push(root + key) + } else { + parseObject(value, root + key + '.') + } + } + } + parseObject(language_module) + return result +} + +async function testLang(lang_id) { + const baseLangFile = await loadLang('en') + const comparedLangFile = await loadLang(lang_id) + + if (comparedLangFile.length === 0) { + console.log(`Language file ${lang_id} doesn't exist!`) + return + } + + console.log('\nMissing Keys:') + baseLangFile.forEach(key => { + if (!comparedLangFile.includes(key)) console.log(key) + }) + + console.log('\nExtra Keys:') + comparedLangFile.forEach(key => { + if (!baseLangFile.includes(key)) console.log(key) + }) +} + +;(async () => { + const args = process.argv.slice(2) + if (args.length !== 1) { + console.log('Usage:\nyarn testlang [COUNTRY_ID]\n') + return + } + console.log(`Testing language file ${args[0]}`) + await testLang(args[0]) + console.log('') +})() diff --git a/webui/tests/unit/utils/dates.spec.js b/webui/tests/unit/utils/dates.spec.js new file mode 100644 index 0000000..56ea726 --- /dev/null +++ b/webui/tests/unit/utils/dates.spec.js @@ -0,0 +1,16 @@ +import { checkNewRelease } from '../../../src/utils/dates.js' + +describe('date utils', () => { + describe('checkNewRelease', () => { + it("returns a positive result checking today's date", () => { + expect(checkNewRelease(new Date())).toBe(true) + }) + + it("returns a negative result checking a week ago's date", () => { + const dateToCheck = new Date() + dateToCheck.setDate(dateToCheck.getDate() - 7) + + expect(checkNewRelease(dateToCheck)).toBe(false) + }) + }) +}) diff --git a/webui/tests/unit/utils/downloads.spec.js b/webui/tests/unit/utils/downloads.spec.js new file mode 100644 index 0000000..f6395d7 --- /dev/null +++ b/webui/tests/unit/utils/downloads.spec.js @@ -0,0 +1,12 @@ +import { aggregateDownloadLinks } from '../../../src/utils/downloads' + +describe('download utils', () => { + describe('aggregateDownloadLinks', () => { + it('merges links into a single string', () => { + const release = { link: 'abcde' } + const aggregated = aggregateDownloadLinks([release, release]) + + expect(aggregated).toBe('abcde;abcde') + }) + }) +}) diff --git a/webui/tests/unit/utils/texts.spec.js b/webui/tests/unit/utils/texts.spec.js new file mode 100644 index 0000000..eefafff --- /dev/null +++ b/webui/tests/unit/utils/texts.spec.js @@ -0,0 +1,17 @@ +import { upperCaseFirstLowerCaseRest } from '../../../src/utils/texts' + +describe('texts utils', () => { + describe('upperCaseFirstLowerCaseRest', () => { + it('converts a full uppercase string', () => { + expect(upperCaseFirstLowerCaseRest('TEST STRING')).toBe('Test string') + }) + + it('converts a full lowercase string', () => { + expect(upperCaseFirstLowerCaseRest('test string')).toBe('Test string') + }) + + it('converts a mixed string', () => { + expect(upperCaseFirstLowerCaseRest("i wOn'T woRK")).toBe("I won't work") + }) + }) +}) diff --git a/webui/tests/unit/utils/utils.spec.js b/webui/tests/unit/utils/utils.spec.js new file mode 100644 index 0000000..0e64e59 --- /dev/null +++ b/webui/tests/unit/utils/utils.spec.js @@ -0,0 +1,33 @@ +import { isValidURL, convertDuration, convertDurationSeparated } from '../../../src/utils/utils' + +describe('utils utils (needs refactor)', () => { + describe('isValidURL', () => { + it('returns a positive result with all supported URLs', () => { + expect(isValidURL('https://www.deezer.com')).toBe(true) + expect(isValidURL('https://deezer.page.link')).toBe(true) + expect(isValidURL('https://open.spotify.com')).toBe(true) + expect(isValidURL('https://link.tospotify.com')).toBe(true) + expect(isValidURL('spotify:something')).toBe(true) + }) + + it('returns a negative result with a not supported URL', () => { + expect(isValidURL('https://www.google.com')).toBe(false) + }) + }) + + describe('convertDuration', () => { + it('converts seconds in the correct format', () => { + expect(convertDuration(120)).toBe('2:00') + expect(convertDuration(60)).toBe('1:00') + expect(convertDuration(30)).toBe('0:30') + }) + }) + + describe('convertDurationSeparated', () => { + it('converts seconds in the correct format', () => { + expect(convertDurationSeparated(120)).toStrictEqual([0, 2, 0]) + expect(convertDurationSeparated(60)).toStrictEqual([0, 1, 0]) + expect(convertDurationSeparated(30)).toStrictEqual([0, 0, 30]) + }) + }) +}) diff --git a/webui/yarn.lock b/webui/yarn.lock new file mode 100644 index 0000000..ba578c1 --- /dev/null +++ b/webui/yarn.lock @@ -0,0 +1,6406 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@ampproject/remapping@^2.1.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" + integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== + dependencies: + "@jridgewell/gen-mapping" "^0.1.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@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/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" + integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== + dependencies: + "@babel/highlight" "^7.18.6" + +"@babel/code-frame@^7.14.5", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.4.tgz#03ae5af150be94392cb5c7ccd97db5a19a5da6aa" + integrity sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA== + dependencies: + "@babel/highlight" "^7.23.4" + chalk "^2.4.2" + +"@babel/compat-data@^7.20.0": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.5.tgz#86f172690b093373a933223b4745deeb6049e733" + integrity sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g== + +"@babel/compat-data@^7.22.9": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.3.tgz#3febd552541e62b5e883a25eb3effd7c7379db11" + integrity sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ== + +"@babel/core@7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.0.tgz#749e57c68778b73ad8082775561f67f5196aafa8" + integrity sha512-tXtmTminrze5HEUPn/a0JtOzzfp0nk+UEXQ/tqIJo3WDGypl/2OFQEMll/zSFU8f/lfmfLXvTaORHF3cfXIQMw== + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/generator" "^7.15.0" + "@babel/helper-compilation-targets" "^7.15.0" + "@babel/helper-module-transforms" "^7.15.0" + "@babel/helpers" "^7.14.8" + "@babel/parser" "^7.15.0" + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.15.0" + "@babel/types" "^7.15.0" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.1.2" + semver "^6.3.0" + source-map "^0.5.0" + +"@babel/core@^7.1.0", "@babel/core@^7.12.16", "@babel/core@^7.12.3", "@babel/core@^7.7.2", "@babel/core@^7.8.0": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.5.tgz#45e2114dc6cd4ab167f81daf7820e8fa1250d113" + integrity sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ== + dependencies: + "@ampproject/remapping" "^2.1.0" + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.20.5" + "@babel/helper-compilation-targets" "^7.20.0" + "@babel/helper-module-transforms" "^7.20.2" + "@babel/helpers" "^7.20.5" + "@babel/parser" "^7.20.5" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.20.5" + "@babel/types" "^7.20.5" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.1" + semver "^6.3.0" + +"@babel/eslint-parser@^7.12.16": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz#4f68f6b0825489e00a24b41b6a1ae35414ecd2f4" + integrity sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ== + dependencies: + "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" + eslint-visitor-keys "^2.1.0" + semver "^6.3.0" + +"@babel/generator@^7.15.0", "@babel/generator@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.4.tgz#4a41377d8566ec18f807f42962a7f3551de83d1c" + integrity sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ== + dependencies: + "@babel/types" "^7.23.4" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + +"@babel/generator@^7.20.5", "@babel/generator@^7.7.2": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.5.tgz#cb25abee3178adf58d6814b68517c62bdbfdda95" + integrity sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA== + dependencies: + "@babel/types" "^7.20.5" + "@jridgewell/gen-mapping" "^0.3.2" + jsesc "^2.5.1" + +"@babel/helper-compilation-targets@^7.15.0": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52" + integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw== + dependencies: + "@babel/compat-data" "^7.22.9" + "@babel/helper-validator-option" "^7.22.15" + browserslist "^4.21.9" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-compilation-targets@^7.20.0": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz#6bf5374d424e1b3922822f1d9bdaa43b1a139d0a" + integrity sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ== + dependencies: + "@babel/compat-data" "^7.20.0" + "@babel/helper-validator-option" "^7.18.6" + browserslist "^4.21.3" + semver "^6.3.0" + +"@babel/helper-environment-visitor@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" + integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== + +"@babel/helper-environment-visitor@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== + +"@babel/helper-function-name@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" + integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== + dependencies: + "@babel/template" "^7.18.10" + "@babel/types" "^7.19.0" + +"@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== + dependencies: + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" + +"@babel/helper-hoist-variables@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" + integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-hoist-variables@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-module-imports@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" + integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-module-imports@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" + integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== + dependencies: + "@babel/types" "^7.22.15" + +"@babel/helper-module-transforms@^7.15.0": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" + integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/helper-validator-identifier" "^7.22.20" + +"@babel/helper-module-transforms@^7.20.2": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz#ac53da669501edd37e658602a21ba14c08748712" + integrity sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA== + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-simple-access" "^7.20.2" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/helper-validator-identifier" "^7.19.1" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.20.1" + "@babel/types" "^7.20.2" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.8.0": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629" + integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ== + +"@babel/helper-simple-access@^7.14.8", "@babel/helper-simple-access@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" + integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-simple-access@^7.20.2": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9" + integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA== + dependencies: + "@babel/types" "^7.20.2" + +"@babel/helper-split-export-declaration@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" + integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-split-export-declaration@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" + integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-string-parser@^7.19.4": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" + integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== + +"@babel/helper-string-parser@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" + integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== + +"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" + integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== + +"@babel/helper-validator-identifier@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== + +"@babel/helper-validator-option@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" + integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== + +"@babel/helper-validator-option@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz#694c30dfa1d09a6534cdfcafbe56789d36aba040" + integrity sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA== + +"@babel/helpers@^7.14.8": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.4.tgz#7d2cfb969aa43222032193accd7329851facf3c1" + integrity sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw== + dependencies: + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.4" + "@babel/types" "^7.23.4" + +"@babel/helpers@^7.20.5": + version "7.20.6" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.6.tgz#e64778046b70e04779dfbdf924e7ebb45992c763" + integrity sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w== + dependencies: + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.20.5" + "@babel/types" "^7.20.5" + +"@babel/highlight@^7.10.4", "@babel/highlight@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== + dependencies: + "@babel/helper-validator-identifier" "^7.18.6" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/highlight@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" + integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== + dependencies: + "@babel/helper-validator-identifier" "^7.22.20" + chalk "^2.4.2" + js-tokens "^4.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.20.5": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.5.tgz#7f3c7335fe417665d929f34ae5dceae4c04015e8" + integrity sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA== + +"@babel/parser@^7.15.0", "@babel/parser@^7.22.15", "@babel/parser@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.4.tgz#409fbe690c333bb70187e2de4021e1e47a026661" + integrity sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ== + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.8.3": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-import-meta@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-top-level-await@^7.8.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-typescript@^7.7.2": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz#4e9a0cfc769c85689b77a2e642d24e9f697fc8c7" + integrity sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.19.0" + +"@babel/plugin-transform-modules-commonjs@7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.0.tgz#3305896e5835f953b5cdb363acd9e8c2219a5281" + integrity sha512-3H/R9s8cXcOGE8kgMlmjYYC9nqr5ELiPkJn4q0mypBrjhYQoc+5/Maq69vV4xRPWnkzZuwJPf5rArxpB/35Cig== + dependencies: + "@babel/helper-module-transforms" "^7.15.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-simple-access" "^7.14.8" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/runtime@^7.0.0-beta.46": + version "7.20.6" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.6.tgz#facf4879bfed9b5326326273a64220f099b0fce3" + integrity sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA== + dependencies: + regenerator-runtime "^0.13.11" + +"@babel/template@^7.14.5", "@babel/template@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" + integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== + dependencies: + "@babel/code-frame" "^7.22.13" + "@babel/parser" "^7.22.15" + "@babel/types" "^7.22.15" + +"@babel/template@^7.18.10", "@babel/template@^7.3.3": + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" + integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/parser" "^7.18.10" + "@babel/types" "^7.18.10" + +"@babel/traverse@^7.15.0", "@babel/traverse@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.4.tgz#c2790f7edf106d059a0098770fe70801417f3f85" + integrity sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg== + dependencies: + "@babel/code-frame" "^7.23.4" + "@babel/generator" "^7.23.4" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.23.4" + "@babel/types" "^7.23.4" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/traverse@^7.20.1", "@babel/traverse@^7.20.5", "@babel/traverse@^7.7.2": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.5.tgz#78eb244bea8270fdda1ef9af22a5d5e5b7e57133" + integrity sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.20.5" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/parser" "^7.20.5" + "@babel/types" "^7.20.5" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.20.2", "@babel/types@^7.20.5", "@babel/types@^7.3.0", "@babel/types@^7.3.3": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.5.tgz#e206ae370b5393d94dfd1d04cd687cace53efa84" + integrity sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg== + dependencies: + "@babel/helper-string-parser" "^7.19.4" + "@babel/helper-validator-identifier" "^7.19.1" + to-fast-properties "^2.0.0" + +"@babel/types@^7.15.0", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.4.tgz#7206a1810fc512a7f7f7d4dace4cb4c1c9dbfb8e" + integrity sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ== + dependencies: + "@babel/helper-string-parser" "^7.23.4" + "@babel/helper-validator-identifier" "^7.22.20" + to-fast-properties "^2.0.0" + +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@eslint/eslintrc@^0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" + integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== + dependencies: + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^13.9.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" + +"@fullhuman/postcss-purgecss@^2.1.2": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@fullhuman/postcss-purgecss/-/postcss-purgecss-2.3.0.tgz#50a954757ec78696615d3e118e3fee2d9291882e" + integrity sha512-qnKm5dIOyPGJ70kPZ5jiz0I9foVOic0j+cOzNDoo8KoCf6HjicIZ99UfO2OmE7vCYSKAAepEwJtNzpiiZAh9xw== + dependencies: + postcss "7.0.32" + purgecss "^2.3.0" + +"@humanwhocodes/config-array@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" + integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== + dependencies: + "@humanwhocodes/object-schema" "^1.2.0" + debug "^4.1.1" + minimatch "^3.0.4" + +"@humanwhocodes/object-schema@^1.2.0": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" + integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== + +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + +"@jest/console@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.5.1.tgz#260fe7239602fe5130a94f1aa386eff54b014bba" + integrity sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg== + dependencies: + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^27.5.1" + jest-util "^27.5.1" + slash "^3.0.0" + +"@jest/core@^27.0.6", "@jest/core@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.5.1.tgz#267ac5f704e09dc52de2922cbf3af9edcd64b626" + integrity sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ== + dependencies: + "@jest/console" "^27.5.1" + "@jest/reporters" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + emittery "^0.8.1" + exit "^0.1.2" + graceful-fs "^4.2.9" + jest-changed-files "^27.5.1" + jest-config "^27.5.1" + jest-haste-map "^27.5.1" + jest-message-util "^27.5.1" + jest-regex-util "^27.5.1" + jest-resolve "^27.5.1" + jest-resolve-dependencies "^27.5.1" + jest-runner "^27.5.1" + jest-runtime "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + jest-validate "^27.5.1" + jest-watcher "^27.5.1" + micromatch "^4.0.4" + rimraf "^3.0.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + +"@jest/environment@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.5.1.tgz#d7425820511fe7158abbecc010140c3fd3be9c74" + integrity sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA== + dependencies: + "@jest/fake-timers" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + jest-mock "^27.5.1" + +"@jest/fake-timers@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.5.1.tgz#76979745ce0579c8a94a4678af7a748eda8ada74" + integrity sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ== + dependencies: + "@jest/types" "^27.5.1" + "@sinonjs/fake-timers" "^8.0.1" + "@types/node" "*" + jest-message-util "^27.5.1" + jest-mock "^27.5.1" + jest-util "^27.5.1" + +"@jest/globals@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.5.1.tgz#7ac06ce57ab966566c7963431cef458434601b2b" + integrity sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/types" "^27.5.1" + expect "^27.5.1" + +"@jest/reporters@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.5.1.tgz#ceda7be96170b03c923c37987b64015812ffec04" + integrity sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.2" + graceful-fs "^4.2.9" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^5.1.0" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.1.3" + jest-haste-map "^27.5.1" + jest-resolve "^27.5.1" + jest-util "^27.5.1" + jest-worker "^27.5.1" + slash "^3.0.0" + source-map "^0.6.0" + string-length "^4.0.1" + terminal-link "^2.0.0" + v8-to-istanbul "^8.1.0" + +"@jest/source-map@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.5.1.tgz#6608391e465add4205eae073b55e7f279e04e8cf" + integrity sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.2.9" + source-map "^0.6.0" + +"@jest/test-result@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.5.1.tgz#56a6585fa80f7cdab72b8c5fc2e871d03832f5bb" + integrity sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag== + dependencies: + "@jest/console" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz#4057e0e9cea4439e544c6353c6affe58d095745b" + integrity sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ== + dependencies: + "@jest/test-result" "^27.5.1" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" + jest-runtime "^27.5.1" + +"@jest/transform@^27.0.6", "@jest/transform@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.5.1.tgz#6c3501dcc00c4c08915f292a600ece5ecfe1f409" + integrity sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^27.5.1" + babel-plugin-istanbul "^6.1.1" + chalk "^4.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" + jest-regex-util "^27.5.1" + jest-util "^27.5.1" + micromatch "^4.0.4" + pirates "^4.0.4" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" + +"@jest/types@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" + integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + +"@jest/types@^27.0.6", "@jest/types@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.5.1.tgz#3c79ec4a8ba61c170bf937bcf9e98a9df175ec80" + integrity sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^16.0.0" + chalk "^4.0.0" + +"@jridgewell/gen-mapping@^0.1.0": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" + integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== + dependencies: + "@jridgewell/set-array" "^1.0.0" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@jridgewell/gen-mapping@^0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" + integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + +"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + +"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== + +"@jridgewell/sourcemap-codec@^1.4.14": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@^0.3.17": + version "0.3.20" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f" + integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@jridgewell/trace-mapping@^0.3.9": + version "0.3.17" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" + integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== + dependencies: + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" + +"@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": + version "5.1.1-v1" + resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129" + integrity sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg== + dependencies: + eslint-scope "5.1.1" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@nuxtjs/eslint-config@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@nuxtjs/eslint-config/-/eslint-config-6.0.1.tgz#305450a71e362c26f99b3a7130be960015a96c9b" + integrity sha512-NISrmMx4J2usVDVLG7WFwTdfQaznHf/b2aKTb1o0TCxxXdY30UHLqEH+3MqpjY+0+UPM06YswFmOBjOg5y2BXQ== + dependencies: + eslint-config-standard "^16.0.3" + eslint-plugin-import "^2.23.3" + eslint-plugin-jest "^24.3.6" + eslint-plugin-node "^11.1.0" + eslint-plugin-promise "^5.1.0" + eslint-plugin-standard "^4.1.0" + eslint-plugin-unicorn "^28.0.2" + eslint-plugin-vue "^7.9.0" + +"@rollup/plugin-alias@3.1.5": + version "3.1.5" + resolved "https://registry.yarnpkg.com/@rollup/plugin-alias/-/plugin-alias-3.1.5.tgz#73356a3a1eab2e1e2fd952f9f53cd89fc740d952" + integrity sha512-yzUaSvCC/LJPbl9rnzX3HN7vy0tq7EzHoEiQl1ofh4n5r2Rd5bj/+zcJgaGA76xbw95/JjWQyvHg9rOJp2y0oQ== + dependencies: + slash "^3.0.0" + +"@rollup/plugin-commonjs@20.0.0": + version "20.0.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-20.0.0.tgz#3246872dcbcb18a54aaa6277a8c7d7f1b155b745" + integrity sha512-5K0g5W2Ol8hAcTHqcTBHiA7M58tfmYi1o9KxeJuuRNpGaTa5iLjcyemBitCBcKXaHamOBBEH2dGom6v6Unmqjg== + dependencies: + "@rollup/pluginutils" "^3.1.0" + commondir "^1.0.1" + estree-walker "^2.0.1" + glob "^7.1.6" + is-reference "^1.2.1" + magic-string "^0.25.7" + resolve "^1.17.0" + +"@rollup/plugin-node-resolve@13.0.4": + version "13.0.4" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.0.4.tgz#b10222f4145a019740acb7738402130d848660c0" + integrity sha512-eYq4TFy40O8hjeDs+sIxEH/jc9lyuI2k9DM557WN6rO5OpnC2qXMBNj4IKH1oHrnAazL49C5p0tgP0/VpqJ+/w== + dependencies: + "@rollup/pluginutils" "^3.1.0" + "@types/resolve" "1.17.1" + builtin-modules "^3.1.0" + deepmerge "^4.2.2" + is-module "^1.0.0" + resolve "^1.19.0" + +"@rollup/plugin-replace@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-replace/-/plugin-replace-3.0.0.tgz#3a4c9665d4e7a4ce2c360cf021232784892f3fac" + integrity sha512-3c7JCbMuYXM4PbPWT4+m/4Y6U60SgsnDT/cCyAyUKwFHg7pTSfsSQzIpETha3a3ig6OdOKzZz87D9ZXIK3qsDg== + dependencies: + "@rollup/pluginutils" "^3.1.0" + magic-string "^0.25.7" + +"@rollup/pluginutils@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" + integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== + dependencies: + "@types/estree" "0.0.39" + estree-walker "^1.0.1" + picomatch "^2.2.2" + +"@sinonjs/commons@^1.7.0": + version "1.8.6" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.6.tgz#80c516a4dc264c2a69115e7578d62581ff455ed9" + integrity sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^8.0.1": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz#3fdc2b6cb58935b21bfb8d1625eb1300484316e7" + integrity sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg== + dependencies: + "@sinonjs/commons" "^1.7.0" + +"@tootallnate/once@1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" + integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== + +"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": + version "7.1.20" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.20.tgz#e168cdd612c92a2d335029ed62ac94c95b362359" + integrity sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" + integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.1" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" + integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": + version "7.18.3" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.3.tgz#dfc508a85781e5698d5b33443416b6268c4b3e8d" + integrity sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w== + dependencies: + "@babel/types" "^7.3.0" + +"@types/estree@*": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" + integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== + +"@types/estree@0.0.39": + version "0.0.39" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" + integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== + +"@types/graceful-fs@^4.1.2": + version "4.1.5" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" + integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== + dependencies: + "@types/node" "*" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" + integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== + +"@types/istanbul-lib-report@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" + integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/jest@26.0.24": + version "26.0.24" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.24.tgz#943d11976b16739185913a1936e0de0c4a7d595a" + integrity sha512-E/X5Vib8BWqZNRlDxj9vYXhsDwPYbPINqKF9BsnSoon4RQ0D9moEuLD8txgyypFLH7J4+Lho9Nr/c8H0Fi+17w== + dependencies: + jest-diff "^26.0.0" + pretty-format "^26.0.0" + +"@types/json-schema@^7.0.7": + version "7.0.11" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" + integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== + +"@types/node@*": + version "18.11.15" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.15.tgz#de0e1fbd2b22b962d45971431e2ae696643d3f5d" + integrity sha512-VkhBbVo2+2oozlkdHXLrb3zjsRkpdnaU2bXmX8Wgle3PUi569eLRaHGlgETQHR7lLL1w7GiG3h9SnePhxNDecw== + +"@types/normalize-package-data@^2.4.0": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" + integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== + +"@types/prettier@^2.1.5": + version "2.7.1" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.1.tgz#dfd20e2dc35f027cdd6c1908e80a5ddc7499670e" + integrity sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow== + +"@types/q@^1.5.1": + version "1.5.8" + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.8.tgz#95f6c6a08f2ad868ba230ead1d2d7f7be3db3837" + integrity sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw== + +"@types/resolve@1.17.1": + version "1.17.1" + resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" + integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== + dependencies: + "@types/node" "*" + +"@types/stack-utils@^2.0.0": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" + integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== + +"@types/yargs-parser@*": + version "21.0.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" + integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== + +"@types/yargs@^15.0.0": + version "15.0.14" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.14.tgz#26d821ddb89e70492160b66d10a0eb6df8f6fb06" + integrity sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ== + dependencies: + "@types/yargs-parser" "*" + +"@types/yargs@^16.0.0": + version "16.0.4" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.4.tgz#26aad98dd2c2a38e421086ea9ad42b9e51642977" + integrity sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw== + dependencies: + "@types/yargs-parser" "*" + +"@typescript-eslint/eslint-plugin@4.29.0": + version "4.29.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.29.0.tgz#b866c9cd193bfaba5e89bade0015629ebeb27996" + integrity sha512-eiREtqWRZ8aVJcNru7cT/AMVnYd9a2UHsfZT8MR1dW3UUEg6jDv9EQ9Cq4CUPZesyQ58YUpoAADGv71jY8RwgA== + dependencies: + "@typescript-eslint/experimental-utils" "4.29.0" + "@typescript-eslint/scope-manager" "4.29.0" + debug "^4.3.1" + functional-red-black-tree "^1.0.1" + regexpp "^3.1.0" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/experimental-utils@4.29.0": + version "4.29.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.29.0.tgz#19b1417602d0e1ef325b3312ee95f61220542df5" + integrity sha512-FpNVKykfeaIxlArLUP/yQfv/5/3rhl1ov6RWgud4OgbqWLkEq7lqgQU9iiavZRzpzCRQV4XddyFz3wFXdkiX9w== + dependencies: + "@types/json-schema" "^7.0.7" + "@typescript-eslint/scope-manager" "4.29.0" + "@typescript-eslint/types" "4.29.0" + "@typescript-eslint/typescript-estree" "4.29.0" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + +"@typescript-eslint/experimental-utils@^4.0.1": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz#6f2a786a4209fa2222989e9380b5331b2810f7fd" + integrity sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q== + dependencies: + "@types/json-schema" "^7.0.7" + "@typescript-eslint/scope-manager" "4.33.0" + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/typescript-estree" "4.33.0" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + +"@typescript-eslint/parser@4.29.0": + version "4.29.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.29.0.tgz#e5367ca3c63636bb5d8e0748fcbab7a4f4a04289" + integrity sha512-+92YRNHFdXgq+GhWQPT2bmjX09X7EH36JfgN2/4wmhtwV/HPxozpCNst8jrWcngLtEVd/4zAwA6BKojAlf+YqA== + dependencies: + "@typescript-eslint/scope-manager" "4.29.0" + "@typescript-eslint/types" "4.29.0" + "@typescript-eslint/typescript-estree" "4.29.0" + debug "^4.3.1" + +"@typescript-eslint/scope-manager@4.29.0": + version "4.29.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.29.0.tgz#cf5474f87321bedf416ef65839b693bddd838599" + integrity sha512-HPq7XAaDMM3DpmuijxLV9Io8/6pQnliiXMQUcAdjpJJSR+fdmbD/zHCd7hMkjJn04UQtCQBtshgxClzg6NIS2w== + dependencies: + "@typescript-eslint/types" "4.29.0" + "@typescript-eslint/visitor-keys" "4.29.0" + +"@typescript-eslint/scope-manager@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz#d38e49280d983e8772e29121cf8c6e9221f280a3" + integrity sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ== + dependencies: + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/visitor-keys" "4.33.0" + +"@typescript-eslint/types@4.29.0": + version "4.29.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.29.0.tgz#c8f1a1e4441ea4aca9b3109241adbc145f7f8a4e" + integrity sha512-2YJM6XfWfi8pgU2HRhTp7WgRw78TCRO3dOmSpAvIQ8MOv4B46JD2chnhpNT7Jq8j0APlIbzO1Bach734xxUl4A== + +"@typescript-eslint/types@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72" + integrity sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ== + +"@typescript-eslint/typescript-estree@4.29.0": + version "4.29.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.29.0.tgz#af7ab547757b86c91bfdbc54ff86845410856256" + integrity sha512-8ZpNHDIOyqzzgZrQW9+xQ4k5hM62Xy2R4RPO3DQxMc5Rq5QkCdSpk/drka+DL9w6sXNzV5nrdlBmf8+x495QXQ== + dependencies: + "@typescript-eslint/types" "4.29.0" + "@typescript-eslint/visitor-keys" "4.29.0" + debug "^4.3.1" + globby "^11.0.3" + is-glob "^4.0.1" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/typescript-estree@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz#0dfb51c2908f68c5c08d82aefeaf166a17c24609" + integrity sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA== + dependencies: + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/visitor-keys" "4.33.0" + debug "^4.3.1" + globby "^11.0.3" + is-glob "^4.0.1" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/visitor-keys@4.29.0": + version "4.29.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.29.0.tgz#1ff60f240def4d85ea68d4fd2e4e9759b7850c04" + integrity sha512-LoaofO1C/jAJYs0uEpYMXfHboGXzOJeV118X4OsZu9f7rG7Pr9B3+4HTU8+err81rADa4xfQmAxnRnPAI2jp+Q== + dependencies: + "@typescript-eslint/types" "4.29.0" + eslint-visitor-keys "^2.0.0" + +"@typescript-eslint/visitor-keys@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz#2a22f77a41604289b7a186586e9ec48ca92ef1dd" + integrity sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg== + dependencies: + "@typescript-eslint/types" "4.33.0" + eslint-visitor-keys "^2.0.0" + +"@vue/component-compiler-utils@^1.2.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-1.3.1.tgz#686f0b913d59590ae327b2a1cb4b6d9b931bbe0e" + integrity sha512-IyjJW6ToMitgAhp3xh22QiEW8JvHfLyzlyY/J+GjJ71miod9tNsy6xT2ckm/VirlhPMfeM43kgYZe34jhmmzpw== + dependencies: + consolidate "^0.15.1" + hash-sum "^1.0.2" + lru-cache "^4.1.2" + merge-source-map "^1.1.0" + postcss "^6.0.20" + postcss-selector-parser "^3.1.1" + prettier "^1.13.0" + source-map "^0.5.6" + vue-template-es2015-compiler "^1.6.0" + +"@vue/component-compiler-utils@^2.1.0": + version "2.6.0" + resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-2.6.0.tgz#aa46d2a6f7647440b0b8932434d22f12371e543b" + integrity sha512-IHjxt7LsOFYc0DkTncB7OXJL7UzwOLPPQCfEUNyxL2qt+tF12THV+EO33O1G2Uk4feMSWua3iD39Itszx0f0bw== + dependencies: + consolidate "^0.15.1" + hash-sum "^1.0.2" + lru-cache "^4.1.2" + merge-source-map "^1.1.0" + postcss "^7.0.14" + postcss-selector-parser "^5.0.0" + prettier "1.16.3" + source-map "~0.6.1" + vue-template-es2015-compiler "^1.9.0" + +"@vue/component-compiler@^3.3.2": + version "3.6.0" + resolved "https://registry.yarnpkg.com/@vue/component-compiler/-/component-compiler-3.6.0.tgz#8db313e50eaa2903cef5aac68c37a09364dba79d" + integrity sha512-NIA0vmOI4zbtJAn69iZls8IJ8VxmguswAuiUdu8TcR+YYTYzntfw290HUCSFjzAdRg+FUWZv8r+wc3TzJ/IjwA== + dependencies: + "@vue/component-compiler-utils" "^2.1.0" + clean-css "^4.1.11" + hash-sum "^1.0.2" + postcss-modules-sync "^1.0.0" + source-map "0.6.*" + +"@vue/composition-api@1.0.6": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@vue/composition-api/-/composition-api-1.0.6.tgz#a28e73b6a0939d446badfbde1b532bfdf3bb7c1d" + integrity sha512-P4abcx92znWAG6HaB4p5zCwGVDptfiOaV3kDSwA9Zwc0Nb4urDh5RvCQYEE8uE2SDQxqcR4r2ijWW5gzfVIUwQ== + dependencies: + tslib "^2.3.0" + +abab@^2.0.3, abab@^2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" + integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== + +acorn-globals@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" + integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== + dependencies: + acorn "^7.1.1" + acorn-walk "^7.1.1" + +acorn-jsx@^5.2.0, acorn-jsx@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn-node@^1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8" + integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A== + dependencies: + acorn "^7.0.0" + acorn-walk "^7.0.0" + xtend "^4.0.2" + +acorn-walk@^7.0.0, acorn-walk@^7.1.1: + version "7.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" + integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== + +acorn@^7.0.0, acorn@^7.1.1, 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.2.4: + version "8.8.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" + integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== + +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +ajv@^6.10.0, ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.0.1: + version "8.11.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.2.tgz#aecb20b50607acf2569b6382167b65a96008bb78" + integrity sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg== + 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 sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ== + +ansi-colors@^4.1.1: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== + +ansi-escapes@^4.2.1: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== + +ansi-regex@^5.0.0, ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + +anymatch@^3.0.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +array-buffer-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" + integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== + dependencies: + call-bind "^1.0.2" + is-array-buffer "^3.0.1" + +array-includes@^3.1.4: + version "3.1.6" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" + integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + get-intrinsic "^1.1.3" + is-string "^1.0.7" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array.prototype.flat@^1.2.5: + version "1.3.1" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" + integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-shim-unscopables "^1.0.0" + +array.prototype.reduce@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.6.tgz#63149931808c5fc1e1354814923d92d45f7d96d5" + integrity sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-array-method-boxes-properly "^1.0.0" + is-string "^1.0.7" + +arraybuffer.prototype.slice@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" + integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== + dependencies: + array-buffer-byte-length "^1.0.0" + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" + is-array-buffer "^3.0.2" + is-shared-array-buffer "^1.0.2" + +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== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +autoprefixer@^9.4.5: + version "9.8.8" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.8.tgz#fd4bd4595385fa6f06599de749a4d5f7a474957a" + integrity sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA== + dependencies: + browserslist "^4.12.0" + caniuse-lite "^1.0.30001109" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + picocolors "^0.2.1" + postcss "^7.0.32" + postcss-value-parser "^4.1.0" + +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + +babel-jest@27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.0.6.tgz#e99c6e0577da2655118e3608b68761a5a69bd0d8" + integrity sha512-iTJyYLNc4wRofASmofpOc5NK9QunwMk+TLFgGXsTFS8uEqmd8wdI7sga0FPe2oVH3b5Agt/EAK1QjPEuKL8VfA== + dependencies: + "@jest/transform" "^27.0.6" + "@jest/types" "^27.0.6" + "@types/babel__core" "^7.1.14" + babel-plugin-istanbul "^6.0.0" + babel-preset-jest "^27.0.6" + chalk "^4.0.0" + graceful-fs "^4.2.4" + slash "^3.0.0" + +babel-jest@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.5.1.tgz#a1bf8d61928edfefd21da27eb86a695bfd691444" + integrity sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg== + dependencies: + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/babel__core" "^7.1.14" + babel-plugin-istanbul "^6.1.1" + babel-preset-jest "^27.5.1" + chalk "^4.0.0" + graceful-fs "^4.2.9" + slash "^3.0.0" + +babel-plugin-dynamic-import-node@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" + integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== + dependencies: + object.assign "^4.1.0" + +babel-plugin-istanbul@^6.0.0, babel-plugin-istanbul@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" + integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^5.0.4" + test-exclude "^6.0.0" + +babel-plugin-jest-hoist@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz#9be98ecf28c331eb9f5df9c72d6f89deb8181c2e" + integrity sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.0.0" + "@types/babel__traverse" "^7.0.6" + +babel-preset-current-node-syntax@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" + integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-top-level-await" "^7.8.3" + +babel-preset-jest@^27.0.6, babel-preset-jest@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz#91f10f58034cb7989cb4f962b69fa6eef6a6bc81" + integrity sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag== + dependencies: + babel-plugin-jest-hoist "^27.5.1" + babel-preset-current-node-syntax "^1.0.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +big.js@^3.1.3: + version "3.2.0" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" + integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q== + +bluebird@^3.1.1: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +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 sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + +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@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== + +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.21.3: + version "4.21.4" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" + integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== + dependencies: + caniuse-lite "^1.0.30001400" + electron-to-chromium "^1.4.251" + node-releases "^2.0.6" + update-browserslist-db "^1.0.9" + +browserslist@^4.21.9: + version "4.22.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.1.tgz#ba91958d1a59b87dab6fed8dfbcb3da5e2e9c619" + integrity sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ== + dependencies: + caniuse-lite "^1.0.30001541" + electron-to-chromium "^1.4.535" + node-releases "^2.0.13" + update-browserslist-db "^1.0.13" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +builtin-modules@^3.1.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" + integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== + +bytes@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +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" + +call-bind@^1.0.4, call-bind@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" + integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== + dependencies: + function-bind "^1.1.2" + get-intrinsic "^1.2.1" + set-function-length "^1.1.1" + +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ== + 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 sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A== + 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 sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ== + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase-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@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.2.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +caniuse-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.30001109, caniuse-lite@^1.0.30001400: + version "1.0.30001439" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001439.tgz#ab7371faeb4adff4b74dad1718a6fd122e45d9cb" + integrity sha512-1MgUzEkoMO6gKfXflStpYgZDlFM7M/ck/bgfVCACO5vnAf0fXoNVHdWtqGU+MYca+4bL9Z5bpOVmR33cWW9G2A== + +caniuse-lite@^1.0.30001541: + version "1.0.30001565" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001565.tgz#a528b253c8a2d95d2b415e11d8b9942acc100c4f" + integrity sha512-xrE//a3O7TP0vaJ8ikzkD2c2NgcVUvsEe2IvFTntV4Yd1Z9FVzh+gW+enX96L0psrbaFMcVcH2l90xNuGDWc8w== + +chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +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@^3.0.0 || ^4.0.0", chalk@^4.0.0, chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +ci-info@^3.2.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.7.0.tgz#6d01b3696c59915b6ce057e4aa4adfc2fa25f5ef" + integrity sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog== + +cjs-module-lexer@^1.0.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" + integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== + +clean-css@^4.1.11: + version "4.2.4" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.4.tgz#733bf46eba4e607c6891ea57c24a989356831178" + integrity sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A== + dependencies: + source-map "~0.6.0" + +clean-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/clean-regexp/-/clean-regexp-1.0.0.tgz#8df7c7aae51fd36874e8f8d05b9180bc11a3fed7" + integrity sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw== + dependencies: + escape-string-regexp "^1.0.5" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== + +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" + +collect-v8-coverage@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" + integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== + +color-convert@^1.9.0, color-convert@^1.9.3: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@^1.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.6.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" + integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^3.0.0, color@^3.1.2: + version "3.2.1" + resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" + integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== + dependencies: + color-convert "^1.9.3" + color-string "^1.6.0" + +colorette@^1.2.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40" + integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g== + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" + integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +concat-with-sourcemaps@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz#d4ea93f05ae25790951b99e7b3b09e3908a4082e" + integrity sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg== + dependencies: + source-map "^0.6.1" + +consolidate@^0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.15.1.tgz#21ab043235c71a07d45d9aad98593b0dba56bab7" + integrity sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw== + dependencies: + bluebird "^3.1.1" + +convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== + +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" + +cross-spawn@^6.0.5: + 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-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 sha512-zj5D7X1U2h2zsXOAM8EyUREBnnts6H+Jm+d1M2DbiQQcUtnqgQsMrdo8JW9R80YFUmIdBZeMu5wvYM7hcgWP/Q== + +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-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: + 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-selector-tokenizer@^0.7.0: + version "0.7.3" + resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz#735f26186e67c749aaf275783405cf0661fae8f1" + integrity sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg== + dependencies: + cssesc "^3.0.0" + fastparse "^1.1.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.3" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" + integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== + 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== + +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.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz#920622b1fc1e95a34e8838203f1397a504f2d3ff" + integrity sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ== + 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.3" + 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 sha512-6RIcwmV3/cBMG8Aj5gucQRsJb4vv4I4rn6YjPbVWd5+Pn/fuG+YseGvXGk00XLkoZkaj31QOD7vMUpNPC4FIuw== + +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 sha512-JPMZ1TSMRUPVIqEalIBNoBtAYbi8okvcFns4O0YIhcdGebeYZK7dMyHJiQ6GqNBA9kE0Hym4Aqym5rPdsV/4Cw== + +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.11" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.11.tgz#c7b5f5b81da269cb1fd982cb960c1200910c9a99" + integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g== + dependencies: + cosmiconfig "^5.0.0" + cssnano-preset-default "^4.0.8" + 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" + +cssom@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== + +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== + dependencies: + cssom "~0.3.6" + +data-urls@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" + integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== + dependencies: + abab "^2.0.3" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + +de-indent@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" + integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg== + +debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +debug@^2.6.0, 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.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +decimal.js@^10.2.1: + version "10.4.3" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" + integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== + +dedent@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" + integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== + +deep-is@^0.1.3, deep-is@~0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + +define-data-property@^1.0.1, define-data-property@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" + integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== + dependencies: + get-intrinsic "^1.2.1" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + +define-properties@^1.1.3, define-properties@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" + integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== + dependencies: + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +define-properties@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== + dependencies: + define-data-property "^1.0.1" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +defined@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.1.tgz#c0b9db27bfaffd95d6f61399419b893df0f91ebf" + integrity sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q== + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + +detective@^5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.1.tgz#6af01eeda11015acb0e73f933242b70f24f91034" + integrity sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw== + dependencies: + acorn-node "^1.8.2" + defined "^1.0.0" + minimist "^1.2.6" + +diff-sequences@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" + integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== + +diff-sequences@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.5.1.tgz#eaecc0d327fd68c8d9672a1e64ab8dccb2ef5327" + integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ== + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +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" + +domelementtype@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.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + +domexception@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" + integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== + dependencies: + webidl-conversions "^5.0.0" + +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-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" + +electron-to-chromium@^1.4.251: + version "1.4.284" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" + integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== + +electron-to-chromium@^1.4.535: + version "1.4.596" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.596.tgz#6752d1aa795d942d49dfc5d3764d6ea283fab1d7" + integrity sha512-zW3zbZ40Icb2BCWjm47nxwcFGYlIgdXkAx85XDO7cyky9J4QQfq8t0W19/TLZqq3JPQXtlv8BPIGmfa9Jb4scg== + +emittery@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860" + integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + integrity sha512-knHEZMgs8BB+MInokmNTg/OyPlAddghe1YBgNwJBc5zsJi/uyIcXoSDsL/W9ymOsBoBGdPIHXYJ9+qKFwRwDng== + +enquirer@^2.3.5: + 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@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +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, es-abstract@^1.22.1: + version "1.22.3" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32" + integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA== + dependencies: + array-buffer-byte-length "^1.0.0" + arraybuffer.prototype.slice "^1.0.2" + available-typed-arrays "^1.0.5" + call-bind "^1.0.5" + es-set-tostringtag "^2.0.1" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.6" + get-intrinsic "^1.2.2" + get-symbol-description "^1.0.0" + globalthis "^1.0.3" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + internal-slot "^1.0.5" + is-array-buffer "^3.0.2" + is-callable "^1.2.7" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-typed-array "^1.1.12" + is-weakref "^1.0.2" + object-inspect "^1.13.1" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.5.1" + safe-array-concat "^1.0.1" + safe-regex-test "^1.0.0" + string.prototype.trim "^1.2.8" + string.prototype.trimend "^1.0.7" + string.prototype.trimstart "^1.0.7" + typed-array-buffer "^1.0.0" + typed-array-byte-length "^1.0.0" + typed-array-byte-offset "^1.0.0" + typed-array-length "^1.0.4" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.13" + +es-abstract@^1.19.0, es-abstract@^1.20.4: + version "1.20.5" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.5.tgz#e6dc99177be37cacda5988e692c3fa8b218e95d2" + integrity sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + function.prototype.name "^1.1.5" + get-intrinsic "^1.1.3" + get-symbol-description "^1.0.0" + gopd "^1.0.1" + has "^1.0.3" + has-property-descriptors "^1.0.0" + has-symbols "^1.0.3" + internal-slot "^1.0.3" + is-callable "^1.2.7" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-weakref "^1.0.2" + object-inspect "^1.12.2" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.4.3" + safe-regex-test "^1.0.0" + string.prototype.trimend "^1.0.6" + string.prototype.trimstart "^1.0.6" + unbox-primitive "^1.0.2" + +es-array-method-boxes-properly@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" + integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== + +es-set-tostringtag@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz#11f7cc9f63376930a5f20be4915834f4bc74f9c9" + integrity sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q== + dependencies: + get-intrinsic "^1.2.2" + has-tostringtag "^1.0.0" + hasown "^2.0.0" + +es-shim-unscopables@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" + integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== + dependencies: + has "^1.0.3" + +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" + +esbuild@0.12.19: + version "0.12.19" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.12.19.tgz#ab849766705a5093df5acd8ec2f6ba2159a38a6c" + integrity sha512-5NuT1G6THW7l3fsSCDkcPepn24R0XtyPjKoqKHD8LfhqMXzCdz0mrS9HgO6hIhzVT7zt0T+JGbzCqF5AH8hS9w== + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escodegen@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" + integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== + dependencies: + esprima "^4.0.1" + estraverse "^5.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +eslint-config-prettier@8.3.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz#f7471b20b6fe8a9a9254cc684454202886a2dd7a" + integrity sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew== + +eslint-config-standard@^16.0.3: + version "16.0.3" + resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-16.0.3.tgz#6c8761e544e96c531ff92642eeb87842b8488516" + integrity sha512-x4fmJL5hGqNJKGHSjnLdgA6U6h1YW/G2dW9fA+cyVur4SK6lyue8+UgNKWlZtUDTXvgKDD/Oa3GQjmB5kjtVvg== + +eslint-import-resolver-node@^0.3.6: + version "0.3.6" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" + integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== + dependencies: + debug "^3.2.7" + resolve "^1.20.0" + +eslint-module-utils@^2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz#4f3e41116aaf13a20792261e61d3a2e7e0583974" + integrity sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA== + dependencies: + debug "^3.2.7" + +eslint-plugin-es@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz#75a7cdfdccddc0589934aeeb384175f221c57893" + integrity sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ== + dependencies: + eslint-utils "^2.0.0" + regexpp "^3.0.0" + +eslint-plugin-import@^2.23.3: + version "2.26.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz#f812dc47be4f2b72b478a021605a59fc6fe8b88b" + integrity sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA== + dependencies: + array-includes "^3.1.4" + array.prototype.flat "^1.2.5" + debug "^2.6.9" + doctrine "^2.1.0" + eslint-import-resolver-node "^0.3.6" + eslint-module-utils "^2.7.3" + has "^1.0.3" + is-core-module "^2.8.1" + is-glob "^4.0.3" + minimatch "^3.1.2" + object.values "^1.1.5" + resolve "^1.22.0" + tsconfig-paths "^3.14.1" + +eslint-plugin-jest@^24.3.6: + version "24.7.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-24.7.0.tgz#206ac0833841e59e375170b15f8d0955219c4889" + integrity sha512-wUxdF2bAZiYSKBclsUMrYHH6WxiBreNjyDxbRv345TIvPeoCEgPNEn3Sa+ZrSqsf1Dl9SqqSREXMHExlMMu1DA== + dependencies: + "@typescript-eslint/experimental-utils" "^4.0.1" + +eslint-plugin-node@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz#c95544416ee4ada26740a30474eefc5402dc671d" + integrity sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g== + dependencies: + eslint-plugin-es "^3.0.0" + eslint-utils "^2.0.0" + ignore "^5.1.1" + minimatch "^3.0.4" + resolve "^1.10.1" + semver "^6.1.0" + +eslint-plugin-prettier@3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.0.tgz#cdbad3bf1dbd2b177e9825737fe63b476a08f0c7" + integrity sha512-UDK6rJT6INSfcOo545jiaOwB701uAIt2/dR7WnFQoGCVl1/EMqdANBmwUaqqQ45aXprsTGzSa39LI1PyuRBxxw== + dependencies: + prettier-linter-helpers "^1.0.0" + +eslint-plugin-promise@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-5.2.0.tgz#a596acc32981627eb36d9d75f9666ac1a4564971" + integrity sha512-SftLb1pUG01QYq2A/hGAWfDRXqYD82zE7j7TopDOyNdU+7SvvoXREls/+PRTY17vUXzXnZA/zfnyKgRH6x4JJw== + +eslint-plugin-standard@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz#0c3bf3a67e853f8bbbc580fb4945fbf16f41b7c5" + integrity sha512-ZL7+QRixjTR6/528YNGyDotyffm5OQst/sGxKDwGb9Uqs4In5Egi4+jbobhqJoyoCM6/7v/1A5fhQ7ScMtDjaQ== + +eslint-plugin-unicorn@^28.0.2: + version "28.0.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-28.0.2.tgz#ab9884ebae04590ecd9c1c294330d889a74b7c37" + integrity sha512-k4AoFP7n8/oq6lBXkdc9Flid6vw2B8j7aXFCxgzJCyKvmaKrCUFb1TFPhG9eSJQFZowqmymMPRtl8oo9NKLUbw== + dependencies: + ci-info "^2.0.0" + clean-regexp "^1.0.0" + eslint-template-visitor "^2.2.2" + eslint-utils "^2.1.0" + eslint-visitor-keys "^2.0.0" + import-modules "^2.1.0" + lodash "^4.17.20" + pluralize "^8.0.0" + read-pkg-up "^7.0.1" + regexp-tree "^0.1.22" + reserved-words "^0.1.2" + safe-regex "^2.1.1" + semver "^7.3.4" + +eslint-plugin-vue@^7.9.0: + version "7.20.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-7.20.0.tgz#98c21885a6bfdf0713c3a92957a5afeaaeed9253" + integrity sha512-oVNDqzBC9h3GO+NTgWeLMhhGigy6/bQaQbHS+0z7C4YEu/qK/yxHvca/2PTZtGNPsCrHwOTgKMrwu02A9iPBmw== + dependencies: + eslint-utils "^2.1.0" + natural-compare "^1.4.0" + semver "^6.3.0" + vue-eslint-parser "^7.10.0" + +eslint-scope@5.1.1, eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-template-visitor@^2.2.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/eslint-template-visitor/-/eslint-template-visitor-2.3.2.tgz#b52f96ff311e773a345d79053ccc78275bbc463d" + integrity sha512-3ydhqFpuV7x1M9EK52BPNj6V0Kwu0KKkcIAfpUhwHbR8ocRln/oUHgfxQupY8O1h4Qv/POHDumb/BwwNfxbtnA== + dependencies: + "@babel/core" "^7.12.16" + "@babel/eslint-parser" "^7.12.16" + eslint-visitor-keys "^2.0.0" + esquery "^1.3.1" + multimap "^1.1.0" + +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-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" + integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== + dependencies: + eslint-visitor-keys "^2.0.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, eslint-visitor-keys@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== + +eslint@7.32.0: + version "7.32.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" + integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== + dependencies: + "@babel/code-frame" "7.12.11" + "@eslint/eslintrc" "^0.4.3" + "@humanwhocodes/config-array" "^0.5.0" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.0.1" + doctrine "^3.0.0" + enquirer "^2.3.5" + escape-string-regexp "^4.0.0" + eslint-scope "^5.1.1" + eslint-utils "^2.1.0" + eslint-visitor-keys "^2.0.0" + espree "^7.3.1" + esquery "^1.4.0" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.1.2" + globals "^13.6.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + progress "^2.0.0" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^6.0.9" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" + integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== + dependencies: + acorn "^7.1.1" + acorn-jsx "^5.2.0" + eslint-visitor-keys "^1.1.0" + +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, esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.3.1, esquery@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" + integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +estree-walker@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.2.1.tgz#bdafe8095383d8414d5dc2ecf4c9173b6db9412e" + integrity sha512-6/I1dwNKk0N9iGOU3ydzAAurz4NPo/ttxZNCqgIVbWFvWyzWBSNonRrJ5CpjDuyBfmM7ENN7WCzUi9aT/UPXXQ== + +estree-walker@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" + integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== + +estree-walker@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" + integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== + +estree-walker@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +eventemitter3@^4.0.4: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +execa@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== + +expect@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/expect/-/expect-27.5.1.tgz#83ce59f1e5bdf5f9d2b94b61d2050db48f3fef74" + integrity sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw== + dependencies: + "@jest/types" "^27.5.1" + jest-get-type "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-diff@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" + integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== + +fast-glob@^3.2.9: + version "3.2.12" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" + integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fastparse@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" + integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== + +fastq@^1.6.0: + version "1.14.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.14.0.tgz#107f69d7295b11e0fccc264e1fc6389f623731ce" + integrity sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg== + dependencies: + reusify "^1.0.4" + +fb-watchman@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" + integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== + dependencies: + bser "2.1.1" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +flag-icon-css@3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/flag-icon-css/-/flag-icon-css-3.5.0.tgz#430747d5cb91e60babf85494de99173c16dc7cf2" + integrity sha512-pgJnJLrtb0tcDgU1fzGaQXmR8h++nXvILJ+r5SmOXaaL/2pocunQo2a8TAXhjQnBpRLPtZ1KCz/TYpqeNuE2ew== + +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.2.7" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" + integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +form-data@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" + integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +fs-extra@^8.0.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.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@^2.3.2, fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +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== + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +function.prototype.name@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" + integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + functions-have-names "^1.2.2" + +function.prototype.name@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" + integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + functions-have-names "^1.2.3" + +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 sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== + +functions-have-names@^1.2.2, functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +generic-names@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/generic-names/-/generic-names-1.0.3.tgz#2d786a121aee508876796939e8e3bff836c20917" + integrity sha512-b6OHfQuKasIKM9b6YPkX+KUj/TLBTx3B/1aT1T5F12FEuEqyFMdr59OMS53aoaSw8eVtapdqieX6lbg5opaOhA== + dependencies: + loader-utils "^0.2.16" + +generic-names@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/generic-names/-/generic-names-4.0.0.tgz#0bd8a2fd23fe8ea16cbd0a279acd69c06933d9a3" + integrity sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A== + dependencies: + loader-utils "^3.2.0" + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" + integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.3" + +get-intrinsic@^1.2.0, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" + integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== + dependencies: + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +glob-parent@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^13.6.0, globals@^13.9.0: + version "13.19.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.19.0.tgz#7a42de8e6ad4f7242fbcca27ea5b23aca367b5c8" + integrity sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ== + dependencies: + type-fest "^0.20.2" + +globalthis@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== + dependencies: + define-properties "^1.1.3" + +globby@^11.0.3: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.9: + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg== + dependencies: + ansi-regex "^2.0.0" + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + integrity sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + +has-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" + integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== + +has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.4.tgz#2eb2860e000011dae4f1406a86fe80e530fb2ec6" + integrity sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ== + +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" + +hash-sum@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04" + integrity sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA== + +hasown@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" + integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== + dependencies: + function-bind "^1.1.2" + +he@^1.1.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== + +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + +hsl-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" + integrity sha512-M5ezZw4LzXbBKMruP+BNANf0k+19hDQMgpzBIYnya//Al+fjNct9Wf3b1WedLqdEs2hKBvxq/jh+DsHJLj0F9A== + +hsla-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" + integrity sha512-7Wn5GMLuHBjZCb2bTmnDOycho0p/7UVaAeqXZGbHrBCl6Yd/xDhQJAXe6Ga9AXJH2I5zY1dEdYw2u1UptnSBJA== + +html-encoding-sniffer@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" + integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== + dependencies: + whatwg-encoding "^1.0.5" + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +html-tags@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.2.0.tgz#dbb3518d20b726524e4dd43de397eb0a95726961" + integrity sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg== + +http-proxy-agent@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" + integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== + dependencies: + "@tootallnate/once" "1" + agent-base "6" + debug "4" + +https-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +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.0.2, 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 sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg== + +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.1, ignore@^5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.1.tgz#c2b1f76cb999ede1502f3a226a9310fdfe88d46c" + integrity sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA== + +import-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-3.0.0.tgz#20845547718015126ea9b3676b7592fb8bd4cf92" + integrity sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg== + dependencies: + import-from "^3.0.0" + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + integrity sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg== + 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-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/import-from/-/import-from-3.0.0.tgz#055cfec38cd5a27d8057ca51376d7d3bf0891966" + integrity sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ== + dependencies: + resolve-from "^5.0.0" + +import-local@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +import-modules@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-modules/-/import-modules-2.1.0.tgz#abe7df297cb6c1f19b57246eb8b8bd9664b6d8c2" + integrity sha512-8HEWcnkbGpovH9yInoisxaSoIg9Brbul+Ju3Kqe2UsYDUBJD/iQjSgEj0zPcTDPKfPp2fs5xlv1i+JSye/m1/A== + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + integrity sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +internal-slot@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.4.tgz#8551e7baf74a7a6ba5f749cfb16aa60722f0d6f3" + integrity sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ== + dependencies: + get-intrinsic "^1.1.3" + has "^1.0.3" + side-channel "^1.0.4" + +internal-slot@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930" + integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg== + dependencies: + get-intrinsic "^1.2.2" + hasown "^2.0.0" + side-channel "^1.0.4" + +is-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 sha512-vOx7VprsKyllwjSkLV79NIhpyLfr3jAp7VaTCMXOJHu4m0Ew1CZ2fcjASwmV1jI3BWuWHB013M48eyeldk9gYg== + +is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" + integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + is-typed-array "^1.1.10" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-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-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-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 sha512-H1U8Vz0cfXNujrJzEcvvwMDW9Ra+biSYA3ThdQvAnMLJkEHQXn6bWzLkxHtVYJ+Sdbx0b6finn3jZiaVe7MAHA== + 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.8.1, is-core-module@^2.9.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" + integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== + dependencies: + has "^1.0.3" + +is-date-object@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" + integrity sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g== + +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-potential-custom-element-name@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" + integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== + +is-reference@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" + integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== + dependencies: + "@types/estree" "*" + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-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-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9: + version "1.1.12" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" + integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== + dependencies: + which-typed-array "^1.1.11" + +is-typedarray@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" + integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== + +istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" + integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== + dependencies: + "@babel/core" "^7.12.3" + "@babel/parser" "^7.14.7" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.2.0" + semver "^6.3.0" + +istanbul-lib-report@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" + integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^3.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" + integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.1.3: + version "3.1.5" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.5.tgz#cc9a6ab25cb25659810e4785ed9d9fb742578bae" + integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +jest-changed-files@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.5.1.tgz#a348aed00ec9bf671cc58a66fcbe7c3dfd6a68f5" + integrity sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw== + dependencies: + "@jest/types" "^27.5.1" + execa "^5.0.0" + throat "^6.0.1" + +jest-circus@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.5.1.tgz#37a5a4459b7bf4406e53d637b49d22c65d125ecc" + integrity sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + dedent "^0.7.0" + expect "^27.5.1" + is-generator-fn "^2.0.0" + jest-each "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + jest-runtime "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + pretty-format "^27.5.1" + slash "^3.0.0" + stack-utils "^2.0.3" + throat "^6.0.1" + +jest-cli@^27.0.6: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.5.1.tgz#278794a6e6458ea8029547e6c6cbf673bd30b145" + integrity sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw== + dependencies: + "@jest/core" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/types" "^27.5.1" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.9" + import-local "^3.0.2" + jest-config "^27.5.1" + jest-util "^27.5.1" + jest-validate "^27.5.1" + prompts "^2.0.1" + yargs "^16.2.0" + +jest-config@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.5.1.tgz#5c387de33dca3f99ad6357ddeccd91bf3a0e4a41" + integrity sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA== + dependencies: + "@babel/core" "^7.8.0" + "@jest/test-sequencer" "^27.5.1" + "@jest/types" "^27.5.1" + babel-jest "^27.5.1" + chalk "^4.0.0" + ci-info "^3.2.0" + deepmerge "^4.2.2" + glob "^7.1.1" + graceful-fs "^4.2.9" + jest-circus "^27.5.1" + jest-environment-jsdom "^27.5.1" + jest-environment-node "^27.5.1" + jest-get-type "^27.5.1" + jest-jasmine2 "^27.5.1" + jest-regex-util "^27.5.1" + jest-resolve "^27.5.1" + jest-runner "^27.5.1" + jest-util "^27.5.1" + jest-validate "^27.5.1" + micromatch "^4.0.4" + parse-json "^5.2.0" + pretty-format "^27.5.1" + slash "^3.0.0" + strip-json-comments "^3.1.1" + +jest-diff@^26.0.0: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" + integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== + dependencies: + chalk "^4.0.0" + diff-sequences "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-diff@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.5.1.tgz#a07f5011ac9e6643cf8a95a462b7b1ecf6680def" + integrity sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw== + dependencies: + chalk "^4.0.0" + diff-sequences "^27.5.1" + jest-get-type "^27.5.1" + pretty-format "^27.5.1" + +jest-docblock@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.5.1.tgz#14092f364a42c6108d42c33c8cf30e058e25f6c0" + integrity sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ== + dependencies: + detect-newline "^3.0.0" + +jest-each@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.5.1.tgz#5bc87016f45ed9507fed6e4702a5b468a5b2c44e" + integrity sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ== + dependencies: + "@jest/types" "^27.5.1" + chalk "^4.0.0" + jest-get-type "^27.5.1" + jest-util "^27.5.1" + pretty-format "^27.5.1" + +jest-environment-jsdom@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz#ea9ccd1fc610209655a77898f86b2b559516a546" + integrity sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/fake-timers" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + jest-mock "^27.5.1" + jest-util "^27.5.1" + jsdom "^16.6.0" + +jest-environment-node@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.5.1.tgz#dedc2cfe52fab6b8f5714b4808aefa85357a365e" + integrity sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/fake-timers" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + jest-mock "^27.5.1" + jest-util "^27.5.1" + +jest-get-type@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" + integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== + +jest-get-type@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.5.1.tgz#3cd613c507b0f7ace013df407a1c1cd578bcb4f1" + integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw== + +jest-haste-map@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.5.1.tgz#9fd8bd7e7b4fa502d9c6164c5640512b4e811e7f" + integrity sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng== + dependencies: + "@jest/types" "^27.5.1" + "@types/graceful-fs" "^4.1.2" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.9" + jest-regex-util "^27.5.1" + jest-serializer "^27.5.1" + jest-util "^27.5.1" + jest-worker "^27.5.1" + micromatch "^4.0.4" + walker "^1.0.7" + optionalDependencies: + fsevents "^2.3.2" + +jest-jasmine2@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz#a037b0034ef49a9f3d71c4375a796f3b230d1ac4" + integrity sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/source-map" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + expect "^27.5.1" + is-generator-fn "^2.0.0" + jest-each "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + jest-runtime "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + pretty-format "^27.5.1" + throat "^6.0.1" + +jest-leak-detector@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz#6ec9d54c3579dd6e3e66d70e3498adf80fde3fb8" + integrity sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ== + dependencies: + jest-get-type "^27.5.1" + pretty-format "^27.5.1" + +jest-matcher-utils@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz#9c0cdbda8245bc22d2331729d1091308b40cf8ab" + integrity sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw== + dependencies: + chalk "^4.0.0" + jest-diff "^27.5.1" + jest-get-type "^27.5.1" + pretty-format "^27.5.1" + +jest-message-util@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.5.1.tgz#bdda72806da10d9ed6425e12afff38cd1458b6cf" + integrity sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^27.5.1" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^27.5.1" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-mock@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.5.1.tgz#19948336d49ef4d9c52021d34ac7b5f36ff967d6" + integrity sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og== + dependencies: + "@jest/types" "^27.5.1" + "@types/node" "*" + +jest-pnp-resolver@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" + integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== + +jest-regex-util@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.5.1.tgz#4da143f7e9fd1e542d4aa69617b38e4a78365b95" + integrity sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg== + +jest-resolve-dependencies@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz#d811ecc8305e731cc86dd79741ee98fed06f1da8" + integrity sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg== + dependencies: + "@jest/types" "^27.5.1" + jest-regex-util "^27.5.1" + jest-snapshot "^27.5.1" + +jest-resolve@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.5.1.tgz#a2f1c5a0796ec18fe9eb1536ac3814c23617b384" + integrity sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw== + dependencies: + "@jest/types" "^27.5.1" + chalk "^4.0.0" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" + jest-pnp-resolver "^1.2.2" + jest-util "^27.5.1" + jest-validate "^27.5.1" + resolve "^1.20.0" + resolve.exports "^1.1.0" + slash "^3.0.0" + +jest-runner@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.5.1.tgz#071b27c1fa30d90540805c5645a0ec167c7b62e5" + integrity sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ== + dependencies: + "@jest/console" "^27.5.1" + "@jest/environment" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.8.1" + graceful-fs "^4.2.9" + jest-docblock "^27.5.1" + jest-environment-jsdom "^27.5.1" + jest-environment-node "^27.5.1" + jest-haste-map "^27.5.1" + jest-leak-detector "^27.5.1" + jest-message-util "^27.5.1" + jest-resolve "^27.5.1" + jest-runtime "^27.5.1" + jest-util "^27.5.1" + jest-worker "^27.5.1" + source-map-support "^0.5.6" + throat "^6.0.1" + +jest-runtime@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.5.1.tgz#4896003d7a334f7e8e4a53ba93fb9bcd3db0a1af" + integrity sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/fake-timers" "^27.5.1" + "@jest/globals" "^27.5.1" + "@jest/source-map" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + chalk "^4.0.0" + cjs-module-lexer "^1.0.0" + collect-v8-coverage "^1.0.0" + execa "^5.0.0" + glob "^7.1.3" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" + jest-message-util "^27.5.1" + jest-mock "^27.5.1" + jest-regex-util "^27.5.1" + jest-resolve "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + slash "^3.0.0" + strip-bom "^4.0.0" + +jest-serializer@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.5.1.tgz#81438410a30ea66fd57ff730835123dea1fb1f64" + integrity sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w== + dependencies: + "@types/node" "*" + graceful-fs "^4.2.9" + +jest-snapshot@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.5.1.tgz#b668d50d23d38054a51b42c4039cab59ae6eb6a1" + integrity sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA== + dependencies: + "@babel/core" "^7.7.2" + "@babel/generator" "^7.7.2" + "@babel/plugin-syntax-typescript" "^7.7.2" + "@babel/traverse" "^7.7.2" + "@babel/types" "^7.0.0" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/babel__traverse" "^7.0.4" + "@types/prettier" "^2.1.5" + babel-preset-current-node-syntax "^1.0.0" + chalk "^4.0.0" + expect "^27.5.1" + graceful-fs "^4.2.9" + jest-diff "^27.5.1" + jest-get-type "^27.5.1" + jest-haste-map "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + jest-util "^27.5.1" + natural-compare "^1.4.0" + pretty-format "^27.5.1" + semver "^7.3.2" + +jest-util@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.5.1.tgz#3ba9771e8e31a0b85da48fe0b0891fb86c01c2f9" + integrity sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw== + dependencies: + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-validate@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.5.1.tgz#9197d54dc0bdb52260b8db40b46ae668e04df067" + integrity sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ== + dependencies: + "@jest/types" "^27.5.1" + camelcase "^6.2.0" + chalk "^4.0.0" + jest-get-type "^27.5.1" + leven "^3.1.0" + pretty-format "^27.5.1" + +jest-watcher@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.5.1.tgz#71bd85fb9bde3a2c2ec4dc353437971c43c642a2" + integrity sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw== + dependencies: + "@jest/test-result" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + jest-util "^27.5.1" + string-length "^4.0.1" + +jest-worker@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest@27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest/-/jest-27.0.6.tgz#10517b2a628f0409087fbf473db44777d7a04505" + integrity sha512-EjV8aETrsD0wHl7CKMibKwQNQc3gIRBXlTikBmmHUeVMKaPFxdcUIBfoDqTSXDoGJIivAYGqCWVlzCSaVjPQsA== + dependencies: + "@jest/core" "^27.0.6" + import-local "^3.0.2" + jest-cli "^27.0.6" + +js-base64@^2.1.9: + version "2.6.4" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4" + integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ== + +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" + +jsdom@^16.6.0: + version "16.7.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" + integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== + dependencies: + abab "^2.0.5" + acorn "^8.2.4" + acorn-globals "^6.0.0" + cssom "^0.4.4" + cssstyle "^2.3.0" + data-urls "^2.0.0" + decimal.js "^10.2.1" + domexception "^2.0.1" + escodegen "^2.0.0" + form-data "^3.0.0" + html-encoding-sniffer "^2.0.1" + http-proxy-agent "^4.0.1" + https-proxy-agent "^5.0.0" + is-potential-custom-element-name "^1.0.1" + nwsapi "^2.2.0" + parse5 "6.0.1" + saxes "^5.0.1" + symbol-tree "^3.2.4" + tough-cookie "^4.0.0" + w3c-hr-time "^1.0.2" + w3c-xmlserializer "^2.0.0" + webidl-conversions "^6.1.0" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.5.0" + ws "^7.4.6" + xml-name-validator "^3.0.0" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +json-parse-better-errors@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-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 sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +json5@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + integrity sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw== + +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.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +json5@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" + integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== + optionalDependencies: + graceful-fs "^4.1.6" + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lilconfig@^2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.6.tgz#32a384558bd58af3d4c6e077dd1ad1d397bc69d4" + integrity sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + integrity sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw== + dependencies: + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" + +loader-utils@^0.2.16: + version "0.2.17" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" + integrity sha512-tiv66G0SmiOx+pLWMtGEkfSEejxvb6N6uRrQjfWJIT79W9GMpgKeCAmm9aVBKtd4WEgntciI8CsGqjpDoCWJug== + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + object-assign "^4.0.1" + +loader-utils@^3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-3.2.1.tgz#4fb104b599daafd82ef3e1a41fb9265f87e1f576" + integrity sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw== + +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" + +lodash-es@4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" + integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.truncate@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" + integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== + +lodash@^4.17.20, lodash@^4.17.21, lodash@^4.7.0: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +lru-cache@^4.1.2: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +magic-string@^0.25.7: + version "0.25.9" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" + integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== + dependencies: + sourcemap-codec "^1.4.8" + +make-dir@^3.0.0: + 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" + +makeerror@1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" + integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== + dependencies: + tmpl "1.0.5" + +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== + +memorystream@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" + integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== + +merge-source-map@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" + integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw== + dependencies: + source-map "^0.6.1" + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.0, minimist@^1.2.6: + version "1.2.7" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" + integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== + +mkdirp@~0.5.1: + version "0.5.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +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== + +multimap@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/multimap/-/multimap-1.1.0.tgz#5263febc085a1791c33b59bb3afc6a76a2a10ca8" + integrity sha512-0ZIR9PasPxGXmRsEF8jsDzndzHDj7tIav+JUmvIFB/WHswliFnquxECT/De7GR4yg99ky/NlRKJT82G1y271bw== + +nanoid@^3.1.23: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +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== + +node-emoji@^1.8.1: + version "1.11.0" + resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c" + integrity sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A== + dependencies: + lodash "^4.17.21" + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== + +node-releases@^2.0.13: + version "2.0.13" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" + integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== + +node-releases@^2.0.6: + version "2.0.7" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.7.tgz#593edbc7c22860ee4d32d3933cfebdfab0c0e0e5" + integrity sha512-EJ3rzxL9pTWPjk5arA0s0dgXpnyiAbJDE6wHT62g7VsgrgQgmmZ+Ru++M1BFofncWja+Pnn3rEr3fieRySAdKQ== + +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-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 sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== + +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== + +normalize.css@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/normalize.css/-/normalize.css-8.0.1.tgz#9b98a208738b9cc2634caacbc42d131c97487bf3" + integrity sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg== + +npm-run-all@4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-4.1.5.tgz#04476202a15ee0e2e214080861bff12a51d98fba" + integrity sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ== + dependencies: + ansi-styles "^3.2.1" + chalk "^2.4.1" + cross-spawn "^6.0.5" + memorystream "^0.3.1" + minimatch "^3.0.4" + pidtree "^0.3.0" + read-pkg "^3.0.0" + shell-quote "^1.6.1" + string.prototype.padend "^3.0.0" + +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +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 sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg== + +nwsapi@^2.2.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.2.tgz#e5418863e7905df67d51ec95938d67bf801f0bb0" + integrity sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw== + +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 sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-hash@^2.0.3: + version "2.2.0" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-2.2.0.tgz#5ad518581eefc443bd763472b8ff2e9c2c0d54a5" + integrity sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw== + +object-inspect@^1.12.2, object-inspect@^1.9.0: + version "1.12.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" + integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== + +object-inspect@^1.13.1: + version "1.13.1" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" + integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.0, object.assign@^4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +object.getownpropertydescriptors@^2.1.0: + version "2.1.7" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.7.tgz#7a466a356cd7da4ba8b9e94ff6d35c3eeab5d56a" + integrity sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g== + dependencies: + array.prototype.reduce "^1.0.6" + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + safe-array-concat "^1.0.0" + +object.values@^1.1.0: + version "1.1.7" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a" + integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + +object.values@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" + integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.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" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== + +p-limit@^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-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-queue@^6.6.2: + version "6.6.2" + resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-6.6.2.tgz#2068a9dcf8e67dd0ec3e7a2bcb76810faa85e426" + integrity sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ== + dependencies: + eventemitter3 "^4.0.4" + p-timeout "^3.2.0" + +p-timeout@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" + integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== + dependencies: + p-finally "^1.0.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-json@^5.0.0, parse-json@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse5@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== + dependencies: + pify "^3.0.0" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +picocolors@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" + integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.2, picomatch@^2.2.3, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pidtree@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.3.1.tgz#ef09ac2cc0533df1f3250ccf2c4d366b0d12114a" + integrity sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA== + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== + +pify@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" + integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== + +pirates@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" + integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== + +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" + +pluralize@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" + integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== + +postcss-calc@^7.0.1: + 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-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-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-functions@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-functions/-/postcss-functions-3.0.0.tgz#0e94d01444700a481de20de4d55fb2640564250e" + integrity sha512-N5yWXWKA+uhpLQ9ZhBRl2bIAdM6oVJYpDojuI1nF2SzXBimJcdjFwiAouBVbO5VuOF3qA6BSFWFc3wXbbj72XQ== + dependencies: + glob "^7.1.2" + object-assign "^4.1.1" + postcss "^6.0.9" + postcss-value-parser "^3.3.0" + +postcss-js@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-2.0.3.tgz#a96f0f23ff3d08cec7dc5b11bf11c5f8077cdab9" + integrity sha512-zS59pAk3deu6dVHyrGqmC3oDXBdNdajk4k1RyxeVXCrcEDBUBHoIhE4QTsmhxgzXxsaqFDAkUZfmMa5f/N/79w== + dependencies: + camelcase-css "^2.0.1" + postcss "^7.0.18" + +postcss-load-config@^3.0.0: + version "3.1.4" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.1.4.tgz#1ab2571faf84bb078877e1d07905eabe9ebda855" + integrity sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg== + dependencies: + lilconfig "^2.0.5" + yaml "^1.10.2" + +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-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@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" + integrity sha512-X4cquUPIaAd86raVrBwO8fwRfkIdbwFu7CTfEOjiZQHVQwlHRSkTgH5NLDmMm5+1hQO8u6dZ+TOOJDbay1hYpA== + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^6.0.1" + +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@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" + integrity sha512-LTYwnA4C1He1BKZXIx1CYiHixdSe9LWYVKadq9lK5aCCMkoOkFyZ7aigt+srfjlRplJY3gIol6KUNefdMQJdlw== + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^6.0.1" + +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-sync@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-sync/-/postcss-modules-sync-1.0.0.tgz#619a719cf78dd16a4834135140b324cf77334be1" + integrity sha512-kIDk2NYmxHshqUbjtFf1WdBij08IsvRdgDT0nOGWhvwkr8/z1piLSzxVrPt56J4DU6ON986h2H+5xcBnFhT8UQ== + dependencies: + generic-names "^1.0.2" + icss-replace-symbols "^1.0.2" + postcss "^5.2.5" + postcss-modules-local-by-default "^1.1.1" + postcss-modules-scope "^1.0.2" + string-hash "^1.1.0" + +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@^4.0.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/postcss-modules/-/postcss-modules-4.3.1.tgz#517c06c09eab07d133ae0effca2c510abba18048" + integrity sha512-ItUhSUxBBdNamkT3KzIZwYNNRFKmkJrofvC2nWab3CPKhYBQ1f27XXh1PAPE27Psx58jeelPsxWB/+og+KEH0Q== + dependencies: + generic-names "^4.0.0" + icss-replace-symbols "^1.1.0" + lodash.camelcase "^4.3.0" + 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" + string-hash "^1.1.1" + +postcss-nested@^4.1.1: + version "4.2.3" + resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-4.2.3.tgz#c6f255b0a720549776d220d00c4b70cd244136f6" + integrity sha512-rOv0W1HquRCamWy2kFl3QazJMMe1ku6rCFoAAH+9AcxdbpDeBr6k968MLWuLjvjMcGEip01ak09hKOEgpK9hvw== + dependencies: + postcss "^7.0.32" + postcss-selector-parser "^6.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-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-selector-parser@^3.0.0, postcss-selector-parser@^3.1.1: + 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: + 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.11" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz#2e41dc39b7ad74046e1615185185cd0b17d0c8dc" + integrity sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-svgo@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz#343a2cdbac9505d416243d496f724f38894c941e" + integrity sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + svgo "^1.0.0" + +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.2, postcss-value-parser@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss@7.0.32: + version "7.0.32" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.32.tgz#4310d6ee347053da3433db2be492883d62cec59d" + integrity sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw== + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + +postcss@8.3.6: + version "8.3.6" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.6.tgz#2730dd76a97969f37f53b9a6096197be311cc4ea" + integrity sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A== + dependencies: + colorette "^1.2.2" + nanoid "^3.1.23" + source-map-js "^0.6.2" + +postcss@^5.2.5: + version "5.2.18" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" + integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg== + dependencies: + chalk "^1.1.3" + js-base64 "^2.1.9" + source-map "^0.5.6" + supports-color "^3.2.3" + +postcss@^6.0.1, postcss@^6.0.20, postcss@^6.0.22, 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.11, postcss@^7.0.14, postcss@^7.0.18, postcss@^7.0.27, postcss@^7.0.32: + version "7.0.39" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309" + integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== + dependencies: + picocolors "^0.2.1" + 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== + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== + +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== + dependencies: + fast-diff "^1.1.2" + +prettier@1.16.3: + version "1.16.3" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.16.3.tgz#8c62168453badef702f34b45b6ee899574a6a65d" + integrity sha512-kn/GU6SMRYPxUakNXhpP0EedT/KmaPzr0H5lIsDogrykbaxOpOfAFfk5XA7DZrJyMAv1wlMV3CPcZruGXVVUZw== + +prettier@2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.2.tgz#ef280a05ec253712e486233db5c6f23441e7342d" + integrity sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ== + +prettier@^1.13.0: + version "1.19.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" + integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== + +pretty-format@^26.0.0, pretty-format@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" + integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== + dependencies: + "@jest/types" "^26.6.2" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^17.0.1" + +pretty-format@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" + integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== + dependencies: + ansi-regex "^5.0.1" + ansi-styles "^5.0.0" + react-is "^17.0.1" + +pretty-hrtime@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" + integrity sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A== + +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.series@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/promise.series/-/promise.series-0.2.0.tgz#2cc7ebe959fc3a6619c04ab4dbdc9e452d864bbd" + integrity sha512-VWQJyU2bcDTgZw8kpfBpB/ejZASlCrzwz5f2hjb/zlujOEB4oeiAhHygAWq8ubsX2GVkD4kCU5V2dwOTaCY5EQ== + +prompts@^2.0.1: + version "2.4.2" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" + integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== + +psl@^1.1.33: + version "1.9.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" + integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +purgecss@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/purgecss/-/purgecss-2.3.0.tgz#5327587abf5795e6541517af8b190a6fb5488bb3" + integrity sha512-BE5CROfVGsx2XIhxGuZAT7rTH9lLeQx/6M0P7DTXQH4IUc3BBzs9JUzt4yzGf3JrH9enkeq6YJBe9CTtkm1WmQ== + dependencies: + commander "^5.0.0" + glob "^7.0.0" + postcss "7.0.32" + postcss-selector-parser "^6.0.2" + +q@^1.1.2: + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== + +querystring@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.1.tgz#40d77615bb09d16902a85c3e38aa8b5ed761c2dd" + integrity sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg== + +querystringify@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" + integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +react-is@^17.0.1: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" + integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== + +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + integrity sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA== + dependencies: + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" + +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +reduce-css-calc@^2.1.6: + 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" + +regenerator-runtime@^0.13.11: + version "0.13.11" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" + integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== + +regexp-tree@^0.1.22, regexp-tree@~0.1.1: + version "0.1.24" + resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.24.tgz#3d6fa238450a4d66e5bc9c4c14bb720e2196829d" + integrity sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw== + +regexp.prototype.flags@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" + integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + functions-have-names "^1.2.2" + +regexp.prototype.flags@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e" + integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + set-function-name "^2.0.0" + +regexpp@^3.0.0, regexpp@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +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== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + +reserved-words@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/reserved-words/-/reserved-words-0.1.2.tgz#00a0940f98cd501aeaaac316411d9adc52b31ab1" + integrity sha512-0S5SrIUJ9LfpbVl4Yzij6VipUdafHrOTzvmfazSw/jeZrZtQK303OPZW+obtkaw7jQlTQppy0UvZWm9872PbRw== + +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 sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve.exports@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9" + integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== + +resolve@^1.10.0, resolve@^1.10.1, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.0: + version "1.22.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rgb-regex@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" + integrity sha512-gDK5mkALDFER2YLqH6imYvK6g02gpNGM4ILDZ472EwWfXZnC2ZEpoB2ECXTyOVUKuk/bPJZMzwQPBYICzP+D3w== + +rgba-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" + integrity sha512-zgn5OjNQXLUTdq8m17KdaicF6w89TZs8ZU8y0AYENIU6wG8GG6LLm0yLSiPY8DmaYmHdgRW8rnApjoT0fQRfMg== + +rimraf@3.0.2, rimraf@^3.0.0, rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +rollup-plugin-analyzer@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-analyzer/-/rollup-plugin-analyzer-4.0.0.tgz#96b757ed64a098b59d72f085319e68cdd86d5798" + integrity sha512-LL9GEt3bkXp6Wa19SNR5MWcvHNMvuTFYg+eYBZN2OIFhSWN+pEJUQXEKu5BsOeABob3x9PDaLKW7w5iOJnsESQ== + +rollup-plugin-postcss@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-postcss/-/rollup-plugin-postcss-4.0.0.tgz#2131fb6db0d5dce01a37235e4f6ad4523c681cea" + integrity sha512-OQzT+YspV01/6dxfyEw8lBO2px3hyL8Xn+k2QGctL7V/Yx2Z1QaMKdYVslP1mqv7RsKt6DROIlnbpmgJ3yxf6g== + dependencies: + chalk "^4.1.0" + concat-with-sourcemaps "^1.1.0" + cssnano "^4.1.10" + import-cwd "^3.0.0" + p-queue "^6.6.2" + pify "^5.0.0" + postcss-load-config "^3.0.0" + postcss-modules "^4.0.0" + promise.series "^0.2.0" + resolve "^1.19.0" + rollup-pluginutils "^2.8.2" + safe-identifier "^0.4.2" + style-inject "^0.3.0" + +rollup-plugin-svg@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-svg/-/rollup-plugin-svg-2.0.0.tgz#ce11b55e915d5b2190328c4e6632bd6b4fe12ee9" + integrity sha512-DmE7dSQHo1SC5L2uH2qul3Mjyd5oV6U1aVVkyvTLX/mUsRink7f1b1zaIm+32GEBA6EHu8H/JJi3DdWqM53ySQ== + dependencies: + rollup-pluginutils "^1.3.1" + +rollup-plugin-vue@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-vue/-/rollup-plugin-vue-4.2.0.tgz#83cf392c5e929c34d5f4992e75c2ed32aa600c09" + integrity sha512-n8NDvhYtA9HC3hRyLNAV+0Ei4FHlaOB8LoiXxVwYclgHxOR4aku57zIw8EPf+ETSf45w49UP4VUXgpX6XNwdOA== + dependencies: + "@babel/runtime" "^7.0.0-beta.46" + "@vue/component-compiler" "^3.3.2" + "@vue/component-compiler-utils" "^1.2.1" + debug "^2.6.0" + hash-sum "^1.0.2" + postcss "^6.0.22" + querystring "^0.2.0" + rollup-pluginutils "^2.0.1" + +rollup-pluginutils@^1.3.1: + version "1.5.2" + resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-1.5.2.tgz#1e156e778f94b7255bfa1b3d0178be8f5c552408" + integrity sha512-SjdWWWO/CUoMpDy8RUbZ/pSpG68YHmhk5ROKNIoi2En9bJ8bTt3IhYi254RWiTclQmL7Awmrq+rZFOhZkJAHmQ== + dependencies: + estree-walker "^0.2.1" + minimatch "^3.0.2" + +rollup-pluginutils@^2.0.1, rollup-pluginutils@^2.8.2: + version "2.8.2" + resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" + integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== + dependencies: + estree-walker "^0.6.1" + +rollup@2.56.1: + version "2.56.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.56.1.tgz#f29dbc04a5d532dfa904f76b62395f359506211e" + integrity sha512-KkrsNjeiTfGJMUFBi/PNfj3fnt70akqdoNXOjlzwo98uA1qrlkmgt6SGaK5OwhyDYCVnJb6jb2Xa2wbI47P4Nw== + optionalDependencies: + fsevents "~2.3.2" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +safe-array-concat@^1.0.0, safe-array-concat@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c" + integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + has-symbols "^1.0.3" + isarray "^2.0.5" + +safe-identifier@^0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/safe-identifier/-/safe-identifier-0.4.2.tgz#cf6bfca31c2897c588092d1750d30ef501d59fcb" + integrity sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w== + +safe-regex-test@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-regex "^1.1.4" + +safe-regex@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-2.1.1.tgz#f7128f00d056e2fe5c11e81a1324dd974aadced2" + integrity sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A== + dependencies: + regexp-tree "~0.1.1" + +"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== + +saxes@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" + integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== + dependencies: + xmlchars "^2.2.0" + +"semver@2 || 3 || 4 || 5", semver@^5.5.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.1.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@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: + version "7.3.8" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== + dependencies: + lru-cache "^6.0.0" + +set-function-length@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed" + integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ== + dependencies: + define-data-property "^1.1.1" + get-intrinsic "^1.2.1" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + +set-function-name@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" + integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA== + dependencies: + define-data-property "^1.0.1" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.0" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== + 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 sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== + +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== + +shell-quote@^1.6.1: + version "1.7.4" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.4.tgz#33fe15dee71ab2a81fcbd3a52106c5cfb9fb75d8" + integrity sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw== + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +signal-exit@^3.0.2, signal-exit@^3.0.3: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== + dependencies: + is-arrayish "^0.3.1" + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +slash@^3.0.0: + 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" + +source-map-js@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e" + integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug== + +source-map-support@^0.5.6: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@0.6.*, 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.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 sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + +source-map@^0.7.3: + version "0.7.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== + +sourcemap-codec@^1.4.8: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + +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.12" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz#69077835abe2710b65f03969898b6637b505a779" + integrity sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +stack-utils@^2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" + integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== + dependencies: + escape-string-regexp "^2.0.0" + +string-hash@^1.1.0, string-hash@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" + integrity sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A== + +string-length@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" + integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== + dependencies: + char-regex "^1.0.2" + strip-ansi "^6.0.0" + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string.prototype.padend@^3.0.0: + version "3.1.4" + resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.1.4.tgz#2c43bb3a89eb54b6750de5942c123d6c98dd65b6" + integrity sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string.prototype.trim@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd" + integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + +string.prototype.trimend@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" + integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string.prototype.trimend@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e" + integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + +string.prototype.trimstart@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" + integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string.prototype.trimstart@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298" + integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + +strip-ansi@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-json-comments@^3.1.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-inject@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/style-inject/-/style-inject-0.3.0.tgz#d21c477affec91811cc82355832a700d22bf8dd3" + integrity sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw== + +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" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g== + +supports-color@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + integrity sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A== + dependencies: + has-flag "^1.0.0" + +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" + +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-hyperlinks@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz#3943544347c1ff90b15effb03fc14ae45ec10624" + integrity sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA== + dependencies: + has-flag "^4.0.0" + supports-color "^7.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +svg-country-flags@1.2.10: + version "1.2.10" + resolved "https://registry.yarnpkg.com/svg-country-flags/-/svg-country-flags-1.2.10.tgz#b1b94e9f08f065d7b3d0ff9ab359898edd4dd3b0" + integrity sha512-xrqwo0TYf/h2cfPvGpjdSuSguUbri4vNNizBnwzoZnX0xGo3O5nGJMlbYEp7NOYcnPGBm6LE2axqDWSB847bLw== + +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-tree@^3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + +table@^6.0.9: + version "6.8.1" + resolved "https://registry.yarnpkg.com/table/-/table-6.8.1.tgz#ea2b71359fe03b017a5fbc296204471158080bdf" + integrity sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA== + dependencies: + ajv "^8.0.1" + lodash.truncate "^4.4.2" + slice-ansi "^4.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + +tailwindcss@1.9.6: + version "1.9.6" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-1.9.6.tgz#0c5089911d24e1e98e592a31bfdb3d8f34ecf1a0" + integrity sha512-nY8WYM/RLPqGsPEGEV2z63riyQPcHYZUJpAwdyBzVpxQHOHqHE+F/fvbCeXhdF1+TA5l72vSkZrtYCB9hRcwkQ== + dependencies: + "@fullhuman/postcss-purgecss" "^2.1.2" + autoprefixer "^9.4.5" + browserslist "^4.12.0" + bytes "^3.0.0" + chalk "^3.0.0 || ^4.0.0" + color "^3.1.2" + detective "^5.2.0" + fs-extra "^8.0.0" + html-tags "^3.1.0" + lodash "^4.17.20" + node-emoji "^1.8.1" + normalize.css "^8.0.1" + object-hash "^2.0.3" + postcss "^7.0.11" + postcss-functions "^3.0.0" + postcss-js "^2.0.0" + postcss-nested "^4.1.1" + postcss-selector-parser "^6.0.0" + postcss-value-parser "^4.1.0" + pretty-hrtime "^1.0.3" + reduce-css-calc "^2.1.6" + resolve "^1.14.2" + +terminal-link@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" + integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== + dependencies: + ansi-escapes "^4.2.1" + supports-hyperlinks "^2.0.0" + +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +throat@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375" + integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w== + +timsort@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" + integrity sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A== + +tmpl@1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" + integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toastify-js@1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/toastify-js/-/toastify-js-1.11.1.tgz#023a4ce64ecdead1d6d170072b62bd345088c427" + integrity sha512-O1UR06KEhFY9Vu2iKltgOE62+Vq/5iU7AOktouFkEegEisrqtNhEri9RpSd6u6wyPsd4Ae9RT1io3uwkMAlLVQ== + +tough-cookie@^4.0.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.2.tgz#e53e84b85f24e0b65dd526f46628db6c85f6b874" + integrity sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ== + dependencies: + psl "^1.1.33" + punycode "^2.1.1" + universalify "^0.2.0" + url-parse "^1.5.3" + +tr46@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" + integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== + dependencies: + punycode "^2.1.1" + +tsconfig-paths@^3.14.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" + integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.1" + minimist "^1.2.6" + strip-bom "^3.0.0" + +tslib@^1.8.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.3.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + +tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== + dependencies: + prelude-ls "~1.1.2" + +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +typed-array-buffer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" + integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + is-typed-array "^1.1.10" + +typed-array-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0" + integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + +typed-array-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" + integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + +typed-array-length@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" + integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + is-typed-array "^1.1.9" + +typedarray-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.3.5: + version "4.3.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4" + integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA== + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA== + +uniqs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + integrity sha512-mZdDpf3vBV5Efh29kMw5tXoup/buMgxLzOt/XKFKcVmi+15ManNQWr6HfZ2aiZTYlYixbdNJ0KFmIZIv52tHSQ== + +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@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" + integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== + +unquote@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" + integrity sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg== + +update-browserslist-db@^1.0.13: + version "1.0.13" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" + integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + +update-browserslist-db@^1.0.9: + version "1.0.10" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" + integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +url-parse@^1.5.3: + version "1.5.10" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" + integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + +util-deprecate@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +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" + +v8-compile-cache@^2.0.3: + version "2.3.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" + integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== + +v8-to-istanbul@^8.1.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz#77b752fd3975e31bbcef938f85e9bd1c7a8d60ed" + integrity sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + source-map "^0.7.3" + +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" + +vendors@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" + integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== + +vue-eslint-parser@^7.10.0: + version "7.11.0" + resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-7.11.0.tgz#214b5dea961007fcffb2ee65b8912307628d0daf" + integrity sha512-qh3VhDLeh773wjgNTl7ss0VejY9bMMa0GoDG2fQVyDzRFdiU3L7fw74tWZDHNQXdZqxO3EveQroa9ct39D2nqg== + dependencies: + debug "^4.1.1" + eslint-scope "^5.1.1" + eslint-visitor-keys "^1.1.0" + espree "^6.2.1" + esquery "^1.4.0" + lodash "^4.17.21" + semver "^6.3.0" + +vue-i18n@8.25.0: + version "8.25.0" + resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-8.25.0.tgz#1037d9295fa2845a230b771de473481edb2cfc4c" + integrity sha512-ynhcL+PmTxuuSE1T10htiSXzjBozxYIE3ffbM1RfgAkVbr/v1SP+9Mi/7/uv8ZVV1yGuKjFAYp9BXq+X7op6MQ== + +vue-router@3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.5.2.tgz#5f55e3f251970e36c3e8d88a7cd2d67a350ade5c" + integrity sha512-807gn82hTnjCYGrnF3eNmIw/dk7/GE4B5h69BlyCK9KHASwSloD1Sjcn06zg9fVG4fYH2DrsNBZkpLtb25WtaQ== + +vue-template-compiler@2.6.14: + version "2.6.14" + resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.14.tgz#a2f0e7d985670d42c9c9ee0d044fed7690f4f763" + integrity sha512-ODQS1SyMbjKoO1JBJZojSw6FE4qnh9rIpUZn2EUT86FKizx9uH5z6uXiIrm4/Nb/gwxTi/o17ZDEGWAXHvtC7g== + dependencies: + de-indent "^1.0.2" + he "^1.1.0" + +vue-template-es2015-compiler@^1.6.0, vue-template-es2015-compiler@^1.9.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825" + integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw== + +vue@2.6.14: + version "2.6.14" + resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.14.tgz#e51aa5250250d569a3fbad3a8a5a687d6036e235" + integrity sha512-x2284lgYvjOMj3Za7kqzRcUSxBboHqtgRE2zlos1qWaOye5yUmHn42LB1250NJBLRwEcdrB0JRwyPTEPhfQjiQ== + +vuex@3.6.2: + version "3.6.2" + resolved "https://registry.yarnpkg.com/vuex/-/vuex-3.6.2.tgz#236bc086a870c3ae79946f107f16de59d5895e71" + integrity sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw== + +w3c-hr-time@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== + dependencies: + browser-process-hrtime "^1.0.0" + +w3c-xmlserializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" + integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== + dependencies: + xml-name-validator "^3.0.0" + +walker@^1.0.7: + version "1.0.8" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" + integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== + dependencies: + makeerror "1.0.12" + +webidl-conversions@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" + integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== + +webidl-conversions@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" + integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== + +whatwg-encoding@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + +whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url@^8.0.0, whatwg-url@^8.5.0: + version "8.7.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" + integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== + dependencies: + lodash "^4.7.0" + tr46 "^2.1.0" + webidl-conversions "^6.1.0" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-typed-array@^1.1.11, which-typed-array@^1.1.13: + version "1.1.13" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" + integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.4" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + +which@^1.2.9: + 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" + +word-wrap@^1.2.3, 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@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +ws@^7.4.6: + version "7.5.9" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" + integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + +xmlchars@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +xtend@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@^1.10.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs@^16.2.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..bf7f075 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,2315 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"7zip-bin@~5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-5.2.0.tgz#7a03314684dd6572b7dfa89e68ce31d60286854d" + integrity sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A== + +"@babel/generator@7.18.2": + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.2.tgz#33873d6f89b21efe2da63fe554460f3df1c5880d" + integrity sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw== + dependencies: + "@babel/types" "^7.18.2" + "@jridgewell/gen-mapping" "^0.3.0" + jsesc "^2.5.1" + +"@babel/helper-string-parser@^7.18.10": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" + integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== + +"@babel/helper-string-parser@^7.19.4": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" + integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== + +"@babel/helper-validator-identifier@^7.18.6": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== + +"@babel/helper-validator-identifier@^7.19.1": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" + integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== + +"@babel/parser@7.18.4": + version "7.18.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.4.tgz#6774231779dd700e0af29f6ad8d479582d7ce5ef" + integrity sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow== + +"@babel/types@7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.0.tgz#75f21d73d73dc0351f3368d28db73465f4814600" + integrity sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA== + dependencies: + "@babel/helper-string-parser" "^7.18.10" + "@babel/helper-validator-identifier" "^7.18.6" + to-fast-properties "^2.0.0" + +"@babel/types@^7.18.2": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.5.tgz#e206ae370b5393d94dfd1d04cd687cace53efa84" + integrity sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg== + dependencies: + "@babel/helper-string-parser" "^7.19.4" + "@babel/helper-validator-identifier" "^7.19.1" + to-fast-properties "^2.0.0" + +"@develar/schema-utils@~2.6.5": + version "2.6.5" + resolved "https://registry.yarnpkg.com/@develar/schema-utils/-/schema-utils-2.6.5.tgz#3ece22c5838402419a6e0425f85742b961d9b6c6" + integrity sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig== + dependencies: + ajv "^6.12.0" + ajv-keywords "^3.4.1" + +"@electron/asar@^3.2.1": + version "3.2.8" + resolved "https://registry.yarnpkg.com/@electron/asar/-/asar-3.2.8.tgz#2ea722f3452583dbd4ffdcc4b4f5dc903f1d8178" + integrity sha512-cmskk5M06ewHMZAplSiF4AlME3IrnnZhKnWbtwKVLRkdJkKyUVjMLhDIiPIx/+6zQWVlKX/LtmK9xDme7540Sg== + dependencies: + commander "^5.0.0" + glob "^7.1.6" + minimatch "^3.0.4" + +"@electron/get@^2.0.0": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@electron/get/-/get-2.0.2.tgz#ae2a967b22075e9c25aaf00d5941cd79c21efd7e" + integrity sha512-eFZVFoRXb3GFGd7Ak7W4+6jBl9wBtiZ4AaYOse97ej6mKj5tkyO0dUnUChs1IhJZtx1BENo4/p4WUTXpi6vT+g== + dependencies: + debug "^4.1.1" + env-paths "^2.2.0" + fs-extra "^8.1.0" + got "^11.8.5" + progress "^2.0.3" + semver "^6.2.0" + sumchecker "^3.0.1" + optionalDependencies: + global-agent "^3.0.0" + +"@electron/notarize@2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@electron/notarize/-/notarize-2.1.0.tgz#76aaec10c8687225e8d0a427cc9df67611c46ff3" + integrity sha512-Q02xem1D0sg4v437xHgmBLxI2iz/fc0D4K7fiVWHa/AnW8o7D751xyKNXgziA6HrTOme9ul1JfWN5ark8WH1xA== + dependencies: + debug "^4.1.1" + fs-extra "^9.0.1" + promise-retry "^2.0.1" + +"@electron/osx-sign@1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@electron/osx-sign/-/osx-sign-1.0.5.tgz#0af7149f2fce44d1a8215660fd25a9fb610454d8" + integrity sha512-k9ZzUQtamSoweGQDV2jILiRIHUu7lYlJ3c6IEmjv1hC17rclE+eb9U+f6UFlOOETo0JzY1HNlXy4YOlCvl+Lww== + dependencies: + compare-version "^0.1.2" + debug "^4.3.4" + fs-extra "^10.0.0" + isbinaryfile "^4.0.8" + minimist "^1.2.6" + plist "^3.0.5" + +"@electron/universal@1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@electron/universal/-/universal-1.4.1.tgz#3fbda2a5ed9ff9f3304c8e8316b94c1e3a7b3785" + integrity sha512-lE/U3UNw1YHuowNbTmKNs9UlS3En3cPgwM5MI+agIgr/B1hSze9NdOP0qn7boZaI9Lph8IDv3/24g9IxnJP7aQ== + dependencies: + "@electron/asar" "^3.2.1" + "@malept/cross-spawn-promise" "^1.1.0" + debug "^4.3.1" + dir-compare "^3.0.0" + fs-extra "^9.0.1" + minimatch "^3.0.4" + plist "^3.0.4" + +"@jridgewell/gen-mapping@^0.3.0": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" + integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== + +"@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + +"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== + +"@jridgewell/trace-mapping@^0.3.9": + version "0.3.17" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" + integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== + dependencies: + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" + +"@malept/cross-spawn-promise@^1.1.0": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz#504af200af6b98e198bce768bc1730c6936ae01d" + integrity sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ== + dependencies: + cross-spawn "^7.0.1" + +"@malept/flatpak-bundler@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz#e8a32c30a95d20c2b1bb635cc580981a06389858" + integrity sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q== + dependencies: + debug "^4.1.1" + fs-extra "^9.0.0" + lodash "^4.17.15" + tmp-promise "^3.0.2" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@sindresorhus/is@^4.0.0": + version "4.6.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" + integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== + +"@szmarczak/http-timer@^4.0.5": + version "4.0.6" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" + integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== + dependencies: + defer-to-connect "^2.0.0" + +"@tootallnate/once@2": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" + integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== + +"@types/cacheable-request@^6.0.1": + version "6.0.3" + resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.3.tgz#a430b3260466ca7b5ca5bfd735693b36e7a9d183" + integrity sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw== + dependencies: + "@types/http-cache-semantics" "*" + "@types/keyv" "^3.1.4" + "@types/node" "*" + "@types/responselike" "^1.0.0" + +"@types/debug@^4.1.6": + version "4.1.7" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.7.tgz#7cc0ea761509124709b8b2d1090d8f6c17aadb82" + integrity sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg== + dependencies: + "@types/ms" "*" + +"@types/fs-extra@9.0.13", "@types/fs-extra@^9.0.11": + version "9.0.13" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45" + integrity sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA== + dependencies: + "@types/node" "*" + +"@types/http-cache-semantics@*": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" + integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== + +"@types/keyv@^3.1.4": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6" + integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== + dependencies: + "@types/node" "*" + +"@types/ms@*": + version "0.7.31" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" + integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== + +"@types/node@*": + version "18.11.15" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.15.tgz#de0e1fbd2b22b962d45971431e2ae696643d3f5d" + integrity sha512-VkhBbVo2+2oozlkdHXLrb3zjsRkpdnaU2bXmX8Wgle3PUi569eLRaHGlgETQHR7lLL1w7GiG3h9SnePhxNDecw== + +"@types/node@^18.11.18": + version "18.18.13" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.18.13.tgz#ae0f76c0bfe79d8fad0f910b78ae3e59b333c6e8" + integrity sha512-vXYZGRrSCreZmq1rEjMRLXJhiy8MrIeVasx+PCVlP414N7CJLHnMf+juVvjdprHyH+XRy3zKZLHeNueOpJCn0g== + dependencies: + undici-types "~5.26.4" + +"@types/plist@^3.0.1": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/plist/-/plist-3.0.2.tgz#61b3727bba0f5c462fe333542534a0c3e19ccb01" + integrity sha512-ULqvZNGMv0zRFvqn8/4LSPtnmN4MfhlPNtJCTpKuIIxGVGZ2rYWzFXrvEBoh9CVyqSE7D6YFRJ1hydLHI6kbWw== + dependencies: + "@types/node" "*" + xmlbuilder ">=11.0.1" + +"@types/responselike@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" + integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== + dependencies: + "@types/node" "*" + +"@types/verror@^1.10.3": + version "1.10.6" + resolved "https://registry.yarnpkg.com/@types/verror/-/verror-1.10.6.tgz#3e600c62d210c5826460858f84bcbb65805460bb" + integrity sha512-NNm+gdePAX1VGvPcGZCDKQZKYSiAWigKhKaz5KF94hG6f2s8de9Ow5+7AbXoeKxL8gavZfk4UquSAygOF2duEQ== + +"@types/yauzl@^2.9.1": + version "2.10.0" + resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.0.tgz#b3248295276cf8c6f153ebe6a9aba0c988cb2599" + integrity sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw== + dependencies: + "@types/node" "*" + +"@xmldom/xmldom@^0.8.8": + version "0.8.10" + resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.8.10.tgz#a1337ca426aa61cef9fe15b5b28e340a72f6fa99" + integrity sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw== + +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +ajv-keywords@^3.4.1: + 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.10.0, ajv@^6.12.0: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^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" + +app-builder-bin@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-4.0.0.tgz#1df8e654bd1395e4a319d82545c98667d7eed2f0" + integrity sha512-xwdG0FJPQMe0M0UA4Tz0zEB8rBJTRA5a476ZawAqiBkMv16GRK5xpXThOjMaEOFnZ6zabejjG4J3da0SXG63KA== + +app-builder-lib@24.9.1: + version "24.9.1" + resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-24.9.1.tgz#bf3568529298b4de8595ed1acbb351fe27db5ba4" + integrity sha512-Q1nYxZcio4r+W72cnIRVYofEAyjBd3mG47o+zms8HlD51zWtA/YxJb01Jei5F+jkWhge/PTQK+uldsPh6d0/4g== + dependencies: + "7zip-bin" "~5.2.0" + "@develar/schema-utils" "~2.6.5" + "@electron/notarize" "2.1.0" + "@electron/osx-sign" "1.0.5" + "@electron/universal" "1.4.1" + "@malept/flatpak-bundler" "^0.4.0" + "@types/fs-extra" "9.0.13" + async-exit-hook "^2.0.1" + bluebird-lst "^1.0.9" + builder-util "24.8.1" + builder-util-runtime "9.2.3" + chromium-pickle-js "^0.2.0" + debug "^4.3.4" + ejs "^3.1.8" + electron-publish "24.8.1" + form-data "^4.0.0" + fs-extra "^10.1.0" + hosted-git-info "^4.1.0" + is-ci "^3.0.0" + isbinaryfile "^5.0.0" + js-yaml "^4.1.0" + lazy-val "^1.0.5" + minimatch "^5.1.1" + read-config-file "6.3.2" + sanitize-filename "^1.6.3" + semver "^7.3.8" + tar "^6.1.12" + temp-file "^3.4.0" + +app-root-path@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-1.4.0.tgz#6335d865c9640d0fad99004e5a79232238e92dfa" + integrity sha512-rHo0+00Cq451AYsCP1jaDGlrI7FD6nhFs3CC9Tf6SFKiHud3Y3rj6dI/kXJfft8J6kVgWvJLmqQd5ta2+U8O4Q== + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +array-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== + +assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== + +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-exit-hook@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/async-exit-hook/-/async-exit-hook-2.0.1.tgz#8bd8b024b0ec9b1c01cccb9af9db29bd717dfaf3" + integrity sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw== + +async@^3.2.3: + version "3.2.4" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" + integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +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== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-js@^1.3.1, base64-js@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +bl@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +bluebird-lst@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/bluebird-lst/-/bluebird-lst-1.0.9.tgz#a64a0e4365658b9ab5fe875eb9dfb694189bb41c" + integrity sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw== + dependencies: + bluebird "^3.5.5" + +bluebird@^3.5.5: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +boolean@^3.0.1: + version "3.2.0" + resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.2.0.tgz#9e5294af4e98314494cbb17979fa54ca159f116b" + integrity sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== + +buffer-equal@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.1.tgz#2f7651be5b1b3f057fcd6e7ee16cf34767077d90" + integrity sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg== + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer@^5.1.0, buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +builder-util-runtime@9.2.3: + version "9.2.3" + resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-9.2.3.tgz#0a82c7aca8eadef46d67b353c638f052c206b83c" + integrity sha512-FGhkqXdFFZ5dNC4C+yuQB9ak311rpGAw+/ASz8ZdxwODCv1GGMWgLDeofRkdi0F3VCHQEWy/aXcJQozx2nOPiw== + dependencies: + debug "^4.3.4" + sax "^1.2.4" + +builder-util@24.8.1: + version "24.8.1" + resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-24.8.1.tgz#594d45b0c86d1d17f5c7bebbb77405080b2571c2" + integrity sha512-ibmQ4BnnqCnJTNrdmdNlnhF48kfqhNzSeqFMXHLIl+o9/yhn6QfOaVrloZ9YUu3m0k3rexvlT5wcki6LWpjTZw== + dependencies: + "7zip-bin" "~5.2.0" + "@types/debug" "^4.1.6" + app-builder-bin "4.0.0" + bluebird-lst "^1.0.9" + builder-util-runtime "9.2.3" + chalk "^4.1.2" + cross-spawn "^7.0.3" + debug "^4.3.4" + fs-extra "^10.1.0" + http-proxy-agent "^5.0.0" + https-proxy-agent "^5.0.1" + is-ci "^3.0.0" + js-yaml "^4.1.0" + source-map-support "^0.5.19" + stat-mode "^1.0.0" + temp-file "^3.4.0" + +cacheable-lookup@^5.0.3: + version "5.0.4" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" + integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== + +cacheable-request@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.2.tgz#ea0d0b889364a25854757301ca12b2da77f91d27" + integrity sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^4.0.0" + lowercase-keys "^2.0.0" + normalize-url "^6.0.1" + responselike "^2.0.0" + +chalk@^4.0.2, chalk@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chownr@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + +chromium-pickle-js@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz#04a106672c18b085ab774d983dfa3ea138f22205" + integrity sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw== + +ci-info@^3.2.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.7.0.tgz#6d01b3696c59915b6ce057e4aa4adfc2fa25f5ef" + integrity sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog== + +cli-truncate@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" + integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== + dependencies: + slice-ansi "^3.0.0" + string-width "^4.2.0" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + +clone-response@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3" + integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA== + dependencies: + mimic-response "^1.0.0" + +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.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" + integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== + +compare-version@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/compare-version/-/compare-version-0.1.2.tgz#0162ec2d9351f5ddd59a9202cba935366a725080" + integrity sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +config-file-ts@^0.2.4: + version "0.2.4" + resolved "https://registry.yarnpkg.com/config-file-ts/-/config-file-ts-0.2.4.tgz#6c0741fbe118a7cf786c65f139030f0448a2cc99" + integrity sha512-cKSW0BfrSaAUnxpgvpXPLaaW/umg4bqg4k3GO1JqlRfpx+d5W0GDXznCMkWotJQek5Mmz1MJVChQnz3IVaeMZQ== + dependencies: + glob "^7.1.6" + typescript "^4.0.2" + +core-util-is@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +crc@^3.8.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz#ad60269c2c856f8c299e2c4cc0de4556914056c6" + integrity sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ== + dependencies: + buffer "^5.1.0" + +cross-spawn@^7.0.1, 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" + +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +defer-to-connect@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" + integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== + +define-properties@^1.1.3: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" + integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== + dependencies: + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +detect-libc@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.2.tgz#8ccf2ba9315350e1241b88d0ac3b0e1fbd99605d" + integrity sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw== + +detect-node@^2.0.4: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== + +dir-compare@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/dir-compare/-/dir-compare-3.3.0.tgz#2c749f973b5c4b5d087f11edaae730db31788416" + integrity sha512-J7/et3WlGUCxjdnD3HAAzQ6nsnc0WL6DD7WcwJb7c39iH1+AWfg+9OqzJNaI6PkBwBvm1mhZNL9iY/nRiZXlPg== + dependencies: + buffer-equal "^1.0.0" + minimatch "^3.0.4" + +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" + +dmg-builder@24.9.1: + version "24.9.1" + resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-24.9.1.tgz#04bf6c0dcd235f6214511f2358a78ed2b9379421" + integrity sha512-huC+O6hvHd24Ubj3cy2GMiGLe2xGFKN3klqVMLAdcbB6SWMd1yPSdZvV8W1O01ICzCCRlZDHiv4VrNUgnPUfbQ== + dependencies: + app-builder-lib "24.9.1" + builder-util "24.8.1" + builder-util-runtime "9.2.3" + fs-extra "^10.1.0" + iconv-lite "^0.6.2" + js-yaml "^4.1.0" + optionalDependencies: + dmg-license "^1.0.11" + +dmg-license@^1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/dmg-license/-/dmg-license-1.0.11.tgz#7b3bc3745d1b52be7506b4ee80cb61df6e4cd79a" + integrity sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q== + dependencies: + "@types/plist" "^3.0.1" + "@types/verror" "^1.10.3" + ajv "^6.10.0" + crc "^3.8.0" + iconv-corefoundation "^1.1.7" + plist "^3.0.4" + smart-buffer "^4.0.2" + verror "^1.10.0" + +dotenv-expand@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" + integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== + +dotenv@^9.0.2: + version "9.0.2" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-9.0.2.tgz#dacc20160935a37dea6364aa1bef819fb9b6ab05" + integrity sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg== + +ejs@^3.1.8: + version "3.1.9" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.9.tgz#03c9e8777fe12686a9effcef22303ca3d8eeb361" + integrity sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ== + dependencies: + jake "^10.8.5" + +electron-builder@^24.9.1: + version "24.9.1" + resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-24.9.1.tgz#4aee03947963b829a7f48a850fe02c219311ef63" + integrity sha512-v7BuakDuY6sKMUYM8mfQGrwyjBpZ/ObaqnenU0H+igEL10nc6ht049rsCw2HghRBdEwJxGIBuzs3jbEhNaMDmg== + dependencies: + app-builder-lib "24.9.1" + builder-util "24.8.1" + builder-util-runtime "9.2.3" + chalk "^4.1.2" + dmg-builder "24.9.1" + fs-extra "^10.1.0" + is-ci "^3.0.0" + lazy-val "^1.0.5" + read-config-file "6.3.2" + simple-update-notifier "2.0.0" + yargs "^17.6.2" + +electron-context-menu@^3.6.1: + version "3.6.1" + resolved "https://registry.yarnpkg.com/electron-context-menu/-/electron-context-menu-3.6.1.tgz#42f117e15309687b22283e6f8f7a0d95a19afe84" + integrity sha512-lcpO6tzzKUROeirhzBjdBWNqayEThmdW+2I2s6H6QMrwqTVyT3EK47jW3Nxm60KTxl5/bWfEoIruoUNn57/QkQ== + dependencies: + cli-truncate "^2.1.0" + electron-dl "^3.2.1" + electron-is-dev "^2.0.0" + +electron-dl@^3.2.1: + version "3.5.0" + resolved "https://registry.yarnpkg.com/electron-dl/-/electron-dl-3.5.0.tgz#7a80bf13f168f7e5204774eee89dbc7c86de957b" + integrity sha512-Oj+VSuScVx8hEKM2HEvTQswTX6G3MLh7UoAz/oZuvKyNDfudNi1zY6PK/UnFoK1nCl9DF6k+3PFwElKbtZlDig== + dependencies: + ext-name "^5.0.0" + pupa "^2.0.1" + unused-filename "^2.1.0" + +electron-is-dev@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/electron-is-dev/-/electron-is-dev-2.0.0.tgz#833487a069b8dad21425c67a19847d9064ab19bd" + integrity sha512-3X99K852Yoqu9AcW50qz3ibYBWY79/pBhlMCab8ToEWS48R0T9tyxRiQhwylE7zQdXrMnx2JKqUJyMPmt5FBqA== + +electron-publish@24.8.1: + version "24.8.1" + resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-24.8.1.tgz#4216740372bf4297a429543402a1a15ce8c3560b" + integrity sha512-IFNXkdxMVzUdweoLJNXSupXkqnvgbrn3J4vognuOY06LaS/m0xvfFYIf+o1CM8if6DuWYWoQFKPcWZt/FUjZPw== + dependencies: + "@types/fs-extra" "^9.0.11" + builder-util "24.8.1" + builder-util-runtime "9.2.3" + chalk "^4.1.2" + fs-extra "^10.1.0" + lazy-val "^1.0.5" + mime "^2.5.2" + +electron-window-state-manager@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/electron-window-state-manager/-/electron-window-state-manager-0.3.2.tgz#a552ea35470297c999c744d81abb2a8c8a51770e" + integrity sha512-66YG0zE/BqKBNO6vzJbIe5DzWYxWFU0ZjP1VGbfEXI1quwgCGPMCXJ3xH66kxKsNcGW703t5GPthGqxoTupu6Q== + dependencies: + app-root-path "^1.3.0" + fs-jetpack "^0.9.2" + +electron@^27.1.2: + version "27.1.2" + resolved "https://registry.yarnpkg.com/electron/-/electron-27.1.2.tgz#d3074c91cce94c1e19b5904b1cdf78c830f2558d" + integrity sha512-Dy6BUuGLiIJv+zfsXwr78TV2TNppi24rXF4PIIS+OjDblEKdkI9r1iM8JUd3/x3sbGUy5mdLMSPhvmu//IhkgA== + dependencies: + "@electron/get" "^2.0.0" + "@types/node" "^18.11.18" + extract-zip "^2.0.1" + +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== + +end-of-stream@^1.1.0, end-of-stream@^1.4.1: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +env-paths@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + +err-code@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" + integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== + +es6-error@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" + integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== + +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-goat@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" + integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +expand-template@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" + integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== + +ext-list@^2.0.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/ext-list/-/ext-list-2.2.2.tgz#0b98e64ed82f5acf0f2931babf69212ef52ddd37" + integrity sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA== + dependencies: + mime-db "^1.28.0" + +ext-name@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ext-name/-/ext-name-5.0.0.tgz#70781981d183ee15d13993c8822045c506c8f0a6" + integrity sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ== + dependencies: + ext-list "^2.0.0" + sort-keys-length "^1.0.0" + +extract-zip@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" + integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== + dependencies: + debug "^4.1.1" + get-stream "^5.1.0" + yauzl "^2.10.0" + optionalDependencies: + "@types/yauzl" "^2.9.1" + +extsprintf@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" + integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== + +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.2.9: + version "3.2.12" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" + integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fastq@^1.6.0: + version "1.14.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.14.0.tgz#107f69d7295b11e0fccc264e1fc6389f623731ce" + integrity sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg== + dependencies: + reusify "^1.0.4" + +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== + dependencies: + pend "~1.2.0" + +filelist@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" + integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== + dependencies: + minimatch "^5.0.1" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +from2@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g== + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + +fs-extra@^10.0.0, fs-extra@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" + integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +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.0, fs-extra@^9.0.1, fs-extra@^9.1.0: + 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-jetpack@^0.9.2: + version "0.9.2" + resolved "https://registry.yarnpkg.com/fs-jetpack/-/fs-jetpack-0.9.2.tgz#93b414dbd07801863d64c81a76adc03d850c9b56" + integrity sha512-bBv1u0/xOzvfYMhk6yCCaeaZWZbfkt8BIt8icbU0wSheU5bxg8OVpn3vY8TzLMkXeIm6f1q1H3b4uvgWqSVxsQ== + dependencies: + minimatch "^3.0.2" + mkdirp "^0.5.1" + q "^1.0.1" + rimraf "^2.2.8" + +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 sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +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== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" + integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.3" + +get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +github-from-package@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" + integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== + +glob-parent@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob@^7.1.3, glob@^7.1.6: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-agent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-3.0.0.tgz#ae7cd31bd3583b93c5a16437a1afe27cc33a1ab6" + integrity sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q== + dependencies: + boolean "^3.0.1" + es6-error "^4.1.1" + matcher "^3.0.0" + roarr "^2.15.3" + semver "^7.3.2" + serialize-error "^7.0.1" + +globalthis@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== + dependencies: + define-properties "^1.1.3" + +globby@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +got@^11.8.5: + version "11.8.6" + resolved "https://registry.yarnpkg.com/got/-/got-11.8.6.tgz#276e827ead8772eddbcfc97170590b841823233a" + integrity sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g== + dependencies: + "@sindresorhus/is" "^4.0.0" + "@szmarczak/http-timer" "^4.0.5" + "@types/cacheable-request" "^6.0.1" + "@types/responselike" "^1.0.0" + cacheable-lookup "^5.0.3" + cacheable-request "^7.0.2" + decompress-response "^6.0.0" + http2-wrapper "^1.0.0-beta.5.2" + lowercase-keys "^2.0.0" + p-cancelable "^2.0.0" + responselike "^2.0.0" + +graceful-fs@^4.1.6, graceful-fs@^4.2.0: + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + +has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has@^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" + +hosted-git-info@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" + integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== + dependencies: + lru-cache "^6.0.0" + +http-cache-semantics@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + +http-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" + integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== + dependencies: + "@tootallnate/once" "2" + agent-base "6" + debug "4" + +http2-wrapper@^1.0.0-beta.5.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" + integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== + dependencies: + quick-lru "^5.1.1" + resolve-alpn "^1.0.0" + +https-proxy-agent@^5.0.0, https-proxy-agent@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + +iconv-corefoundation@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz#31065e6ab2c9272154c8b0821151e2c88f1b002a" + integrity sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ== + dependencies: + cli-truncate "^2.1.0" + node-addon-api "^1.6.3" + +iconv-lite@^0.6.2: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore@^5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.1.tgz#c2b1f76cb999ede1502f3a226a9310fdfe88d46c" + integrity sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.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== + +ini@~1.3.0: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +into-stream@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-6.0.0.tgz#4bfc1244c0128224e18b8870e85b2de8e66c6702" + integrity sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA== + dependencies: + from2 "^2.3.0" + p-is-promise "^3.0.0" + +is-ci@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" + integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== + dependencies: + ci-info "^3.2.0" + +is-core-module@2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" + integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== + dependencies: + has "^1.0.3" + +is-core-module@^2.9.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" + integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== + dependencies: + has "^1.0.3" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-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-plain-obj@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isbinaryfile@^4.0.8: + version "4.0.10" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.10.tgz#0c5b5e30c2557a2f06febd37b7322946aaee42b3" + integrity sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw== + +isbinaryfile@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-5.0.0.tgz#034b7e54989dab8986598cbcea41f66663c65234" + integrity sha512-UDdnyGvMajJUWCkib7Cei/dvyJrrvo4FIrsvSFWdPpXSUorzXrDJ0S+X5Q4ZlasfPjca4yqCNNsjbCeiy8FFeg== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +jake@^10.8.5: + version "10.8.5" + resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.5.tgz#f2183d2c59382cb274226034543b9c03b8164c46" + integrity sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw== + dependencies: + async "^3.2.3" + chalk "^4.0.2" + filelist "^1.0.1" + minimatch "^3.0.4" + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-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-stringify-safe@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + +json5@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" + integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== + 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" + +keyv@^4.0.0: + version "4.5.2" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.2.tgz#0e310ce73bf7851ec702f2eaf46ec4e3805cce56" + integrity sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g== + dependencies: + json-buffer "3.0.1" + +lazy-val@^1.0.4, lazy-val@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.5.tgz#6cf3b9f5bc31cee7ee3e369c0832b7583dcd923d" + integrity sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q== + +lodash@^4.17.15: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + +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" + +matcher@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/matcher/-/matcher-3.0.0.tgz#bd9060f4c5b70aa8041ccc6f80368760994f30ca" + integrity sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng== + dependencies: + escape-string-regexp "^4.0.0" + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +mime-db@1.52.0, mime-db@^1.28.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@^2.5.2: + version "2.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" + integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== + +mimic-response@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + +minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^5.0.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.1.tgz#6c9dffcf9927ff2a31e74b5af11adf8b9604b022" + integrity sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^5.1.1: + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + +minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.6: + version "1.2.7" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" + integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== + +minipass@^3.0.0: + version "3.3.6" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" + integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== + dependencies: + yallist "^4.0.0" + +minipass@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" + integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== + +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" + +mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== + +mkdirp@^0.5.1: + version "0.5.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + +mkdirp@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +modify-filename@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/modify-filename/-/modify-filename-1.1.0.tgz#9a2dec83806fbb2d975f22beec859ca26b393aa1" + integrity sha512-EickqnKq3kVVaZisYuCxhtKbZjInCuwgwZWyAmRIp1NTMhri7r3380/uqwrUHfaDiPzLVTuoNy4whX66bxPVog== + +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== + +multistream@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/multistream/-/multistream-4.1.0.tgz#7bf00dfd119556fbc153cff3de4c6d477909f5a8" + integrity sha512-J1XDiAmmNpRCBfIWJv+n0ymC4ABcf/Pl+5YvC5B/D2f/2+8PtHvCNxMPKiQcZyi922Hq69J2YOpb1pTywfifyw== + dependencies: + once "^1.4.0" + readable-stream "^3.6.0" + +napi-build-utils@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" + integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== + +node-abi@^3.3.0: + version "3.51.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.51.0.tgz#970bf595ef5a26a271307f8a4befa02823d4e87d" + integrity sha512-SQkEP4hmNWjlniS5zdnfIXTk1x7Ome85RDzHlTbBtzE97Gfwz/Ipw4v/Ryk20DWIy3yCNVLVlGKApCnmvYoJbA== + dependencies: + semver "^7.3.5" + +node-addon-api@^1.6.3: + version "1.7.2" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.2.tgz#3df30b95720b53c24e59948b49532b662444f54d" + integrity sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg== + +node-fetch@^2.6.6: + version "2.6.7" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + dependencies: + whatwg-url "^5.0.0" + +normalize-url@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" + integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== + +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== + +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 sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +p-cancelable@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" + integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== + +p-is-promise@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-3.0.0.tgz#58e78c7dfe2e163cf2a04ff869e7c1dba64a5971" + integrity sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== + +picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pkg-fetch@3.4.2: + version "3.4.2" + resolved "https://registry.yarnpkg.com/pkg-fetch/-/pkg-fetch-3.4.2.tgz#6f68ebc54842b73f8c0808959a9df3739dcb28b7" + integrity sha512-0+uijmzYcnhC0hStDjm/cl2VYdrmVVBpe7Q8k9YBojxmR5tG8mvR9/nooQq3QSXiQqORDVOTY3XqMEqJVIzkHA== + dependencies: + chalk "^4.1.2" + fs-extra "^9.1.0" + https-proxy-agent "^5.0.0" + node-fetch "^2.6.6" + progress "^2.0.3" + semver "^7.3.5" + tar-fs "^2.1.1" + yargs "^16.2.0" + +pkg@^5.8.1: + version "5.8.1" + resolved "https://registry.yarnpkg.com/pkg/-/pkg-5.8.1.tgz#862020f3c0575638ef7d1146f951a54d65ddc984" + integrity sha512-CjBWtFStCfIiT4Bde9QpJy0KeH19jCfwZRJqHFDFXfhUklCx8JoFmMj3wgnEYIwGmZVNkhsStPHEOnrtrQhEXA== + dependencies: + "@babel/generator" "7.18.2" + "@babel/parser" "7.18.4" + "@babel/types" "7.19.0" + chalk "^4.1.2" + fs-extra "^9.1.0" + globby "^11.1.0" + into-stream "^6.0.0" + is-core-module "2.9.0" + minimist "^1.2.6" + multistream "^4.1.0" + pkg-fetch "3.4.2" + prebuild-install "7.1.1" + resolve "^1.22.0" + stream-meter "^1.0.4" + +plist@^3.0.4: + version "3.0.6" + resolved "https://registry.yarnpkg.com/plist/-/plist-3.0.6.tgz#7cfb68a856a7834bca6dbfe3218eb9c7740145d3" + integrity sha512-WiIVYyrp8TD4w8yCvyeIr+lkmrGRd5u0VbRnU+tP/aRLxP/YadJUYOMZJ/6hIa3oUyVCsycXvtNRgd5XBJIbiA== + dependencies: + base64-js "^1.5.1" + xmlbuilder "^15.1.1" + +plist@^3.0.5: + version "3.1.0" + resolved "https://registry.yarnpkg.com/plist/-/plist-3.1.0.tgz#797a516a93e62f5bde55e0b9cc9c967f860893c9" + integrity sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ== + dependencies: + "@xmldom/xmldom" "^0.8.8" + base64-js "^1.5.1" + xmlbuilder "^15.1.1" + +prebuild-install@7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.1.tgz#de97d5b34a70a0c81334fd24641f2a1702352e45" + integrity sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw== + dependencies: + detect-libc "^2.0.0" + expand-template "^2.0.3" + github-from-package "0.0.0" + minimist "^1.2.3" + mkdirp-classic "^0.5.3" + napi-build-utils "^1.0.1" + node-abi "^3.3.0" + pump "^3.0.0" + rc "^1.2.7" + simple-get "^4.0.0" + tar-fs "^2.0.0" + tunnel-agent "^0.6.0" + +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.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +promise-retry@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" + integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== + dependencies: + err-code "^2.0.2" + retry "^0.12.0" + +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@^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== + +pupa@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62" + integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== + dependencies: + escape-goat "^2.0.0" + +q@^1.0.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + +rc@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +read-config-file@6.3.2: + version "6.3.2" + resolved "https://registry.yarnpkg.com/read-config-file/-/read-config-file-6.3.2.tgz#556891aa6ffabced916ed57457cb192e61880411" + integrity sha512-M80lpCjnE6Wt6zb98DoW8WHR09nzMSpu8XHtPkiTHrJ5Az9CybfeQhTJ8D7saeBHpGhLPIVyA8lcL6ZmdKwY6Q== + dependencies: + config-file-ts "^0.2.4" + dotenv "^9.0.2" + dotenv-expand "^5.1.0" + js-yaml "^4.1.0" + json5 "^2.2.0" + lazy-val "^1.0.4" + +readable-stream@^2.0.0, readable-stream@^2.1.4: + 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.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: + 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" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +resolve-alpn@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" + integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== + +resolve@^1.22.0: + version "1.22.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +responselike@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc" + integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw== + dependencies: + lowercase-keys "^2.0.0" + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^2.2.8: + 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.0: + 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" + +roarr@^2.15.3: + version "2.15.4" + resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.4.tgz#f5fe795b7b838ccfe35dc608e0282b9eba2e7afd" + integrity sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A== + dependencies: + boolean "^3.0.1" + detect-node "^2.0.4" + globalthis "^1.0.1" + json-stringify-safe "^5.0.1" + semver-compare "^1.0.0" + sprintf-js "^1.1.2" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +safe-buffer@^5.0.1, 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-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== + +"safer-buffer@>= 2.1.2 < 3.0.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sanitize-filename@^1.6.3: + version "1.6.3" + resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378" + integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg== + dependencies: + truncate-utf8-bytes "^1.0.0" + +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== + +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow== + +semver@^6.2.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.3.2, semver@^7.3.5: + version "7.3.8" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== + dependencies: + lru-cache "^6.0.0" + +semver@^7.3.8, semver@^7.5.3: + version "7.5.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + dependencies: + lru-cache "^6.0.0" + +serialize-error@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-7.0.1.tgz#f1360b0447f61ffb483ec4157c737fab7d778e18" + integrity sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw== + dependencies: + type-fest "^0.13.1" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + +simple-get@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" + integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== + dependencies: + decompress-response "^6.0.0" + once "^1.3.1" + simple-concat "^1.0.0" + +simple-update-notifier@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz#d70b92bdab7d6d90dfd73931195a30b6e3d7cebb" + integrity sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w== + dependencies: + semver "^7.5.3" + +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@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" + integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +smart-buffer@^4.0.2: + version "4.2.0" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" + integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== + +sort-keys-length@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sort-keys-length/-/sort-keys-length-1.0.1.tgz#9cb6f4f4e9e48155a6aa0671edd336ff1479a188" + integrity sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw== + dependencies: + sort-keys "^1.0.0" + +sort-keys@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" + integrity sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg== + dependencies: + is-plain-obj "^1.0.0" + +source-map-support@^0.5.19: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +sprintf-js@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" + integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== + +stat-mode@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-1.0.0.tgz#68b55cb61ea639ff57136f36b216a291800d1465" + integrity sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg== + +stream-meter@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/stream-meter/-/stream-meter-1.0.4.tgz#52af95aa5ea760a2491716704dbff90f73afdd1d" + integrity sha512-4sOEtrbgFotXwnEuzzsQBYEV1elAeFSO8rSGeTwabuX1RRn/kEq9JVH7I0MRBhKVRR0sJkr0M0QCH7yOLf9fhQ== + dependencies: + readable-stream "^2.1.4" + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string_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@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + +sumchecker@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-3.0.1.tgz#6377e996795abb0b6d348e9b3e1dfb24345a8e42" + integrity sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg== + dependencies: + debug "^4.1.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +tar-fs@^2.0.0, tar-fs@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" + integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== + dependencies: + chownr "^1.1.1" + mkdirp-classic "^0.5.2" + pump "^3.0.0" + tar-stream "^2.1.4" + +tar-stream@^2.1.4: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + dependencies: + bl "^4.0.3" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + +tar@^6.1.12: + version "6.2.0" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.0.tgz#b14ce49a79cb1cd23bc9b016302dea5474493f73" + integrity sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^5.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +temp-file@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/temp-file/-/temp-file-3.4.0.tgz#766ea28911c683996c248ef1a20eea04d51652c7" + integrity sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg== + dependencies: + async-exit-hook "^2.0.1" + fs-extra "^10.0.0" + +tmp-promise@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.3.tgz#60a1a1cc98c988674fcbfd23b6e3367bdeac4ce7" + integrity sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ== + dependencies: + tmp "^0.2.0" + +tmp@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" + integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== + dependencies: + rimraf "^3.0.0" + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +truncate-utf8-bytes@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" + integrity sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ== + dependencies: + utf8-byte-length "^1.0.1" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== + dependencies: + safe-buffer "^5.0.1" + +type-fest@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" + integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== + +typescript@^4.0.2: + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== + +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + +universalify@^0.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== + +unused-filename@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unused-filename/-/unused-filename-2.1.0.tgz#33719c4e8d9644f32d2dec1bc8525c6aaeb4ba51" + integrity sha512-BMiNwJbuWmqCpAM1FqxCTD7lXF97AvfQC8Kr/DIeA6VtvhJaMDupZ82+inbjl5yVP44PcxOuCSxye1QMS0wZyg== + dependencies: + modify-filename "^1.1.0" + path-exists "^4.0.0" + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +utf8-byte-length@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61" + integrity sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA== + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +verror@^1.10.0: + version "1.10.1" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.1.tgz#4bf09eeccf4563b109ed4b3d458380c972b0cdeb" + integrity sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg== + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +xmlbuilder@>=11.0.1, xmlbuilder@^15.1.1: + version "15.1.1" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz#9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5" + integrity sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs@^16.2.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yargs@^17.6.2, yargs@^17.7.2: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + +yauzl@^2.10.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0"