From ba0bcee2fec12054c8e4cc94139eddfcf5d1a3e4 Mon Sep 17 00:00:00 2001 From: PikachuEXE Date: Fri, 12 Aug 2022 11:41:32 +0800 Subject: [PATCH 001/414] Add Git Hooks to run lint (#1788) * + Add package @arkweid/lefthook * Add git hook pre-commit for linting changed files only * Update lefthook.yml about `glob` Co-authored-by: absidue <48293849+absidue@users.noreply.github.com> * Update lefthook.yml to use `yarn run` instead of `npx` Co-authored-by: absidue <48293849+absidue@users.noreply.github.com> Co-authored-by: absidue <48293849+absidue@users.noreply.github.com> --- lefthook.yml | 46 ++++++++++++++++++++++++++++++++++++++++++++++ package.json | 1 + yarn.lock | 5 +++++ 3 files changed, 52 insertions(+) create mode 100644 lefthook.yml diff --git a/lefthook.yml b/lefthook.yml new file mode 100644 index 000000000..a5332a08d --- /dev/null +++ b/lefthook.yml @@ -0,0 +1,46 @@ + +# Refer for explanation to following link: +# https://github.com/evilmartians/lefthook/blob/master/docs/full_guide.md +pre-commit: + parallel: true + commands: + lint: + # Only runs when any file with filename + # matching the glob is being committed + glob: "*.{js,vue}" + run: yarn run eslint --no-color {staged_files} + + + +# EXAMPLE USAGE +# +# pre-push: +# commands: +# packages-audit: +# tags: frontend security +# run: yarn audit +# gems-audit: +# tags: backend security +# run: bundle audit +# +# pre-commit: +# parallel: true +# commands: +# eslint: +# glob: "*.{js,ts}" +# run: yarn eslint {staged_files} +# rubocop: +# tags: backend style +# glob: "*.rb" +# exclude: "application.rb|routes.rb" +# run: bundle exec rubocop --force-exclusion {all_files} +# govet: +# tags: backend style +# files: git ls-files -m +# glob: "*.go" +# run: go vet {files} +# scripts: +# "hello.js": +# runner: node +# "any.go": +# runner: go run diff --git a/package.json b/package.json index e8861bcbe..c554ea786 100644 --- a/package.json +++ b/package.json @@ -84,6 +84,7 @@ "ytsr": "^3.8.0" }, "devDependencies": { + "@arkweid/lefthook": "^0.7.7", "@babel/core": "^7.17.10", "@babel/plugin-proposal-class-properties": "^7.16.7", "@babel/preset-env": "^7.17.10", diff --git a/yarn.lock b/yarn.lock index 6b46bc354..2ac81053c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15,6 +15,11 @@ "@jridgewell/gen-mapping" "^0.1.0" "@jridgewell/trace-mapping" "^0.3.9" +"@arkweid/lefthook@^0.7.7": + version "0.7.7" + resolved "https://registry.yarnpkg.com/@arkweid/lefthook/-/lefthook-0.7.7.tgz#12951b09b955d8054885ffe929aa07a49f39027c" + integrity sha512-Eq30OXKmjxIAIsTtbX2fcF3SNZIXS8yry1u8yty7PQFYRctx04rVlhOJCEB2UmfTh8T2vrOMC9IHHUvvo5zbaQ== + "@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" From 6ccc2b975f0d2a86dfd8e1dafc2a943df0ed032b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A2=D0=B5=D0=BC=D0=B0=D0=BA?= Date: Fri, 12 Aug 2022 08:07:25 +0000 Subject: [PATCH 002/414] Translated using Weblate (Russian) Currently translated at 100.0% (618 of 618 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/ru/ --- static/locales/ru.yaml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/static/locales/ru.yaml b/static/locales/ru.yaml index abc80354e..9830f651b 100644 --- a/static/locales/ru.yaml +++ b/static/locales/ru.yaml @@ -1,7 +1,7 @@ FreeTube: 'FreeTube' # Currently on Subscriptions, Playlists, and History 'This part of the app is not ready yet. Come back later when progress has been made.': >- - Эта часть приложения еще не готова. Вернитесь позже, когда будет достигнут прогресс. + Эта часть приложения ещё не готова. Вернитесь позже, когда выйдет новая версия. # Webkit Menu Bar File: 'Файл' @@ -15,8 +15,8 @@ Paste: 'Вставить' Delete: 'Удалить' Select all: 'Выбрать все' Reload: 'Перезагрузить' -Force Reload: 'Принудительная перезагрузка' -Toggle Developer Tools: 'Переключить инструменты разработчика' +Force Reload: 'Принудительно обновить' +Toggle Developer Tools: 'Отобразить инструменты для разработчиков' Actual size: 'Настоящий размер' Zoom in: 'Увеличить' Zoom out: 'Уменьшить' @@ -25,15 +25,15 @@ Window: 'Окно' Minimize: 'Свернуть' Close: 'Закрыть' Back: 'Назад' -Forward: 'Вперед' +Forward: 'Вперёд' # Search Bar -Search / Go to URL: 'Поиск/Перейти по адресу' +Search / Go to URL: 'Поиск / Перейти по адресу' # In Filter Button Search Filters: Search Filters: 'Фильтры поиска' Sort By: - Sort By: 'Сортировать по' + Sort By: 'Упорядочивать по' Most Relevant: 'Наиболее подходящим' Rating: 'Оценке' Upload Date: 'Дате загрузки' @@ -62,7 +62,7 @@ Search Filters: Fetching results. Please wait: 'Получение результатов. Подождите' Fetch more results: 'Получить больше результатов' # Sidebar - There are no more results for this search: Больше результатов по этому запросу нет + There are no more results for this search: Больше выдачи по этому запросу нет Subscriptions: # On Subscriptions Page Subscriptions: 'Подписки' @@ -158,9 +158,9 @@ Settings: Black: 'Чёрная' Dark: 'Тёмная' Light: 'Светлая' - Dracula: 'Dracula' + Dracula: 'Дракула' System Default: Системная - Catppuccin Mocha: Catppuccin Mocha + Catppuccin Mocha: Мокко с капучино Main Color Theme: Main Color Theme: 'Основной цвет темы' Red: 'Красный' From 75139ef6a377cf5c754ec9a07ebc80719efc6f80 Mon Sep 17 00:00:00 2001 From: PikachuEXE Date: Sat, 13 Aug 2022 06:44:39 +0800 Subject: [PATCH 003/414] ^ Update lefthook to latest version (#2472) --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index c554ea786..1e08f6bb5 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "ytsr": "^3.8.0" }, "devDependencies": { - "@arkweid/lefthook": "^0.7.7", + "@evilmartians/lefthook": "^1.0.5", "@babel/core": "^7.17.10", "@babel/plugin-proposal-class-properties": "^7.16.7", "@babel/preset-env": "^7.17.10", diff --git a/yarn.lock b/yarn.lock index 2ac81053c..b92474fe0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15,11 +15,6 @@ "@jridgewell/gen-mapping" "^0.1.0" "@jridgewell/trace-mapping" "^0.3.9" -"@arkweid/lefthook@^0.7.7": - version "0.7.7" - resolved "https://registry.yarnpkg.com/@arkweid/lefthook/-/lefthook-0.7.7.tgz#12951b09b955d8054885ffe929aa07a49f39027c" - integrity sha512-Eq30OXKmjxIAIsTtbX2fcF3SNZIXS8yry1u8yty7PQFYRctx04rVlhOJCEB2UmfTh8T2vrOMC9IHHUvvo5zbaQ== - "@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" @@ -973,6 +968,11 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" +"@evilmartians/lefthook@^1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@evilmartians/lefthook/-/lefthook-1.0.5.tgz#3698b302c2a7d80eb488f5d721eff8cd85d50e3b" + integrity sha512-DgRGCAeMPdtuCSYjm/E3xWCezL+wwDhIa4AFiwJWysIZOTZZh5KTIRPUUXWgGp+WL87sLjrQNecn3zidzo8iUA== + "@fortawesome/fontawesome-common-types@^0.2.36": version "0.2.36" resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.36.tgz#b44e52db3b6b20523e0c57ef8c42d315532cb903" From 3fb378a2bed206f8d67cde0923e59e9528d59646 Mon Sep 17 00:00:00 2001 From: Kyotaro Iijima Date: Sat, 13 Aug 2022 20:13:55 +0000 Subject: [PATCH 004/414] Translated using Weblate (Japanese) Currently translated at 100.0% (618 of 618 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/ja/ --- static/locales/ja.yaml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/static/locales/ja.yaml b/static/locales/ja.yaml index b4ccf5ce7..39eeceb78 100644 --- a/static/locales/ja.yaml +++ b/static/locales/ja.yaml @@ -149,6 +149,7 @@ Settings: Light: 'ライト' Dracula: 'ドラキュラ' System Default: 初期設定 + Catppuccin Mocha: Catppuccin Mocha Main Color Theme: Main Color Theme: 'テーマのメイン カラー' Red: '赤' @@ -174,6 +175,20 @@ Settings: Dracula Purple: 'ドラキュラ 紫' Dracula Red: 'ドラキュラ 赤' Dracula Yellow: 'ドラキュラ 黄' + Catppuccin Mocha Rosewater: Catppuccin Mocha Rosewater + Catppuccin Mocha Flamingo: Catppuccin Mocha Flamingo + Catppuccin Mocha Pink: Catppuccin Mocha Pink + Catppuccin Mocha Mauve: Catppuccin Mocha Mauve + Catppuccin Mocha Red: Catppuccin Mocha Red + Catppuccin Mocha Maroon: Catppuccin Mocha Maroon + Catppuccin Mocha Peach: Catppuccin Mocha Peach + Catppuccin Mocha Yellow: Catppuccin Mocha Yellow + Catppuccin Mocha Green: Catppuccin Mocha Green + Catppuccin Mocha Teal: Catppuccin Mocha Teal + Catppuccin Mocha Sky: Catppuccin Mocha Sky + Catppuccin Mocha Sapphire: Catppuccin Mocha Sapphire + Catppuccin Mocha Blue: Catppuccin Mocha Blue + Catppuccin Mocha Lavender: Catppuccin Mocha Lavender Secondary Color Theme: 'テーマのアクセント カラー' #* Main Color Theme UI Scale: UI 縮尺率 @@ -365,6 +380,9 @@ Settings: Ignore Unsupported Action Warnings: 未対応のアクションの警告を無視 External Player: 外部プレーヤー External Player Settings: 外部プレーヤーの設定 + Players: + None: + Name: なし Download Settings: Download Settings: ダウンロードの設定 Ask Download Path: ダウンロードパスの設定 From 33cf88ce31c02b485951b6fdcdaf33969db78cdc Mon Sep 17 00:00:00 2001 From: MarmadileManteater Date: Mon, 15 Aug 2022 19:14:59 -0400 Subject: [PATCH 005/414] Mapping the invidious API field to the view (#2483) Added a line to map the field "authorId" to "channelId" on the featured channels that come from the Invidious API because the Channel view expects related channels to have the property "channelId". This is related to FreeTubeApp#2481. --- src/renderer/views/Channel/Channel.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/renderer/views/Channel/Channel.js b/src/renderer/views/Channel/Channel.js index c8bc6e7f5..a614027a6 100644 --- a/src/renderer/views/Channel/Channel.js +++ b/src/renderer/views/Channel/Channel.js @@ -414,7 +414,7 @@ export default Vue.extend({ this.channelDescription = autolinker.link(response.description) this.relatedChannels = response.relatedChannels.map((channel) => { channel.authorThumbnails[channel.authorThumbnails.length - 1].url = channel.authorThumbnails[channel.authorThumbnails.length - 1].url.replace('https://yt3.ggpht.com', `${this.currentInvidiousInstance}/ggpht/`) - + channel.channelId = channel.authorId return channel }) this.latestVideos = response.latestVideos From 84b4d230ab45e9c42f7392642f85faae3556d6f8 Mon Sep 17 00:00:00 2001 From: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com> Date: Tue, 16 Aug 2022 05:45:39 -0400 Subject: [PATCH 006/414] fix unsubscribe from "All Channels" profile (#2451) --- src/renderer/views/Channel/Channel.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/renderer/views/Channel/Channel.js b/src/renderer/views/Channel/Channel.js index a614027a6..f4e40824b 100644 --- a/src/renderer/views/Channel/Channel.js +++ b/src/renderer/views/Channel/Channel.js @@ -613,7 +613,7 @@ export default Vue.extend({ message: this.$t('Channel.Channel has been removed from your subscriptions') }) - if (this.activeProfile === MAIN_PROFILE_ID) { + if (this.activeProfile._id === MAIN_PROFILE_ID) { // Check if a subscription exists in a different profile. // Remove from there as well. let duplicateSubscriptions = 0 @@ -658,7 +658,7 @@ export default Vue.extend({ message: this.$t('Channel.Added channel to your subscriptions') }) - if (this.activeProfile !== MAIN_PROFILE_ID) { + if (this.activeProfile._id !== MAIN_PROFILE_ID) { const index = primaryProfile.subscriptions.findIndex((channel) => { return channel.id === this.id }) From 4f9aa231cb7d8f8c9ffb980ee4f099203aa88de2 Mon Sep 17 00:00:00 2001 From: d <78005038+makerio90@users.noreply.github.com> Date: Tue, 16 Aug 2022 06:37:16 -0400 Subject: [PATCH 007/414] add playlist progress bar (#2402) * add playlist progress bar could use some css * theme and lint idk if those changes to the package.json or yarn.lock are ok but it wouldent lint without them :/ * hopfuly fix errors * why is this not working * this is anoying. * fix some other issues thx @PikachuEXE Co-authored-by: PikachuEXE * spelling mistake Co-authored-by: PikachuEXE * will not display if playlist is shuffled or reversed Co-authored-by: makerio90 Co-authored-by: PikachuEXE --- .../watch-video-playlist.css | 20 +++++++++++++++++++ .../watch-video-playlist.vue | 6 ++++++ 2 files changed, 26 insertions(+) diff --git a/src/renderer/components/watch-video-playlist/watch-video-playlist.css b/src/renderer/components/watch-video-playlist/watch-video-playlist.css index 364e807c3..6ce695d1a 100644 --- a/src/renderer/components/watch-video-playlist/watch-video-playlist.css +++ b/src/renderer/components/watch-video-playlist/watch-video-playlist.css @@ -15,6 +15,26 @@ color: var(--tertiary-text-color); } +.playlistProgressBar { + margin-left: 10px; + /* > In order to let ::-webkit-progress-value take effect, appearance needs to be set to none on the element. */ + /* https://developer.mozilla.org/en-US/docs/Web/CSS/::-webkit-progress-value */ + appearance: none; +} + +.playlistProgressBar::-webkit-progress-value { + /* Color for filled part */ + /* https://developer.mozilla.org/en-US/docs/Web/CSS/::-webkit-progress-value */ + /* background-color is required to be declared here to prevent color being green */ + background-color: var(--accent-color); +} + +.playlistProgressBar::-webkit-progress-bar { + /* Color for unfilled part */ + /* https://developer.mozilla.org/en-US/docs/Web/CSS/::-webkit-progress-bar */ + background-color: var(--secondary-text-color); +} + .playlistIcon { font-size: 20px; padding: 10px; diff --git a/src/renderer/components/watch-video-playlist/watch-video-playlist.vue b/src/renderer/components/watch-video-playlist/watch-video-playlist.vue index bbae3729f..a4f3a6970 100644 --- a/src/renderer/components/watch-video-playlist/watch-video-playlist.vue +++ b/src/renderer/components/watch-video-playlist/watch-video-playlist.vue @@ -22,6 +22,12 @@ class="playlistIndex" > - {{ currentVideoIndex }} / {{ playlistVideoCount }} +

Date: Tue, 16 Aug 2022 18:57:07 +0800 Subject: [PATCH 008/414] ! Fix Cmd+M unable to minimize window when viewing video (#2486) --- src/renderer/components/ft-video-player/ft-video-player.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/renderer/components/ft-video-player/ft-video-player.js b/src/renderer/components/ft-video-player/ft-video-player.js index 2152a343f..f15ebbd61 100644 --- a/src/renderer/components/ft-video-player/ft-video-player.js +++ b/src/renderer/components/ft-video-player/ft-video-player.js @@ -1807,8 +1807,10 @@ export default Vue.extend({ case 77: // M Key // Toggle Mute - event.preventDefault() - this.toggleMute() + if (!event.metaKey) { + event.preventDefault() + this.toggleMute() + } break case 67: // C Key From 83d54bec3997ebb14f73f9f2abd563463ac03b24 Mon Sep 17 00:00:00 2001 From: absidue <48293849+absidue@users.noreply.github.com> Date: Tue, 16 Aug 2022 13:44:57 +0200 Subject: [PATCH 009/414] Fix playlist page sizing and layout (#2484) --- src/renderer/views/Playlist/Playlist.css | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/renderer/views/Playlist/Playlist.css b/src/renderer/views/Playlist/Playlist.css index 691f29794..cb7555cd9 100644 --- a/src/renderer/views/Playlist/Playlist.css +++ b/src/renderer/views/Playlist/Playlist.css @@ -5,17 +5,18 @@ .playlistInfo { background-color: var(--card-bg-color); box-sizing: border-box; - height: calc(100vh - 96px); + height: calc(100vh - 132px); margin-right: 1em; overflow-y: auto; padding: 10px; position: sticky; - top: 78px; + top: 96px; width: 30%; } .playlistItems { - display: grid; + display: flex; + flex-direction: column; grid-gap: 10px; margin: 0; padding: 10px; From 3e07114d470a70becee01879a399c64f7ac9e93e Mon Sep 17 00:00:00 2001 From: absidue <48293849+absidue@users.noreply.github.com> Date: Tue, 16 Aug 2022 14:11:29 +0200 Subject: [PATCH 010/414] Add support for bold, italics and strikethrough formatting in comments (#2475) --- .../components/watch-video-comments/watch-video-comments.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/renderer/components/watch-video-comments/watch-video-comments.js b/src/renderer/components/watch-video-comments/watch-video-comments.js index 02228c79c..29cc2b1ee 100644 --- a/src/renderer/components/watch-video-comments/watch-video-comments.js +++ b/src/renderer/components/watch-video-comments/watch-video-comments.js @@ -268,7 +268,8 @@ export default Vue.extend({ if (this.hideCommentLikes) { comment.likes = null } - comment.text = autolinker.link(comment.text.replace(/(<(?!br>)([^>]+)>)/ig, '')) + // strip html tags but keep
, , , , , + comment.text = autolinker.link(comment.text.replace(/(<(?!br|\/?(?:b|s|i)>)([^>]+)>)/ig, '')) if (comment.customEmojis.length > 0) { comment.customEmojis.forEach(emoji => { comment.text = comment.text.replace(emoji.text, `${emoji.text.substring(2, emoji.text.length - 1)}`) From e22e39c38439b40fd7a869c367caf7bd115244c3 Mon Sep 17 00:00:00 2001 From: Riccardo Cazzin Date: Wed, 17 Aug 2022 14:42:17 +0000 Subject: [PATCH 011/414] Translated using Weblate (Italian) Currently translated at 100.0% (618 of 618 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/it/ --- static/locales/it.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/static/locales/it.yaml b/static/locales/it.yaml index 6a76b70d7..455107e10 100644 --- a/static/locales/it.yaml +++ b/static/locales/it.yaml @@ -504,7 +504,7 @@ Channel: Subscribers: 'Iscritti' Subscribe: 'Iscriviti' Unsubscribe: 'Disiscriviti' - Search Channel: 'Cerca un canale' + Search Channel: 'Cerca nel canale' Your search results have returned 0 results: 'La tua ricerca ha prodotto 0 risultati' Sort By: 'Ordina per' Videos: @@ -891,7 +891,7 @@ Hashtags have not yet been implemented, try again later: Gli hashtag non sono an Unknown YouTube url type, cannot be opened in app: Tipo di link YouTube sconosciuto, non può essere aperto nell'applicazione Search Bar: - Clear Input: Cancella l'ingresso + Clear Input: Cancella l'input External link opening has been disabled in the general settings: L'apertura dei collegamenti esterni è stata disabilitata nelle impostazioni generali Are you sure you want to open this link?: Sei sicuro di voler aprire questo link? From 617bd8af3261fa496019c5b985ef11fed3fa0476 Mon Sep 17 00:00:00 2001 From: Massimo Pissarello Date: Thu, 18 Aug 2022 06:20:31 +0000 Subject: [PATCH 012/414] Translated using Weblate (Italian) Currently translated at 100.0% (618 of 618 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/it/ --- static/locales/it.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/locales/it.yaml b/static/locales/it.yaml index 455107e10..d468e7194 100644 --- a/static/locales/it.yaml +++ b/static/locales/it.yaml @@ -891,7 +891,7 @@ Hashtags have not yet been implemented, try again later: Gli hashtag non sono an Unknown YouTube url type, cannot be opened in app: Tipo di link YouTube sconosciuto, non può essere aperto nell'applicazione Search Bar: - Clear Input: Cancella l'input + Clear Input: Pulisci ricerca External link opening has been disabled in the general settings: L'apertura dei collegamenti esterni è stata disabilitata nelle impostazioni generali Are you sure you want to open this link?: Sei sicuro di voler aprire questo link? From 70481b4880a71bed4dc28c6a6321fc7cf849f0cd Mon Sep 17 00:00:00 2001 From: Chance Ducharme Date: Thu, 18 Aug 2022 10:00:25 +0000 Subject: [PATCH 013/414] Translated using Weblate (French) Currently translated at 100.0% (618 of 618 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/fr/ --- static/locales/fr-FR.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/static/locales/fr-FR.yaml b/static/locales/fr-FR.yaml index d01577740..386c6c231 100644 --- a/static/locales/fr-FR.yaml +++ b/static/locales/fr-FR.yaml @@ -435,6 +435,9 @@ Settings: External Player Settings: Paramètres du lecteur externe Custom External Player Arguments: Arguments personnalisés du lecteur externe Custom External Player Executable: Exécutable de lecteur externe personnalisé + Players: + None: + Name: Aucun Download Settings: Download Settings: 'Paramètres de téléchargement' Ask Download Path: 'Demander l''emplacement de téléchargement' From bc3aaa4536e51436a8f0ff7fc43677e5cff05ec4 Mon Sep 17 00:00:00 2001 From: Massimo Pissarello Date: Sat, 20 Aug 2022 03:53:33 +0000 Subject: [PATCH 014/414] Translated using Weblate (Italian) Currently translated at 100.0% (618 of 618 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/it/ --- static/locales/it.yaml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/static/locales/it.yaml b/static/locales/it.yaml index d468e7194..616b20ea7 100644 --- a/static/locales/it.yaml +++ b/static/locales/it.yaml @@ -431,12 +431,12 @@ Settings: None: Name: Nessuno Download Settings: - Download Settings: Impostazioni di scaricamento - Ask Download Path: Chiedi il percorso di scaricamento - Choose Path: Scegli il percorso - Download Behavior: Comportamento degli scaricamenti + Download Settings: Impostazioni download + Ask Download Path: Chiedi il percorso di download + Choose Path: Scegli percorso + Download Behavior: Comportamento download Open in web browser: Apri nel browser web - Download in app: Scarica nell'app + Download in app: Download nell'app Parental Control Settings: Hide Unsubscribe Button: Nascondi il pulsante Annulla iscrizione Parental Control Settings: Impostazioni di controllo parentale @@ -481,7 +481,7 @@ About: FAQ: Domande frequenti FreeTube Wiki: Wiki FreeTube Help: Aiuto - Downloads / Changelog: Download e changelog + Downloads / Changelog: Download / Changelog GitHub releases: Versioni pubblicate su GitHub these people and projects: queste persone e questi progetti FreeTube is made possible by: FreeTube è reso possibile grazie a @@ -610,7 +610,7 @@ Video: Low: Basso audio only: solo audio video only: solo video - Download Video: Scarica il video + Download Video: Download video Copy Invidious Channel Link: Copia link del canale Invidious Open Channel in Invidious: Apri il canale con Invidious Copy YouTube Channel Link: Copia link del canale YouTube @@ -774,7 +774,7 @@ A new blog is now available, $. Click to view more: Un nuovo blog è ora disponi $. Clicca per saperne di più Version $ is now available! Click for more details: La versione $ è ora disponibile! Clicca per maggiori dettagli -Download From Site: Scarica dal sito +Download From Site: Download dal sito The playlist has been reversed: La playlist è stata invertita Profile: Are you sure you want to delete the selected channels? This will not delete the channel from any other profile.: Sei @@ -895,9 +895,9 @@ Search Bar: External link opening has been disabled in the general settings: L'apertura dei collegamenti esterni è stata disabilitata nelle impostazioni generali Are you sure you want to open this link?: Sei sicuro di voler aprire questo link? -Downloading has completed: '$ è stato scaricato' -Starting download: Sto iniziando a scaricare $ -Downloading failed: C'è stato un problema nello scaricamento di $ +Downloading has completed: 'Il download di "$" è terminato' +Starting download: Avvio del download di "$" +Downloading failed: Si è verificato un problema durante il download di "$" Screenshot Success: Cattura schermata salvato come «$» Screenshot Error: Cattura schermata fallito. $ Age Restricted: From 166fe004b2d68f77352bad2f0afb463f65ee1efa Mon Sep 17 00:00:00 2001 From: MarmadileManteater Date: Sat, 20 Aug 2022 08:49:41 -0400 Subject: [PATCH 015/414] This should eliminate this race condition by using (#2493) the seconds length value provided by the API rather than trying to pull the time from the video element. This is related to FreeTubeApp#2492 and MarmadileManteater#9. --- .../components/ft-video-player/ft-video-player.js | 12 ++++++++++-- src/renderer/views/Watch/Watch.vue | 1 + 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/renderer/components/ft-video-player/ft-video-player.js b/src/renderer/components/ft-video-player/ft-video-player.js index f15ebbd61..0967eabc5 100644 --- a/src/renderer/components/ft-video-player/ft-video-player.js +++ b/src/renderer/components/ft-video-player/ft-video-player.js @@ -73,6 +73,10 @@ export default Vue.extend({ videoId: { type: String, required: true + }, + lengthSeconds: { + type: Number, + required: true } }, data: function () { @@ -566,6 +570,10 @@ export default Vue.extend({ }) }) }) + }).catch((error) => { + this.showToast({ + message: error.message + }) }) }, @@ -627,8 +635,8 @@ export default Vue.extend({ markerDiv.style.position = 'absolute' markerDiv.style.opacity = '0.6' markerDiv.style['background-color'] = marker.color - markerDiv.style.width = (marker.duration / this.player.duration()) * 100 + '%' - markerDiv.style.marginLeft = (marker.time / this.player.duration()) * 100 + '%' + markerDiv.style.width = (marker.duration / this.lengthSeconds) * 100 + '%' + markerDiv.style.marginLeft = (marker.time / this.lengthSeconds) * 100 + '%' markerDiv.title = this.sponsorBlockTranslatedCategory(marker.category) this.player.el().querySelector('.vjs-progress-holder').appendChild(markerDiv) diff --git a/src/renderer/views/Watch/Watch.vue b/src/renderer/views/Watch/Watch.vue index 241d7dd00..c582beb7a 100644 --- a/src/renderer/views/Watch/Watch.vue +++ b/src/renderer/views/Watch/Watch.vue @@ -27,6 +27,7 @@ :format="activeFormat" :thumbnail="thumbnail" :video-id="videoId" + :length-seconds="videoLengthSeconds" class="videoPlayer" :class="{ theatrePlayer: useTheatreMode }" @ready="checkIfWatched" From 02db9483a3b46f5eddca69a9304a806cb8091b26 Mon Sep 17 00:00:00 2001 From: MarmadileManteater Date: Sun, 21 Aug 2022 08:19:36 -0400 Subject: [PATCH 016/414] Removing an an empty toast (#2504) which was unintentionally introduced by my last pull request. --- src/renderer/components/ft-video-player/ft-video-player.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/renderer/components/ft-video-player/ft-video-player.js b/src/renderer/components/ft-video-player/ft-video-player.js index 0967eabc5..59abd95bd 100644 --- a/src/renderer/components/ft-video-player/ft-video-player.js +++ b/src/renderer/components/ft-video-player/ft-video-player.js @@ -570,10 +570,6 @@ export default Vue.extend({ }) }) }) - }).catch((error) => { - this.showToast({ - message: error.message - }) }) }, From 7900ec3d4f8dc90e1a3774637ce004baf4b75029 Mon Sep 17 00:00:00 2001 From: Lukas Date: Sun, 21 Aug 2022 15:36:40 +0200 Subject: [PATCH 017/414] Added translation using Weblate (Alemannic) --- static/locales/gsw.yaml | 734 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 734 insertions(+) create mode 100644 static/locales/gsw.yaml diff --git a/static/locales/gsw.yaml b/static/locales/gsw.yaml new file mode 100644 index 000000000..00c52cc9d --- /dev/null +++ b/static/locales/gsw.yaml @@ -0,0 +1,734 @@ +# Put the name of your locale in the same language +Locale Name: '' +FreeTube: '' +# Currently on Subscriptions, Playlists, and History +'This part of the app is not ready yet. Come back later when progress has been made.': > + +# Webkit Menu Bar +File: '' +New Window: '' +Quit: '' +Edit: '' +Undo: '' +Redo: '' +Cut: '' +Copy: '' +Paste: '' +Delete: '' +Select all: '' +Reload: '' +Force Reload: '' +Toggle Developer Tools: '' +Actual size: '' +Zoom in: '' +Zoom out: '' +Toggle fullscreen: '' +Window: '' +Minimize: '' +Close: '' +Back: '' +Forward: '' +Open New Window: '' + +Version $ is now available! Click for more details: '' +Download From Site: '' +A new blog is now available, $. Click to view more: '' +Are you sure you want to open this link?: '' + +# Search Bar +Search / Go to URL: '' +Search Bar: + Clear Input: '' + # In Filter Button +Search Filters: + Search Filters: '' + Sort By: + Sort By: '' + Most Relevant: '' + Rating: '' + Upload Date: '' + View Count: '' + Time: + Time: '' + Any Time: '' + Last Hour: '' + Today: '' + This Week: '' + This Month: '' + This Year: '' + Type: + Type: '' + All Types: '' + Videos: '' + Channels: '' + #& Playlists + Duration: + Duration: '' + All Durations: '' + Short (< 4 minutes): '' + Long (> 20 minutes): '' + # On Search Page + Search Results: '' + Fetching results. Please wait: '' + Fetch more results: '' + There are no more results for this search: '' +# Sidebar +Subscriptions: + # On Subscriptions Page + Subscriptions: '' + # channels that were likely deleted + Error Channels: '' + Latest Subscriptions: '' + This profile has a large number of subscriptions. Forcing RSS to avoid rate limiting: '' + 'Your Subscription list is currently empty. Start adding subscriptions to see them here.': '' + 'Getting Subscriptions. Please wait.': '' + Refresh Subscriptions: '' + Load More Videos: '' +More: '' +Channels: + Channels: '' + Title: '' + Search bar placeholder: '' + Count: '' + Empty: '' + Unsubscribe: '' + Unsubscribed: '' + Unsubscribe Prompt: '' +Trending: + Trending: '' + Default: '' + Music: '' + Gaming: '' + Movies: '' + Trending Tabs: '' +Most Popular: '' +Playlists: '' +User Playlists: + Your Playlists: '' + Playlist Message: '' + Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: '' + Empty Search Message: '' + Search bar placeholder: '' +History: + # On History Page + History: '' + Watch History: '' + Your history list is currently empty.: '' + Empty Search Message: '' + Search bar placeholder: "" +Settings: + # On Settings Page + Settings: '' + The app needs to restart for changes to take effect. Restart and apply change?: '' + General Settings: + General Settings: '' + Check for Updates: '' + Check for Latest Blog Posts: '' + Fallback to Non-Preferred Backend on Failure: '' + Enable Search Suggestions: '' + Default Landing Page: '' + Locale Preference: '' + System Default: '' + Preferred API Backend: + Preferred API Backend: '' + Local API: '' + Invidious API: '' + Video View Type: + Video View Type: '' + Grid: '' + List: '' + Thumbnail Preference: + Thumbnail Preference: '' + Default: '' + Beginning: '' + Middle: '' + End: '' + Current Invidious Instance: '' + # $ is replaced with the default Invidious instance + The currently set default instance is $: '' + No default instance has been set: '' + Current instance will be randomized on startup: '' + Set Current Instance as Default: '' + Clear Default Instance: '' + View all Invidious instance information: '' + Region for Trending: '' + #! List countries + External Link Handling: + External Link Handling: '' + Open Link: '' + Ask Before Opening Link: '' + No Action: '' + Theme Settings: + Theme Settings: '' + Match Top Bar with Main Color: '' + Expand Side Bar by Default: '' + Disable Smooth Scrolling: '' + UI Scale: '' + Hide Side Bar Labels: '' + Base Theme: + Base Theme: '' + Black: '' + Dark: '' + System Default: '' + Light: '' + Dracula: '' + Catppuccin Mocha: '' + Main Color Theme: + Main Color Theme: '' + Red: '' + Pink: '' + Purple: '' + Deep Purple: '' + Indigo: '' + Blue: '' + Light Blue: '' + Cyan: '' + Teal: '' + Green: '' + Light Green: '' + Lime: '' + Yellow: '' + Amber: '' + Orange: '' + Deep Orange: '' + Dracula Cyan: '' + Dracula Green: '' + Dracula Orange: '' + Dracula Pink: '' + Dracula Purple: '' + Dracula Red: '' + Dracula Yellow: '' + Catppuccin Mocha Rosewater: '' + Catppuccin Mocha Flamingo: '' + Catppuccin Mocha Pink: '' + Catppuccin Mocha Mauve: '' + Catppuccin Mocha Red: '' + Catppuccin Mocha Maroon: '' + Catppuccin Mocha Peach: '' + Catppuccin Mocha Yellow: '' + Catppuccin Mocha Green: '' + Catppuccin Mocha Teal: '' + Catppuccin Mocha Sky: '' + Catppuccin Mocha Sapphire: '' + Catppuccin Mocha Blue: '' + Catppuccin Mocha Lavender: '' + Secondary Color Theme: '' + #* Main Color Theme + Player Settings: + Player Settings: '' + Force Local Backend for Legacy Formats: '' + Play Next Video: '' + Turn on Subtitles by Default: '' + Autoplay Videos: '' + Proxy Videos Through Invidious: '' + Autoplay Playlists: '' + Enable Theatre Mode by Default: '' + Scroll Volume Over Video Player: '' + Scroll Playback Rate Over Video Player: '' + Display Play Button In Video Player: '' + Next Video Interval: '' + Fast-Forward / Rewind Interval: '' + Default Volume: '' + Default Playback Rate: '' + Max Video Playback Rate: '' + Video Playback Rate Interval: '' + Default Video Format: + Default Video Format: '' + Dash Formats: '' + Legacy Formats: '' + Audio Formats: '' + Default Quality: + Default Quality: '' + Auto: '' + 144p: '' + 240p: '' + 360p: '' + 480p: '' + 720p: '' + 1080p: '' + 1440p: '' + 4k: '' + 8k: '' + Screenshot: + Enable: '' + Format Label: '' + Quality Label: '' + Ask Path: '' + Folder Label: '' + Folder Button: '' + File Name Label: '' + File Name Tooltip: '' + Error: + Forbidden Characters: '' + Empty File Name: '' + External Player Settings: + External Player Settings: '' + External Player: '' + Ignore Unsupported Action Warnings: '' + Custom External Player Executable: '' + Custom External Player Arguments: '' + Players: + None: + Name: '' + Privacy Settings: + Privacy Settings: '' + Remember History: '' + Save Watched Progress: '' + Automatically Remove Video Meta Files: '' + Clear Search Cache: '' + Are you sure you want to clear out your search cache?: '' + Search cache has been cleared: '' + Remove Watch History: '' + Are you sure you want to remove your entire watch history?: '' + Watch history has been cleared: '' + Remove All Subscriptions / Profiles: '' + Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: '' + Subscription Settings: + Subscription Settings: '' + Hide Videos on Watch: '' + Fetch Feeds from RSS: '' + Manage Subscriptions: '' + Distraction Free Settings: + Distraction Free Settings: '' + Hide Video Views: '' + Hide Video Likes And Dislikes: '' + Hide Channel Subscribers: '' + Hide Comment Likes: '' + Hide Recommended Videos: '' + Hide Trending Videos: '' + Hide Popular Videos: '' + Hide Playlists: '' + Hide Live Chat: '' + Hide Active Subscriptions: '' + Hide Video Description: '' + Hide Comments: '' + Hide Live Streams: '' + Hide Sharing Actions: '' + Data Settings: + Data Settings: '' + Select Import Type: '' + Select Export Type: '' + Import Subscriptions: '' + Import FreeTube: '' + Import YouTube: '' + Import NewPipe: '' + Check for Legacy Subscriptions: '' + Export Subscriptions: '' + Export FreeTube: '' + Export YouTube: '' + Export NewPipe: '' + Import History: '' + Export History: '' + Import Playlists: '' + Export Playlists: '' + Profile object has insufficient data, skipping item: '' + All subscriptions and profiles have been successfully imported: '' + All subscriptions have been successfully imported: '' + One or more subscriptions were unable to be imported: '' + Invalid subscriptions file: '' + This might take a while, please wait: '' + Invalid history file: '' + Subscriptions have been successfully exported: '' + History object has insufficient data, skipping item: '' + All watched history has been successfully imported: '' + All watched history has been successfully exported: '' + Playlist insufficient data: '' + All playlists has been successfully imported: '' + All playlists has been successfully exported: '' + Unable to read file: '' + Unable to write file: '' + Unknown data key: '' + How do I import my subscriptions?: '' + Manage Subscriptions: '' + Proxy Settings: + Proxy Settings: '' + Enable Tor / Proxy: '' + Proxy Protocol: '' + Proxy Host: '' + Proxy Port Number: '' + Clicking on Test Proxy will send a request to: '' + Test Proxy: '' + Your Info: '' + Ip: '' + Country: '' + Region: '' + City: '' + Error getting network information. Is your proxy configured properly?: '' + SponsorBlock Settings: + SponsorBlock Settings: '' + Enable SponsorBlock: '' + 'SponsorBlock API Url (Default is https://sponsor.ajay.app)': '' + Notify when sponsor segment is skipped: '' + Skip Options: + Skip Option: '' + Auto Skip: '' + Show In Seek Bar: '' + Prompt To Skip: '' + Do Nothing: '' + Category Color: '' + Parental Control Settings: + Parental Control Settings: '' + Hide Unsubscribe Button: '' + Show Family Friendly Only: '' + Hide Search Bar: '' + Download Settings: + Download Settings: '' + Ask Download Path: '' + Choose Path: '' + Download Behavior: '' + Download in app: '' + Open in web browser: '' +About: + #On About page + About: '' + Beta: '' + Source code: '' + Licensed under the AGPLv3: '' + View License: '' + Downloads / Changelog: '' + GitHub releases: '' + Help: '' + FreeTube Wiki: '' + FAQ: '' + Report a problem: '' + GitHub issues: '' + Please check for duplicates before posting: '' + Website: '' + Blog: '' + Email: '' + Mastodon: '' + Chat on Matrix: '' + Please read the: '' + room rules: '' + Translate: '' + Credits: '' + FreeTube is made possible by: '' + these people and projects: '' + Donate: '' + +Profile: + Profile Settings: '' + Profile Select: '' + Profile Filter: '' + All Channels: '' + Profile Manager: '' + Create New Profile: '' + Edit Profile: '' + Color Picker: '' + Custom Color: '' + Profile Preview: '' + Create Profile: '' + Update Profile: '' + Make Default Profile: '' + Delete Profile: '' + Are you sure you want to delete this profile?: '' + All subscriptions will also be deleted.: '' + Profile could not be found: '' + Your profile name cannot be empty: '' + Profile has been created: '' + Profile has been updated: '' + Your default profile has been set to $: '' + Removed $ from your profiles: '' + Your default profile has been changed to your primary profile: '' + $ is now the active profile: '' + Subscription List: '' + Other Channels: '' + $ selected: '' + Select All: '' + Select None: '' + Delete Selected: '' + Add Selected To Profile: '' + No channel(s) have been selected: '' + ? This is your primary profile. Are you sure you want to delete the selected channels? The + same channels will be deleted in any profile they are found in. + : '' + Are you sure you want to delete the selected channels? This will not delete the channel from any other profile.: '' +#On Channel Page +Channel: + Subscriber: '' + Subscribers: '' + Subscribe: '' + Unsubscribe: '' + Channel has been removed from your subscriptions: '' + Removed subscription from $ other channel(s): '' + Added channel to your subscriptions: '' + Search Channel: '' + Your search results have returned 0 results: '' + Sort By: '' + Videos: + Videos: '' + This channel does not currently have any videos: '' + Sort Types: + Newest: '' + Oldest: '' + Most Popular: '' + Playlists: + Playlists: '' + This channel does not currently have any playlists: '' + Sort Types: + Last Video Added: '' + Newest: '' + Oldest: '' + About: + About: '' + Channel Description: '' + Featured Channels: '' +Video: + Mark As Watched: '' + Remove From History: '' + Video has been marked as watched: '' + Video has been removed from your history: '' + Save Video: '' + Video has been saved: '' + Video has been removed from your saved list: '' + Open in YouTube: '' + Copy YouTube Link: '' + Open YouTube Embedded Player: '' + Copy YouTube Embedded Player Link: '' + Open in Invidious: '' + Copy Invidious Link: '' + Open Channel in YouTube: '' + Copy YouTube Channel Link: '' + Open Channel in Invidious: '' + Copy Invidious Channel Link: '' + View: '' + Views: '' + Loop Playlist: '' + Shuffle Playlist: '' + Reverse Playlist: '' + Play Next Video: '' + Play Previous Video: '' + # Context is "X People Watching" + Watching: '' + Watched: '' + Autoplay: '' + Starting soon, please refresh the page to check again: '' + # As in a Live Video + Premieres on: '' + Live: '' + Live Now: '' + Live Chat: '' + Enable Live Chat: '' + Live Chat is currently not supported in this build.: '' + 'Chat is disabled or the Live Stream has ended.': '' + Live chat is enabled. Chat messages will appear here once sent.: '' + 'Live Chat is currently not supported with the Invidious API. A direct connection to YouTube is required.': '' + Download Video: '' + video only: '' + audio only: '' + Audio: + Low: '' + Medium: '' + High: '' + Best: '' + Published: + Jan: '' + Feb: '' + Mar: '' + Apr: '' + May: '' + Jun: '' + Jul: '' + Aug: '' + Sep: '' + Oct: '' + Nov: '' + Dec: '' + Second: '' + Seconds: '' + Minute: '' + Minutes: '' + Hour: '' + Hours: '' + Day: '' + Days: '' + Week: '' + Weeks: '' + Month: '' + Months: '' + Year: '' + Years: '' + Ago: '' + Upcoming: '' + Published on: '' + Streamed on: '' + Started streaming on: '' + translated from English: '' + # $ is replaced with the number and % with the unit (days, hours, minutes...) + Publicationtemplate: '' + Skipped segment: '' + Sponsor Block category: + sponsor: '' + intro: '' + outro: '' + self-promotion: '' + interaction: '' + music offtopic: '' + recap: '' + filler: '' + External Player: + # $ is replaced with the external player + OpenInTemplate: '' + video: '' + playlist: '' + # $ is replaced with the current context (see video/playlist above) and % the external player setting + OpeningTemplate: '' + # $ is replaced with the external player and % with the unsupported action + UnsupportedActionTemplate: '' + Unsupported Actions: + starting video at offset: '' + setting a playback rate: '' + opening playlists: '' + opening specific video in a playlist (falling back to opening the video): '' + reversing playlists: '' + shuffling playlists: '' + looping playlists: '' + Stats: + Video statistics are not available for legacy videos: '' + Video ID: '' + Resolution: '' + Player Dimensions: '' + Bitrate: '' + Volume: '' + Bandwidth: '' + Buffered: '' + Dropped / Total Frames: '' + Mimetype: '' +#& Videos +Videos: + #& Sort By + Sort By: + Newest: '' + Oldest: '' + #& Most Popular +#& Playlists +Playlist: + #& About + Playlist: '' + View Full Playlist: '' + Videos: '' + View: '' + Views: '' + Last Updated On: '' + Share Playlist: + Share Playlist: '' + Copy YouTube Link: '' + Open in YouTube: '' + Copy Invidious Link: '' + Open in Invidious: '' + +# On Video Watch Page +#* Published +#& Views +Toggle Theatre Mode: '' +Change Format: + Change Video Formats: '' + Use Dash Formats: '' + Use Legacy Formats: '' + Use Audio Formats: '' + Dash formats are not available for this video: '' + Audio formats are not available for this video: '' +Share: + Share Video: '' + Include Timestamp: '' + Copy Link: '' + Open Link: '' + Copy Embed: '' + Open Embed: '' + # On Click + Invidious URL copied to clipboard: '' + Invidious Embed URL copied to clipboard: '' + Invidious Channel URL copied to clipboard: '' + YouTube URL copied to clipboard: '' + YouTube Embed URL copied to clipboard: '' + YouTube Channel URL copied to clipboard: '' + +Mini Player: '' +Comments: + Comments: '' + Click to View Comments: '' + Getting comment replies, please wait: '' + There are no more comments for this video: '' + Show Comments: '' + Hide Comments: '' + Sort by: '' + Top comments: '' + Newest first: '' + # Context: View 10 Replies, View 1 Reply, View 1 Reply from Owner, View 2 Replies from Owner and others + View: '' + Hide: '' + Replies: '' + Show More Replies: '' + Reply: '' + From $channelName: '' + And others: '' + There are no comments available for this video: '' + Load More Comments: '' + No more comments available: '' + Pinned by: '' + Member: '' +Up Next: '' + +#Tooltips +Tooltips: + General Settings: + Preferred API Backend: '' + Fallback to Non-Preferred Backend on Failure: '' + Thumbnail Preference: '' + Invidious Instance: '' + Region for Trending: '' + External Link Handling: | + Player Settings: + Force Local Backend for Legacy Formats: '' + Proxy Videos Through Invidious: '' + Default Video Format: '' + Scroll Playback Rate Over Video Player: '' + External Player Settings: + External Player: '' + Custom External Player Executable: '' + Ignore Warnings: '' + Custom External Player Arguments: '' + # $ is replaced with the default custom arguments for the current player, if defined. + DefaultCustomArgumentsTemplate: '' + Subscription Settings: + Fetch Feeds from RSS: '' + Privacy Settings: + Remove Video Meta Files: '' + +# Toast Messages +Local API Error (Click to copy): '' +Invidious API Error (Click to copy): '' +Falling back to Invidious API: '' +Falling back to the local API: '' +This video is unavailable because of missing formats. This can happen due to country unavailability.: '' +Subscriptions have not yet been implemented: '' +Unknown YouTube url type, cannot be opened in app: '' +Hashtags have not yet been implemented, try again later: '' +Loop is now disabled: '' +Loop is now enabled: '' +Shuffle is now disabled: '' +Shuffle is now enabled: '' +The playlist has been reversed: '' +Playing Next Video: '' +Playing Previous Video: '' +Playing Next Video Interval: '' +Canceled next video autoplay: '' +# $ is replaced with the default Invidious instance +Default Invidious instance has been set to $: '' +Default Invidious instance has been cleared: '' +'The playlist has ended. Enable loop to continue playing': '' +Age Restricted: + # $contentType is replaced with video or channel + This $contentType is age restricted: '' + Type: + Channel: '' + Video: '' +External link opening has been disabled in the general settings: '' +Downloading has completed: '' +Starting download: '' +Downloading failed: '' +Screenshot Success: '' +Screenshot Error: '' + +Yes: '' +No: '' From c545d256841a84bb456c07eb5cc9ecb4a5154d0c Mon Sep 17 00:00:00 2001 From: Lukas Date: Sun, 21 Aug 2022 13:33:37 +0000 Subject: [PATCH 018/414] Translated using Weblate (German) Currently translated at 99.6% (616 of 618 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/de/ --- static/locales/de-DE.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/static/locales/de-DE.yaml b/static/locales/de-DE.yaml index 087080836..8293d1ce7 100644 --- a/static/locales/de-DE.yaml +++ b/static/locales/de-DE.yaml @@ -421,6 +421,9 @@ Settings: External Player Settings: Externe Player-Einstellungen Custom External Player Executable: Ausführbares, externes Player-Programm Custom External Player Arguments: Gewählte Einstellungen für externen Player + Players: + None: + Name: Keine Download Settings: Download Settings: Herunterladen-Einstellungen Ask Download Path: Nach dem Herunterladen-Pfad fragen From b89d2c83934bdfb93d0f9c9be6418e19a6c377ac Mon Sep 17 00:00:00 2001 From: Lukas Date: Sun, 21 Aug 2022 13:38:09 +0000 Subject: [PATCH 019/414] Translated using Weblate (Alemannic) Currently translated at 5.1% (32 of 618 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/gsw/ --- static/locales/gsw.yaml | 69 ++++++++++++++++++++++------------------- 1 file changed, 37 insertions(+), 32 deletions(-) diff --git a/static/locales/gsw.yaml b/static/locales/gsw.yaml index 00c52cc9d..432da5e70 100644 --- a/static/locales/gsw.yaml +++ b/static/locales/gsw.yaml @@ -1,42 +1,47 @@ # Put the name of your locale in the same language -Locale Name: '' -FreeTube: '' +Locale Name: 'Schwiizerdütsch' +FreeTube: 'FreeTube' # Currently on Subscriptions, Playlists, and History -'This part of the app is not ready yet. Come back later when progress has been made.': > +'This part of the app is not ready yet. Come back later when progress has been made.': >- + De Teil vom Programm isch nonig fertig. Bitte chum zumene spötere Ziitpunkt wider + zrugg. # Webkit Menu Bar -File: '' -New Window: '' -Quit: '' -Edit: '' -Undo: '' -Redo: '' -Cut: '' -Copy: '' -Paste: '' -Delete: '' -Select all: '' -Reload: '' -Force Reload: '' -Toggle Developer Tools: '' -Actual size: '' -Zoom in: '' -Zoom out: '' -Toggle fullscreen: '' -Window: '' -Minimize: '' -Close: '' -Back: '' -Forward: '' -Open New Window: '' +File: 'Datei' +New Window: 'Nois Fäischter' +Quit: 'Beände' +Edit: 'Bearbeite' +Undo: 'Rückgängig' +Redo: 'Widerherstellä' +Cut: 'Usschniide' +Copy: 'Kopierä' +Paste: 'Iifüege' +Delete: 'Lösche' +Select all: 'Alles uswähle' +Reload: 'Aktualisierä' +Force Reload: 'Aktualisierig erzwingä' +Toggle Developer Tools: 'Entwicklerwerchzüüg aktivierä/deaktivierä' +Actual size: 'Originalgrössi' +Zoom in: 'Vergrösserä' +Zoom out: 'Verchlinerä' +Toggle fullscreen: 'Vollbild aktivierä' +Window: 'Fäischter' +Minimize: 'Minimierä' +Close: 'Schlüsse' +Back: 'Zrugg' +Forward: 'Füre' +Open New Window: 'Nois Fäischter ufmache' -Version $ is now available! Click for more details: '' -Download From Site: '' -A new blog is now available, $. Click to view more: '' -Are you sure you want to open this link?: '' +Version $ is now available! Click for more details: 'Version $ isch jetzt verfüegbar! + Klick für meh Details.' +Download From Site: 'Vo de Website abelade' +A new blog is now available, $. Click to view more: 'En neue Blogiitrag isch jetzt + verfüegbar, $. Klick zum en aaluege' +Are you sure you want to open this link?: 'Bisch du sicher, dass du de Link ufmache + wotsch?' # Search Bar -Search / Go to URL: '' +Search / Go to URL: 'Sueche / Gang zu de URL' Search Bar: Clear Input: '' # In Filter Button From 708711b65fd71232075cc0003f3a8ba7447289d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A2=D0=B5=D0=BC=D0=B0=D0=BA?= Date: Sun, 21 Aug 2022 21:32:05 +0000 Subject: [PATCH 020/414] Translated using Weblate (Russian) Currently translated at 100.0% (618 of 618 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/ru/ --- static/locales/ru.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/locales/ru.yaml b/static/locales/ru.yaml index 9830f651b..502b4f7f3 100644 --- a/static/locales/ru.yaml +++ b/static/locales/ru.yaml @@ -723,7 +723,7 @@ Comments: Load More Comments: 'Загрузить больше комментариев' There are no more comments for this video: К этому видео больше нет комментариев No more comments available: Больше комментариев нет - Newest first: Сначала новые + Newest first: Новым Top comments: Лучшим комментариям Sort by: Упорядочивать по Show More Replies: Показать больше ответов From f153dfbb2ad94bcab342d9e0533af348e66219ae Mon Sep 17 00:00:00 2001 From: My Random Thoughts Date: Wed, 24 Aug 2022 09:28:31 +0000 Subject: [PATCH 021/414] Translated using Weblate (English (United Kingdom)) Currently translated at 100.0% (618 of 618 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/en_GB/ --- static/locales/en_GB.yaml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/static/locales/en_GB.yaml b/static/locales/en_GB.yaml index 371af1eb5..fae832066 100644 --- a/static/locales/en_GB.yaml +++ b/static/locales/en_GB.yaml @@ -166,6 +166,7 @@ Settings: System Default: 'System Default' Light: 'Light' Dracula: 'Dracula' + Catppuccin Mocha: Catppuccin Mocha Main Color Theme: Main Color Theme: 'Main colour theme' Red: 'Red' @@ -191,6 +192,20 @@ Settings: Dracula Purple: 'Dracula Purple' Dracula Red: 'Dracula Red' Dracula Yellow: 'Dracula Yellow' + Catppuccin Mocha Pink: Catppuccin Mocha Pink + Catppuccin Mocha Sapphire: Catppuccin Mocha Sapphire + Catppuccin Mocha Maroon: Catppuccin Mocha Maroon + Catppuccin Mocha Mauve: Catppuccin Mocha Mauve + Catppuccin Mocha Lavender: Catppuccin Mocha Lavender + Catppuccin Mocha Blue: Catppuccin Mocha Blue + Catppuccin Mocha Sky: Catppuccin Mocha Sky + Catppuccin Mocha Teal: Catppuccin Mocha Teal + Catppuccin Mocha Peach: Catppuccin Mocha Peach + Catppuccin Mocha Red: Catppuccin Mocha Red + Catppuccin Mocha Rosewater: Catppuccin Mocha Rosewater + Catppuccin Mocha Flamingo: Catppuccin Mocha Flamingo + Catppuccin Mocha Green: Catppuccin Mocha Green + Catppuccin Mocha Yellow: Catppuccin Mocha Yellow Secondary Color Theme: 'Secondary Colour Theme' #* Main Color Theme UI Scale: UI Scale @@ -254,6 +269,9 @@ Settings: Ignore Unsupported Action Warnings: Ignore Unsupported Action Warnings Custom External Player Executable: Custom External Player Executable Custom External Player Arguments: Custom External Player Arguments + Players: + None: + Name: None Privacy Settings: Privacy Settings: 'Privacy Settings' Remember History: 'Remember History' From cf313c5624aa930809b466f1cdf1c4d3286cc28c Mon Sep 17 00:00:00 2001 From: Hugel Date: Thu, 25 Aug 2022 06:58:47 +0000 Subject: [PATCH 022/414] Translated using Weblate (Filipino) Currently translated at 9.7% (60 of 618 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/fil/ --- static/locales/fil.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/static/locales/fil.yaml b/static/locales/fil.yaml index e8afd3b1c..546a4da0e 100644 --- a/static/locales/fil.yaml +++ b/static/locales/fil.yaml @@ -447,3 +447,6 @@ Canceled next video autoplay: '' Yes: '' No: '' +Download From Site: I-download mula sa website +Open New Window: buksan ang bagong window +New Window: bagong window From c77da63d0a767be3555f370d9126e492724db84a Mon Sep 17 00:00:00 2001 From: SC Date: Thu, 25 Aug 2022 15:41:37 +0000 Subject: [PATCH 023/414] Translated using Weblate (Portuguese) Currently translated at 100.0% (618 of 618 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/pt/ --- static/locales/pt.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/static/locales/pt.yaml b/static/locales/pt.yaml index 84be67798..a7e042dc4 100644 --- a/static/locales/pt.yaml +++ b/static/locales/pt.yaml @@ -411,6 +411,9 @@ Settings: Ignore Unsupported Action Warnings: Ignorar avisos sobre ações inválidas External Player: Leitor externo External Player Settings: Definições para leitores de vídeo externos + Players: + None: + Name: Nenhum The app needs to restart for changes to take effect. Restart and apply change?: A aplicação precisa de reiniciar para que as alterações façam efeito. Reiniciar e aplicar as alterações? From 680abbebd81dbe746105c931523ed3082bc0302c Mon Sep 17 00:00:00 2001 From: PikachuEXE Date: Fri, 26 Aug 2022 15:46:15 +0800 Subject: [PATCH 024/414] Upgrade electron from 16 > 20 (#2448) * ^ Upgrade electron 16.x > 20.x * 20.0.1 * 20.0.2 * 20.1.0 --- .babelrc | 2 +- package.json | 2 +- yarn.lock | 70 +++++++++++++++++++++------------------------------- 3 files changed, 30 insertions(+), 44 deletions(-) diff --git a/.babelrc b/.babelrc index f60bd75e8..0bcb33b7d 100644 --- a/.babelrc +++ b/.babelrc @@ -4,7 +4,7 @@ "@babel/env", { "targets": { - "chrome": "96", + "chrome": "104", "node": 16 } } diff --git a/package.json b/package.json index 1e08f6bb5..172da1296 100644 --- a/package.json +++ b/package.json @@ -92,7 +92,7 @@ "babel-loader": "^8.2.5", "copy-webpack-plugin": "^9.0.1", "css-loader": "5.2.6", - "electron": "^16.2.7", + "electron": "^20.1.0", "electron-builder": "^23.0.3", "electron-builder-squirrel-windows": "^22.13.1", "electron-debug": "^3.2.0", diff --git a/yarn.lock b/yarn.lock index b92474fe0..deab76838 100644 --- a/yarn.lock +++ b/yarn.lock @@ -913,7 +913,7 @@ resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== -"@electron/get@^1.13.0": +"@electron/get@^1.14.1": version "1.14.1" resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.14.1.tgz#16ba75f02dffb74c23965e72d617adc721d27f40" integrity sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw== @@ -1312,10 +1312,10 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.33.tgz#3c1879b276dc63e73030bb91165e62a4509cd506" integrity sha512-miWq2m2FiQZmaHfdZNcbpp9PuXg34W5JZ5CrJ/BaS70VuhoJENBEQybeiYSaPBRNq6KQGnjfEnc/F3PN++D+XQ== -"@types/node@^14.6.2": - version "14.18.18" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.18.tgz#5c9503030df484ccffcbb935ea9a9e1d6fad1a20" - integrity sha512-B9EoJFjhqcQ9OmQrNorItO+OwEOORNn3S31WuiHvZY/dm9ajkB7AKD/8toessEtHHNL+58jofbq7hMMY9v4yig== +"@types/node@^16.11.26": + version "16.11.45" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.45.tgz#155b13a33c665ef2b136f7f245fa525da419e810" + integrity sha512-3rKg/L5x0rofKuuUt5zlXzOnKyIHXmIu5R8A0TuNDMF2062/AOIDBciFIjToLEJ/9F9DzkHNot+BpNsMI1OLdQ== "@types/plist@^3.0.1": version "3.0.2" @@ -1386,6 +1386,13 @@ dependencies: "@types/yargs-parser" "*" +"@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" "*" + "@videojs/http-streaming@2.13.1": version "2.13.1" resolved "https://registry.yarnpkg.com/@videojs/http-streaming/-/http-streaming-2.13.1.tgz#b7688d91eec969181430e00868b514b16b3b21b7" @@ -2526,16 +2533,6 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@^1.6.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - config-chain@^1.1.11: version "1.1.13" resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" @@ -3108,14 +3105,14 @@ electron-to-chromium@^1.4.118: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.137.tgz#186180a45617283f1c012284458510cd99d6787f" integrity sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA== -electron@^16.2.7: - version "16.2.7" - resolved "https://registry.yarnpkg.com/electron/-/electron-16.2.7.tgz#945e35ad1625e604f10c124fb912d1e2b3018317" - integrity sha512-aZKF3b00+rqW/HGs8lJM5DhPNj+mOfCuhLSiFXV6J9dQCIRhctJTmToOrwXfbCxvXK8as8eQTNl5uSfnHmH6tA== +electron@^20.1.0: + version "20.1.0" + resolved "https://registry.yarnpkg.com/electron/-/electron-20.1.0.tgz#2de079adc551dadc21f11d12a37c70873b9ffb40" + integrity sha512-gzl6fdZe5g0qmzCC6Ejxa1Oa8eqUSxs4+QLtrM7SyEVp+mEPJAOoDe0xD8ayRQqeXTBxLK1LFrKtc4c98iufsg== dependencies: - "@electron/get" "^1.13.0" - "@types/node" "^14.6.2" - extract-zip "^1.0.3" + "@electron/get" "^1.14.1" + "@types/node" "^16.11.26" + extract-zip "^2.0.1" emoji-regex@^8.0.0: version "8.0.0" @@ -3558,15 +3555,16 @@ extend@~3.0.2: resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -extract-zip@^1.0.3: - version "1.7.0" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" - integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== +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: - concat-stream "^1.6.2" - debug "^2.6.9" - mkdirp "^0.5.4" + debug "^4.1.1" + get-stream "^5.1.0" yauzl "^2.10.0" + optionalDependencies: + "@types/yauzl" "^2.9.1" extsprintf@1.3.0: version "1.3.0" @@ -5147,13 +5145,6 @@ minimist@^1.2.0, minimist@^1.2.6: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== -mkdirp@^0.5.4: - 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" - modify-filename@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/modify-filename/-/modify-filename-1.1.0.tgz#9a2dec83806fbb2d975f22beec859ca26b393aa1" @@ -5843,7 +5834,7 @@ read-pkg@^3.0.0: normalize-package-data "^2.3.2" path-type "^3.0.0" -readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.5, readable-stream@^2.2.2: +readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.5: 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== @@ -6855,11 +6846,6 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - unbox-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" From b6740acc37230c056e6a21a992ef9b634c1d587c Mon Sep 17 00:00:00 2001 From: absidue <48293849+absidue@users.noreply.github.com> Date: Sat, 27 Aug 2022 01:58:33 +0200 Subject: [PATCH 025/414] Switch back to upstream ytdl-core (#2510) --- package.json | 4 ++-- yarn.lock | 7 ++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 172da1296..59a701b4a 100644 --- a/package.json +++ b/package.json @@ -79,15 +79,15 @@ "yt-channel-info": "^3.0.4", "yt-dash-manifest-generator": "1.1.0", "yt-trending-scraper": "^2.0.1", - "ytdl-core": "git+https://github.com/absidue/node-ytdl-core#temp-fix-11-08-2022", + "ytdl-core": "^4.11.1", "ytpl": "^2.3.0", "ytsr": "^3.8.0" }, "devDependencies": { - "@evilmartians/lefthook": "^1.0.5", "@babel/core": "^7.17.10", "@babel/plugin-proposal-class-properties": "^7.16.7", "@babel/preset-env": "^7.17.10", + "@evilmartians/lefthook": "^1.0.5", "babel-eslint": "^10.1.0", "babel-loader": "^8.2.5", "copy-webpack-plugin": "^9.0.1", diff --git a/yarn.lock b/yarn.lock index deab76838..1d74d989a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7508,9 +7508,10 @@ ytdl-core@^3.2.2: miniget "^2.0.1" sax "^1.1.3" -"ytdl-core@git+https://github.com/absidue/node-ytdl-core#temp-fix-11-08-2022": - version "0.0.0-development" - resolved "git+https://github.com/absidue/node-ytdl-core#22f6c2cbffa0bb242af799ce143e9e2f260019c4" +ytdl-core@^4.11.1: + version "4.11.1" + resolved "https://registry.yarnpkg.com/ytdl-core/-/ytdl-core-4.11.1.tgz#f29c688f1217957118790d49599569d1fc26d6db" + integrity sha512-0H2hl8kv9JA50qEUewPVpDCloyEVkXZfKJ6o2RNmkngfiY99pGVqE7jQbMT6Rs1QwZpF8GiMB50VWXqivpzlgQ== dependencies: m3u8stream "^0.8.6" miniget "^4.2.2" From cb63b12caf962ab7ed2a1d7b27774acd4cf6c3ab Mon Sep 17 00:00:00 2001 From: PikachuEXE Date: Mon, 29 Aug 2022 17:40:42 +0800 Subject: [PATCH 026/414] Update top nav search input to open new window on shift click/enter (#2427) * * Update search input shift click to open new window * - Remove unused import Probably auto added by IDE... --- src/renderer/components/ft-input/ft-input.js | 6 +-- src/renderer/components/top-nav/top-nav.js | 44 ++++++++++++++++---- 2 files changed, 38 insertions(+), 12 deletions(-) diff --git a/src/renderer/components/ft-input/ft-input.js b/src/renderer/components/ft-input/ft-input.js index e1a6ae695..ffba7a985 100644 --- a/src/renderer/components/ft-input/ft-input.js +++ b/src/renderer/components/ft-input/ft-input.js @@ -95,13 +95,13 @@ export default Vue.extend({ setTimeout(this.addListener, 200) }, methods: { - handleClick: function () { + handleClick: function (e) { // No action if no input text if (!this.inputDataPresent) { return } this.searchState.showOptions = false this.$emit('input', this.inputData) - this.$emit('click', this.inputData) + this.$emit('click', this.inputData, { event: e }) }, handleInput: function (val) { @@ -185,7 +185,7 @@ export default Vue.extend({ if (inputElement !== null) { inputElement.addEventListener('keydown', (event) => { if (event.key === 'Enter') { - this.handleClick() + this.handleClick(event) } }) } diff --git a/src/renderer/components/top-nav/top-nav.js b/src/renderer/components/top-nav/top-nav.js index 74791a8d6..f304e33dc 100644 --- a/src/renderer/components/top-nav/top-nav.js +++ b/src/renderer/components/top-nav/top-nav.js @@ -109,8 +109,9 @@ export default Vue.extend({ this.debounceSearchResults = debounce(this.getSearchSuggestions, 200) }, methods: { - goToSearch: async function (query) { + goToSearch: async function (query, { event }) { const appWidth = $(window).width() + const doCreateNewWindow = event && event.shiftKey if (appWidth <= 680) { const searchContainer = $('.searchContainer').get(0) @@ -133,9 +134,10 @@ export default Vue.extend({ if (playlistId && playlistId.length > 0) { query.playlistId = playlistId } - this.$router.push({ + this.openInternalPath({ path: `/watch/${videoId}`, - query: query + query, + doCreateNewWindow }) break } @@ -153,9 +155,10 @@ export default Vue.extend({ case 'search': { const { searchQuery, query } = result - this.$router.push({ + this.openInternalPath({ path: `/search/${encodeURIComponent(searchQuery)}`, - query + query, + doCreateNewWindow }) break } @@ -176,23 +179,25 @@ export default Vue.extend({ case 'channel': { const { channelId, idType, subPath } = result - this.$router.push({ + this.openInternalPath({ path: `/channel/${channelId}/${subPath}`, - query: { idType } + query: { idType }, + doCreateNewWindow }) break } case 'invalid_url': default: { - this.$router.push({ + this.openInternalPath({ path: `/search/${encodeURIComponent(query)}`, query: { sortBy: this.searchSettings.sortBy, time: this.searchSettings.time, type: this.searchSettings.type, duration: this.searchSettings.duration - } + }, + doCreateNewWindow }) } } @@ -318,6 +323,27 @@ export default Vue.extend({ this.$store.commit('toggleSideNav') }, + openInternalPath: function({ path, doCreateNewWindow, query = {} }) { + if (this.usingElectron && doCreateNewWindow) { + const { ipcRenderer } = require('electron') + + // Combine current document path and new "hash" as new window startup URL + const newWindowStartupURL = [ + window.location.href.split('#')[0], + `#${path}?${(new URLSearchParams(query)).toString()}` + ].join('') + ipcRenderer.send(IpcChannels.CREATE_NEW_WINDOW, { + windowStartupUrl: newWindowStartupURL + }) + } else { + // Web + this.$router.push({ + path, + query + }) + } + }, + createNewWindow: function () { if (this.usingElectron) { const { ipcRenderer } = require('electron') From 67ec849f4125534c7a85d14a5a4a371e1d544007 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A2=D0=B5=D0=BC=D0=B0=D0=BA?= Date: Wed, 31 Aug 2022 15:26:42 +0000 Subject: [PATCH 027/414] Translated using Weblate (Russian) Currently translated at 100.0% (618 of 618 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/ru/ --- static/locales/ru.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/locales/ru.yaml b/static/locales/ru.yaml index 502b4f7f3..71647dc5e 100644 --- a/static/locales/ru.yaml +++ b/static/locales/ru.yaml @@ -469,7 +469,7 @@ About: room rules: правила комнаты Please read the: Изучите Chat on Matrix: Чат на Matrix - Mastodon: Mastodon + Mastodon: Mastodon (Мастодон) Email: Электронная почта Blog: Блог Website: Сайт From c0285c38c4db96bf548170fe0bf80fc827f865a5 Mon Sep 17 00:00:00 2001 From: absidue <48293849+absidue@users.noreply.github.com> Date: Thu, 1 Sep 2022 02:55:10 +0200 Subject: [PATCH 028/414] Update yt-trending-scraper to 3.1.0 (#2522) --- package.json | 2 +- src/renderer/views/Search/Search.js | 4 ++-- src/renderer/views/Trending/Trending.js | 4 ++-- yarn.lock | 27 ++++++++++++++++++------- 4 files changed, 25 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index 59a701b4a..9244c564f 100644 --- a/package.json +++ b/package.json @@ -51,6 +51,7 @@ "@fortawesome/vue-fontawesome": "^2.0.2", "@freetube/youtube-chat": "^1.1.2", "@freetube/yt-comment-scraper": "^6.1.0", + "@freetube/yt-trending-scraper": "^3.1.0", "@silvermine/videojs-quality-selector": "^1.2.5", "autolinker": "^3.15.0", "electron-context-menu": "^3.1.2", @@ -78,7 +79,6 @@ "youtube-suggest": "^1.1.2", "yt-channel-info": "^3.0.4", "yt-dash-manifest-generator": "1.1.0", - "yt-trending-scraper": "^2.0.1", "ytdl-core": "^4.11.1", "ytpl": "^2.3.0", "ytsr": "^3.8.0" diff --git a/src/renderer/views/Search/Search.js b/src/renderer/views/Search/Search.js index 49509339d..777e8de16 100644 --- a/src/renderer/views/Search/Search.js +++ b/src/renderer/views/Search/Search.js @@ -4,7 +4,7 @@ import IsEqual from 'lodash.isequal' import FtLoader from '../../components/ft-loader/ft-loader.vue' import FtCard from '../../components/ft-card/ft-card.vue' import FtElementList from '../../components/ft-element-list/ft-element-list.vue' -import ytTrendScraper from 'yt-trending-scraper' +import { calculateLengthInSeconds } from '@freetube/yt-trending-scraper/src/HtmlParser' export default Vue.extend({ name: 'Search', @@ -154,7 +154,7 @@ export default Vue.extend({ let videoDuration = video.duration const videoId = video.id if (videoDuration !== null && videoDuration !== '' && videoDuration !== 'LIVE') { - videoDuration = ytTrendScraper.calculate_length_in_seconds(video.duration) + videoDuration = calculateLengthInSeconds(video.duration) } dataToShow.push( { diff --git a/src/renderer/views/Trending/Trending.js b/src/renderer/views/Trending/Trending.js index cf03f44f8..6f76364ce 100644 --- a/src/renderer/views/Trending/Trending.js +++ b/src/renderer/views/Trending/Trending.js @@ -7,7 +7,7 @@ import FtIconButton from '../../components/ft-icon-button/ft-icon-button.vue' import FtFlexBox from '../../components/ft-flex-box/ft-flex-box.vue' import $ from 'jquery' -import ytrend from 'yt-trending-scraper' +import { scrapeTrendingPage } from '@freetube/yt-trending-scraper' export default Vue.extend({ name: 'Trending', @@ -124,7 +124,7 @@ export default Vue.extend({ geoLocation: this.region } - ytrend.scrape_trending_page(param).then((result) => { + scrapeTrendingPage(param).then((result) => { const returnData = result.filter((item) => { return item.type === 'video' || item.type === 'channel' || item.type === 'playlist' }) diff --git a/yarn.lock b/yarn.lock index 1d74d989a..8729b33ac 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1024,6 +1024,13 @@ dependencies: axios "^0.21.1" +"@freetube/yt-trending-scraper@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@freetube/yt-trending-scraper/-/yt-trending-scraper-3.1.0.tgz#51e20931b0d8a8d32216ecead320bbbcbb7ca959" + integrity sha512-qPyQaxU7Bv3e6HXn/ULH2h6iy1Egh3l7NKUgzuqPFHA7dAxbmMN7Ozr4QFnwXVnNYzfEdTsR+GFs9v71ChVJkQ== + dependencies: + axios "^0.27.2" + "@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" @@ -1965,6 +1972,14 @@ axios@^0.26.1: dependencies: follow-redirects "^1.14.8" +axios@^0.27.2: + version "0.27.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.27.2.tgz#207658cc8621606e586c85db4b41a750e756d972" + integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ== + dependencies: + follow-redirects "^1.14.9" + form-data "^4.0.0" + babel-eslint@^10.1.0: version "10.1.0" resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" @@ -3717,6 +3732,11 @@ follow-redirects@^1.0.0, follow-redirects@^1.14.0, follow-redirects@^1.14.8: resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.0.tgz#06441868281c86d0dda4ad8bdaead2d02dca89d4" integrity sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ== +follow-redirects@^1.14.9: + version "1.15.1" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.1.tgz#0ca6a452306c9b276e4d3127483e29575e207ad5" + integrity sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA== + forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" @@ -7491,13 +7511,6 @@ yt-dash-manifest-generator@1.1.0: xml-js "^1.6.11" ytdl-core "^3.2.2" -yt-trending-scraper@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/yt-trending-scraper/-/yt-trending-scraper-2.0.1.tgz#830ab96faaccca22001043ca72147f83fb099ffd" - integrity sha512-VTgIfVbRTMWUFn6Ir/XtEF2MBaYUU2JeaZxCtshfiyPI9yrOutp4A/0L755nl7Ip3Cigp8EW159/JH+z7Is7Jg== - dependencies: - axios "^0.21.1" - ytdl-core@^3.2.2: version "3.4.2" resolved "https://registry.yarnpkg.com/ytdl-core/-/ytdl-core-3.4.2.tgz#0d3d35f54d4f6b1de870b987f3d45e88c64b6a6c" From 14ab1ad3c125bab5a4d4c75cde017880153ac103 Mon Sep 17 00:00:00 2001 From: PikachuEXE Date: Thu, 1 Sep 2022 17:10:46 +0800 Subject: [PATCH 029/414] ^ Update electron 20.x (#2525) --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 9244c564f..8c3a8ec0c 100644 --- a/package.json +++ b/package.json @@ -92,7 +92,7 @@ "babel-loader": "^8.2.5", "copy-webpack-plugin": "^9.0.1", "css-loader": "5.2.6", - "electron": "^20.1.0", + "electron": "^20.1.1", "electron-builder": "^23.0.3", "electron-builder-squirrel-windows": "^22.13.1", "electron-debug": "^3.2.0", diff --git a/yarn.lock b/yarn.lock index 8729b33ac..2ba76831c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3120,10 +3120,10 @@ electron-to-chromium@^1.4.118: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.137.tgz#186180a45617283f1c012284458510cd99d6787f" integrity sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA== -electron@^20.1.0: - version "20.1.0" - resolved "https://registry.yarnpkg.com/electron/-/electron-20.1.0.tgz#2de079adc551dadc21f11d12a37c70873b9ffb40" - integrity sha512-gzl6fdZe5g0qmzCC6Ejxa1Oa8eqUSxs4+QLtrM7SyEVp+mEPJAOoDe0xD8ayRQqeXTBxLK1LFrKtc4c98iufsg== +electron@^20.1.1: + version "20.1.1" + resolved "https://registry.yarnpkg.com/electron/-/electron-20.1.1.tgz#511ae795b57c5683f22b733d5bf2ba7663136850" + integrity sha512-cFTfP4R2O5onaXiu+S20xK7eLpyX/H7PYk7lj9mlHS0ui1+w1jDDWD3RhvjmPgeksPfMAZiRLK8lAQvzSBAKdg== dependencies: "@electron/get" "^1.14.1" "@types/node" "^16.11.26" From 717f23e0dd48a543ac2aac429e33615131747558 Mon Sep 17 00:00:00 2001 From: absidue <48293849+absidue@users.noreply.github.com> Date: Thu, 1 Sep 2022 13:43:20 +0200 Subject: [PATCH 030/414] Update yt-comment-scraper to 6.2.0 (#2523) --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 8c3a8ec0c..5a4cadc61 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ "@fortawesome/free-solid-svg-icons": "^5.15.4", "@fortawesome/vue-fontawesome": "^2.0.2", "@freetube/youtube-chat": "^1.1.2", - "@freetube/yt-comment-scraper": "^6.1.0", + "@freetube/yt-comment-scraper": "^6.2.0", "@freetube/yt-trending-scraper": "^3.1.0", "@silvermine/videojs-quality-selector": "^1.2.5", "autolinker": "^3.15.0", diff --git a/yarn.lock b/yarn.lock index 2ba76831c..6d28b0e78 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1017,12 +1017,12 @@ axios "^0.21.1" tslib "^1.11.1" -"@freetube/yt-comment-scraper@^6.1.0": - version "6.1.0" - resolved "https://registry.yarnpkg.com/@freetube/yt-comment-scraper/-/yt-comment-scraper-6.1.0.tgz#13583dedf5cf0cff6d42d155ef5f2474c64fd4ee" - integrity sha512-Cj6Of7DPkTH1ax1AcaOn0xul179YsnfaNNoH11lQ4xUxUrmtf70Qj04+FDI+7/O/qsOR3RMq1mreCvM6BQI6Aw== +"@freetube/yt-comment-scraper@^6.2.0": + version "6.2.0" + resolved "https://registry.yarnpkg.com/@freetube/yt-comment-scraper/-/yt-comment-scraper-6.2.0.tgz#ed11d65111d03076ff842eb9c3eb25413f8632ab" + integrity sha512-69mBsvQ50rUBTUDfR6s1OaiH2sEmmx9T0uV2Qpp0ckMhL0sxxMZtxujraHV2FHDtOm5jG7uygi3Gseb54C9DGw== dependencies: - axios "^0.21.1" + axios "^0.27.2" "@freetube/yt-trending-scraper@^3.1.0": version "3.1.0" From 44c010c5fe09a47e68fb3f051f3b12ffd8512359 Mon Sep 17 00:00:00 2001 From: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com> Date: Thu, 1 Sep 2022 23:23:53 -0400 Subject: [PATCH 031/414] update yt-channel-info (#2527) --- package.json | 2 +- yarn.lock | 19 ++++++------------- 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/package.json b/package.json index 5a4cadc61..9b0cd711a 100644 --- a/package.json +++ b/package.json @@ -77,7 +77,7 @@ "vue-router": "^3.5.2", "vuex": "^3.6.2", "youtube-suggest": "^1.1.2", - "yt-channel-info": "^3.0.4", + "yt-channel-info": "^3.1.0", "yt-dash-manifest-generator": "1.1.0", "ytdl-core": "^4.11.1", "ytpl": "^2.3.0", diff --git a/yarn.lock b/yarn.lock index 6d28b0e78..c23d9eb9b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1965,13 +1965,6 @@ axios@^0.21.1: dependencies: follow-redirects "^1.14.0" -axios@^0.26.1: - version "0.26.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.26.1.tgz#1ede41c51fcf51bbbd6fd43669caaa4f0495aaa9" - integrity sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA== - dependencies: - follow-redirects "^1.14.8" - axios@^0.27.2: version "0.27.2" resolved "https://registry.yarnpkg.com/axios/-/axios-0.27.2.tgz#207658cc8621606e586c85db4b41a750e756d972" @@ -3727,7 +3720,7 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== -follow-redirects@^1.0.0, follow-redirects@^1.14.0, follow-redirects@^1.14.8: +follow-redirects@^1.0.0, follow-redirects@^1.14.0: version "1.15.0" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.0.tgz#06441868281c86d0dda4ad8bdaead2d02dca89d4" integrity sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ== @@ -7496,12 +7489,12 @@ youtube-suggest@^1.1.2: node-fetch "^2.6.0" smol-jsonp "^1.0.0" -yt-channel-info@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/yt-channel-info/-/yt-channel-info-3.0.4.tgz#16004068376f443df1806daf0cd6d22c69ef0301" - integrity sha512-MdW3upNBfcws4uth8HFL0XymxlgmuTcCu3sleXSDJml8jLOKl0iiYJe//vT00F1OXGFzSVGfQrXqf29RzkMPKw== +yt-channel-info@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/yt-channel-info/-/yt-channel-info-3.1.0.tgz#a37c98838d78a9643e7d1efc3a7fdb3b51a6b3bd" + integrity sha512-XofGVuocgXxzIDVgEFQw4ZOs4e1hIobmBKnv51YMARg+/RBjSO3sU5AQHgcG43n5apuzAb0k0XnEN+/DyYWC2A== dependencies: - axios "^0.26.1" + axios "^0.27.2" yt-dash-manifest-generator@1.1.0: version "1.1.0" From 9961183c1bcd2fce8ba65ef08a355d27640deb92 Mon Sep 17 00:00:00 2001 From: absidue <48293849+absidue@users.noreply.github.com> Date: Fri, 2 Sep 2022 15:19:06 +0200 Subject: [PATCH 032/414] Only generate the web assets directory during web builds (#2528) * Webpack 5 optimises productions builds by default, no need for the LoaderOptionsPlugin * Only create web assets during web build --- _scripts/webpack.main.config.js | 12 ++----- _scripts/webpack.renderer.config.js | 56 ++--------------------------- _scripts/webpack.web.config.js | 14 ++------ _scripts/webpack.workers.config.js | 6 +--- 4 files changed, 8 insertions(+), 80 deletions(-) diff --git a/_scripts/webpack.main.config.js b/_scripts/webpack.main.config.js index d7316fd74..39919eb50 100644 --- a/_scripts/webpack.main.config.js +++ b/_scripts/webpack.main.config.js @@ -68,13 +68,9 @@ if (isDevMode) { config.plugins.push( new CopyWebpackPlugin({ patterns: [ - { - from: path.join(__dirname, '../static/pwabuilder-sw.js'), - to: path.join(__dirname, '../dist/web/pwabuilder-sw.js'), - }, { from: path.join(__dirname, '../static'), - to: path.join(__dirname, '../dist/web/static'), + to: path.join(__dirname, '../dist/static'), globOptions: { dot: true, ignore: ['**/.*', '**/pwabuilder-sw.js', '**/dashFiles/**', '**/storyboards/**'], @@ -96,11 +92,7 @@ if (isDevMode) { ignore: ['**/.*'], }, }, - ] - } - ), - new webpack.LoaderOptionsPlugin({ - minimize: true, + ] }) ) } diff --git a/_scripts/webpack.renderer.config.js b/_scripts/webpack.renderer.config.js index 4f73ce068..9ed57e5f0 100644 --- a/_scripts/webpack.renderer.config.js +++ b/_scripts/webpack.renderer.config.js @@ -2,7 +2,6 @@ const path = require('path') const webpack = require('webpack') const HtmlWebpackPlugin = require('html-webpack-plugin') const VueLoaderPlugin = require('vue-loader/lib/plugin') -const CopyWebpackPlugin = require('copy-webpack-plugin') const MiniCssExtractPlugin = require('mini-css-extract-plugin') const { @@ -54,11 +53,8 @@ const config = { use: [ { loader: MiniCssExtractPlugin.loader, - options: {}, - }, - { - loader: 'css-loader', }, + 'css-loader', { loader: 'sass-loader', options: { @@ -75,8 +71,7 @@ const config = { test: /\.css$/, use: [ { - loader: MiniCssExtractPlugin.loader, - options: {}, + loader: MiniCssExtractPlugin.loader }, 'css-loader', ], @@ -153,53 +148,6 @@ if (isDevMode) { __static: `"${path.join(__dirname, '../static').replace(/\\/g, '\\\\')}"`, }) ) -} else { - config.plugins.push( - new CopyWebpackPlugin({ - patterns: [ - { - from: path.join(__dirname, '../static/pwabuilder-sw.js'), - to: path.join(__dirname, '../dist/web/pwabuilder-sw.js'), - }, - { - from: path.join(__dirname, '../static'), - to: path.join(__dirname, '../dist/web/static'), - globOptions: { - dot: true, - ignore: ['**/.*', '**/pwabuilder-sw.js', '**/dashFiles/**', '**/storyboards/**'], - }, - }, - { - from: path.join(__dirname, '../static'), - to: path.join(__dirname, '../dist/static'), - globOptions: { - dot: true, - ignore: ['**/.*', '**/pwabuilder-sw.js', '**/dashFiles/**', '**/storyboards/**'], - }, - }, - { - from: path.join(__dirname, '../_icons'), - to: path.join(__dirname, '../dist/web/_icons'), - globOptions: { - dot: true, - ignore: ['**/.*'], - }, - }, - { - from: path.join(__dirname, '../src/renderer/assets/img'), - to: path.join(__dirname, '../dist/web/images'), - globOptions: { - dot: true, - ignore: ['**/.*'], - }, - }, - ] - } - ), - new webpack.LoaderOptionsPlugin({ - minimize: true, - }) - ) } module.exports = config diff --git a/_scripts/webpack.web.config.js b/_scripts/webpack.web.config.js index 1b15f319f..dbe06e982 100644 --- a/_scripts/webpack.web.config.js +++ b/_scripts/webpack.web.config.js @@ -46,11 +46,8 @@ const config = { use: [ { loader: MiniCssExtractPlugin.loader, - options: {}, - }, - { - loader: 'css-loader', }, + 'css-loader', { loader: 'sass-loader', options: { @@ -67,8 +64,7 @@ const config = { test: /\.css$/, use: [ { - loader: MiniCssExtractPlugin.loader, - options: {}, + loader: MiniCssExtractPlugin.loader }, 'css-loader', ], @@ -183,11 +179,7 @@ if (isDevMode) { ignore: ['**/.*'], }, }, - ] - } - ), - new webpack.LoaderOptionsPlugin({ - minimize: true, + ] }) ) } diff --git a/_scripts/webpack.workers.config.js b/_scripts/webpack.workers.config.js index 7ca42754f..4c5b7a69d 100644 --- a/_scripts/webpack.workers.config.js +++ b/_scripts/webpack.workers.config.js @@ -63,11 +63,7 @@ const config = { if (isDevMode) { // any dev only config } else { - config.plugins.push( - new webpack.LoaderOptionsPlugin({ - minimize: true, - }) - ) + // any producation only config } module.exports = config From 4a402652bd1bffe947d473b8ef79d22a23ca37cf Mon Sep 17 00:00:00 2001 From: efb4f5ff-1298-471a-8973-3d47447115dc <73130443+efb4f5ff-1298-471a-8973-3d47447115dc@users.noreply.github.com> Date: Sat, 3 Sep 2022 13:23:08 +0000 Subject: [PATCH 033/414] Compress images (#2532) * Create calibreapp-image-actions.yml * Update calibreapp-image-actions.yml * Update calibreapp-image-actions.yml * Update calibreapp-image-actions.yml * Update calibreapp-image-actions.yml * Update calibreapp-image-actions.yml * Compressed Images * Update calibreapp-image-actions.yml * correction on comment Co-authored-by: efb4f5ff-1298-471a-8973-3d47447115dc --- .../workflows/calibreapp-image-actions.yml | 28 ++++++++++++++++++ _icons/.icon-set/iconColor_256.png | Bin 4962 -> 4568 bytes _icons/.icon-set/icon_128x128.png | Bin 2310 -> 1793 bytes _icons/.icon-set/icon_16x16.png | Bin 526 -> 489 bytes _icons/.icon-set/icon_32x32.png | Bin 785 -> 668 bytes _icons/.icon-set/icon_48x48.png | Bin 1079 -> 828 bytes _icons/.icon-set/icon_64x64.png | Bin 1281 -> 1032 bytes _icons/256x256.png | Bin 5342 -> 5020 bytes _icons/iconBlackSmall.png | Bin 498 -> 352 bytes _icons/iconCatppuccinMochaDarkSmall.png | Bin 3548 -> 425 bytes _icons/iconCatppuccinMochaLightSmall.png | Bin 4681 -> 426 bytes _icons/iconColor.png | Bin 5342 -> 5020 bytes _icons/iconColorSmall.png | Bin 579 -> 433 bytes _icons/iconDraculaDarkSmall.png | Bin 5482 -> 356 bytes _icons/iconDraculaLightSmall.png | Bin 4831 -> 353 bytes _icons/logoColor.png | Bin 8545 -> 7798 bytes _icons/textCatppuccinMochaDarkSmall.png | Bin 5650 -> 1751 bytes _icons/textCatppuccinMochaLightSmall.png | Bin 9246 -> 1751 bytes _icons/textColor.png | Bin 5810 -> 5344 bytes _icons/textColorSmall.png | Bin 2181 -> 1790 bytes _icons/textDraculaDarkSmall.png | Bin 7439 -> 1641 bytes _icons/textDraculaLightSmall.png | Bin 7489 -> 1624 bytes _icons/textWhite.png | Bin 7489 -> 1624 bytes 23 files changed, 28 insertions(+) create mode 100644 .github/workflows/calibreapp-image-actions.yml diff --git a/.github/workflows/calibreapp-image-actions.yml b/.github/workflows/calibreapp-image-actions.yml new file mode 100644 index 000000000..506db5104 --- /dev/null +++ b/.github/workflows/calibreapp-image-actions.yml @@ -0,0 +1,28 @@ +# Compress images on demand (workflow_dispatch), and at 12am every Sunday (schedule). +# Open a Pull Request if any images can be compressed. +name: Compress Images +on: + workflow_dispatch: + schedule: + - cron: '0 0 * * 0' +jobs: + build: + name: calibreapp/image-actions + runs-on: ubuntu-latest + steps: + - name: Checkout Repo + uses: actions/checkout@v2 + - name: Compress Images + id: calibre + uses: calibreapp/image-actions@main + with: + githubToken: ${{ secrets.GITHUB_TOKEN }} + compressOnly: true + - name: Create New Pull Request If Needed + if: steps.calibre.outputs.markdown != '' + uses: peter-evans/create-pull-request@v3 + with: + title: Compressed Images Nightly + branch-suffix: timestamp + commit-message: Compressed Images + body: ${{ steps.calibre.outputs.markdown }} diff --git a/_icons/.icon-set/iconColor_256.png b/_icons/.icon-set/iconColor_256.png index 1ea2028e6e8576f80fd8a3ec62e7cd38bca777ba..7818894defddd80406fd1595c62062d3aa4a7fa8 100644 GIT binary patch literal 4568 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 literal 4962 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 E03u-|l>h($ diff --git a/_icons/.icon-set/icon_128x128.png b/_icons/.icon-set/icon_128x128.png index 324ca15204b679222c0f656520c207702012a24a..ac8f23332bdda29ad6dfac0bee3f74bbbcdb64ab 100644 GIT binary patch delta 1788 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 diff --git a/_icons/.icon-set/icon_16x16.png b/_icons/.icon-set/icon_16x16.png index 2faf48e607c6482ddd29006e1c5a58ac48222f23..9c6ea12d07345492dbc146016910de3315a537be 100644 GIT binary patch delta 464 zcmV;>0WbcJ1nC2iBYyx1a7bBm000XT000XT0n*)m`~Uy}n@L1LR5;6xk~>SoP#A{4 zHl17qhgzsgQ5-~Sn>0nL^#UTgI`lG&qT&w_2RHF22;$mtbfqRVle?SMuAPZAg8h- zO@lyF)fZ8a6SEb1{eiiIqDT(*bHIO+SHqlFRlD{NfscN)q$vCv?d_bKnpe5DO5wU1 z9O1e$(YFu?n<(Rl6d+qHM+Wr5DQX>oFv)<&j@t5NIo5b6jA zkq|g51bd0GSbxLTQ^vo3&8-`^dH?#&N_hD~p<^bxV#;*)N!;jlBIB^^Ko`_+Kc^AS zwQSyLfWZe?1!3R-PBO+Xf=3AS@Rtx6k`W=0{u10nUxoZ^ zLf}dzCtS8clVDd!a$=6^r(>3EgC>C+?0{@ZP+XVjALAPX|IHXE^Hm-I0000xP5uofyvX?Pg$}9v_}i8 zGuCP@{A0b^-#`uDAQds#h*ul(o6eOgw>Mv{ACvpdglNPA&&%j=JC&X+1T&y)`r<&h!}zS10Ao8jkd(z*>&XCo3?G0~C_ zRDR_K_ZL3Yr+~Ailh^&st`JvPyUDdZn$!4JH75(6I9=Gs=gc=b|> zo@)yp1W{@c>A~z~r@u+xfnjTs**KdnJj`w~JHKb%oyiB|eSdw=z&k7mSR=`mN?&%1mL9=pmf!?bHbpdC@?$Qx>%aciF_YZt@Ez88S z-vuveYlpQ2@_*SZOtD}SonvPMce9SwpP?D}VFEk?O%&dsS%EuKBD{Cy+c4Uzx%7MX z_2~=7TbmeK7|em2fDz$Det$3YcyWu}U*2X*sMLA0|L4#Y zXn}x>5JABsG7H*N5fD e4yg)t5%>e~fs7NIF}Y6w0000;80Uzc=W#Clg{0+k# z?eB$YE`=rzOWd=Q5kv7goernWR45;|{{JxW+#~{vNT+8qmVH+Wp}t%JL`r;=-g}@8 zIImz#B0x`bGk=L>a;IFsHZfOI*I>I&#+GieyH`;h0-gasyoeeANH>v8vbpPBix?b! z*x7#S`_{1(TY7Io-AY(oTPz4V4cS^Km;xyTq-PZQl8j~Fj&+ZWU1-|Vairx?gXo<_ zym`x&ZLL*((G3++h=?mhPzr2aKYt2Qb;5krol#E3?0@t@F*tNR);%)eShiO{Ux7~G zA~5RhN`M=k8kaMb)wI35!~VWo|2P%>{eQn30$huAk4!mMRzIT)(F3`xK|cAy>-vvv zDiO^a%M%54c4!j3`^JuAZx!*QJQQ^B8l`QHv<32F3Yp;rg zOeLa@CtR+$Ie-vs93PgRU>L%FfN%PUg>~yK8sL#>)A(NiCxBVsFj>$@D1a1@(5Z-o s{oBt3z}C~N3FrbQ7BULI0ssL2{|dC~d%$(9KmY&$07*qoM6N<$f~03&)Bpeg diff --git a/_icons/.icon-set/icon_48x48.png b/_icons/.icon-set/icon_48x48.png index 402e87156df61ae973750b9c2bd4a3de862f8405..08a7db092aabc05998c39f43459f320f0842c401 100644 GIT binary patch delta 806 zcmV+>1KIqy2)qW6BYyx1a7bBm000XT000XT0n*)m`~Uy~?ny*JRA}DanayhxK^TW; zGmG?+inW)5pkAz@U;;_B5j}Y6LBSpc5pPoPP^%!e_9EDNuu!UpdJ#n{L|X-~{R{M> zCtDDcs#QTj4`ORglkEDN_T4Zn8=LG`W?gugX7e$>XWr?|CV$J!bUFsc!4FUc1~4TI zI==``00ubFKpZ>-D-Q1q1rg?Y1243~{RT-2uTgljRpBjx)jA_@r$p^ERbdY(H~8K_ z1sZ*Eg@QgKfs_=yr2tcohh96@N0M@C%?rY{G5?tW`*Sz<2uK5eLImJ$Nm=8-YqDyRi!O&b-+V0h1_z!JgR#JxWRDq zXF-fmUO--c*QCE|l~7&4ux)_LU?2(=FlWiN=t%!6)?NvG27j@3GTT9=`>H~3$?(Z2lqpOsc`%c z0;Q-6yrrMWji?Gt*#bsRU?1IquWV5TWd#Hy(%pC?Y66@j?mOHCjD&zD{q{ZzenxQ$ k$sZC4FiCd;*Hjny3-wCV^|bkL3IG5A07*qoM6N<$g1Qr8x&QzG delta 1059 zcmV+;1l;?)2Db>1BYy+_NklD5(AX%um5QRXEMOStsA}$2A0kt1cT7nBdR*F?YDRfhcO{!8GstA>SV5J6p8k6{v zcjXS}mfIoC%iMW0FY|{XdGluO{QviyIrG0~o;E{63V0oO0e{#CM6x*;+0Fs40ABzx z&;A`bS>PpGgmmCQ78ih7V6!(XMZi_NSje9Q zo{(#+kO(*dc7Ru9@GiMP5u293SAf@m2Z4+72xx{xAi<*U(%mOd?4KKc;6iU>VP|Aa zEp)6^&=j(#fNz1TvR}DM6fB_okMm~p*K@pl?8wp4>3^?|4jlgs2JeBMzP7Pn0nS7w z$QZZRuRizD_J_y!JUVu3bj-j{=XmR(XS$~E+@?(w#mz{yGldct;8IxJ zK;lN%T1o85@p7a-)u+B2*)e(M-oJWkGxFW9z=Sg9@RCyX1>Mc2`M>q1`TFwb2X~n( zwJqE=dw&^a^7%eT+DG;j5+l)!RF4hvvM*tL_t?UUb z(rzoUk`Nn_)4+>GM5HJ$looO~@UADM=0zlzkbk1hToxhMtVk9SWx3I`kUi?}sMqEiBly4c|$6Fz@fVkOA)`gFq{^pm-;m612L3FTe;trYD z#K6bV)YOyaj+(k};*7t@Ep+L4BLt_=KYs(;qg1z`kQ{G?U@z3S_%B^cjU-iOM*5Rk zx5UdNPu?>6!|2v)|CdeNp^EMG>!9TAV`X6locCU4R}NOdm)=vga!}$~=H+wcqF@F5 zEWeeAU4UohM;~>+f4Sb_cK|HmH-H_|&pazFj~sQ4 d{{sL3|Nr=bSgotbU@`yz002ovPDHLkV1j8h6Nvx- diff --git a/_icons/.icon-set/icon_64x64.png b/_icons/.icon-set/icon_64x64.png index 80b3724d22735f26ddbbb7983e57daafb3d52cf4..43b0e76997458e32d3e7024ce1563b7907d9c425 100644 GIT binary patch delta 1011 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 &rIdf}n&$Kfz3~0M zf#s+KX1nNWRmv3)@BIg4bT?4ojxxIyu4~fN%&6)q=@}WTo@ywv2!T~(v~+670g9W_ z=2@7753B;L4ofnt%Wc`^W=r&KD)h~H&VTRb{+9;t{{do0CV*uS{$1NgDl`7f4@VP< z;9J5oSRlZ=6M*ctf65;YQMyjxz&4vMoGUO5yU1R?CPJc!DH*~M`4)JAU4#h%t_2HU zNJrH#GHqo6Ueb+=`G77F2jK`&Y|B;)EGT;X)YaJsd~|lrN1+kVN+r|@r8%%=0;rY^ zgc$s`07$YL9H`q)JY8PI1unodG37xG$f+0Q0VsX$&NAalE+9+JDkVKPUVU^g93C?_ zBXY4FVL_r$;5+)$q9S9mTbTb5n1}D*){_?D_Y~+kcx*K6NXp&leg5q&oC=-e8ahn) zmc8W$&Aej((lb)_O>xnf2-s%pIw9h)tXk|M2h=Uk@vzO3Rwut)3>6s}aDxsB6~d_4 z)HNDmwq~{^F$=u=b+`vbt`VT{r+GY|dsEe<_m&^t z`d|zhxk;qyl*4Xfj6#&3Mt?Yb1~(-+k!|LgXr3;{-KZoK-11R*8%LdzO|fxG{B=9C zc~}II;s<$XFD%Fn3Iqxdz4z|st|p_~`Os6D-u(0udF1x5-$$j`re@13NBM0!$}s|n zBWH#bX1JjX#E?%CW`g9Ll?eg7T^}z_O6kp3^C7^^>Xu^ADmSk}o*LuH-uorzqd zYSbE!?IQ161hm8q8FxJ$Re}0(3pK3Pb~4j_-;@w>#O>YKrYPNCu11)pgnF>T8l!86 z+&aw#%O*G!a^h^rC1Qvt&LhYZ-hd`n6RUm{tByTpe^eKD6pPcss$sD>EcR>CDE!v= z-x&M?E?x1u{(m#1_j)ft2646qy8y3{aAJ@r2oDd}xZ>{<>_H6l)CdUj&RWnv0EvLv M2`fUm@r9fJ0l+7}MgRZ+ diff --git a/_icons/iconBlackSmall.png b/_icons/iconBlackSmall.png index ef5c460181da6ccc7a05b8bae74d67d7b330fc95..04528fd4905051aa994b6e79a4955387be8a293d 100644 GIT binary patch delta 336 zcmV-W0k8h@1KmMYp|;0agJS=5noTg&ZNtT=Ns?3(VMO!L9fWWj6CBGJ1!zGsOkf2 zeNV=?M0%Oyyh%vp2Oqe{md)p+fdU5TAS-K(>9@=K)O%uKOp%0Gnph&kI3le$A}Rd~ i&pIwi&>CM zJgE$&Lq{2(14t^Ij%K-TALQ6ZrS*0qBOVT zAD+K+MY?Wja+Gzowyxh8z%=>JlY5$Xc1z6&onw5st=v(dF6LgM0iAa9&)!q8Yl3vxB!f*F&%bB@+ddjP^-i4Dc=RJzN z#(LiDYLCQ>KfQNvn9X%-dJwg2np=~2-5JPh-Ljx-l18oBXD+7b4-S>k~H00)| ZWTsW()-dH-`a7To22WQ%mvv4FO#tinwBi5& diff --git a/_icons/iconCatppuccinMochaDarkSmall.png b/_icons/iconCatppuccinMochaDarkSmall.png index bfc93ad5690d59dd23ee1d8a4802e5d1884df2c0..c963e8a0e823feb87c79c04ba2447b1f2c74f576 100644 GIT binary patch delta 382 zcmV-^0fGM98>s`3Ba_by6@LL+Nkl2E6APcfm+&<#Ed(125d;Mrx3JLoM-vS}v$>52KFBcS|1xuCLQ?RK zl&h~GNN@!tXn=F@o|-QN{UV4t!UvdD!jqD}CVfa&YLJYwBpxK~8h<1g<0N)P!5ip} z+pd`kf+w&ACbA@_gpzaiI-XC$aZWt24Gf^sXGoUhz}1abcY`+FCY2~@I+QIDj;A|) zoG!+gZ@?a~;s7DJfGtC!IsJAdiMa;H5KI-46_kYF_VWwE4-Lthij|~!1iN5Cr6lGK zD>GF}p25B;xly+y>~qTq_@Mcf!?kYLEjUZ|!Lqn~Jqfu717QEW%hVE`DyNHm zT632o!2pe&w(=g?+>+?um8{9-9x0Oq0ny@omr7TWl~j>D{D)+yULtrFftN}p3DGdM cb$(s>AK9tu0sRX(jQ{`u07*qoM6N<$g0y0<)Bpeg delta 3527 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 delta 4669 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 diff --git a/_icons/iconColor.png b/_icons/iconColor.png index 5b40c707e8a2d6e49aa654f0e5bd18ac6f61a774..191266143368e07d70b53d51c9cead075d329ed8 100644 GIT binary patch literal 5020 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 &rIdf}n&$Kfz3~0M zf#s+KX1nNWRmv3)@BIg4bT?4ojxxIyu4~fN%&6)q=@}WTo@ywv2!T~(v~+670g9W_ z=2@7753B;L4ofnt%Wc`^W=r&KD)h~H&VTRb{+9;t{{do0CV*uS{$1NgDl`7f4@VP< z;9J5oSRlZ=6M*ctf65;YQMyjxz&4vMoGUO5yU1R?CPJc!DH*~M`4)JAU4#h%t_2HU zNJrH#GHqo6Ueb+=`G77F2jK`&Y|B;)EGT;X)YaJsd~|lrN1+kVN+r|@r8%%=0;rY^ zgc$s`07$YL9H`q)JY8PI1unodG37xG$f+0Q0VsX$&NAalE+9+JDkVKPUVU^g93C?_ zBXY4FVL_r$;5+)$q9S9mTbTb5n1}D*){_?D_Y~+kcx*K6NXp&leg5q&oC=-e8ahn) zmc8W$&Aej((lb)_O>xnf2-s%pIw9h)tXk|M2h=Uk@vzO3Rwut)3>6s}aDxsB6~d_4 z)HNDmwq~{^F$=u=b+`vbt`VT{r+GY|dsEe<_m&^t z`d|zhxk;qyl*4Xfj6#&3Mt?Yb1~(-+k!|LgXr3;{-KZoK-11R*8%LdzO|fxG{B=9C zc~}II;s<$XFD%Fn3Iqxdz4z|st|p_~`Os6D-u(0udF1x5-$$j`re@13NBM0!$}s|n zBWH#bX1JjX#E?%CW`g9Ll?eg7T^}z_O6kp3^C7^^>Xu^ADmSk}o*LuH-uorzqd zYSbE!?IQ161hm8q8FxJ$Re}0(3pK3Pb~4j_-;@w>#O>YKrYPNCu11)pgnF>T8l!86 z+&aw#%O*G!a^h^rC1Qvt&LhYZ-hd`n6RUm{tByTpe^eKD6pPcss$sD>EcR>CDE!v= z-x&M?E?x1u{(m#1_j)ft2646qy8y3{aAJ@r2oDd}xZ>{<>_H6l)CdUj&RWnv0EvLv M2`fUm@r9fJ0l+7}MgRZ+ diff --git a/_icons/iconColorSmall.png b/_icons/iconColorSmall.png index c9fb08621aee04bee286beb8f9662d2f531a7c3a..fd0060151726c5fa8c82cde839123a8b904998ff 100644 GIT binary patch delta 407 zcmV;I0cifi1hE5-Zz)KmRN{guGc?-10G=w@^B8L(EV8Gmw$lo2oF$5GkGxb*G&r% zBZJ657BLagGl<+yiWE}@zF>3G>sm+=c!O=2l0{AlgR7+mKA*VP5t*<9E0Ck{B(eze zv~k_rq7Kheg2A;K$s?j>YVDy>wjG8J?8CZ0LCJPv)FhF)_E7gCz9%?FK#LWN8F7u^ z1Ct*bwv$t_l7FyQ*n?%25#KXbR!|vvhl35<$!8sL_hkSUjE{F&b^sDYx^NcUhsu?c zeB-sdpWlh=1)5Owzw17I^|G7hbO~$bo>#p<6B|2UiF#xsN4)>8;8?opld=dik$%ym z#3Rm1(nR|I5oxK92(gF>ACyJ{p;qYCSy|2h4Io8}s}M3_QpNxP002ovPDHLkV1k&k ByZ!(G delta 534 zcmV+x0_pv+1H%N6Bo78+OGiWi{{a60|De66laV18e*gz`Nliru;tCTF3=6M+AwU2C z0nkZAK~zY`wUxhX6hRnS`tddiv0RZ3tFhG9QO~$6~th{<|niS-P zB*5h?hyWWo0AF?tQ}nVRQYwAbbgOJs~*%s>t;ghM!F5ztzlpRcoA4v z=oJLu8*o$MQ@0@s)PWm7A&&ez27WXu_BsH(2Oa^}ihfaYyxmW;l6>*O5`VLMcjgYvmqk#^Q5fByAtux za<${oYCdI!ql+J@ogL{2($e5X01CO{w?>a;fCs&YsNMordJ2(J=`*UQfNOhNr`>}5 Y219R+1o8SQ9{>OV07*qoM6N<$f^PWj&j0`b diff --git a/_icons/iconDraculaDarkSmall.png b/_icons/iconDraculaDarkSmall.png index 3f2a93583c591bce302ebef8f593fcf9dfed24e4..5b515c64960e9122a1a796dad31f1ff1c80a8e03 100644 GIT binary patch delta 313 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 diff --git a/_icons/iconDraculaLightSmall.png b/_icons/iconDraculaLightSmall.png index 3f34041d50025076a9705957e3f418038246779b..e497925fb76ab8909db7a505e5f8cd78a0177a44 100644 GIT binary patch delta 337 zcmV-X0j~bvCE)^)8Gi-<006}4g<}8!010qNS#tmYE+YT{E+YYWr9XB6009$8L_t(Y z$Gz4&Yr;?%fZ-IhLpLvU5{i>3U7cJ@Y4u;UAn2$rovgPGh0>qV{+$jL?bbrUO>vOW z+RGdG0zou6G3R7>ASC2_L(U1rvTgecU-4ZcvFDa3i}e-lD1@ z^5Ylj;!;E8H7IhSA#&~)>7x)~_$Qjq=JAV+WOtomh&wqKWPmzO<$m9YGdPVlj^u`f zBFigiO=@yH$2C$o*c=ih?CzSNffJJv*H~U>%4Ec`#zGc4X)5CNfs)C{8}4yzBJz%w ze6ZTrLUcDPDpBu|~+cerXK5j7BNWEMwc7)K;6 jzd%MKjx3(BG7RnLTtIQb zeMb#$45KqHl#b%Kqv%uQx#5BWiW};Hii$8d0Tt`bAFJN{GgY0W?>*nS-*@i0U!}89 z6&Bjvp|1mj!RW3S9ux^a`&ce}JMgZpRMs*Wwhd`fF?1wqWaA`Srg>X7x~YNDvt-l z+jP$$m6vYXtot|DzT*_{&rN^cv^Ta1Rg-T^!&7pnWepkxc`T_z7f~+?^SiBnICb

(X<3NT%Dw{wsElHU~cPaTg3hUX=u#DDA!_ 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 IYPJ#o1C^<12mk;8 literal 8545 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 W|Bdi~<~qre@uabZQNDr0_5TC?-SQ9s diff --git a/_icons/textCatppuccinMochaDarkSmall.png b/_icons/textCatppuccinMochaDarkSmall.png index e2fba035e8528947b89fdf8c74ab652560c63a6f..c5b70b21548f2e184f7a2e2f18792ebc0ef08384 100644 GIT binary patch delta 1736 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 diff --git a/_icons/textCatppuccinMochaLightSmall.png b/_icons/textCatppuccinMochaLightSmall.png index 70e96901016fb313007f3f75851e2d4bcf2fa9b1..8a7bd5bc534a4fd307bca70f18b925d0723ece1f 100644 GIT binary patch delta 1719 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 diff --git a/_icons/textColor.png b/_icons/textColor.png index 8552c19880aaeba855992138921d788db4541f9e..bdc83759e6ece70e3aea3fe221e8c844a0239de7 100644 GIT binary patch literal 5344 zcmds5`8yQe_opmHlqJSw2{ls4Fk_IVGBbE*EJ?OxA7d?sv2Q5`gG83GWyZdhC4`b_ zCJi#yP*lSZhIiIXmXAK)AHM&?=RVK9=icX>^SbAp`#k5I=O&t)8Vc|M`8YT@1dNT~ zH#s;siHG|S$9N7`I!xixAvu2E$QH}Np(6ixa)y-Z<2X1(pBTfh-3pmx6&!D}djB+D zLK>dV!+qMq{1pBOa4`Pa1^<|m{-k3r5M=r(1yT6$1<0wmlaKJ6>9=LUd|k)Qv*nWH zdN|K%4%S{H@SHZ6zbGWPe!&3e?)!sAi`*{Mw(@A({xilF$FGjoegDE<)w1%ie(7~+ z%>Ur{c72JeH|-cmsECXoxp^zO{!gn(AihG-Iw0O=sswSyLZ5!jBJ>^bf_Az^EFM&; zLh?XdfrqPC^piYEW9K#e`Vkp$nYo3u9TF{t)BjQVuoE$nnYdMEZifF&IijafZ6N{8 zzB8%VRs*N7!o4m$V$TX#$k%NI=JtU}P(^5NByqqfw!C*SUQR7HNxS6(wKg3Shlo~U z4uEt)mIh7d=0J^R$`auF`87m*^XW=@1bQqlDP(!&7+oPdV6?m&GcbVf1vtFJ$1>cY zB}OQ8QP}C9t)r(Rg-H5h{(l8P?jJC0u*)}1XWcuqNc9FIDvK*Y&-266q7Hgr-(!0I z$3xwRQ1XWqbYObw)O*3m03Pe8HRQS*(u5h=SlIKIZFP4RiM2Rnnf6L~a-{#W4t=zAx~+Mk#3(c}`D&RBX0H6l%T&phxoCKJ=Kz=IX`H2HNV z(Nx4i7N`PLCY}Y#UlbP*Es)nXy_HoQRqGuvmKc^Ck4Jj7`;FrS#P*CvEN-17AJ@;t z+a;QgZLm=;E8-cU-!T>n7QA!|=FE^EWDP3-*B3&GDvQ>N`PQ1JYF%eb(aEH01j;hZ zK|_2~=&LeO!A{oBvC^zLc`PXlk4~cC2NIW!9=WIkD`$R@W)k)29X?A4EJBxmcRGs1 zNowJn4b58!56E7tN**}%wbZuCm*QHzz)e?meXJ;%cH8U1b3D$ziMG2eg9yfJJ40d@ zvH7OJDQu5TwaCJEp)ErZ6su9ua5sg-i|`$GgD_1IBMu6)&#$|oLvD{ixyMO6F5sIR zg$X_){2T7GYyfJdc|#=fY5B_bytdcXebza8K(b!zsAVJ#Zk@QltVnwaem9ROFLzRE zOJauVf!=Lc`4T`L4pC<(g;cw-^T*hv*BDgH@3K_!vM$VqAI+Li&Q;S;;l4njT$r7} zyWk{wtaxDKtKn|U8$Uy8%uLSn%8l^(M4a7Lmj<0Pb(5tMcKIFov{=$4NL7%URG9d} zAsUWaSu5`h@sj(U+#r3CZxzR9EG##3ycPRw@n-0ub5xBr9eru`hP}_kQHlIlW|%m ze%6mvb8BT?StISw&Xa->j+!HXtmrVEyuN^h6#k+`mCjQ3_E%Y&nrpOAA`sPb&TKYQ zEj17y9Zo=E4UdR4Ohk?k8OY>a7NJ?<#D>(WsTf%TI^oTqQ>A^s`s4b>KH~}K`0j@q zZv)iyt~H(SdC+2O?|He(_C2|3^(Ss&Gt1p<(@iai--r9td92~~8H<)Xd5W_$UWsp% z*$BMv^y>S)71Tcjrh=e9O?Ts(VZ!fWS2d!o5bGl!>5)qELR;Bvm_j2$=2Z$*p`Pe3 zjuKWLN|A7;MQZ;;PPAm!k#&xcCxG834j81VjlInMwi`8db8Zp%H=kV9g&aNBZA=w* z=~;Qefgp&)`t&CyT78FE;0wfw##i6u=pJI=73FK>pR1>WI}-FXzsl~bgC$T_Z1asv zx+Zl6sUG(9Z3G#9N%#FuefPTqlZ4iyrQ}lH*+lwajY8s^6B6WmU_ig#=B5wCDmSf{ zW01lipU-=M8hEd@@YC zr>N*L-Dl`{Yt2=Yj4<>IM$7)|Hd`_h|3+%z)VhD3q5WE8%7)GTDa~kpQ3ZKqqmm05 zd|50EHC#MHiKD<~Ci6n^p17C3CjeNR4*-<11~dnnEiFB1We8K}N_@p}n0EO(4BY+* znpx8|sIB4;ZFXlw)y8z4rN@89Cr+g6Jm|;MmzA4bKXze2^LD)c`GD<~5I3~+$--qY z?s9SgHt2fh!DGbC^g_LZA*LX%NB8I>*Dasn(Or~)cT_WXS=w}HMZ`@!x(DLtp9cRLLum+xwk1`;y;FwRrc z&CN+WgQ3^a>4nb3k5Mepo;HIVN zm>{iVhmUA-#3Ic#Du!XRebIb>@$uYUVArPZrv||^XUIX-K~jZa@YJmRq4onwoo3mq zS|0XI-q%mCfTAx{6r3S|6iofRzaz^$ducs$>PzvL6=EHwT>3>#_kru7`j*h>_tVMR zIXdohLQDNIL7q0x9ALIh-liv5VGt*WFxNwX1&dFNeLK-act6naqp%0N9jjzP-a*5I ze%m9bjjL)jxF(URS!XOtsT@2_na6mH^gF`4O=*viv*K|puGg+(t>Qt6nlY;>mNT5LFuco%`j?HP# z>dd8nY^D2jV@NO}SxsBwxl-mu5Ey=77Y$r(m5?~@&0!Fk2pf-?LCmsdHNxrZB zm?<%j8izc1wqazyGvxfA1)r)L?0ucNERWA_)4h2#0rD@g&MbHR!Wsn(sFe9=jcSFN zN)}@Q^Y6E(zSPnbBr6^#=l%%&QiOMLeZa8ME9U{U_`z0ra^-pWP;!8jPVJiJ3WH=X ziEE2torrd}^(7%yVjrMC@Dtavf^ zVQfpqLZ!D)3kLlxD!-Gxp>b4|I0Pn!4>ibt#I}doHF;lqDa=XkCD0>&`1g6^ahfA@ z1RZx6?n1B}(o!2aJVg@3s=GlFY?^5K+>J8GjN{~2?QjA*xC{F5+vaa{X0PttK{T-8 zOUr+O<&_s-kOzN_C@#$eD@~5^lN0+fbwT(m{RT33($kmwrF2t5?1OeLbboEKy`)G1NvVH`or*E+C6pBKl+}O5YY7rzv{@5V$Fj3e5c5< z7?01ebp#4b98x7B*)~cThj@>LIwmw3*ME{-D2QaZL0D3*(F(TlLa(3**>)ClgV^U7s?Cbh5SEFU9)WXW{4$&2N2C}}l>;OJmR z>Dv_kS@$BLGdJU!!MPU6*>x~6Gbn$7^Yxh;$<=sa2+>}Wkr$LuC+2&1q4KLSpkE(k zxGtdU^o2+=PW`nHa51@(w53Ubdh1$ln3kZg8t5VebG4LAoAj;{YDr-LQ~(nDIEvO> zkV(zuDiHL~OY{?c?Ra)fGXbD(aIP)?k~T#atxGTE9H8u29tWcAPX>Li&A2&ram7h{ zNwCrPY1BP49s+2b{C*svyH@Lg$#dKsY|%faRTmr%8Aq|XzjLx~WW2@JOxNn5HE!TF z5|sX!{MS$I0>w!Ymz&dP*^bz=xuJKg&c+)vLm#Z*?45+}kqp{_@v8JlB>Q3LC*&>I z)qFBS|Fo{$BoHDWblBwNlpB8&JsA`_%_woZ3yeT)kQRLR#_Zgs>o447&SPeb5;QZ` zI{NQ{zKO%P@s#A1!C>3lA&WF|sqvXC^jYlsVOn^AByR#&a@L}f7Y^WQNo7eZqx$ps z>EC$(v0obI4&Xvhin3lV5Pzaz_>{qN7vZeZ#!lXjlv4 z`$N(`l8dn>>mY(txRu&wlI$NaQEXp*Ml;jGkKVj4^&`K^k&oGdD2Bv>+{`jqDsy zj^61XQPK?rX)#}K#*3|6X0(duX-60fMZJa38wCYJ2T4QBx4}MZ-z9x_VxtsGk&W+2 z0s_KSj8S5sT4nF&j{6gu4{$-kkx!i3`?mg7F(y<-3~s?DVx{i>@LqnUHzYW3w) z7gIqk!bMKw<$vXgq#8FkD2R6_rnzy~eA}#&-gnIA!2S66 zx_w)-@I2gS%pZx!T|ov<^c%f(L+^AL@N01fZiAh}_qWyo-sM>0f$(e-w2<$czk%pNA=6)MRq0q0XSh@S{-`*(Fd|c2u=s1EVUKZ_(>+ zgydPfGr!LHuo=ZUF#VhY+znUNocE;R;efqIM&tS#KiHCY2t)3>0PeOQt++Z44a`f}+$bhsSyC$_d;NjOD3i1selizwn9 zW8C#T4WRK8m}-m*i3|0~xLROxF`XZtmaM^(W1}}1{ExN`1x&#eo37EIW7^91vZOuD zrwqdT$j`foX!obY9`UvqHzXRvRP>>zkq0!>!jL@LMWvRtJ#F1zV$+ zb(9g%R$zx25(>?TdG)95rp!)mru=-a$-pDi7^QT*s?uQ7>;(pNU2N|H6t-?U;9uGI zcz2bBsd5dgPi^$1VtjABA`V%#1?@sI&M0HNr2j|$(_-Wps|`|mJWV2{Z~nSuj4*}Q IU3Yr$AJ(RahyVZp literal 5810 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 diff --git a/_icons/textColorSmall.png b/_icons/textColorSmall.png index 705ab0e3ed5d0931692192cc0d569a671a2f4eb8..7a2196afffb52a4aa3502774e23c0719922867ae 100644 GIT binary patch delta 1757 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 P766X6E;hB+!KwcOko(Ma diff --git a/_icons/textDraculaDarkSmall.png b/_icons/textDraculaDarkSmall.png index 3ca93c5b77ab1927dd835f642fae76044c07dd31..ae232959572dbeed0a920d1f1dd4794c4ef00d08 100644 GIT binary patch delta 1625 zcmV-f2B!IsI_V6MBYyx1a7bBm000ie000ie0hKEb8vpY<*?ot!0|o;HA?OdZZAIVR2{;cJ2aFAY^tl-5EBj4g ztz&_6fziP6&AqV!z*oQl;CCPr1#5wBt%QstfiW?@H5!%!nF*{nL(OqVBBaKky3)wx#nPn*v-3oGtbUIWVJX zhbw3kvE$LP2w4~hA%lPoz#IIShq-x~W18xhAtw}g&x_;l1GkHD0_GNiCj%>ieQJy( z9ghIRVt;&BdH^9+N`C||=O1{=FPAn?KNr{udS3Bc+gzV&@s^@&0JR{Fk zbGD}^G$@-r3)BFs)R+a0-{KJxhQ(Z@NVRR_Y0s4jT^z>GS=@k-b+ryr_-^959k~~NQCPQB+2IhpDA5~BN{)m z>3?l5gS}ts793f693Y z*KKtDCLbaBV%x#W9N?`hp{XOV!fXEq_>Pc$e$6%I9)DV% zXxdw(T(dGjU&i7|`rN~;ESKr8gZn#!-_ThRvc~J9#|)y^wrc`Hq)_ak^f`Q`2qR>F zfQO9qJY+V@gC(k6<}Rc+jbx^l&+=htW8vLQgyiyx!evq^an?lZRVAF9Kur}!NH1oB zPA|V_D1D*2fWz*PEN|@_lx`1e8GlK4E4{RMcszyS^rj?)eQH#nDxI4PLBK`8Jh`t_ z`=#pRACnBmn^R8H-R{DSLWnlF+;O*h?_Ud)eg{+fG!~+MU7@qAdXEr!q|Blh0tWF>B1@o*x9BlzAK>*Q-l?X&i(UE7!a!N}oO|Yud#uZGS$qvXzX( zvR*&0D4grPF4uCL7~oU3Pmi)@cV=xm+o|ySOi~7lFov&XBC(7lIo+Kqky+;zsVkU< z%f3GF%7b!mPg6bp7S=Hvd6!7rPhwX$Xc#jWIRTU7AS92Q5~G&H=yxjJen&t}vzlpa zvNxt1tLe=FV>a<2v}=t2>wgrh8fU2_3tpcTMue^2-1B(i>(pT@P?h?%JU|h?K4g33 zM_43R_|GTIASb8;>SF^7@6MXVJi153^Dp@??SFD#CMG5(CMG5(CMG5(CMG5(CMG5(CL(_V XbrZT9+93+500000NkvXXu0mjf-cbN) literal 7439 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 diff --git a/_icons/textDraculaLightSmall.png b/_icons/textDraculaLightSmall.png index 0ba1a3d8d85bb43421212ea6b86e81d07ee05f28..219397d617a5f367a9adfa961072798e4848d486 100644 GIT binary patch delta 1608 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 Rz|sk_vamD1W$J(Ue*ke>YPtXb diff --git a/_icons/textWhite.png b/_icons/textWhite.png index 0ba1a3d8d85bb43421212ea6b86e81d07ee05f28..219397d617a5f367a9adfa961072798e4848d486 100644 GIT binary patch delta 1608 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 Rz|sk_vamD1W$J(Ue*ke>YPtXb From ae1d1548f1c6f0bbc921d78a39bb8771e70b72cb Mon Sep 17 00:00:00 2001 From: efb4f5ff-1298-471a-8973-3d47447115dc <73130443+efb4f5ff-1298-471a-8973-3d47447115dc@users.noreply.github.com> Date: Sat, 3 Sep 2022 23:22:30 +0000 Subject: [PATCH 034/414] fix broken url (#2533) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a7acefd3e..b8e6a5b8b 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ Download Privacy Redirect for [Firefox](https://addons.mozilla.org/en-US/firefox Download LibRedirect for [Firefox](https://addons.mozilla.org/firefox/addon/libredirect/) or [Google Chrome](https://github.com/libredirect/libredirect/blob/master/chromium.md). -Disclaimer: Learn more about why a browser extension is bad for your [privacy](https://www.privacyguides.org/browsers/#extensions). +Disclaimer: Learn more about why a browser extension is bad for your [privacy](https://www.privacyguides.org/desktop-browsers/#additional-resources). If you have issues with the extension working with FreeTube, please create an issue in this repository instead of the extension repository. From 78fd045a156fb3610a0db7953626122701c7e92d Mon Sep 17 00:00:00 2001 From: absidue <48293849+absidue@users.noreply.github.com> Date: Sun, 4 Sep 2022 13:40:53 +0200 Subject: [PATCH 035/414] Update webpack (#2534) --- package.json | 6 +-- yarn.lock | 113 ++++++++++++++++++++++++++++++--------------------- 2 files changed, 69 insertions(+), 50 deletions(-) diff --git a/package.json b/package.json index 9b0cd711a..2fd320e52 100644 --- a/package.json +++ b/package.json @@ -122,8 +122,8 @@ "vue-loader": "^15.9.8", "vue-style-loader": "^4.1.3", "vue-template-compiler": "^2.6.14", - "webpack": "^5.51.1", - "webpack-cli": "^4.8.0", - "webpack-dev-server": "^4.1.0" + "webpack": "^5.74.0", + "webpack-cli": "^4.10.0", + "webpack-dev-server": "^4.10.1" } } diff --git a/yarn.lock b/yarn.lock index c23d9eb9b..7a190509b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1299,6 +1299,11 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= +"@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/mime@^1": version "1.3.2" resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" @@ -1362,6 +1367,14 @@ "@types/mime" "^1" "@types/node" "*" +"@types/serve-static@^1.13.10": + 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/sockjs@^0.3.33": version "0.3.33" resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.33.tgz#570d3a0b99ac995360e3136fd6045113b1bd236f" @@ -1578,22 +1591,22 @@ "@webassemblyjs/ast" "1.11.1" "@xtuc/long" "4.2.2" -"@webpack-cli/configtest@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.1.1.tgz#9f53b1b7946a6efc2a749095a4f450e2932e8356" - integrity sha512-1FBc1f9G4P/AxMqIgfZgeOTuRnwZMten8E7zap5zgpPInnCrP8D4Q81+4CWIch8i/Nf7nXjP0v6CjjbHOrXhKg== +"@webpack-cli/configtest@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.2.0.tgz#7b20ce1c12533912c3b217ea68262365fa29a6f5" + integrity sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg== -"@webpack-cli/info@^1.4.1": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.4.1.tgz#2360ea1710cbbb97ff156a3f0f24556e0fc1ebea" - integrity sha512-PKVGmazEq3oAo46Q63tpMr4HipI3OPfP7LiNOEJg963RMgT0rqheag28NCML0o3GIzA3DmxP1ZIAv9oTX1CUIA== +"@webpack-cli/info@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.5.0.tgz#6c78c13c5874852d6e2dd17f08a41f3fe4c261b1" + integrity sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ== dependencies: envinfo "^7.7.3" -"@webpack-cli/serve@^1.6.1": - version "1.6.1" - resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.6.1.tgz#0de2875ac31b46b6c5bb1ae0a7d7f0ba5678dffe" - integrity sha512-gNGTiTrjEVQ0OcVnzsRSqTxaBSr+dmTfm+qJsCDluky8uhdLWep7Gcr62QsAKHTMxjCS/8nEITsmFAhfIx+QSw== +"@webpack-cli/serve@^1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.7.0.tgz#e1993689ac42d2b16e9194376cfb6753f6254db1" + integrity sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q== "@xmldom/xmldom@^0.7.2": version "0.7.5" @@ -1633,11 +1646,16 @@ acorn@^7.1.1, acorn@^7.4.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.4.1, acorn@^8.5.0: +acorn@^8.5.0: version "8.7.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30" integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== +acorn@^8.7.1: + version "8.8.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" + integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== + aes-decrypter@3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/aes-decrypter/-/aes-decrypter-3.1.2.tgz#3545546f8e9f6b878640339a242efe221ba7a7cb" @@ -2561,10 +2579,10 @@ configstore@^5.0.1: write-file-atomic "^3.0.0" xdg-basedir "^4.0.0" -connect-history-api-fallback@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" - integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== +connect-history-api-fallback@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" + integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== consolidate@^0.15.1: version "0.15.1" @@ -3144,10 +3162,10 @@ end-of-stream@^1.1.0, end-of-stream@^1.4.1: dependencies: once "^1.4.0" -enhanced-resolve@^5.9.3: - version "5.9.3" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz#44a342c012cbc473254af5cc6ae20ebd0aae5d88" - integrity sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow== +enhanced-resolve@^5.10.0: + version "5.10.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz#0dc579c3bb2a1032e357ac45b8f3a6f3ad4fb1e6" + integrity sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -6396,7 +6414,7 @@ smol-jsonp@^1.0.0: resolved "https://registry.yarnpkg.com/smol-jsonp/-/smol-jsonp-1.0.0.tgz#b662c932a193f1a5c6bb1dcdaaddcd4e2007f7df" integrity sha512-EwM2cKsq87A9cCKiAwfp7kVSRtAT01M/3HXaO3tYxP+pnEZ5zVYsxLdTnPjJVVIeK9O2zkV0QbWuwlHEUQNdOA== -sockjs@^0.3.21: +sockjs@^0.3.24: version "0.3.24" resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== @@ -7186,10 +7204,10 @@ vuex@^3.6.2: resolved "https://registry.yarnpkg.com/vuex/-/vuex-3.6.2.tgz#236bc086a870c3ae79946f107f16de59d5895e71" integrity sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw== -watchpack@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.3.1.tgz#4200d9447b401156eeca7767ee610f8809bc9d25" - integrity sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA== +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" @@ -7206,18 +7224,18 @@ webidl-conversions@^3.0.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= -webpack-cli@^4.8.0: - version "4.9.2" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.9.2.tgz#77c1adaea020c3f9e2db8aad8ea78d235c83659d" - integrity sha512-m3/AACnBBzK/kMTcxWHcZFPrw/eQuY4Df1TxvIWfWM2x7mRqBQCqKEd96oCUa9jkapLBaFfRce33eGDb4Pr7YQ== +webpack-cli@^4.10.0: + version "4.10.0" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.10.0.tgz#37c1d69c8d85214c5a65e589378f53aec64dab31" + integrity sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w== dependencies: "@discoveryjs/json-ext" "^0.5.0" - "@webpack-cli/configtest" "^1.1.1" - "@webpack-cli/info" "^1.4.1" - "@webpack-cli/serve" "^1.6.1" + "@webpack-cli/configtest" "^1.2.0" + "@webpack-cli/info" "^1.5.0" + "@webpack-cli/serve" "^1.7.0" colorette "^2.0.14" commander "^7.0.0" - execa "^5.0.0" + cross-spawn "^7.0.3" fastest-levenshtein "^1.0.12" import-local "^3.0.2" interpret "^2.2.0" @@ -7235,15 +7253,16 @@ webpack-dev-middleware@^5.3.1: range-parser "^1.2.1" schema-utils "^4.0.0" -webpack-dev-server@^4.1.0: - version "4.9.0" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.9.0.tgz#737dbf44335bb8bde68f8f39127fc401c97a1557" - integrity sha512-+Nlb39iQSOSsFv0lWUuUTim3jDQO8nhK3E68f//J2r5rIcp4lULHXz2oZ0UVdEeWXEh5lSzYUlzarZhDAeAVQw== +webpack-dev-server@^4.10.1: + version "4.10.1" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.10.1.tgz#124ac9ac261e75303d74d95ab6712b4aec3e12ed" + integrity sha512-FIzMq3jbBarz3ld9l7rbM7m6Rj1lOsgq/DyLGMX/fPEB1UBUPtf5iL/4eNfhx8YYJTRlzfv107UfWSWcBK5Odw== dependencies: "@types/bonjour" "^3.5.9" "@types/connect-history-api-fallback" "^1.3.5" "@types/express" "^4.17.13" "@types/serve-index" "^1.9.1" + "@types/serve-static" "^1.13.10" "@types/sockjs" "^0.3.33" "@types/ws" "^8.5.1" ansi-html-community "^0.0.8" @@ -7251,7 +7270,7 @@ webpack-dev-server@^4.1.0: chokidar "^3.5.3" colorette "^2.0.10" compression "^1.7.4" - connect-history-api-fallback "^1.6.0" + connect-history-api-fallback "^2.0.0" default-gateway "^6.0.3" express "^4.17.3" graceful-fs "^4.2.6" @@ -7264,7 +7283,7 @@ webpack-dev-server@^4.1.0: schema-utils "^4.0.0" selfsigned "^2.0.1" serve-index "^1.9.1" - sockjs "^0.3.21" + sockjs "^0.3.24" spdy "^4.0.2" webpack-dev-middleware "^5.3.1" ws "^8.4.2" @@ -7282,21 +7301,21 @@ webpack-sources@^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.51.1: - version "5.72.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.72.1.tgz#3500fc834b4e9ba573b9f430b2c0a61e1bb57d13" - integrity sha512-dXG5zXCLspQR4krZVR6QgajnZOjW2K/djHvdcRaDQvsjV9z9vaW6+ja5dZOYbqBBjF6kGXka/2ZyxNdc+8Jung== +webpack@^5.74.0: + version "5.74.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.74.0.tgz#02a5dac19a17e0bb47093f2be67c695102a55980" + integrity sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA== dependencies: "@types/eslint-scope" "^3.7.3" "@types/estree" "^0.0.51" "@webassemblyjs/ast" "1.11.1" "@webassemblyjs/wasm-edit" "1.11.1" "@webassemblyjs/wasm-parser" "1.11.1" - acorn "^8.4.1" + acorn "^8.7.1" acorn-import-assertions "^1.7.6" browserslist "^4.14.5" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.9.3" + enhanced-resolve "^5.10.0" es-module-lexer "^0.9.0" eslint-scope "5.1.1" events "^3.2.0" @@ -7309,7 +7328,7 @@ webpack@^5.51.1: schema-utils "^3.1.0" tapable "^2.1.1" terser-webpack-plugin "^5.1.3" - watchpack "^2.3.1" + watchpack "^2.4.0" webpack-sources "^3.2.3" websocket-driver@>=0.5.1, websocket-driver@^0.7.4: From e6a134ab462e80b1180645666279eb5641c2ac7e Mon Sep 17 00:00:00 2001 From: gallegonovato Date: Sun, 4 Sep 2022 15:28:56 +0000 Subject: [PATCH 036/414] Translated using Weblate (Spanish) Currently translated at 94.3% (583 of 618 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/es/ --- static/locales/es.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/static/locales/es.yaml b/static/locales/es.yaml index b6627b015..7730b4ec5 100644 --- a/static/locales/es.yaml +++ b/static/locales/es.yaml @@ -160,6 +160,7 @@ Settings: Light: 'Claro' Dracula: 'Drácula' System Default: Valor predeterminado del sistema + Catppuccin Mocha: Catppuccin Mocha Main Color Theme: Main Color Theme: 'Color principal' Red: 'Rojo' @@ -185,6 +186,8 @@ Settings: Dracula Purple: 'Drácula púrpura' Dracula Red: 'Drácula rojo' Dracula Yellow: 'Drácula amarillo' + Catppuccin Mocha Pink: Catppuccin Moca Rosa + Catppuccin Mocha Mauve: Catppuccin Mocha Malva Secondary Color Theme: 'Color secundario' #* Main Color Theme UI Scale: Escala de interfaz gráfica From 1e58be273e69236b0b9957329beea40b9460808f Mon Sep 17 00:00:00 2001 From: absidue <48293849+absidue@users.noreply.github.com> Date: Mon, 5 Sep 2022 03:29:53 +0200 Subject: [PATCH 037/414] Update babel and specify exact node version target (#2536) --- .babelrc | 2 +- package.json | 6 +- yarn.lock | 1121 ++++++++++++++++++++++++++++---------------------- 3 files changed, 644 insertions(+), 485 deletions(-) diff --git a/.babelrc b/.babelrc index 0bcb33b7d..105617bbe 100644 --- a/.babelrc +++ b/.babelrc @@ -5,7 +5,7 @@ { "targets": { "chrome": "104", - "node": 16 + "node": "16.15.0" } } ] diff --git a/package.json b/package.json index 2fd320e52..6fecd804c 100644 --- a/package.json +++ b/package.json @@ -84,9 +84,9 @@ "ytsr": "^3.8.0" }, "devDependencies": { - "@babel/core": "^7.17.10", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/preset-env": "^7.17.10", + "@babel/core": "^7.18.13", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/preset-env": "^7.18.10", "@evilmartians/lefthook": "^1.0.5", "babel-eslint": "^10.1.0", "babel-loader": "^8.2.5", diff --git a/yarn.lock b/yarn.lock index 7a190509b..1f1bd62c9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -29,26 +29,33 @@ dependencies: "@babel/highlight" "^7.16.7" -"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.17.0", "@babel/compat-data@^7.17.10": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.10.tgz#711dc726a492dfc8be8220028b1b92482362baab" - integrity sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw== +"@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/core@^7.17.10": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.10.tgz#74ef0fbf56b7dfc3f198fc2d927f4f03e12f4b05" - integrity sha512-liKoppandF3ZcBnIYFjfSDHZLKdLHGJRkoWtG8zQyGJBQfIYobpnVGI5+pLBNtS6psFLDzyq8+h5HiVljW9PNA== +"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.18.8": + version "7.18.13" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.18.13.tgz#6aff7b350a1e8c3e40b029e46cbe78e24a913483" + integrity sha512-5yUzC5LqyTFp2HLmDoxGQelcdYgSpP9xsnMWBphAscOdFrHSAVbLNzWiy32sVNDqJRDiJK6klfDnAgu6PAGSHw== + +"@babel/core@^7.18.13": + version "7.18.13" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.13.tgz#9be8c44512751b05094a4d3ab05fc53a47ce00ac" + integrity sha512-ZisbOvRRusFktksHSG6pjj1CSvkPkcZq/KHD45LAkVP/oiHJkNBZWfpvlLmX8OtHDG8IuzsFlVRWo08w7Qxn0A== dependencies: "@ampproject/remapping" "^2.1.0" - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.10" - "@babel/helper-compilation-targets" "^7.17.10" - "@babel/helper-module-transforms" "^7.17.7" - "@babel/helpers" "^7.17.9" - "@babel/parser" "^7.17.10" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.10" - "@babel/types" "^7.17.10" + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.18.13" + "@babel/helper-compilation-targets" "^7.18.9" + "@babel/helper-module-transforms" "^7.18.9" + "@babel/helpers" "^7.18.9" + "@babel/parser" "^7.18.13" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.18.13" + "@babel/types" "^7.18.13" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -64,6 +71,15 @@ "@jridgewell/gen-mapping" "^0.1.0" jsesc "^2.5.1" +"@babel/generator@^7.18.13": + version "7.18.13" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.13.tgz#59550cbb9ae79b8def15587bdfbaa388c4abf212" + integrity sha512-CkPg8ySSPuHTYPJYo7IRALdqyjM9HCbt/3uOBEFbzyGVP6Mn8bwFPB0jX6982JVNBlYzM1nnPkfjuXSOPtQeEQ== + dependencies: + "@babel/types" "^7.18.13" + "@jridgewell/gen-mapping" "^0.3.2" + jsesc "^2.5.1" + "@babel/helper-annotate-as-pure@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862" @@ -71,38 +87,45 @@ dependencies: "@babel/types" "^7.16.7" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz#38d138561ea207f0f69eb1626a418e4f7e6a580b" - integrity sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA== +"@babel/helper-annotate-as-pure@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" + integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== dependencies: - "@babel/helper-explode-assignable-expression" "^7.16.7" - "@babel/types" "^7.16.7" + "@babel/types" "^7.18.6" -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.17.10": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.10.tgz#09c63106d47af93cf31803db6bc49fef354e2ebe" - integrity sha512-gh3RxjWbauw/dFiU/7whjd0qN9K6nPJMqe6+Er7rOavFh0CQUSwhAE3IcTho2rywPJFxej6TUUHDkWcYI6gGqQ== +"@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz#acd4edfd7a566d1d51ea975dff38fd52906981bb" + integrity sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw== dependencies: - "@babel/compat-data" "^7.17.10" - "@babel/helper-validator-option" "^7.16.7" + "@babel/helper-explode-assignable-expression" "^7.18.6" + "@babel/types" "^7.18.9" + +"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz#69e64f57b524cde3e5ff6cc5a9f4a387ee5563bf" + integrity sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg== + dependencies: + "@babel/compat-data" "^7.18.8" + "@babel/helper-validator-option" "^7.18.6" browserslist "^4.20.2" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7", "@babel/helper-create-class-features-plugin@^7.17.6": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.9.tgz#71835d7fb9f38bd9f1378e40a4c0902fdc2ea49d" - integrity sha512-kUjip3gruz6AJKOq5i3nC6CoCEEF/oHH3cp6tOZhB+IyyyPyW0g1Gfsxn3mkk6S08pIA2y8GQh609v9G/5sHVQ== +"@babel/helper-create-class-features-plugin@^7.18.6": + version "7.18.13" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.13.tgz#63e771187bd06d234f95fdf8bd5f8b6429de6298" + integrity sha512-hDvXp+QYxSRL+23mpAlSGxHMDyIGChm0/AwTfTAAK5Ufe40nCsyNdaYCGuK91phn/fVu9kqayImRDkvNAgdrsA== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.17.9" - "@babel/helper-member-expression-to-functions" "^7.17.7" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/helper-replace-supers" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.18.9" + "@babel/helper-member-expression-to-functions" "^7.18.9" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/helper-replace-supers" "^7.18.9" + "@babel/helper-split-export-declaration" "^7.18.6" -"@babel/helper-create-regexp-features-plugin@^7.16.7", "@babel/helper-create-regexp-features-plugin@^7.17.0": +"@babel/helper-create-regexp-features-plugin@^7.16.7": version "7.17.0" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz#1dcc7d40ba0c6b6b25618997c5dbfd310f186fe1" integrity sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA== @@ -110,15 +133,21 @@ "@babel/helper-annotate-as-pure" "^7.16.7" regexpu-core "^5.0.1" -"@babel/helper-define-polyfill-provider@^0.3.1": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz#52411b445bdb2e676869e5a74960d2d3826d2665" - integrity sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA== +"@babel/helper-create-regexp-features-plugin@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz#3e35f4e04acbbf25f1b3534a657610a000543d3c" + integrity sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A== dependencies: - "@babel/helper-compilation-targets" "^7.13.0" - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/traverse" "^7.13.0" + "@babel/helper-annotate-as-pure" "^7.18.6" + regexpu-core "^5.1.0" + +"@babel/helper-define-polyfill-provider@^0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.2.tgz#bd10d0aca18e8ce012755395b05a79f45eca5073" + integrity sha512-r9QJJ+uDWrd+94BSPcP6/de67ygLtvVy6cK4luE6MOuDsZIdoaPBnfSpbO/+LTifjPckbKXRuI9BB/Z2/y3iTg== + dependencies: + "@babel/helper-compilation-targets" "^7.17.7" + "@babel/helper-plugin-utils" "^7.16.7" debug "^4.1.1" lodash.debounce "^4.0.8" resolve "^1.14.2" @@ -131,14 +160,19 @@ dependencies: "@babel/types" "^7.16.7" -"@babel/helper-explode-assignable-expression@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz#12a6d8522fdd834f194e868af6354e8650242b7a" - integrity sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ== - dependencies: - "@babel/types" "^7.16.7" +"@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.16.7", "@babel/helper-function-name@^7.17.9": +"@babel/helper-explode-assignable-expression@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz#41f8228ef0a6f1a036b8dfdfec7ce94f9a6bc096" + integrity sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-function-name@^7.17.9": version "7.17.9" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz#136fcd54bc1da82fcb47565cf16fd8e444b1ff12" integrity sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg== @@ -146,6 +180,14 @@ "@babel/template" "^7.16.7" "@babel/types" "^7.17.0" +"@babel/helper-function-name@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz#940e6084a55dee867d33b4e487da2676365e86b0" + integrity sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A== + dependencies: + "@babel/template" "^7.18.6" + "@babel/types" "^7.18.9" + "@babel/helper-hoist-variables@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246" @@ -153,79 +195,92 @@ dependencies: "@babel/types" "^7.16.7" -"@babel/helper-member-expression-to-functions@^7.16.7", "@babel/helper-member-expression-to-functions@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz#a34013b57d8542a8c4ff8ba3f747c02452a4d8c4" - integrity sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw== +"@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.17.0" + "@babel/types" "^7.18.6" -"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" - integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== +"@babel/helper-member-expression-to-functions@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz#1531661e8375af843ad37ac692c132841e2fd815" + integrity sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg== dependencies: - "@babel/types" "^7.16.7" + "@babel/types" "^7.18.9" -"@babel/helper-module-transforms@^7.16.7", "@babel/helper-module-transforms@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz#3943c7f777139e7954a5355c815263741a9c1cbd" - integrity sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw== +"@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/helper-environment-visitor" "^7.16.7" - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-simple-access" "^7.17.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/helper-validator-identifier" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.3" - "@babel/types" "^7.17.0" + "@babel/types" "^7.18.6" -"@babel/helper-optimise-call-expression@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz#a34e3560605abbd31a18546bd2aad3e6d9a174f2" - integrity sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w== +"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz#5a1079c005135ed627442df31a42887e80fcb712" + integrity sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g== dependencies: - "@babel/types" "^7.16.7" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-simple-access" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/helper-validator-identifier" "^7.18.6" + "@babel/template" "^7.18.6" + "@babel/traverse" "^7.18.9" + "@babel/types" "^7.18.9" -"@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.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": +"@babel/helper-optimise-call-expression@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" + integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz#aa3a8ab4c3cceff8e65eb9e73d87dc4ff320b2f5" integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA== -"@babel/helper-remap-async-to-generator@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz#29ffaade68a367e2ed09c90901986918d25e57e3" - integrity sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-wrap-function" "^7.16.8" - "@babel/types" "^7.16.8" +"@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz#4b8aea3b069d8cb8a72cdfe28ddf5ceca695ef2f" + integrity sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w== -"@babel/helper-replace-supers@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz#e9f5f5f32ac90429c1a4bdec0f231ef0c2838ab1" - integrity sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw== +"@babel/helper-remap-async-to-generator@^7.18.6", "@babel/helper-remap-async-to-generator@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" + integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== dependencies: - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-member-expression-to-functions" "^7.16.7" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/traverse" "^7.16.7" - "@babel/types" "^7.16.7" + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-wrap-function" "^7.18.9" + "@babel/types" "^7.18.9" -"@babel/helper-simple-access@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz#aaa473de92b7987c6dfa7ce9a7d9674724823367" - integrity sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA== +"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.18.9.tgz#1092e002feca980fbbb0bd4d51b74a65c6a500e6" + integrity sha512-dNsWibVI4lNT6HiuOIBr1oyxo40HvIVmbwPUm3XZ7wMh4k2WxrxTqZwSqw/eEmXDS9np0ey5M2bz9tBmO9c+YQ== dependencies: - "@babel/types" "^7.17.0" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-member-expression-to-functions" "^7.18.9" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/traverse" "^7.18.9" + "@babel/types" "^7.18.9" -"@babel/helper-skip-transparent-expression-wrappers@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz#0ee3388070147c3ae051e487eca3ebb0e2e8bb09" - integrity sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw== +"@babel/helper-simple-access@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz#d6d8f51f4ac2978068df934b569f08f29788c7ea" + integrity sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g== dependencies: - "@babel/types" "^7.16.0" + "@babel/types" "^7.18.6" + +"@babel/helper-skip-transparent-expression-wrappers@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz#778d87b3a758d90b471e7b9918f34a9a02eb5818" + integrity sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw== + dependencies: + "@babel/types" "^7.18.9" "@babel/helper-split-export-declaration@^7.16.7": version "7.16.7" @@ -234,34 +289,51 @@ dependencies: "@babel/types" "^7.16.7" +"@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.18.10": + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz#181f22d28ebe1b3857fa575f5c290b1aaf659b56" + integrity sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw== + "@babel/helper-validator-identifier@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== -"@babel/helper-validator-option@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23" - integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== +"@babel/helper-validator-identifier@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" + integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== -"@babel/helper-wrap-function@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz#58afda087c4cd235de92f7ceedebca2c41274200" - integrity sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw== - dependencies: - "@babel/helper-function-name" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.8" - "@babel/types" "^7.16.8" +"@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.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.9.tgz#b2af120821bfbe44f9907b1826e168e819375a1a" - integrity sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q== +"@babel/helper-wrap-function@^7.18.9": + version "7.18.11" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.18.11.tgz#bff23ace436e3f6aefb61f85ffae2291c80ed1fb" + integrity sha512-oBUlbv+rjZLh2Ks9SKi4aL7eKaAXBWleHzU89mP0G6BMUlRxSckk9tSIkgDGydhgFxHuGSlBQZfnaD47oBEB7w== dependencies: - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.9" - "@babel/types" "^7.17.0" + "@babel/helper-function-name" "^7.18.9" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.18.11" + "@babel/types" "^7.18.10" + +"@babel/helpers@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.9.tgz#4bef3b893f253a1eced04516824ede94dcfe7ff9" + integrity sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ== + dependencies: + "@babel/template" "^7.18.6" + "@babel/traverse" "^7.18.9" + "@babel/types" "^7.18.9" "@babel/highlight@^7.10.4", "@babel/highlight@^7.16.7": version "7.17.9" @@ -272,148 +344,171 @@ chalk "^2.0.0" js-tokens "^4.0.0" +"@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.16.7", "@babel/parser@^7.17.10", "@babel/parser@^7.7.0": version "7.17.10" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.10.tgz#873b16db82a8909e0fbd7f115772f4b739f6ce78" integrity sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ== -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz#4eda6d6c2a0aa79c70fa7b6da67763dfe2141050" - integrity sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" +"@babel/parser@^7.18.10", "@babel/parser@^7.18.13": + version "7.18.13" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.13.tgz#5b2dd21cae4a2c5145f1fbd8ca103f9313d3b7e4" + integrity sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg== -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz#cc001234dfc139ac45f6bcf801866198c8c72ff9" - integrity sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw== +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" + integrity sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" - "@babel/plugin-proposal-optional-chaining" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-proposal-async-generator-functions@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz#3bdd1ebbe620804ea9416706cd67d60787504bc8" - integrity sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz#a11af19aa373d68d561f08e0a57242350ed0ec50" + integrity sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-remap-async-to-generator" "^7.16.8" + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" + "@babel/plugin-proposal-optional-chaining" "^7.18.9" + +"@babel/plugin-proposal-async-generator-functions@^7.18.10": + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.10.tgz#85ea478c98b0095c3e4102bff3b67d306ed24952" + integrity sha512-1mFuY2TOsR1hxbjCo4QL+qlIjV07p4H4EUYw2J/WCqsvFV6V9X9z9YhXbWndc/4fw+hYGlDT7egYxliMp5O6Ew== + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-remap-async-to-generator" "^7.18.9" "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-proposal-class-properties@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz#925cad7b3b1a2fcea7e59ecc8eb5954f961f91b0" - integrity sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww== +"@babel/plugin-proposal-class-properties@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" + integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-proposal-class-static-block@^7.17.6": - version "7.17.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz#164e8fd25f0d80fa48c5a4d1438a6629325ad83c" - integrity sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA== +"@babel/plugin-proposal-class-static-block@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz#8aa81d403ab72d3962fc06c26e222dacfc9b9020" + integrity sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw== dependencies: - "@babel/helper-create-class-features-plugin" "^7.17.6" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-proposal-dynamic-import@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz#c19c897eaa46b27634a00fee9fb7d829158704b2" - integrity sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg== +"@babel/plugin-proposal-dynamic-import@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94" + integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-proposal-export-namespace-from@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz#09de09df18445a5786a305681423ae63507a6163" - integrity sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA== +"@babel/plugin-proposal-export-namespace-from@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203" + integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-proposal-json-strings@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz#9732cb1d17d9a2626a08c5be25186c195b6fa6e8" - integrity sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ== +"@babel/plugin-proposal-json-strings@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz#7e8788c1811c393aff762817e7dbf1ebd0c05f0b" + integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-proposal-logical-assignment-operators@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz#be23c0ba74deec1922e639832904be0bea73cdea" - integrity sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg== +"@babel/plugin-proposal-logical-assignment-operators@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz#8148cbb350483bf6220af06fa6db3690e14b2e23" + integrity sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz#141fc20b6857e59459d430c850a0011e36561d99" - integrity sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ== +"@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" + integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-proposal-numeric-separator@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz#d6b69f4af63fb38b6ca2558442a7fb191236eba9" - integrity sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw== +"@babel/plugin-proposal-numeric-separator@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75" + integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.17.3": - version "7.17.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz#d9eb649a54628a51701aef7e0ea3d17e2b9dd390" - integrity sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw== +"@babel/plugin-proposal-object-rest-spread@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz#f9434f6beb2c8cae9dfcf97d2a5941bbbf9ad4e7" + integrity sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q== dependencies: - "@babel/compat-data" "^7.17.0" - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/compat-data" "^7.18.8" + "@babel/helper-compilation-targets" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.16.7" + "@babel/plugin-transform-parameters" "^7.18.8" -"@babel/plugin-proposal-optional-catch-binding@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz#c623a430674ffc4ab732fd0a0ae7722b67cb74cf" - integrity sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA== +"@babel/plugin-proposal-optional-catch-binding@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb" + integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz#7cd629564724816c0e8a969535551f943c64c39a" - integrity sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA== +"@babel/plugin-proposal-optional-chaining@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz#e8e8fe0723f2563960e4bf5e9690933691915993" + integrity sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-proposal-private-methods@^7.16.11": - version "7.16.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz#e8df108288555ff259f4527dbe84813aac3a1c50" - integrity sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw== +"@babel/plugin-proposal-private-methods@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" + integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.10" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-proposal-private-property-in-object@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz#b0b8cef543c2c3d57e59e2c611994861d46a3fce" - integrity sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ== +"@babel/plugin-proposal-private-property-in-object@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz#a64137b232f0aca3733a67eb1a144c192389c503" + integrity sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-create-class-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -"@babel/plugin-proposal-unicode-property-regex@^7.16.7", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": +"@babel/plugin-proposal-unicode-property-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" + integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-proposal-unicode-property-regex@^7.4.4": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz#635d18eb10c6214210ffc5ff4932552de08188a2" integrity sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg== @@ -456,6 +551,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" +"@babel/plugin-syntax-import-assertions@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz#cd6190500a4fa2fe31990a963ffab4b63e4505e4" + integrity sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@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" @@ -519,65 +621,73 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-arrow-functions@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz#44125e653d94b98db76369de9c396dc14bef4154" - integrity sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ== +"@babel/plugin-transform-arrow-functions@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz#19063fcf8771ec7b31d742339dac62433d0611fe" + integrity sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-async-to-generator@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz#b83dff4b970cf41f1b819f8b49cc0cfbaa53a808" - integrity sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg== +"@babel/plugin-transform-async-to-generator@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz#ccda3d1ab9d5ced5265fdb13f1882d5476c71615" + integrity sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag== dependencies: - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-remap-async-to-generator" "^7.16.8" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-remap-async-to-generator" "^7.18.6" -"@babel/plugin-transform-block-scoped-functions@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz#4d0d57d9632ef6062cdf354bb717102ee042a620" - integrity sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg== +"@babel/plugin-transform-block-scoped-functions@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8" + integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-block-scoping@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz#f50664ab99ddeaee5bc681b8f3a6ea9d72ab4f87" - integrity sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ== +"@babel/plugin-transform-block-scoping@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz#f9b7e018ac3f373c81452d6ada8bd5a18928926d" + integrity sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-classes@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz#8f4b9562850cd973de3b498f1218796eb181ce00" - integrity sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ== +"@babel/plugin-transform-classes@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.9.tgz#90818efc5b9746879b869d5ce83eb2aa48bbc3da" + integrity sha512-EkRQxsxoytpTlKJmSPYrsOMjCILacAjtSVkd4gChEe2kXjFCun3yohhW5I7plXJhCemM0gKsaGMcO8tinvCA5g== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-replace-supers" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.18.9" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-replace-supers" "^7.18.9" + "@babel/helper-split-export-declaration" "^7.18.6" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz#66dee12e46f61d2aae7a73710f591eb3df616470" - integrity sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw== +"@babel/plugin-transform-computed-properties@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz#2357a8224d402dad623caf6259b611e56aec746e" + integrity sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-destructuring@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz#49dc2675a7afa9a5e4c6bdee636061136c3408d1" - integrity sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ== +"@babel/plugin-transform-destructuring@^7.18.9": + version "7.18.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.13.tgz#9e03bc4a94475d62b7f4114938e6c5c33372cbf5" + integrity sha512-TodpQ29XekIsex2A+YJPj5ax2plkGa8YYY6mFjCohk/IG9IY42Rtuj1FuDeemfg2ipxIFLzPeA83SIBnlhSIow== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-dotall-regex@^7.16.7", "@babel/plugin-transform-dotall-regex@^7.4.4": +"@babel/plugin-transform-dotall-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8" + integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-dotall-regex@^7.4.4": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz#6b2d67686fab15fb6a7fd4bd895d5982cfc81241" integrity sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ== @@ -585,221 +695,224 @@ "@babel/helper-create-regexp-features-plugin" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-duplicate-keys@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz#2207e9ca8f82a0d36a5a67b6536e7ef8b08823c9" - integrity sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw== +"@babel/plugin-transform-duplicate-keys@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e" + integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-exponentiation-operator@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz#efa9862ef97e9e9e5f653f6ddc7b665e8536fe9b" - integrity sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA== +"@babel/plugin-transform-exponentiation-operator@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd" + integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-for-of@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz#649d639d4617dff502a9a158c479b3b556728d8c" - integrity sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg== +"@babel/plugin-transform-for-of@^7.18.8": + version "7.18.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz#6ef8a50b244eb6a0bdbad0c7c61877e4e30097c1" + integrity sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-function-name@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz#5ab34375c64d61d083d7d2f05c38d90b97ec65cf" - integrity sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA== +"@babel/plugin-transform-function-name@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0" + integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ== dependencies: - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-compilation-targets" "^7.18.9" + "@babel/helper-function-name" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-literals@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz#254c9618c5ff749e87cb0c0cef1a0a050c0bdab1" - integrity sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ== +"@babel/plugin-transform-literals@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc" + integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-member-expression-literals@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz#6e5dcf906ef8a098e630149d14c867dd28f92384" - integrity sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw== +"@babel/plugin-transform-member-expression-literals@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e" + integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-modules-amd@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz#b28d323016a7daaae8609781d1f8c9da42b13186" - integrity sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g== +"@babel/plugin-transform-modules-amd@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz#8c91f8c5115d2202f277549848874027d7172d21" + integrity sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg== dependencies: - "@babel/helper-module-transforms" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-module-transforms" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.9.tgz#274be1a2087beec0254d4abd4d86e52442e1e5b6" - integrity sha512-2TBFd/r2I6VlYn0YRTz2JdazS+FoUuQ2rIFHoAxtyP/0G3D82SBLaRq9rnUkpqlLg03Byfl/+M32mpxjO6KaPw== +"@babel/plugin-transform-modules-commonjs@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz#afd243afba166cca69892e24a8fd8c9f2ca87883" + integrity sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q== dependencies: - "@babel/helper-module-transforms" "^7.17.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-simple-access" "^7.17.7" + "@babel/helper-module-transforms" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-simple-access" "^7.18.6" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-systemjs@^7.17.8": - version "7.17.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz#81fd834024fae14ea78fbe34168b042f38703859" - integrity sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw== +"@babel/plugin-transform-modules-systemjs@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.9.tgz#545df284a7ac6a05125e3e405e536c5853099a06" + integrity sha512-zY/VSIbbqtoRoJKo2cDTewL364jSlZGvn0LKOf9ntbfxOvjfmyrdtEEOAdswOswhZEb8UH3jDkCKHd1sPgsS0A== dependencies: - "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-module-transforms" "^7.17.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-validator-identifier" "^7.16.7" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-module-transforms" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-validator-identifier" "^7.18.6" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-umd@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz#23dad479fa585283dbd22215bff12719171e7618" - integrity sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ== +"@babel/plugin-transform-modules-umd@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz#81d3832d6034b75b54e62821ba58f28ed0aab4b9" + integrity sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ== dependencies: - "@babel/helper-module-transforms" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-module-transforms" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-named-capturing-groups-regex@^7.17.10": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.10.tgz#715dbcfafdb54ce8bccd3d12e8917296a4ba66a4" - integrity sha512-v54O6yLaJySCs6mGzaVOUw9T967GnH38T6CQSAtnzdNPwu84l2qAjssKzo/WSO8Yi7NF+7ekm5cVbF/5qiIgNA== +"@babel/plugin-transform-named-capturing-groups-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz#c89bfbc7cc6805d692f3a49bc5fc1b630007246d" + integrity sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.17.0" + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-new-target@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz#9967d89a5c243818e0800fdad89db22c5f514244" - integrity sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg== +"@babel/plugin-transform-new-target@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz#d128f376ae200477f37c4ddfcc722a8a1b3246a8" + integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-object-super@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz#ac359cf8d32cf4354d27a46867999490b6c32a94" - integrity sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw== +"@babel/plugin-transform-object-super@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c" + integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-replace-supers" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-replace-supers" "^7.18.6" -"@babel/plugin-transform-parameters@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz#a1721f55b99b736511cb7e0152f61f17688f331f" - integrity sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw== +"@babel/plugin-transform-parameters@^7.18.8": + version "7.18.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz#ee9f1a0ce6d78af58d0956a9378ea3427cccb48a" + integrity sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-property-literals@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz#2dadac85155436f22c696c4827730e0fe1057a55" - integrity sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw== +"@babel/plugin-transform-property-literals@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3" + integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-regenerator@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.17.9.tgz#0a33c3a61cf47f45ed3232903683a0afd2d3460c" - integrity sha512-Lc2TfbxR1HOyn/c6b4Y/b6NHoTb67n/IoWLxTu4kC7h4KQnWlhCq2S8Tx0t2SVvv5Uu87Hs+6JEJ5kt2tYGylQ== +"@babel/plugin-transform-regenerator@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz#585c66cb84d4b4bf72519a34cfce761b8676ca73" + integrity sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ== dependencies: + "@babel/helper-plugin-utils" "^7.18.6" regenerator-transform "^0.15.0" -"@babel/plugin-transform-reserved-words@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz#1d798e078f7c5958eec952059c460b220a63f586" - integrity sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg== +"@babel/plugin-transform-reserved-words@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz#b1abd8ebf8edaa5f7fe6bbb8d2133d23b6a6f76a" + integrity sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-shorthand-properties@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz#e8549ae4afcf8382f711794c0c7b6b934c5fbd2a" - integrity sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg== +"@babel/plugin-transform-shorthand-properties@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9" + integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-spread@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz#a303e2122f9f12e0105daeedd0f30fb197d8ff44" - integrity sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg== +"@babel/plugin-transform-spread@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.9.tgz#6ea7a6297740f381c540ac56caf75b05b74fb664" + integrity sha512-39Q814wyoOPtIB/qGopNIL9xDChOE1pNU0ZY5dO0owhiVt/5kFm4li+/bBtwc7QotG0u5EPzqhZdjMtmqBqyQA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" -"@babel/plugin-transform-sticky-regex@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz#c84741d4f4a38072b9a1e2e3fd56d359552e8660" - integrity sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw== +"@babel/plugin-transform-sticky-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz#c6706eb2b1524028e317720339583ad0f444adcc" + integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-template-literals@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz#f3d1c45d28967c8e80f53666fc9c3e50618217ab" - integrity sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA== +"@babel/plugin-transform-template-literals@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e" + integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-typeof-symbol@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz#9cdbe622582c21368bd482b660ba87d5545d4f7e" - integrity sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ== +"@babel/plugin-transform-typeof-symbol@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz#c8cea68263e45addcd6afc9091429f80925762c0" + integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-unicode-escapes@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz#da8717de7b3287a2c6d659750c964f302b31ece3" - integrity sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q== +"@babel/plugin-transform-unicode-escapes@^7.18.10": + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz#1ecfb0eda83d09bbcb77c09970c2dd55832aa246" + integrity sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-unicode-regex@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz#0f7aa4a501198976e25e82702574c34cfebe9ef2" - integrity sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q== +"@babel/plugin-transform-unicode-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca" + integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/preset-env@^7.17.10": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.17.10.tgz#a81b093669e3eb6541bb81a23173c5963c5de69c" - integrity sha512-YNgyBHZQpeoBSRBg0xixsZzfT58Ze1iZrajvv0lJc70qDDGuGfonEnMGfWeSY0mQ3JTuCWFbMkzFRVafOyJx4g== +"@babel/preset-env@^7.18.10": + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.18.10.tgz#83b8dfe70d7eea1aae5a10635ab0a5fe60dfc0f4" + integrity sha512-wVxs1yjFdW3Z/XkNfXKoblxoHgbtUF7/l3PvvP4m02Qz9TZ6uZGxRVYjSQeR87oQmHco9zWitW5J82DJ7sCjvA== dependencies: - "@babel/compat-data" "^7.17.10" - "@babel/helper-compilation-targets" "^7.17.10" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-validator-option" "^7.16.7" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.16.7" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.16.7" - "@babel/plugin-proposal-async-generator-functions" "^7.16.8" - "@babel/plugin-proposal-class-properties" "^7.16.7" - "@babel/plugin-proposal-class-static-block" "^7.17.6" - "@babel/plugin-proposal-dynamic-import" "^7.16.7" - "@babel/plugin-proposal-export-namespace-from" "^7.16.7" - "@babel/plugin-proposal-json-strings" "^7.16.7" - "@babel/plugin-proposal-logical-assignment-operators" "^7.16.7" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.7" - "@babel/plugin-proposal-numeric-separator" "^7.16.7" - "@babel/plugin-proposal-object-rest-spread" "^7.17.3" - "@babel/plugin-proposal-optional-catch-binding" "^7.16.7" - "@babel/plugin-proposal-optional-chaining" "^7.16.7" - "@babel/plugin-proposal-private-methods" "^7.16.11" - "@babel/plugin-proposal-private-property-in-object" "^7.16.7" - "@babel/plugin-proposal-unicode-property-regex" "^7.16.7" + "@babel/compat-data" "^7.18.8" + "@babel/helper-compilation-targets" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-validator-option" "^7.18.6" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.18.9" + "@babel/plugin-proposal-async-generator-functions" "^7.18.10" + "@babel/plugin-proposal-class-properties" "^7.18.6" + "@babel/plugin-proposal-class-static-block" "^7.18.6" + "@babel/plugin-proposal-dynamic-import" "^7.18.6" + "@babel/plugin-proposal-export-namespace-from" "^7.18.9" + "@babel/plugin-proposal-json-strings" "^7.18.6" + "@babel/plugin-proposal-logical-assignment-operators" "^7.18.9" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" + "@babel/plugin-proposal-numeric-separator" "^7.18.6" + "@babel/plugin-proposal-object-rest-spread" "^7.18.9" + "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" + "@babel/plugin-proposal-optional-chaining" "^7.18.9" + "@babel/plugin-proposal-private-methods" "^7.18.6" + "@babel/plugin-proposal-private-property-in-object" "^7.18.6" + "@babel/plugin-proposal-unicode-property-regex" "^7.18.6" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.18.6" "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" @@ -809,43 +922,43 @@ "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-transform-arrow-functions" "^7.16.7" - "@babel/plugin-transform-async-to-generator" "^7.16.8" - "@babel/plugin-transform-block-scoped-functions" "^7.16.7" - "@babel/plugin-transform-block-scoping" "^7.16.7" - "@babel/plugin-transform-classes" "^7.16.7" - "@babel/plugin-transform-computed-properties" "^7.16.7" - "@babel/plugin-transform-destructuring" "^7.17.7" - "@babel/plugin-transform-dotall-regex" "^7.16.7" - "@babel/plugin-transform-duplicate-keys" "^7.16.7" - "@babel/plugin-transform-exponentiation-operator" "^7.16.7" - "@babel/plugin-transform-for-of" "^7.16.7" - "@babel/plugin-transform-function-name" "^7.16.7" - "@babel/plugin-transform-literals" "^7.16.7" - "@babel/plugin-transform-member-expression-literals" "^7.16.7" - "@babel/plugin-transform-modules-amd" "^7.16.7" - "@babel/plugin-transform-modules-commonjs" "^7.17.9" - "@babel/plugin-transform-modules-systemjs" "^7.17.8" - "@babel/plugin-transform-modules-umd" "^7.16.7" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.17.10" - "@babel/plugin-transform-new-target" "^7.16.7" - "@babel/plugin-transform-object-super" "^7.16.7" - "@babel/plugin-transform-parameters" "^7.16.7" - "@babel/plugin-transform-property-literals" "^7.16.7" - "@babel/plugin-transform-regenerator" "^7.17.9" - "@babel/plugin-transform-reserved-words" "^7.16.7" - "@babel/plugin-transform-shorthand-properties" "^7.16.7" - "@babel/plugin-transform-spread" "^7.16.7" - "@babel/plugin-transform-sticky-regex" "^7.16.7" - "@babel/plugin-transform-template-literals" "^7.16.7" - "@babel/plugin-transform-typeof-symbol" "^7.16.7" - "@babel/plugin-transform-unicode-escapes" "^7.16.7" - "@babel/plugin-transform-unicode-regex" "^7.16.7" + "@babel/plugin-transform-arrow-functions" "^7.18.6" + "@babel/plugin-transform-async-to-generator" "^7.18.6" + "@babel/plugin-transform-block-scoped-functions" "^7.18.6" + "@babel/plugin-transform-block-scoping" "^7.18.9" + "@babel/plugin-transform-classes" "^7.18.9" + "@babel/plugin-transform-computed-properties" "^7.18.9" + "@babel/plugin-transform-destructuring" "^7.18.9" + "@babel/plugin-transform-dotall-regex" "^7.18.6" + "@babel/plugin-transform-duplicate-keys" "^7.18.9" + "@babel/plugin-transform-exponentiation-operator" "^7.18.6" + "@babel/plugin-transform-for-of" "^7.18.8" + "@babel/plugin-transform-function-name" "^7.18.9" + "@babel/plugin-transform-literals" "^7.18.9" + "@babel/plugin-transform-member-expression-literals" "^7.18.6" + "@babel/plugin-transform-modules-amd" "^7.18.6" + "@babel/plugin-transform-modules-commonjs" "^7.18.6" + "@babel/plugin-transform-modules-systemjs" "^7.18.9" + "@babel/plugin-transform-modules-umd" "^7.18.6" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.18.6" + "@babel/plugin-transform-new-target" "^7.18.6" + "@babel/plugin-transform-object-super" "^7.18.6" + "@babel/plugin-transform-parameters" "^7.18.8" + "@babel/plugin-transform-property-literals" "^7.18.6" + "@babel/plugin-transform-regenerator" "^7.18.6" + "@babel/plugin-transform-reserved-words" "^7.18.6" + "@babel/plugin-transform-shorthand-properties" "^7.18.6" + "@babel/plugin-transform-spread" "^7.18.9" + "@babel/plugin-transform-sticky-regex" "^7.18.6" + "@babel/plugin-transform-template-literals" "^7.18.9" + "@babel/plugin-transform-typeof-symbol" "^7.18.9" + "@babel/plugin-transform-unicode-escapes" "^7.18.10" + "@babel/plugin-transform-unicode-regex" "^7.18.6" "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.17.10" - babel-plugin-polyfill-corejs2 "^0.3.0" - babel-plugin-polyfill-corejs3 "^0.5.0" - babel-plugin-polyfill-regenerator "^0.3.0" + "@babel/types" "^7.18.10" + babel-plugin-polyfill-corejs2 "^0.3.2" + babel-plugin-polyfill-corejs3 "^0.5.3" + babel-plugin-polyfill-regenerator "^0.4.0" core-js-compat "^3.22.1" semver "^6.3.0" @@ -876,7 +989,32 @@ "@babel/parser" "^7.16.7" "@babel/types" "^7.16.7" -"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.10", "@babel/traverse@^7.17.3", "@babel/traverse@^7.17.9", "@babel/traverse@^7.7.0": +"@babel/template@^7.18.10", "@babel/template@^7.18.6": + 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.18.11", "@babel/traverse@^7.18.13", "@babel/traverse@^7.18.9": + version "7.18.13" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.13.tgz#5ab59ef51a997b3f10c4587d648b9696b6cb1a68" + integrity sha512-N6kt9X1jRMLPxxxPYWi7tgvJRH/rtoU+dbKAPDM44RFHiMH8igdsaSBgFeskhSl/kLWLDUvIh1RXCrTmg0/zvA== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.18.13" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.18.9" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/parser" "^7.18.13" + "@babel/types" "^7.18.13" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/traverse@^7.7.0": version "7.17.10" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.10.tgz#1ee1a5ac39f4eac844e6cf855b35520e5eb6f8b5" integrity sha512-VmbrTHQteIdUUQNTb+zE12SHS/xQVIShmBPhlNP12hD5poF2pbITW1Z4172d03HegaQWhLffdkRJYtAzp0AGcw== @@ -892,7 +1030,7 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.17.10", "@babel/types@^7.4.4", "@babel/types@^7.7.0": +"@babel/types@^7.16.7", "@babel/types@^7.17.0", "@babel/types@^7.17.10", "@babel/types@^7.4.4", "@babel/types@^7.7.0": version "7.17.10" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.10.tgz#d35d7b4467e439fcf06d195f8100e0fea7fc82c4" integrity sha512-9O26jG0mBYfGkUYCYZRnBwbVLd1UZOICEr2Em6InB6jVfsAv1GKgwXHmrSg+WFWDmeKTA6vyTZiN8tCSM5Oo3A== @@ -900,6 +1038,15 @@ "@babel/helper-validator-identifier" "^7.16.7" to-fast-properties "^2.0.0" +"@babel/types@^7.18.10", "@babel/types@^7.18.13", "@babel/types@^7.18.6", "@babel/types@^7.18.9": + version "7.18.13" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.13.tgz#30aeb9e514f4100f7c1cb6e5ba472b30e48f519a" + integrity sha512-ePqfTihzW0W6XAU+aMw2ykilisStJfDnsejDCXRchCcMJ4O0+8DhPXf2YUbZ6wjBlsEmZwLK/sPweWtu8hcJYQ== + dependencies: + "@babel/helper-string-parser" "^7.18.10" + "@babel/helper-validator-identifier" "^7.18.6" + 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" @@ -1053,7 +1200,7 @@ "@jridgewell/set-array" "^1.0.0" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/gen-mapping@^0.3.0": +"@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== @@ -2020,29 +2167,29 @@ babel-plugin-dynamic-import-node@^2.3.3: dependencies: object.assign "^4.1.0" -babel-plugin-polyfill-corejs2@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz#440f1b70ccfaabc6b676d196239b138f8a2cfba5" - integrity sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w== +babel-plugin-polyfill-corejs2@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz#e4c31d4c89b56f3cf85b92558954c66b54bd972d" + integrity sha512-LPnodUl3lS0/4wN3Rb+m+UK8s7lj2jcLRrjho4gLw+OJs+I4bvGXshINesY5xx/apM+biTnQ9reDI8yj+0M5+Q== dependencies: - "@babel/compat-data" "^7.13.11" - "@babel/helper-define-polyfill-provider" "^0.3.1" + "@babel/compat-data" "^7.17.7" + "@babel/helper-define-polyfill-provider" "^0.3.2" semver "^6.1.1" -babel-plugin-polyfill-corejs3@^0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz#aabe4b2fa04a6e038b688c5e55d44e78cd3a5f72" - integrity sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ== +babel-plugin-polyfill-corejs3@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz#d7e09c9a899079d71a8b670c6181af56ec19c5c7" + integrity sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw== dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.1" + "@babel/helper-define-polyfill-provider" "^0.3.2" core-js-compat "^3.21.0" -babel-plugin-polyfill-regenerator@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz#2c0678ea47c75c8cc2fbb1852278d8fb68233990" - integrity sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A== +babel-plugin-polyfill-regenerator@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.0.tgz#8f51809b6d5883e07e71548d75966ff7635527fe" + integrity sha512-RW1cnryiADFeHmfLS+WW/G431p1PsW5qdRdz0SDRi7TKcUgc7Oh/uXkT7MZ/+tGsT1BkczEAmD5XjUyJ5SWDTw== dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.1" + "@babel/helper-define-polyfill-provider" "^0.3.2" balanced-match@^1.0.0: version "1.0.2" @@ -5968,6 +6115,18 @@ regexpu-core@^5.0.1: unicode-match-property-ecmascript "^2.0.0" unicode-match-property-value-ecmascript "^2.0.0" +regexpu-core@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.1.0.tgz#2f8504c3fd0ebe11215783a41541e21c79942c6d" + integrity sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA== + dependencies: + regenerate "^1.4.2" + regenerate-unicode-properties "^10.0.1" + regjsgen "^0.6.0" + regjsparser "^0.8.2" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.0.0" + registry-auth-token@^4.0.0: version "4.2.1" resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250" From 141860376d05e0126c7e25884dd2a5346273a757 Mon Sep 17 00:00:00 2001 From: Malik <15927396+cappic90@users.noreply.github.com> Date: Mon, 5 Sep 2022 11:07:48 +0200 Subject: [PATCH 038/414] #2463: Change formats button title from "Video" to "Media" (#2537) --- src/renderer/components/watch-video-info/watch-video-info.vue | 2 +- static/locales/ar.yaml | 2 +- static/locales/as.yaml | 2 +- static/locales/az.yaml | 2 +- static/locales/bg.yaml | 2 +- static/locales/bn.yaml | 2 +- static/locales/bs.yaml | 2 +- static/locales/ca.yaml | 2 +- static/locales/cs.yaml | 2 +- static/locales/da.yaml | 2 +- static/locales/de-DE.yaml | 2 +- static/locales/el.yaml | 2 +- static/locales/en-US.yaml | 2 +- static/locales/en_GB.yaml | 2 +- static/locales/eo.yaml | 2 +- static/locales/es-MX.yaml | 2 +- static/locales/es.yaml | 2 +- static/locales/es_AR.yaml | 2 +- static/locales/et.yaml | 2 +- static/locales/eu.yaml | 2 +- static/locales/fa.yaml | 2 +- static/locales/fi.yaml | 2 +- static/locales/fil.yaml | 2 +- static/locales/fr-FR.yaml | 2 +- static/locales/gl.yaml | 2 +- static/locales/gsw.yaml | 2 +- static/locales/he.yaml | 2 +- static/locales/hi.yaml | 2 +- static/locales/hr.yaml | 2 +- static/locales/hu.yaml | 2 +- static/locales/id.yaml | 2 +- static/locales/is.yaml | 2 +- static/locales/it.yaml | 2 +- static/locales/ja.yaml | 2 +- static/locales/ka.yaml | 2 +- static/locales/km.yaml | 2 +- static/locales/ko.yaml | 2 +- static/locales/ku.yaml | 2 +- static/locales/la.yaml | 2 +- static/locales/lt.yaml | 2 +- static/locales/nb_NO.yaml | 2 +- static/locales/ne.yaml | 2 +- static/locales/nl.yaml | 2 +- static/locales/nn.yaml | 2 +- static/locales/pl.yaml | 2 +- static/locales/pt-BR.yaml | 2 +- static/locales/pt-PT.yaml | 2 +- static/locales/pt.yaml | 2 +- static/locales/ro.yaml | 2 +- static/locales/ru.yaml | 2 +- static/locales/sat.yaml | 4 ++-- static/locales/si.yaml | 4 ++-- static/locales/sk.yaml | 2 +- static/locales/sl.yaml | 4 ++-- static/locales/sr.yaml | 2 +- static/locales/sv.yaml | 2 +- static/locales/tok.yaml | 2 +- static/locales/tr.yaml | 2 +- static/locales/uk.yaml | 2 +- static/locales/vi.yaml | 2 +- static/locales/zh-CN.yaml | 2 +- static/locales/zh-TW.yaml | 2 +- 62 files changed, 65 insertions(+), 65 deletions(-) diff --git a/src/renderer/components/watch-video-info/watch-video-info.vue b/src/renderer/components/watch-video-info/watch-video-info.vue index db0bce524..0ddf9331e 100644 --- a/src/renderer/components/watch-video-info/watch-video-info.vue +++ b/src/renderer/components/watch-video-info/watch-video-info.vue @@ -107,7 +107,7 @@ /> Date: Mon, 5 Sep 2022 21:45:45 +0000 Subject: [PATCH 039/414] Display time remaining until video goes live (#2501) * display time left until video premiers: * video premiere display time left with time units Displays time left in seconds, minutes, hours, and days. This depends on how much time is left. * premiere time left, display time in singular if needed also simplified the big if block * premiere time left, display time unit in lowercase * Add Starting Soon string to locale file * apply fixes reported by linter * premiere time left, add suggested changes Better temp variable scoping, flatten nested code, rename temp variables, use string intepolation Co-authored-by: PikachuEXE * replace tabs with spaces tabs where used in some places in the suggested code * display time left, remove "starting soon" string Since upcomingTimeStamp will be null when the time has passed the scheduled timestamp it doesn't make sense to use something that will rarely be displayed. e.g. a user has to click on the video with less than a second remaing until it goes live for it to be displayed it would also be displayed as "Premieres in Starting soon" which doesn't make sense * display 'less than a minute' instead of exactly how many seconds remain Looks better and works for values less than 0 Co-authored-by: PikachuEXE --- src/renderer/views/Watch/Watch.js | 36 ++++++++++++++++++++++++++++++ src/renderer/views/Watch/Watch.vue | 2 +- static/locales/en-US.yaml | 2 ++ 3 files changed, 39 insertions(+), 1 deletion(-) diff --git a/src/renderer/views/Watch/Watch.js b/src/renderer/views/Watch/Watch.js index e4f86aa67..db3435d34 100644 --- a/src/renderer/views/Watch/Watch.js +++ b/src/renderer/views/Watch/Watch.js @@ -49,6 +49,7 @@ export default Vue.extend({ isLiveContent: false, isUpcoming: false, upcomingTimestamp: null, + upcomingTimeLeft: null, activeFormat: 'legacy', thumbnail: '', videoId: '', @@ -395,8 +396,43 @@ export default Vue.extend({ if (typeof startTimestamp !== 'undefined') { const upcomingTimestamp = new Date(result.videoDetails.liveBroadcastDetails.startTimestamp) this.upcomingTimestamp = upcomingTimestamp.toLocaleString() + + let upcomingTimeLeft = upcomingTimestamp - new Date() + + // Convert from ms to second to minute + upcomingTimeLeft = (upcomingTimeLeft / 1000) / 60 + let timeUnitI18nPartialKey = 'Minute' + + // Youtube switches to showing time left in minutes at 120 minutes remaining + if (upcomingTimeLeft > 120) { + upcomingTimeLeft = upcomingTimeLeft / 60 + timeUnitI18nPartialKey = 'Hour' + } + + if (timeUnitI18nPartialKey === 'Hour' && upcomingTimeLeft > 24) { + upcomingTimeLeft = upcomingTimeLeft / 24 + timeUnitI18nPartialKey = 'Day' + } + + // Value after decimal not to be displayed + // e.g. > 2 days = display as `2 days` + upcomingTimeLeft = Math.floor(upcomingTimeLeft) + if (upcomingTimeLeft !== 1) { + timeUnitI18nPartialKey = timeUnitI18nPartialKey + 's' + } + const timeUnitTranslated = this.$t(`Video.Published.${timeUnitI18nPartialKey}`).toLowerCase() + + // Displays when less than a minute remains + // Looks better than `Premieres in x seconds` + if (upcomingTimeLeft < 1) { + this.upcomingTimeLeft = this.$t('Video.Published.Less than a minute').toLowerCase() + } else { + // TODO a I18n entry for time format might be needed here + this.upcomingTimeLeft = `${upcomingTimeLeft} ${timeUnitTranslated}` + } } else { this.upcomingTimestamp = null + this.upcomingTimeLeft = null } } else { this.videoLengthSeconds = parseInt(result.videoDetails.lengthSeconds) diff --git a/src/renderer/views/Watch/Watch.vue b/src/renderer/views/Watch/Watch.vue index c582beb7a..0e9091fd5 100644 --- a/src/renderer/views/Watch/Watch.vue +++ b/src/renderer/views/Watch/Watch.vue @@ -54,7 +54,7 @@ v-if="upcomingTimestamp !== null" class="premiereText" > - {{ $t("Video.Premieres on") }}: + {{ $t("Video.Premieres in") }} {{ upcomingTimeLeft }}
{{ upcomingTimestamp }}

diff --git a/static/locales/en-US.yaml b/static/locales/en-US.yaml index f755fdc8e..f3dd927e0 100644 --- a/static/locales/en-US.yaml +++ b/static/locales/en-US.yaml @@ -542,6 +542,7 @@ Video: the page to check again # As in a Live Video Premieres on: Premieres on + Premieres in: Premieres in Live: Live Live Now: Live Now Live Chat: Live Chat @@ -592,6 +593,7 @@ Video: Years: Years Ago: Ago Upcoming: Premieres on + Less than a minute: Less than a minute Published on: Published on Streamed on: Streamed on Started streaming on: Started streaming on From 3d66da973ed11fcbbfdef6b4a853ae2a97d13c72 Mon Sep 17 00:00:00 2001 From: absidue <48293849+absidue@users.noreply.github.com> Date: Tue, 6 Sep 2022 02:44:56 +0200 Subject: [PATCH 040/414] Update ytdl-core to 4.11.2 (#2542) --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 6fecd804c..6b4d36b67 100644 --- a/package.json +++ b/package.json @@ -79,7 +79,7 @@ "youtube-suggest": "^1.1.2", "yt-channel-info": "^3.1.0", "yt-dash-manifest-generator": "1.1.0", - "ytdl-core": "^4.11.1", + "ytdl-core": "^4.11.2", "ytpl": "^2.3.0", "ytsr": "^3.8.0" }, diff --git a/yarn.lock b/yarn.lock index 1f1bd62c9..d53a27c6c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7692,10 +7692,10 @@ ytdl-core@^3.2.2: miniget "^2.0.1" sax "^1.1.3" -ytdl-core@^4.11.1: - version "4.11.1" - resolved "https://registry.yarnpkg.com/ytdl-core/-/ytdl-core-4.11.1.tgz#f29c688f1217957118790d49599569d1fc26d6db" - integrity sha512-0H2hl8kv9JA50qEUewPVpDCloyEVkXZfKJ6o2RNmkngfiY99pGVqE7jQbMT6Rs1QwZpF8GiMB50VWXqivpzlgQ== +ytdl-core@^4.11.2: + version "4.11.2" + resolved "https://registry.yarnpkg.com/ytdl-core/-/ytdl-core-4.11.2.tgz#c2341916b9757171741a2fa118b6ffbb4ffd92f7" + integrity sha512-D939t9b4ZzP3v0zDvehR2q+KgG97UTgrTKju3pOPGQcXtl4W6W5z0EpznzcJFu+OOpl7S7Ge8hv8zU65QnxYug== dependencies: m3u8stream "^0.8.6" miniget "^4.2.2" From d67a537d1cb332e5a1d784bdaf34bd0b840e9418 Mon Sep 17 00:00:00 2001 From: absidue <48293849+absidue@users.noreply.github.com> Date: Tue, 6 Sep 2022 02:45:35 +0200 Subject: [PATCH 041/414] Update copy-webpack-plugin dependency to 11.0.0 (#2541) --- package.json | 2 +- yarn.lock | 42 ++++++++++++++++++------------------------ 2 files changed, 19 insertions(+), 25 deletions(-) diff --git a/package.json b/package.json index 6b4d36b67..ee4c890cf 100644 --- a/package.json +++ b/package.json @@ -90,7 +90,7 @@ "@evilmartians/lefthook": "^1.0.5", "babel-eslint": "^10.1.0", "babel-loader": "^8.2.5", - "copy-webpack-plugin": "^9.0.1", + "copy-webpack-plugin": "^11.0.0", "css-loader": "5.2.6", "electron": "^20.1.1", "electron-builder": "^23.0.3", diff --git a/yarn.lock b/yarn.lock index d53a27c6c..d6d550974 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2037,11 +2037,6 @@ array-includes@^3.1.4: get-intrinsic "^1.1.1" is-string "^1.0.7" -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - array.prototype.flat@^1.2.5: version "1.3.0" resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz#0b0c1567bf57b38b56b4c97b8aa72ab45e4adc7b" @@ -2767,16 +2762,16 @@ cookie@0.5.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== -copy-webpack-plugin@^9.0.1: - version "9.1.0" - resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-9.1.0.tgz#2d2c460c4c4695ec0a58afb2801a1205256c4e6b" - integrity sha512-rxnR7PaGigJzhqETHGmAcxKnLZSR5u1Y3/bcIv/1FnqXedcL/E2ewK7ZCNrArJKCiSv8yVXhTqetJh8inDvfsA== +copy-webpack-plugin@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz#96d4dbdb5f73d02dd72d0528d1958721ab72e04a" + integrity sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ== dependencies: - fast-glob "^3.2.7" + fast-glob "^3.2.11" glob-parent "^6.0.1" - globby "^11.0.3" + globby "^13.1.1" normalize-path "^3.0.0" - schema-utils "^3.1.1" + schema-utils "^4.0.0" serialize-javascript "^6.0.0" core-js-compat@^3.21.0, core-js-compat@^3.22.1: @@ -3759,7 +3754,7 @@ fast-diff@^1.1.2: resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== -fast-glob@^3.2.7, fast-glob@^3.2.9: +fast-glob@^3.2.11: version "3.2.11" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== @@ -4141,17 +4136,16 @@ globalthis@^1.0.1: 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== +globby@^13.1.1: + version "13.1.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.2.tgz#29047105582427ab6eca4f905200667b056da515" + integrity sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ== dependencies: - array-union "^2.1.0" dir-glob "^3.0.1" - fast-glob "^3.2.9" + fast-glob "^3.2.11" ignore "^5.2.0" merge2 "^1.4.1" - slash "^3.0.0" + slash "^4.0.0" got@^9.6.0: version "9.6.0" @@ -6540,10 +6534,10 @@ signal-exit@^3.0.2, signal-exit@^3.0.3: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== +slash@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" + integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== slice-ansi@^3.0.0: version "3.0.0" From 8ebf680ceba2cb00c8127714de0d2ea602b83c78 Mon Sep 17 00:00:00 2001 From: "J. Lavoie" Date: Mon, 5 Sep 2022 22:51:35 +0000 Subject: [PATCH 042/414] Translated using Weblate (German) Currently translated at 99.6% (618 of 620 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/de/ --- static/locales/de-DE.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/static/locales/de-DE.yaml b/static/locales/de-DE.yaml index 054f06836..5fbc757d8 100644 --- a/static/locales/de-DE.yaml +++ b/static/locales/de-DE.yaml @@ -592,6 +592,7 @@ Video: Upcoming: Premiere am Minutes: Minuten Minute: Minute + Less than a minute: Weniger als einer Minute Published on: Veröffentlicht am Publicationtemplate: vor $ % @@ -674,6 +675,7 @@ Video: Mimetype: Medientyp Video statistics are not available for legacy videos: Videostatistiken sind für ältere Videos nicht verfügbar + Premieres in: Premieren in Videos: #& Sort By Sort By: From 87c771ff58aab559ec658dee6d7ba8caa071a0ce Mon Sep 17 00:00:00 2001 From: Eric Date: Tue, 6 Sep 2022 00:00:16 +0000 Subject: [PATCH 043/414] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (620 of 620 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/zh_Hans/ --- static/locales/zh-CN.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/static/locales/zh-CN.yaml b/static/locales/zh-CN.yaml index b522735dc..f443a46ef 100644 --- a/static/locales/zh-CN.yaml +++ b/static/locales/zh-CN.yaml @@ -522,6 +522,7 @@ Video: Upcoming: '首映于' Minutes: 分钟 Minute: 分钟 + Less than a minute: 不到一分钟 Published on: '发布于' # $ is replaced with the number and % with the unit (days, hours, minutes...) Publicationtemplate: '$ % 之前' @@ -600,6 +601,7 @@ Video: filler: 过滤器 translated from English: 从英语翻译而来 Skipped segment: 跳过片段 + Premieres in: 首映于 Videos: #& Sort By Sort By: From 9452693824121ffa0daade26b7e06af00acd8e3d Mon Sep 17 00:00:00 2001 From: "J. Lavoie" Date: Mon, 5 Sep 2022 22:49:34 +0000 Subject: [PATCH 044/414] Translated using Weblate (French) Currently translated at 100.0% (620 of 620 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/fr/ --- static/locales/fr-FR.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/static/locales/fr-FR.yaml b/static/locales/fr-FR.yaml index 70e90a985..e2795c9bc 100644 --- a/static/locales/fr-FR.yaml +++ b/static/locales/fr-FR.yaml @@ -611,6 +611,7 @@ Video: Upcoming: 'Avant-première le' Minutes: minutes Minute: minute + Less than a minute: Moins d'une minute Published on: 'Mise en ligne le' # $ is replaced with the number and % with the unit (days, hours, minutes...) Publicationtemplate: 'Il y a $ %' @@ -689,6 +690,7 @@ Video: Buffered: En mémoire tampon Dropped / Total Frames: Images perdues / Nombre total d’images Premieres on: Première le + Premieres in: Première en Videos: #& Sort By Sort By: From cdd390229f8c1da06cdbed0c01f1d8288224cff9 Mon Sep 17 00:00:00 2001 From: "J. Lavoie" Date: Mon, 5 Sep 2022 22:50:36 +0000 Subject: [PATCH 045/414] Translated using Weblate (Italian) Currently translated at 100.0% (620 of 620 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/it/ --- static/locales/it.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/static/locales/it.yaml b/static/locales/it.yaml index 4d64fe016..87df6d070 100644 --- a/static/locales/it.yaml +++ b/static/locales/it.yaml @@ -591,6 +591,7 @@ Video: Upcoming: 'Première il' Minutes: Minuti Minute: Minuto + Less than a minute: Meno di un minuto Published on: 'Pubblicato il' # $ is replaced with the number and % with the unit (days, hours, minutes...) Publicationtemplate: '$ % fa' @@ -668,6 +669,7 @@ Video: Buffered: Memoria buffer Dropped / Total Frames: Frame persi / Frame totali Mimetype: Tipo di media + Premieres in: Anteprima in Videos: #& Sort By Sort By: From 780105af2b74829bfe2defbc7b67476555fc2369 Mon Sep 17 00:00:00 2001 From: Ihor Hordiichuk Date: Tue, 6 Sep 2022 00:09:05 +0000 Subject: [PATCH 046/414] Translated using Weblate (Ukrainian) Currently translated at 100.0% (620 of 620 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/uk/ --- static/locales/uk.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/static/locales/uk.yaml b/static/locales/uk.yaml index 58297604f..484b890f2 100644 --- a/static/locales/uk.yaml +++ b/static/locales/uk.yaml @@ -619,6 +619,7 @@ Video: Years: 'Років' Ago: 'Тому' Upcoming: 'Прем''єри' + Less than a minute: Менш як за хвилину Published on: 'Опубліковано' # $ is replaced with the number and % with the unit (days, hours, minutes...) Publicationtemplate: '$ % тому' @@ -675,6 +676,7 @@ Video: Buffered: Буферизовано Video statistics are not available for legacy videos: Статистика відео недоступна для застарілих відео + Premieres in: Прем'єри в Videos: #& Sort By Sort By: From a453c8436e24ce801445dd5f503a3ba3ff14018c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sveinn=20=C3=AD=20Felli?= Date: Mon, 5 Sep 2022 23:32:33 +0000 Subject: [PATCH 047/414] Translated using Weblate (Icelandic) Currently translated at 100.0% (620 of 620 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/is/ --- static/locales/is.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/static/locales/is.yaml b/static/locales/is.yaml index 8e1c67615..d5ca73034 100644 --- a/static/locales/is.yaml +++ b/static/locales/is.yaml @@ -595,6 +595,7 @@ Video: Years: 'árum' Ago: 'síðan' Upcoming: 'Frumsýnt' + Less than a minute: Minna en mínútu Published on: 'Gefið út' Streamed on: 'Streymt' Started streaming on: 'Byrjaði streymi' @@ -648,6 +649,7 @@ Video: í boði fyrir eldri gerðir myndskeiða Bitrate: Bitahraði Volume: Hljóðstyrkur + Premieres in: Frumsýnt eftir Videos: #& Sort By Sort By: From eaa15ea83369f4cc604acb29e71cf7347152265c Mon Sep 17 00:00:00 2001 From: absidue <48293849+absidue@users.noreply.github.com> Date: Tue, 6 Sep 2022 04:29:10 +0200 Subject: [PATCH 048/414] Webpack bundle dependencies (#2511) * Allow webpack to bundle *most* dependencies * Exclude *most* node_modules from getting packaged by electron-builder * Import only the required icons instead of bundling the whole icon pack * Reduce packaging blacklist to only include the few things that still need blacklisting --- _scripts/build.js | 22 ++-- _scripts/webpack.main.config.js | 13 +-- _scripts/webpack.renderer.config.js | 13 +-- .../ft-channel-bubble/ft-channel-bubble.vue | 2 +- .../ft-icon-button/ft-icon-button.js | 4 +- src/renderer/components/ft-input/ft-input.js | 10 +- src/renderer/components/ft-input/ft-input.vue | 2 +- .../ft-list-dropdown/ft-list-dropdown.vue | 2 +- .../ft-list-playlist/ft-list-playlist.vue | 4 +- .../ft-list-video/ft-list-video.vue | 6 +- .../ft-notification-banner.vue | 2 +- .../ft-profile-selector.vue | 2 +- .../components/ft-select/ft-select.vue | 2 +- .../ft-share-button/ft-share-button.vue | 18 +-- .../components/ft-tooltip/ft-tooltip.vue | 2 +- .../side-nav-more-options.vue | 16 +-- src/renderer/components/side-nav/side-nav.vue | 16 +-- src/renderer/components/top-nav/top-nav.vue | 12 +- .../watch-video-comments.vue | 10 +- .../watch-video-info/watch-video-info.vue | 14 +-- .../watch-video-live-chat.vue | 4 +- .../watch-video-playlist.vue | 12 +- src/renderer/main.js | 107 +++++++++++++++++- src/renderer/views/About/About.js | 20 ++-- src/renderer/views/Channel/Channel.vue | 2 +- src/renderer/views/Popular/Popular.vue | 2 +- src/renderer/views/Search/Search.vue | 2 +- .../views/Subscriptions/Subscriptions.vue | 2 +- src/renderer/views/Trending/Trending.vue | 2 +- src/renderer/views/Watch/Watch.vue | 2 +- 30 files changed, 208 insertions(+), 119 deletions(-) diff --git a/_scripts/build.js b/_scripts/build.js index 6b762cc76..4e9097080 100644 --- a/_scripts/build.js +++ b/_scripts/build.js @@ -58,22 +58,14 @@ const config = { 'icon.svg', './dist/**/*', '!dist/web/*', - '!**/node_modules/**/.*', - '!**/node_modules/**/index.html', - '!**/{.github,Jenkinsfile}', - '!**/{CHANGES.md,CODE_OF_CONDUCT.md,CONTRIBUTING.md,CONTRIBUTION.md,DEVELOPMENT.md,docs,docs.md,docs.mli,examples,History.md,HISTORY.md,README.md,TODO.md,UPGRADE_GUIDE.md,UPGRADING.md}', - '!**/{commitlint.config.js,.editorconfig,.eslintignore,.eslintrc.{js,yml},.gitmodules,.huskyrc,.lintstagedrc,.nvmrc,.nycrc{,.json},.prettierrc{,.yaml},tslint.json}', - '!**/{.babelrc,bower.json,Gruntfile.js,Makefile,.npmrc.proregistry,rollup.config.js,.tm_properties,.tool-versions,tsconfig.json,webpack.config.js}', - '!**/*.{{,c,m}js,min,ts}.map', - '!**/*.d.ts', + '!node_modules/**/*', - // only exclude the src directory for specific packages - // as some of them have their dist code in there and we don't want to exclude those - '!**/node_modules/{@fortawesome/vue-fontawesome,agent-base,jquery,localforage,m3u8-parser,marked,mpd-parser,performance-now,video.js,vue,vue-i18n,vue-router}/src/*', - '!**/node_modules/**/{bin,man,scripts}/*', - '!**/node_modules/jquery/dist/jquery.slim*.js', - '!**/node_modules/video.js/dist/{alt/*,video.js}', - '!**/node_modules/@videojs/*/src' + // renderer + 'node_modules/{miniget,ytpl,ytsr}/**/*', + + '!**/README.md', + '!**/*.js.map', + '!**/*.d.ts', ], dmg: { contents: [ diff --git a/_scripts/webpack.main.config.js b/_scripts/webpack.main.config.js index 39919eb50..f9166f244 100644 --- a/_scripts/webpack.main.config.js +++ b/_scripts/webpack.main.config.js @@ -2,15 +2,9 @@ const path = require('path') const webpack = require('webpack') const CopyWebpackPlugin = require('copy-webpack-plugin') -const { - dependencies, - devDependencies, - productName, -} = require('../package.json') +const { productName } = require('../package.json') -const externals = Object.keys(dependencies).concat(Object.keys(devDependencies)) const isDevMode = process.env.NODE_ENV === 'development' -const whiteListedModules = [] const config = { name: 'main', @@ -19,7 +13,10 @@ const config = { entry: { main: path.join(__dirname, '../src/main/index.js'), }, - externals: externals.filter(d => !whiteListedModules.includes(d)), + // webpack spits out errors while inlining electron-debug as + // it tries to dynamically load dependencies + // the error: "Critical dependency: the request of a dependency is an expression" + externals: ['electron-debug'], module: { rules: [ { diff --git a/_scripts/webpack.renderer.config.js b/_scripts/webpack.renderer.config.js index 9ed57e5f0..6b20e7284 100644 --- a/_scripts/webpack.renderer.config.js +++ b/_scripts/webpack.renderer.config.js @@ -4,15 +4,9 @@ const HtmlWebpackPlugin = require('html-webpack-plugin') const VueLoaderPlugin = require('vue-loader/lib/plugin') const MiniCssExtractPlugin = require('mini-css-extract-plugin') -const { - dependencies, - devDependencies, - productName, -} = require('../package.json') +const { productName } = require('../package.json') -const externals = Object.keys(dependencies).concat(Object.keys(devDependencies)) const isDevMode = process.env.NODE_ENV === 'development' -const whiteListedModules = ['vue'] const config = { name: 'renderer', @@ -32,7 +26,10 @@ const config = { path: path.join(__dirname, '../dist'), filename: '[name].js', }, - externals: externals.filter(d => !whiteListedModules.includes(d)), + // webpack spits out errors while inlining ytpl and ytsr as + // they dynamically import their package.json file to extract the bug report URL + // the error: "Critical dependency: the request of a dependency is an expression" + externals: ['ytpl', 'ytsr'], module: { rules: [ { diff --git a/src/renderer/components/ft-channel-bubble/ft-channel-bubble.vue b/src/renderer/components/ft-channel-bubble/ft-channel-bubble.vue index 795a00c76..7e9cd68d8 100644 --- a/src/renderer/components/ft-channel-bubble/ft-channel-bubble.vue +++ b/src/renderer/components/ft-channel-bubble/ft-channel-bubble.vue @@ -12,7 +12,7 @@ class="bubble selected" > diff --git a/src/renderer/components/ft-icon-button/ft-icon-button.js b/src/renderer/components/ft-icon-button/ft-icon-button.js index c324021bc..2cf1ffa6c 100644 --- a/src/renderer/components/ft-icon-button/ft-icon-button.js +++ b/src/renderer/components/ft-icon-button/ft-icon-button.js @@ -9,8 +9,8 @@ export default Vue.extend({ default: '' }, icon: { - type: String, - default: 'ellipsis-v' + type: Array, + default: () => ['fas', 'ellipsis-v'] }, theme: { type: String, diff --git a/src/renderer/components/ft-input/ft-input.js b/src/renderer/components/ft-input/ft-input.js index ffba7a985..c5ee94515 100644 --- a/src/renderer/components/ft-input/ft-input.js +++ b/src/renderer/components/ft-input/ft-input.js @@ -67,7 +67,7 @@ export default Vue.extend({ // As the text input box should be empty clearTextButtonExisting: false, clearTextButtonVisible: false, - actionButtonIconName: 'search' + actionButtonIconName: ['fas', 'search'] } }, computed: { @@ -136,7 +136,7 @@ export default Vue.extend({ if (!this.inputDataPresent) { // Change back to default icon if text is blank - this.actionButtonIconName = 'search' + this.actionButtonIconName = ['fas', 'search'] return } @@ -165,15 +165,15 @@ export default Vue.extend({ if (isYoutubeLink) { // Go to URL (i.e. Video/Playlist/Channel - this.actionButtonIconName = 'arrow-right' + this.actionButtonIconName = ['fas', 'arrow-right'] } else { // Search with text - this.actionButtonIconName = 'search' + this.actionButtonIconName = ['fas', 'search'] } }) } catch (ex) { // On exception, consider text as invalid URL - this.actionButtonIconName = 'search' + this.actionButtonIconName = ['fas', 'search'] // Rethrow exception throw ex } diff --git a/src/renderer/components/ft-input/ft-input.vue b/src/renderer/components/ft-input/ft-input.vue index 91f9eb7f9..727ffeeb6 100644 --- a/src/renderer/components/ft-input/ft-input.vue +++ b/src/renderer/components/ft-input/ft-input.vue @@ -24,7 +24,7 @@
    diff --git a/src/renderer/components/ft-list-playlist/ft-list-playlist.vue b/src/renderer/components/ft-list-playlist/ft-list-playlist.vue index f737a989d..6e055c11f 100644 --- a/src/renderer/components/ft-list-playlist/ft-list-playlist.vue +++ b/src/renderer/components/ft-list-playlist/ft-list-playlist.vue @@ -18,7 +18,7 @@
    {{ videoCount }}
    -
    +
    @@ -26,7 +26,7 @@ diff --git a/src/renderer/components/ft-profile-selector/ft-profile-selector.vue b/src/renderer/components/ft-profile-selector/ft-profile-selector.vue index 4e8ccde1f..6c0c06f8e 100644 --- a/src/renderer/components/ft-profile-selector/ft-profile-selector.vue +++ b/src/renderer/components/ft-profile-selector/ft-profile-selector.vue @@ -22,7 +22,7 @@
    diff --git a/src/renderer/components/ft-share-button/ft-share-button.vue b/src/renderer/components/ft-share-button/ft-share-button.vue index 4f6ce5645..6b9da16e0 100644 --- a/src/renderer/components/ft-share-button/ft-share-button.vue +++ b/src/renderer/components/ft-share-button/ft-share-button.vue @@ -3,7 +3,7 @@ ref="iconButton" :title="$t('Share.Share Video')" theme="secondary" - icon="share-alt" + :icon="['fas', 'share-alt']" dropdown-position-x="left" :force-dropdown="true" > @@ -31,14 +31,14 @@ class="action" @click="copyYoutube()" > - + {{ $t("Share.Copy Link") }} - + {{ $t("Share.Open Link") }} - + {{ $t("Share.Copy Embed") }} - + {{ $t("Share.Open Embed") }}
    @@ -70,14 +70,14 @@ class="action" @click="copyInvidious()" > - + {{ $t("Share.Copy Link") }} - + {{ $t("Share.Open Link") }} - + {{ $t("Share.Copy Embed") }} - + {{ $t("Share.Open Embed") }} diff --git a/src/renderer/components/ft-tooltip/ft-tooltip.vue b/src/renderer/components/ft-tooltip/ft-tooltip.vue index 0f9d01ed6..fa8c1b7bc 100644 --- a/src/renderer/components/ft-tooltip/ft-tooltip.vue +++ b/src/renderer/components/ft-tooltip/ft-tooltip.vue @@ -5,7 +5,7 @@ class="button" type="button" > - +

    @@ -32,7 +32,7 @@ class="thumbnailContainer" > @@ -70,7 +70,7 @@ @click="navigate('popular')" > @@ -87,7 +87,7 @@ @click="navigate('about')" > @@ -104,7 +104,7 @@ @click="navigate('history')" > @@ -118,7 +118,7 @@ @click="navigate('settings')" > @@ -131,7 +131,7 @@ @click="navigate('about')" > diff --git a/src/renderer/components/side-nav/side-nav.vue b/src/renderer/components/side-nav/side-nav.vue index d33e237c2..ccfd1a6c8 100644 --- a/src/renderer/components/side-nav/side-nav.vue +++ b/src/renderer/components/side-nav/side-nav.vue @@ -19,7 +19,7 @@ class="thumbnailContainer" > @@ -83,7 +83,7 @@ v-if="!hideSearchBar" class="navFilterIcon navIcon" :class="{ filterChanged: searchFilterValueChanged }" - icon="filter" + :icon="['fas', 'filter']" role="button" tabindex="0" @click="showFilters = !showFilters" diff --git a/src/renderer/components/watch-video-comments/watch-video-comments.vue b/src/renderer/components/watch-video-comments/watch-video-comments.vue index d05eccf7d..e4a685235 100644 --- a/src/renderer/components/watch-video-comments/watch-video-comments.vue +++ b/src/renderer/components/watch-video-comments/watch-video-comments.vue @@ -52,7 +52,7 @@ class="commentPinned" > {{ $t("Comments.Pinned by") }} {{ channelName }}

    @@ -88,7 +88,7 @@

    {{ comment.likes }} @@ -163,7 +163,7 @@

    {{ reply.likes }}

    diff --git a/src/renderer/components/watch-video-info/watch-video-info.vue b/src/renderer/components/watch-video-info/watch-video-info.vue index 0ddf9331e..1aef3f69a 100644 --- a/src/renderer/components/watch-video-info/watch-video-info.vue +++ b/src/renderer/components/watch-video-info/watch-video-info.vue @@ -53,7 +53,7 @@ class="likeSection" >
    - {{ parsedLikeCount }} + {{ parsedLikeCount }}
    @@ -71,8 +71,8 @@ :style="{ background: `linear-gradient(to right, var(--accent-color) ${likePercentageRatio}%, #9E9E9E ${likePercentageRatio}%` }" />
    - {{ parsedLikeCount }} - {{ parsedDislikeCount }} + {{ parsedLikeCount }} + {{ parsedDislikeCount }}
    @@ -81,7 +81,7 @@ diff --git a/src/renderer/components/watch-video-live-chat/watch-video-live-chat.vue b/src/renderer/components/watch-video-live-chat/watch-video-live-chat.vue index b48d69de3..843bc79c2 100644 --- a/src/renderer/components/watch-video-live-chat/watch-video-live-chat.vue +++ b/src/renderer/components/watch-video-live-chat/watch-video-live-chat.vue @@ -16,7 +16,7 @@ {{ errorMessage }}

    diff --git a/src/renderer/components/watch-video-playlist/watch-video-playlist.vue b/src/renderer/components/watch-video-playlist/watch-video-playlist.vue index a4f3a6970..0e21856d9 100644 --- a/src/renderer/components/watch-video-playlist/watch-video-playlist.vue +++ b/src/renderer/components/watch-video-playlist/watch-video-playlist.vue @@ -33,33 +33,33 @@ @@ -77,7 +77,7 @@

    GitHub: FreeTubeApp/FreeTube
    ${this.$t('About.Licensed under the AGPLv3')} ${this.$t('About.View License')}` }, { - icon: 'file-download', + icon: ['fas', 'file-download'], title: this.$t('About.Downloads / Changelog'), content: `${this.$t('About.GitHub releases')}` }, { - icon: 'question-circle', + icon: ['fas', 'question-circle'], title: this.$t('About.Help'), content: `${this.$t('About.FreeTube Wiki')} / ${this.$t('About.FAQ')}` }, { - icon: 'exclamation-circle', + icon: ['fas', 'exclamation-circle'], title: this.$t('About.Report a problem'), content: `${this.$t('About.GitHub issues')}
    ${this.$t('About.Please check for duplicates before posting')}` }, { - icon: 'globe', + icon: ['fas', 'globe'], title: this.$t('About.Website'), content: 'https://freetubeapp.io/' }, { - icon: 'newspaper', + icon: ['fas', 'newspaper'], title: this.$t('About.Blog'), content: 'https://blog.freetubeapp.io' }, { - icon: 'envelope', + icon: ['fas', 'envelope'], title: this.$t('About.Email'), content: 'FreeTubeApp@protonmail.com' }, @@ -57,22 +57,22 @@ export default Vue.extend({ content: '@FreeTube@mastodon.technology' }, { - icon: 'comment-dots', + icon: ['fas', 'comment-dots'], title: this.$t('About.Chat on Matrix'), content: `#freetube:matrix.org
    ${this.$t('About.Please read the')} ${this.$t('About.room rules')}` }, { - icon: 'language', + icon: ['fas', 'language'], title: this.$t('About.Translate'), content: 'https://hosted.weblate.org/engage/free-tube/' }, { - icon: 'users', + icon: ['fas', 'users'], title: this.$t('About.Credits'), content: `${this.$t('About.FreeTube is made possible by')} ${this.$t('About.these people and projects')}` }, { - icon: 'heart', + icon: ['fas', 'heart'], title: `${this.$t('About.Donate')} - Liberapay`, content: 'https://liberapay.com/FreeTube' }, diff --git a/src/renderer/views/Channel/Channel.vue b/src/renderer/views/Channel/Channel.vue index e423191e4..b32c4451f 100644 --- a/src/renderer/views/Channel/Channel.vue +++ b/src/renderer/views/Channel/Channel.vue @@ -192,7 +192,7 @@ class="getNextPage" @click="handleFetchMore" > - {{ $t("Search Filters.Fetch more results") }} + {{ $t("Search Filters.Fetch more results") }} diff --git a/src/renderer/views/Popular/Popular.vue b/src/renderer/views/Popular/Popular.vue index 6e6172c3f..38328f785 100644 --- a/src/renderer/views/Popular/Popular.vue +++ b/src/renderer/views/Popular/Popular.vue @@ -15,7 +15,7 @@ - {{ $t("Search Filters.Fetch more results") }} + {{ $t("Search Filters.Fetch more results") }} diff --git a/src/renderer/views/Subscriptions/Subscriptions.vue b/src/renderer/views/Subscriptions/Subscriptions.vue index f2a1245fa..6262ef21e 100644 --- a/src/renderer/views/Subscriptions/Subscriptions.vue +++ b/src/renderer/views/Subscriptions/Subscriptions.vue @@ -48,7 +48,7 @@

    Date: Tue, 6 Sep 2022 04:13:37 +0000 Subject: [PATCH 049/414] Translated using Weblate (Turkish) Currently translated at 100.0% (620 of 620 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/tr/ --- static/locales/tr.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/static/locales/tr.yaml b/static/locales/tr.yaml index 8cef34831..fdd1537d2 100644 --- a/static/locales/tr.yaml +++ b/static/locales/tr.yaml @@ -633,6 +633,7 @@ Video: Years: 'Yıl' Ago: 'Önce' Upcoming: 'İlk gösterim tarihi' + Less than a minute: Bir dakikadan az Published on: 'Yayımlanma tarihi' # $ is replaced with the number and % with the unit (days, hours, minutes...) Publicationtemplate: '$ % önce' @@ -701,6 +702,7 @@ Video: Mimetype: MIME Türü Video statistics are not available for legacy videos: Video istatistikleri eski videolar için kullanılabilir değil + Premieres in: İlk gösterim Videos: #& Sort By Sort By: From 059eeab47af6f7d51e79682608be6bf3b367bf53 Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani Date: Tue, 6 Sep 2022 05:37:18 +0000 Subject: [PATCH 050/414] Translated using Weblate (Hebrew) Currently translated at 100.0% (620 of 620 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/he/ --- static/locales/he.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/static/locales/he.yaml b/static/locales/he.yaml index e56ace6a0..024d0faa6 100644 --- a/static/locales/he.yaml +++ b/static/locales/he.yaml @@ -614,6 +614,7 @@ Video: Years: 'שנים' Ago: 'לפני' Upcoming: 'שידור הבכורה ישודר ב־' + Less than a minute: פחות מדקה Published on: 'פורסם' # $ is replaced with the number and % with the unit (days, hours, minutes...) Publicationtemplate: 'לפני $ %' @@ -681,6 +682,7 @@ Video: Buffered: שמור בזיכרון Dropped / Total Frames: תמוניות שהושמטו / סה״כ Mimetype: סוג MIME + Premieres in: בכורה בעוד Videos: #& Sort By Sort By: From beece01cdf464ea21e91f645d9205fa22d1876e5 Mon Sep 17 00:00:00 2001 From: efb4f5ff-1298-471a-8973-3d47447115dc <73130443+efb4f5ff-1298-471a-8973-3d47447115dc@users.noreply.github.com> Date: Tue, 6 Sep 2022 11:38:51 +0000 Subject: [PATCH 051/414] Add files via upload (#2285) --- conflicts.yml | 25 +++++++++++++++++++++++++ dummy-conflicts.yml | 9 +++++++++ 2 files changed, 34 insertions(+) create mode 100644 conflicts.yml create mode 100644 dummy-conflicts.yml diff --git a/conflicts.yml b/conflicts.yml new file mode 100644 index 000000000..63b208eb7 --- /dev/null +++ b/conflicts.yml @@ -0,0 +1,25 @@ +name: "Conflicts" +on: + # So that PRs touching the same files as the push are updated + push: + # So that the `dirtyLabel` is removed if conflicts are resolve + # We recommend `pull_request_target` so that github secrets are available. + # In `pull_request` we wouldn't be able to change labels of fork PRs + pull_request_target: + types: [synchronize] + workflow_run: + workflows: ['Dummy workflow for conflicts'] + types: [requested] + +jobs: + main: + runs-on: ubuntu-latest + steps: + - name: check if prs are dirty + uses: eps1lon/actions-label-merge-conflict@releases/2.x + with: + dirtyLabel: "PR: merge conflicts / rebase needed" + removeOnDirtyLabel: "PR: waiting for review" + repoToken: "${{ secrets.GITHUB_TOKEN }}" + commentOnDirty: "This pull request has conflicts, please resolve those before we can evaluate the pull request." + commentOnClean: "Conflicts have been resolved. A maintainer will review the pull request shortly." diff --git a/dummy-conflicts.yml b/dummy-conflicts.yml new file mode 100644 index 000000000..ed1fa3f2f --- /dev/null +++ b/dummy-conflicts.yml @@ -0,0 +1,9 @@ +name: Dummy workflow for conflicts +on: + pull_request_review: + types: [submitted] +jobs: + dummy: + runs-on: ubuntu-latest + steps: + - run: echo "this is a dummy workflow that triggers a workflow_run; it's necessary because otherwise the repo secrets will not be in scope for externally forked pull requests" From 2a4ca22f66be86877ed3f8e6fb7bbae3a231ebc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Grzegorz=20W=C3=B3jcicki?= Date: Tue, 6 Sep 2022 12:34:13 +0000 Subject: [PATCH 052/414] Translated using Weblate (Polish) Currently translated at 100.0% (620 of 620 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/pl/ --- static/locales/pl.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/static/locales/pl.yaml b/static/locales/pl.yaml index 7cced6213..b75245f0c 100644 --- a/static/locales/pl.yaml +++ b/static/locales/pl.yaml @@ -593,6 +593,7 @@ Video: Upcoming: 'Premiera' Minutes: minut/y Minute: minutę + Less than a minute: mniej niż minutę Published on: 'Opublikowano' # $ is replaced with the number and % with the unit (days, hours, minutes...) Publicationtemplate: '$ % temu' @@ -670,6 +671,7 @@ Video: Video statistics are not available for legacy videos: Statystyki filmu nie są dostępne dla starych formatów Dropped / Total Frames: Opuszczone klatki / klatki ogółem + Premieres in: Premiera za Videos: #& Sort By Sort By: From 9236f37d6e9bd969967aa7d45d3e7b5b5443f383 Mon Sep 17 00:00:00 2001 From: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com> Date: Tue, 6 Sep 2022 10:47:06 -0400 Subject: [PATCH 053/414] move conflict checker to workflows (#2545) --- .../workflows/conflicts.yml | 50 +++++++++---------- .../workflows/dummy-conflicts.yml | 18 +++---- 2 files changed, 34 insertions(+), 34 deletions(-) rename conflicts.yml => .github/workflows/conflicts.yml (97%) rename dummy-conflicts.yml => .github/workflows/dummy-conflicts.yml (97%) diff --git a/conflicts.yml b/.github/workflows/conflicts.yml similarity index 97% rename from conflicts.yml rename to .github/workflows/conflicts.yml index 63b208eb7..c0f221025 100644 --- a/conflicts.yml +++ b/.github/workflows/conflicts.yml @@ -1,25 +1,25 @@ -name: "Conflicts" -on: - # So that PRs touching the same files as the push are updated - push: - # So that the `dirtyLabel` is removed if conflicts are resolve - # We recommend `pull_request_target` so that github secrets are available. - # In `pull_request` we wouldn't be able to change labels of fork PRs - pull_request_target: - types: [synchronize] - workflow_run: - workflows: ['Dummy workflow for conflicts'] - types: [requested] - -jobs: - main: - runs-on: ubuntu-latest - steps: - - name: check if prs are dirty - uses: eps1lon/actions-label-merge-conflict@releases/2.x - with: - dirtyLabel: "PR: merge conflicts / rebase needed" - removeOnDirtyLabel: "PR: waiting for review" - repoToken: "${{ secrets.GITHUB_TOKEN }}" - commentOnDirty: "This pull request has conflicts, please resolve those before we can evaluate the pull request." - commentOnClean: "Conflicts have been resolved. A maintainer will review the pull request shortly." +name: "Conflicts" +on: + # So that PRs touching the same files as the push are updated + push: + # So that the `dirtyLabel` is removed if conflicts are resolve + # We recommend `pull_request_target` so that github secrets are available. + # In `pull_request` we wouldn't be able to change labels of fork PRs + pull_request_target: + types: [synchronize] + workflow_run: + workflows: ['Dummy workflow for conflicts'] + types: [requested] + +jobs: + main: + runs-on: ubuntu-latest + steps: + - name: check if prs are dirty + uses: eps1lon/actions-label-merge-conflict@releases/2.x + with: + dirtyLabel: "PR: merge conflicts / rebase needed" + removeOnDirtyLabel: "PR: waiting for review" + repoToken: "${{ secrets.GITHUB_TOKEN }}" + commentOnDirty: "This pull request has conflicts, please resolve those before we can evaluate the pull request." + commentOnClean: "Conflicts have been resolved. A maintainer will review the pull request shortly." diff --git a/dummy-conflicts.yml b/.github/workflows/dummy-conflicts.yml similarity index 97% rename from dummy-conflicts.yml rename to .github/workflows/dummy-conflicts.yml index ed1fa3f2f..cc4ba4250 100644 --- a/dummy-conflicts.yml +++ b/.github/workflows/dummy-conflicts.yml @@ -1,9 +1,9 @@ -name: Dummy workflow for conflicts -on: - pull_request_review: - types: [submitted] -jobs: - dummy: - runs-on: ubuntu-latest - steps: - - run: echo "this is a dummy workflow that triggers a workflow_run; it's necessary because otherwise the repo secrets will not be in scope for externally forked pull requests" +name: Dummy workflow for conflicts +on: + pull_request_review: + types: [submitted] +jobs: + dummy: + runs-on: ubuntu-latest + steps: + - run: echo "this is a dummy workflow that triggers a workflow_run; it's necessary because otherwise the repo secrets will not be in scope for externally forked pull requests" From a15af3a77824ecc8a28366d13cd7b90dd58e4d29 Mon Sep 17 00:00:00 2001 From: Fjuro Date: Tue, 6 Sep 2022 15:20:36 +0000 Subject: [PATCH 054/414] Translated using Weblate (Czech) Currently translated at 100.0% (620 of 620 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/cs/ --- static/locales/cs.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/static/locales/cs.yaml b/static/locales/cs.yaml index 17305b7f4..e6b5466c5 100644 --- a/static/locales/cs.yaml +++ b/static/locales/cs.yaml @@ -630,6 +630,7 @@ Video: Years: 'lety' Ago: 'Před' Upcoming: 'Premiéra' + Less than a minute: Méně než minuta Published on: 'Publikováno' # $ is replaced with the number and % with the unit (days, hours, minutes...) Publicationtemplate: 'před $ %' @@ -679,6 +680,7 @@ Video: Bandwidth: Bandwidth Buffered: V mezipaměti Dropped / Total Frames: Vyřazené / Celkový počet snímků + Premieres in: Premiéra za Videos: #& Sort By Sort By: From 9faff9087ba0b779dad7104d3e9a37da90a0c967 Mon Sep 17 00:00:00 2001 From: Rex_sa Date: Tue, 6 Sep 2022 18:31:18 +0000 Subject: [PATCH 055/414] Translated using Weblate (Arabic) Currently translated at 100.0% (620 of 620 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/ar/ --- static/locales/ar.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/static/locales/ar.yaml b/static/locales/ar.yaml index ee4946f52..b6c6d1a4e 100644 --- a/static/locales/ar.yaml +++ b/static/locales/ar.yaml @@ -7,7 +7,7 @@ FreeTube: 'فريتيوب' # Webkit Menu Bar File: 'ملف' -Quit: 'إغلاق' +Quit: 'خروج' Edit: 'تحرير' Undo: 'تراجع' Redo: 'إعادة' @@ -608,6 +608,7 @@ Video: Years: 'سنوات' Ago: 'منذ' Upcoming: 'يبدأ العرض' + Less than a minute: أقل من دقيقة Published on: 'نُشر في' # $ is replaced with the number and % with the unit (days, hours, minutes...) Publicationtemplate: 'قبل $ %' @@ -684,6 +685,7 @@ Video: Buffered: مخزنة Dropped / Total Frames: إسقاط / إجمالي الإطارات Mimetype: نمط ميمي + Premieres in: العرض الأول في Videos: #& Sort By Sort By: From ce77d16ff5ab051adb15eba8da8dd93cb6403036 Mon Sep 17 00:00:00 2001 From: Jai A P Date: Wed, 7 Sep 2022 02:48:29 +0530 Subject: [PATCH 056/414] Add linux armv7l and win/osx arm64 builds (#2113) * Add linux armv7l * Add linux armv7l * Update release.yml * Update build.yml * Update release.yml * Update build.js * Update release.yml * Update build.yml * Update release.yml * Update release.yml * Update build.yml * Update _scripts/build.js Co-authored-by: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com> * Update _scripts/build.js Co-authored-by: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com> * Update _scripts/build.js Co-authored-by: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com> * Update build.yml * Update build.yml * Update release.yml * Remove squirrel build from windows as unused * Update build.yml * Update release.yml * Update build.yml * Update release.yml * Update build.yml * Update release.yml * Update .github/workflows/release.yml Co-authored-by: PikachuEXE * Update .github/workflows/build.yml Co-authored-by: PikachuEXE Co-authored-by: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com> Co-authored-by: PikachuEXE --- .github/workflows/build.yml | 135 +++++++++++++++++++++++++----- .github/workflows/release.yml | 150 +++++++++++++++++++++++++++++++--- _scripts/build.js | 18 ++-- 3 files changed, 263 insertions(+), 40 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 77b99a85f..3ef58734f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -6,26 +6,45 @@ name: Build on: push: branches: [ master, development, '**-RC' ] + workflow_dispatch: jobs: build: strategy: matrix: node-version: [16.x] - runtime: [ linux-x64, linux-arm64, win-x64, osx-x64 ] + runtime: + - linux-x64 + - linux-armv7l + - linux-arm64 + - win-x64 + - win-arm64 + - osx-x64 + # `osx-arm64` disabled due to "macOS gatekeeper" + # See details in https://github.com/FreeTubeApp/FreeTube/pull/2113 + # - osx-arm64 include: - runtime: linux-x64 os: ubuntu-latest + - runtime: linux-armv7l + os: ubuntu-latest + - runtime: linux-arm64 os: ubuntu-latest - runtime: osx-x64 os: macOS-latest +# - runtime: osx-arm64 +# os: macOS-latest + - runtime: win-x64 os: windows-latest + - runtime: win-arm64 + os: windows-latest + runs-on: ${{ matrix.os }} steps: @@ -73,15 +92,19 @@ jobs: - name: Install libarchive-tools - if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-x64') + if: startsWith(matrix.os, 'ubuntu') run: sudo apt -y install libarchive-tools; echo "Version Number ${{ toJson(job) }} ${{ toJson(needs) }}" - name: Build x64 with Node.js ${{ matrix.node-version}} if: contains(matrix.runtime, 'x64') run: npm run build --if-present + - name: Build ARMv7l with Node.js ${{ matrix.node-version}} + if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-armv7l') + run: npm run build:arm32 --if-present + - name: Build ARM64 with Node.js ${{ matrix.node-version}} - if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-arm64') + if: contains(matrix.runtime, 'arm64') run: npm run build:arm64 --if-present - name: Upload Linux .zip x64 Artifact @@ -91,7 +114,14 @@ jobs: name: freetube_${{ steps.versionNumber.outputs.result }}_linux_portable_x64 path: build/freetube-${{ steps.versionNumber.outputs.result }}.zip - - name: Upload Linux .zip ARM Artifact + - name: Upload Linux .zip ARMv7l Artifact + uses: actions/upload-artifact@v2 + if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-armv7l') + with: + name: freetube_${{ steps.versionNumber.outputs.result }}_linux_portable_armv7l + path: build/freetube-${{ steps.versionNumber.outputs.result }}-armv7l.zip + + - name: Upload Linux .zip ARM64 Artifact uses: actions/upload-artifact@v2 if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-arm64') with: @@ -105,7 +135,14 @@ jobs: name: freetube_${{ steps.versionNumber.outputs.result }}_amd64.deb path: build/freetube_${{ steps.versionNumber.outputs.result }}_amd64.deb - - name: Upload .deb ARM Artifact + - name: Upload .deb ARMv7l Artifact + uses: actions/upload-artifact@v2 + if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-armv7l') + with: + name: freetube_${{ steps.versionNumber.outputs.result }}_armv7l.deb + path: build/freetube_${{ steps.versionNumber.outputs.result }}_armv7l.deb + + - name: Upload .deb ARM64 Artifact uses: actions/upload-artifact@v2 if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-arm64') with: @@ -119,7 +156,14 @@ jobs: name: freetube_${{ steps.versionNumber.outputs.result }}_amd64.AppImage path: build/FreeTube-${{ steps.versionNumber.outputs.result }}.AppImage - - name: Upload AppImage ARM Artifact + - name: Upload AppImage ARMv7l Artifact + uses: actions/upload-artifact@v2 + if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-armv7l') + with: + name: freetube_${{ steps.versionNumber.outputs.result }}_armv7l.AppImage + path: build/FreeTube-${{ steps.versionNumber.outputs.result }}-armv7l.AppImage + + - name: Upload AppImage ARM64 Artifact uses: actions/upload-artifact@v2 if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-arm64') with: @@ -132,8 +176,10 @@ jobs: with: name: freetube_${{ steps.versionNumber.outputs.result }}_amd64.rpm path: build/freetube-${{ steps.versionNumber.outputs.result }}.x86_64.rpm + + # rpm are not built for armv7l - - name: Upload .rpm ARM Artifact + - name: Upload .rpm ARM64 Artifact uses: actions/upload-artifact@v2 if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-arm64') with: @@ -147,7 +193,14 @@ jobs: name: freetube_${{ steps.versionNumber.outputs.result }}_alpine_amd64.apk path: build/freetube-${{ steps.versionNumber.outputs.result }}.apk - - name: Upload Alpine .apk ARM Artifact + - name: Upload Alpine .apk ARMv7l Artifact + uses: actions/upload-artifact@v2 + if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-armv7l') + with: + name: freetube_${{ steps.versionNumber.outputs.result }}_alpine_armv7l.apk + path: build/freetube-${{ steps.versionNumber.outputs.result }}-armv7l.apk + + - name: Upload Alpine .apk ARM64 Artifact uses: actions/upload-artifact@v2 if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-arm64') with: @@ -168,30 +221,72 @@ jobs: # name: freetube_${{ steps.versionNumber.outputs.result }}_static_web # path: dist/web - - name: Upload Windows .exe Artifact + - name: Upload Windows x64 .exe Artifact uses: actions/upload-artifact@v2 - if: startsWith(matrix.os, 'windows') + if: startsWith(matrix.os, 'windows') && startsWith(matrix.runtime, 'win-x64') + with: + name: freetube-${{ steps.versionNumber.outputs.result }}-setup-x64.exe + path: build/freetube Setup ${{ steps.versionNumber.outputs.result }}.exe + + - name: Upload Windows arm64 .exe Artifact + uses: actions/upload-artifact@v2 + if: startsWith(matrix.os, 'windows') && startsWith(matrix.runtime, 'win-arm64') + with: + name: freetube-${{ steps.versionNumber.outputs.result }}-setup-arm64.exe + path: build/freetube Setup ${{ steps.versionNumber.outputs.result }}.exe + + - name: Upload Windows x64 .zip Artifact + uses: actions/upload-artifact@v2 + if: startsWith(matrix.os, 'windows') && startsWith(matrix.runtime, 'win-x64') with: name: freetube-${{ steps.versionNumber.outputs.result }}-win-x64-portable path: build/freetube-${{ steps.versionNumber.outputs.result }}-win.zip - - name: Upload Windows .zip Artifact + - name: Upload Windows arm64 .zip Artifact uses: actions/upload-artifact@v2 - if: startsWith(matrix.os, 'windows') + if: startsWith(matrix.os, 'windows') && startsWith(matrix.runtime, 'win-arm64') with: - name: freetube-${{ steps.versionNumber.outputs.result }}-setup-x64.exe - path: build/freetube Setup ${{ steps.versionNumber.outputs.result }}.exe - - - name: Upload Windows Portable Artifact + name: freetube-${{ steps.versionNumber.outputs.result }}-win-arm64-portable + path: build/freetube-${{ steps.versionNumber.outputs.result }}-arm64-win.zip + + - name: Upload Windows x64 Portable Artifact uses: actions/upload-artifact@v2 - if: startsWith(matrix.os, 'windows') + if: startsWith(matrix.os, 'windows') && startsWith(matrix.runtime, 'win-x64') with: name: freetube-${{ steps.versionNumber.outputs.result }}-portable-x64.exe path: build/freetube ${{ steps.versionNumber.outputs.result }}.exe - - name: Upload Mac .dmg Artifact + - name: Upload Windows arm64 Portable Artifact uses: actions/upload-artifact@v2 - if: startsWith(matrix.os, 'macos') + if: startsWith(matrix.os, 'windows') && startsWith(matrix.runtime, 'win-arm64') with: - name: freetube-${{ steps.versionNumber.outputs.result }}-mac.dmg + name: freetube-${{ steps.versionNumber.outputs.result }}-portable-arm64.exe + path: build/freetube ${{ steps.versionNumber.outputs.result }}.exe + + - name: Upload Mac x64 .dmg Artifact + uses: actions/upload-artifact@v2 + if: startsWith(matrix.os, 'macos') && startsWith(matrix.runtime, 'osx-x64') + with: + name: freetube-${{ steps.versionNumber.outputs.result }}-mac-x64.dmg path: build/freetube-${{ steps.versionNumber.outputs.result }}.dmg + +# - name: Upload Mac arm64 .dmg Artifact +# uses: actions/upload-artifact@v2 +# if: startsWith(matrix.os, 'macos') && startsWith(matrix.runtime, 'osx-arm64') +# with: +# name: freetube-${{ steps.versionNumber.outputs.result }}-mac-arm64.dmg +# path: build/freetube-${{ steps.versionNumber.outputs.result }}-arm64.dmg + + - name: Upload Mac x64 .zip Artifact + uses: actions/upload-artifact@v2 + if: startsWith(matrix.os, 'macos') && startsWith(matrix.runtime, 'osx-x64') + with: + name: freetube-${{ steps.versionNumber.outputs.result }}-mac-x64.zip + path: build/freetube-${{ steps.versionNumber.outputs.result }}-mac.zip + +# - name: Upload Mac arm64 .zip Artifact +# uses: actions/upload-artifact@v2 +# if: startsWith(matrix.os, 'macos') && startsWith(matrix.runtime, 'osx-arm64') +# with: +# name: freetube-${{ steps.versionNumber.outputs.result }}-mac-arm64.zip +# path: build/freetube-${{ steps.versionNumber.outputs.result }}-arm64-mac.zip diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 962124ffd..0a3d00475 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -13,19 +13,37 @@ jobs: strategy: matrix: node-version: [16.x] - runtime: [ linux-x64, linux-arm64, win-x64, osx-x64 ] + runtime: + - linux-x64 + - linux-armv7l + - linux-arm64 + - win-x64 + - win-arm64 + - osx-x64 + # `osx-arm64` disabled due to "macOS gatekeeper" + # See details in https://github.com/FreeTubeApp/FreeTube/pull/2113 + # - osx-arm64 include: - runtime: linux-x64 os: ubuntu-latest + - runtime: linux-armv7l + os: ubuntu-latest + - runtime: linux-arm64 os: ubuntu-latest - runtime: osx-x64 os: macOS-latest - + +# - runtime: osx-arm64 +# os: macOS-latest + - runtime: win-x64 os: windows-latest + + - runtime: win-arm64 + os: windows-latest runs-on: ${{ matrix.os }} @@ -49,8 +67,12 @@ jobs: if: contains(matrix.runtime, 'x64') run: npm run build --if-present + - name: Build ARMv7l with Node.js ${{ matrix.node-version}} + if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-armv7l') + run: npm run build:arm32 --if-present + - name: Build ARM64 with Node.js ${{ matrix.node-version}} - if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-arm64') + if: contains(matrix.runtime, 'arm64') run: npm run build:arm64 --if-present - name: Upload AppImage x64 Release @@ -75,7 +97,18 @@ jobs: asset_path: build/freetube-${{ env.PACKAGE_VERSION }}.zip asset_content_type: application/zip - - name: Upload Linux .zip ARM Release + - name: Upload Linux .zip ARMv7l Release + uses: actions/upload-release-asset@v1 + if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-armv7l') + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} + asset_name: freetube-${{ env.PACKAGE_VERSION }}-linux-portable-armv7l.zip + asset_path: build/freetube-${{ env.PACKAGE_VERSION }}-armv7l.zip + asset_content_type: application/zip + + - name: Upload Linux .zip ARM64 Release uses: actions/upload-release-asset@v1 if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-arm64') env: @@ -97,7 +130,18 @@ jobs: asset_path: build/freetube_${{ env.PACKAGE_VERSION }}_amd64.deb asset_content_type: application/vnd.debian.binary-package - - name: Upload Linux .deb ARM Release + - name: Upload Linux .deb ARMv7l Release + uses: actions/upload-release-asset@v1 + if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-armv7l') + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} + asset_name: freetube_${{ env.PACKAGE_VERSION }}_armv7l.deb + asset_path: build/freetube_${{ env.PACKAGE_VERSION }}_armv7l.deb + asset_content_type: application/vnd.debian.binary-package + + - name: Upload Linux .deb ARM64 Release uses: actions/upload-release-asset@v1 if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-arm64') env: @@ -118,8 +162,10 @@ jobs: asset_name: freetube_${{ env.PACKAGE_VERSION }}_amd64.rpm asset_path: build/freetube-${{ env.PACKAGE_VERSION }}.x86_64.rpm asset_content_type: application/x-rpm + + # rpm are not built for armv7l - - name: Upload Linux .rpm ARM Release + - name: Upload Linux .rpm ARM64 Release uses: actions/upload-release-asset@v1 if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-arm64') env: @@ -130,9 +176,9 @@ jobs: asset_path: build/freetube-${{ env.PACKAGE_VERSION }}.aarch64.rpm asset_content_type: application/x-rpm - - name: Upload Windows .exe Release + - name: Upload Windows x64 .exe Release uses: actions/upload-release-asset@v1 - if: startsWith(matrix.os, 'windows') + if: startsWith(matrix.os, 'windows') && startsWith(matrix.runtime, 'win-x64') env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: @@ -141,9 +187,20 @@ jobs: asset_path: build/freetube Setup ${{ env.PACKAGE_VERSION }}.exe asset_content_type: application/x-ms-dos-executable - - name: Upload Windows .zip Release + - name: Upload Windows arm64 .exe Release uses: actions/upload-release-asset@v1 - if: startsWith(matrix.os, 'windows') + if: startsWith(matrix.os, 'windows') && startsWith(matrix.runtime, 'win-arm64') + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} + asset_name: freetube-${{ env.PACKAGE_VERSION }}-setup-arm64.exe + asset_path: build/freetube Setup ${{ env.PACKAGE_VERSION }}.exe + asset_content_type: application/x-ms-dos-executable + + - name: Upload Windows x64 .zip Release + uses: actions/upload-release-asset@v1 + if: startsWith(matrix.os, 'windows') && startsWith(matrix.runtime, 'win-x64') env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: @@ -152,13 +209,80 @@ jobs: asset_path: build/freetube-${{ env.PACKAGE_VERSION }}-win.zip asset_content_type: application/zip - - name: Upload Mac .dmg Release + - name: Upload Windows arm64 .zip Release uses: actions/upload-release-asset@v1 - if: startsWith(matrix.os, 'macos') + if: startsWith(matrix.os, 'windows') && startsWith(matrix.runtime, 'win-arm64') env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} - asset_name: freetube-${{ env.PACKAGE_VERSION }}-mac.dmg + asset_name: freetube-${{ env.PACKAGE_VERSION }}-win-arm64-portable.zip + asset_path: build/freetube-${{ env.PACKAGE_VERSION }}-arm64-win.zip + asset_content_type: application/zip + + - name: Upload Windows x64 portable Release + uses: actions/upload-release-asset@v1 + if: startsWith(matrix.os, 'windows') && startsWith(matrix.runtime, 'win-x64') + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} + asset_name: freetube-${{ env.PACKAGE_VERSION }}-win-x64-portable.exe + asset_path: build/FreeTube ${{ env.PACKAGE_VERSION }}.exe + asset_content_type: application/x-ms-dos-executable + + - name: Upload Windows arm64 portable Release + uses: actions/upload-release-asset@v1 + if: startsWith(matrix.os, 'windows') && startsWith(matrix.runtime, 'win-arm64') + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} + asset_name: freetube-${{ env.PACKAGE_VERSION }}-win-arm64-portable.exe + asset_path: build/FreeTube ${{ env.PACKAGE_VERSION }}.exe + asset_content_type: application/x-ms-dos-executable + + - name: Upload Mac x64 .dmg Release + uses: actions/upload-release-asset@v1 + if: startsWith(matrix.os, 'macos') && startsWith(matrix.runtime, 'osx-x64') + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} + asset_name: freetube-${{ env.PACKAGE_VERSION }}-mac-x64.dmg asset_path: build/freetube-${{ env.PACKAGE_VERSION }}.dmg asset_content_type: application/x-apple-diskimage + +# - name: Upload Mac arm64 .dmg Release +# uses: actions/upload-release-asset@v1 +# if: startsWith(matrix.os, 'macos') && startsWith(matrix.runtime, 'osx-arm64') +# env: +# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} +# with: +# upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} +# asset_name: freetube-${{ env.PACKAGE_VERSION }}-mac-arm64.dmg +# asset_path: build/freetube-${{ env.PACKAGE_VERSION }}-arm64.dmg +# asset_content_type: application/x-apple-diskimage + + - name: Upload Mac x64 .zip Release + uses: actions/upload-release-asset@v1 + if: startsWith(matrix.os, 'macos') && startsWith(matrix.runtime, 'osx-x64') + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} + asset_name: freetube-${{ env.PACKAGE_VERSION }}-mac-x64.zip + asset_path: build/freetube-${{ env.PACKAGE_VERSION }}-mac.zip + asset_content_type: application/x-apple-diskimage + +# - name: Upload Mac arm64 .zip Release +# uses: actions/upload-release-asset@v1 +# if: startsWith(matrix.os, 'macos') && startsWith(matrix.runtime, 'osx-arm64') +# env: +# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} +# with: +# upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} +# asset_name: freetube-${{ env.PACKAGE_VERSION }}-mac-arm64.zip +# asset_path: build/freetube-${{ env.PACKAGE_VERSION }}-arm64-mac.zip +# asset_content_type: application/x-apple-diskimage + diff --git a/_scripts/build.js b/_scripts/build.js index 4e9097080..e4a727c96 100644 --- a/_scripts/build.js +++ b/_scripts/build.js @@ -13,15 +13,19 @@ const cpus = os.cpus() if (platform === 'darwin') { let arch = Arch.x64 -// Macbook Air 2020 with M1 = 'Apple M1' - // Macbook Pro 2021 with M1 Pro = 'Apple M1 Pro' - if (cpus[0].model.startsWith('Apple')) { + if (args[2] === 'arm64') { arch = Arch.arm64 } - - targets = Platform.MAC.createTarget(['dmg'], arch) + + targets = Platform.MAC.createTarget(['DMG','zip'], arch) } else if (platform === 'win32') { - targets = Platform.WINDOWS.createTarget() + let arch = Arch.x64 + + if (args[2] === 'arm64') { + arch = Arch.arm64 + } + + targets = Platform.WINDOWS.createTarget(['nsis', 'zip', 'portable'], arch) } else if (platform === 'linux') { let arch = Arch.x64 @@ -126,7 +130,7 @@ const config = { }, win: { icon: '_icons/icon.ico', - target: ['nsis', 'zip', 'portable', 'squirrel'], + target: ['nsis', 'zip', 'portable'], }, nsis: { allowToChangeInstallationDirectory: true, From 3aa90dc9056c7ffe951565e90d831f9d82729364 Mon Sep 17 00:00:00 2001 From: Jeff Huang Date: Wed, 7 Sep 2022 01:38:20 +0000 Subject: [PATCH 057/414] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (620 of 620 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/zh_Hant/ --- static/locales/zh-TW.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/static/locales/zh-TW.yaml b/static/locales/zh-TW.yaml index 2d1e972c3..10834791a 100644 --- a/static/locales/zh-TW.yaml +++ b/static/locales/zh-TW.yaml @@ -533,6 +533,7 @@ Video: Upcoming: '首播於' Minutes: 分鐘 Minute: 分鐘 + Less than a minute: 少於一分鐘 Published on: '發布於' # $ is replaced with the number and % with the unit (days, hours, minutes...) Publicationtemplate: '$ % 前' @@ -610,6 +611,7 @@ Video: Video statistics are not available for legacy videos: 影片統計資料不適用於舊版影片 Video ID: 影片 ID Mimetype: 多媒體類型 + Premieres in: 首映於 Videos: #& Sort By Sort By: From 76ee2506947c73b062fd5838a041b655b36cc56b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=95=D0=B3=D0=BE=D1=80=20=D0=95=D1=80=D0=BC=D0=B0=D0=BA?= =?UTF-8?q?=D0=BE=D0=B2?= Date: Wed, 7 Sep 2022 13:40:05 +0000 Subject: [PATCH 058/414] Translated using Weblate (Russian) Currently translated at 99.8% (619 of 620 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/ru/ --- static/locales/ru.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/static/locales/ru.yaml b/static/locales/ru.yaml index daf52af84..2d0058380 100644 --- a/static/locales/ru.yaml +++ b/static/locales/ru.yaml @@ -577,6 +577,7 @@ Video: Upcoming: 'Премьера' Minutes: Минут Minute: Минута + Less than a minute: Менее минуты Published on: 'Опубликовано' # $ is replaced with the number and % with the unit (days, hours, minutes...) Publicationtemplate: '$ % назад' From 65cc82af784b36f8b39c2b5f6733f482ea70a287 Mon Sep 17 00:00:00 2001 From: Milo Ivir Date: Wed, 7 Sep 2022 18:15:23 +0000 Subject: [PATCH 059/414] Translated using Weblate (Croatian) Currently translated at 100.0% (620 of 620 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/hr/ --- static/locales/hr.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/static/locales/hr.yaml b/static/locales/hr.yaml index 200031651..85031f1bd 100644 --- a/static/locales/hr.yaml +++ b/static/locales/hr.yaml @@ -623,6 +623,7 @@ Video: Years: 'god.' Ago: 'Prije' Upcoming: 'Premijera' + Less than a minute: Manje od jedne minute Published on: 'Objavljeno' # $ is replaced with the number and % with the unit (days, hours, minutes...) Publicationtemplate: 'prije $ %' @@ -700,6 +701,7 @@ Video: Buffered: Učitano u memoriju Mimetype: Mimetype Dropped / Total Frames: Ispušteni/ukupni kadrovi + Premieres in: Premijera u Videos: #& Sort By Sort By: From f7f1672b8a7c015ae840acb941b1c058eeaeba34 Mon Sep 17 00:00:00 2001 From: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com> Date: Wed, 7 Sep 2022 20:39:22 -0400 Subject: [PATCH 060/414] update electron-builder (#2546) --- package.json | 4 +- yarn.lock | 278 +++++++++++++++++++++++++++------------------------ 2 files changed, 150 insertions(+), 132 deletions(-) diff --git a/package.json b/package.json index ee4c890cf..32640f111 100644 --- a/package.json +++ b/package.json @@ -93,8 +93,8 @@ "copy-webpack-plugin": "^11.0.0", "css-loader": "5.2.6", "electron": "^20.1.1", - "electron-builder": "^23.0.3", - "electron-builder-squirrel-windows": "^22.13.1", + "electron-builder": "^23.3.3", + "electron-builder-squirrel-windows": "^23.5.0", "electron-debug": "^3.2.0", "eslint": "^7.32.0", "eslint-config-prettier": "^8.3.0", diff --git a/yarn.lock b/yarn.lock index d6d550974..86af9a3a1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1076,21 +1076,10 @@ global-agent "^3.0.0" global-tunnel-ng "^2.7.1" -"@electron/universal@1.0.5": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@electron/universal/-/universal-1.0.5.tgz#b812340e4ef21da2b3ee77b2b4d35c9b86defe37" - integrity sha512-zX9O6+jr2NMyAdSkwEUlyltiI4/EBLu2Ls/VD3pUQdi3cAYeYfdQnT2AJJ38HE4QxLccbU13LSpccw1IWlkyag== - dependencies: - "@malept/cross-spawn-promise" "^1.1.0" - asar "^3.0.3" - debug "^4.3.1" - dir-compare "^2.4.0" - fs-extra "^9.0.1" - -"@electron/universal@1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@electron/universal/-/universal-1.2.0.tgz#518cac72bccd79c00bf41345119e6fdbabdb871d" - integrity sha512-eu20BwNsrMPKoe2bZ3/l9c78LclDvxg3PlVXrQf3L50NaUuW5M59gbPytI+V4z7/QMrohUHetQaU0ou+p1UG9Q== +"@electron/universal@1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@electron/universal/-/universal-1.2.1.tgz#3c2c4ff37063a4e9ab1e6ff57db0bc619bc82339" + integrity sha512-7323HyMh7KBAl/nPDppdLsC87G6RwRU02dy5FPeGB1eS7rUePh55+WNWiDPLhFQqqVPHzh77M69uhmoT8XnwMQ== dependencies: "@malept/cross-spawn-promise" "^1.1.0" asar "^3.1.0" @@ -1903,76 +1892,73 @@ anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" -app-builder-bin@3.7.1: - version "3.7.1" - resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.7.1.tgz#cb0825c5e12efc85b196ac3ed9c89f076c61040e" - integrity sha512-ql93vEUq6WsstGXD+SBLSIQw6SNnhbDEM0swzgugytMxLp3rT24Ag/jcC80ZHxiPRTdew1niuR7P3/FCrDqIjw== - 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@22.14.13: - version "22.14.13" - resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.14.13.tgz#c1f5b6afc86596357598bb90b69eef06c7c2eeb3" - integrity sha512-SufmrtxU+D0Tn948fjEwAOlCN9757UXLkzzTWXMwZKR/5hisvgqeeBepWfphMIE6OkDGz0fbzEhL1P2Pty4XMg== +app-builder-lib@23.3.3: + version "23.3.3" + resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-23.3.3.tgz#78b9dbb0bd8a69842461edd77a3226d0547c5939" + integrity sha512-m0+M53+HYMzqKxwNQZT143K7WwXEGUy9LY31l8dJphXx2P/FQod615mVbxHyqbDCG4J5bHdWm21qZ0e2DVY6CQ== dependencies: "7zip-bin" "~5.1.1" "@develar/schema-utils" "~2.6.5" - "@electron/universal" "1.0.5" + "@electron/universal" "1.2.1" "@malept/flatpak-bundler" "^0.4.0" async-exit-hook "^2.0.1" bluebird-lst "^1.0.9" - builder-util "22.14.13" - builder-util-runtime "8.9.2" + builder-util "23.3.3" + builder-util-runtime "9.0.3" chromium-pickle-js "^0.2.0" - debug "^4.3.2" - ejs "^3.1.6" - electron-osx-sign "^0.5.0" - electron-publish "22.14.13" + debug "^4.3.4" + ejs "^3.1.7" + electron-osx-sign "^0.6.0" + electron-publish "23.3.3" form-data "^4.0.0" - fs-extra "^10.0.0" - hosted-git-info "^4.0.2" + fs-extra "^10.1.0" + hosted-git-info "^4.1.0" is-ci "^3.0.0" - isbinaryfile "^4.0.8" + isbinaryfile "^4.0.10" js-yaml "^4.1.0" lazy-val "^1.0.5" - minimatch "^3.0.4" + minimatch "^3.1.2" read-config-file "6.2.0" sanitize-filename "^1.6.3" - semver "^7.3.5" + semver "^7.3.7" + tar "^6.1.11" temp-file "^3.4.0" -app-builder-lib@23.0.3: - version "23.0.3" - resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-23.0.3.tgz#44c90237abdc4ad9b34a24658bee022828ad6205" - integrity sha512-1qrtXYHXJfXhzJnMtVGjIva3067F1qYQubl2oBjI61gCBoCHvhghdYJ57XxXTQQ0VxnUhg1/Iaez87uXp8mD8w== +app-builder-lib@23.5.0: + version "23.5.0" + resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-23.5.0.tgz#5c6b117ea318a668d851dd4aaaf0d4810a3a0178" + integrity sha512-AJIqUK+fe9dMPwHZf7NTE1Z0qrLGAbwB7cCcsLxoV2tOSySBPqzOvqhU1l7rOGBaFQUHvYyQTuk1FDmVSW3Psw== dependencies: "7zip-bin" "~5.1.1" "@develar/schema-utils" "~2.6.5" - "@electron/universal" "1.2.0" + "@electron/universal" "1.2.1" "@malept/flatpak-bundler" "^0.4.0" async-exit-hook "^2.0.1" bluebird-lst "^1.0.9" - builder-util "23.0.2" - builder-util-runtime "9.0.0" + builder-util "23.5.0" + builder-util-runtime "9.1.1" chromium-pickle-js "^0.2.0" - debug "^4.3.2" - ejs "^3.1.6" + debug "^4.3.4" + ejs "^3.1.7" electron-osx-sign "^0.6.0" - electron-publish "23.0.2" + electron-publish "23.5.0" form-data "^4.0.0" - fs-extra "^10.0.0" - hosted-git-info "^4.0.2" + fs-extra "^10.1.0" + hosted-git-info "^4.1.0" is-ci "^3.0.0" - isbinaryfile "^4.0.8" + isbinaryfile "^4.0.10" js-yaml "^4.1.0" lazy-val "^1.0.5" - minimatch "^3.0.4" + minimatch "^3.1.2" read-config-file "6.2.0" sanitize-filename "^1.6.3" - semver "^7.3.5" + semver "^7.3.7" + tar "^6.1.11" temp-file "^3.4.0" archiver-utils@^2.1.0: @@ -1991,7 +1977,7 @@ archiver-utils@^2.1.0: normalize-path "^3.0.0" readable-stream "^2.0.0" -archiver@^5.3.0: +archiver@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/archiver/-/archiver-5.3.1.tgz#21e92811d6f09ecfce649fbefefe8c79e57cbbb6" integrity sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w== @@ -2047,7 +2033,7 @@ array.prototype.flat@^1.2.5: es-abstract "^1.19.2" es-shim-unscopables "^1.0.0" -asar@^3.0.3, asar@^3.1.0: +asar@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/asar/-/asar-3.1.0.tgz#70b0509449fe3daccc63beb4d3c7d2e24d3c6473" integrity sha512-vyxPxP5arcAqN4F/ebHd/HhwnAiZtwhglvdmc7BR2f0ywbVNTOpSeyhLDbGXtE/y58hv1oC75TaNIXutnsOZsQ== @@ -2365,36 +2351,36 @@ buffer@^5.1.0, buffer@^5.5.0: base64-js "^1.3.1" ieee754 "^1.1.13" -builder-util-runtime@8.9.2: - version "8.9.2" - resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.9.2.tgz#a9669ae5b5dcabfe411ded26678e7ae997246c28" - integrity sha512-rhuKm5vh7E0aAmT6i8aoSfEjxzdYEFX7zDApK+eNgOhjofnWb74d9SRJv0H/8nsgOkos0TZ4zxW0P8J4N7xQ2A== +builder-util-runtime@9.0.3: + version "9.0.3" + resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-9.0.3.tgz#6c62c493ba2b73c2af92432db4013b5a327f02b2" + integrity sha512-SfG2wnyjpUbbdtpnqDpWwklujofC6GarGpvdWrEkg9p5AD/xJmTF2buTNaqs3qtsNBEVQDDjZz9xc2GGpVyMfA== dependencies: - debug "^4.3.2" + debug "^4.3.4" sax "^1.2.4" -builder-util-runtime@9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-9.0.0.tgz#3a40ba7382712ccdb24471567f91d7c167e00830" - integrity sha512-SkpEtSmTkREDHRJnxKEv43aAYp8sYWY8fxYBhGLBLOBIRXeaIp6Kv3lBgSD7uR8jQtC7CA659sqJrpSV6zNvSA== +builder-util-runtime@9.1.1: + version "9.1.1" + resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-9.1.1.tgz#2da7b34e78a64ad14ccd070d6eed4662d893bd60" + integrity sha512-azRhYLEoDvRDR8Dhis4JatELC/jUvYjm4cVSj7n9dauGTOM2eeNn9KS0z6YA6oDsjI1xphjNbY6PZZeHPzzqaw== dependencies: - debug "^4.3.2" + debug "^4.3.4" sax "^1.2.4" -builder-util@22.14.13: - version "22.14.13" - resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.14.13.tgz#41b5b7b4ee53aff4e09cc007fb144522598f3ce6" - integrity sha512-oePC/qrrUuerhmH5iaCJzPRAKlSBylrhzuAJmRQClTyWnZUv6jbaHh+VoHMbEiE661wrj2S2aV7/bQh12cj1OA== +builder-util@23.3.3: + version "23.3.3" + resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-23.3.3.tgz#449ee57ec1ffc7e59f7a3a8a1a33d25cf5e39e43" + integrity sha512-MJZlUiq2PY5hjYv9+XNaoYdsITqvLgRDoHSFg/4nzpInbNxNjLQOolL04Zsyp+hgfcbFvMC4h0KkR1CMPHLWbA== dependencies: "7zip-bin" "~5.1.1" "@types/debug" "^4.1.6" "@types/fs-extra" "^9.0.11" - app-builder-bin "3.7.1" + app-builder-bin "4.0.0" bluebird-lst "^1.0.9" - builder-util-runtime "8.9.2" + builder-util-runtime "9.0.3" chalk "^4.1.1" cross-spawn "^7.0.3" - debug "^4.3.2" + debug "^4.3.4" fs-extra "^10.0.0" http-proxy-agent "^5.0.0" https-proxy-agent "^5.0.0" @@ -2404,20 +2390,20 @@ builder-util@22.14.13: stat-mode "^1.0.0" temp-file "^3.4.0" -builder-util@23.0.2: - version "23.0.2" - resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-23.0.2.tgz#da84a971076397e3a671726f4bb96f0c2214fea7" - integrity sha512-HaNHL3axNW/Ms8O1mDx3I07G+ZnZ/TKSWWvorOAPau128cdt9S+lNx5ocbx8deSaHHX4WFXSZVHh3mxlaKJNgg== +builder-util@23.5.0: + version "23.5.0" + resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-23.5.0.tgz#5986a9da37c3ddbec790fcaaf88cae343b6bce49" + integrity sha512-TYz3sj2NMoG1/524/Je0p0RtEAKKjmTL6z2WQnzU6yM+WU/jHnA2OqX9Q/jys+rKuMy+7MCMdc+G+HrbpKWYSg== dependencies: "7zip-bin" "~5.1.1" "@types/debug" "^4.1.6" "@types/fs-extra" "^9.0.11" app-builder-bin "4.0.0" bluebird-lst "^1.0.9" - builder-util-runtime "9.0.0" + builder-util-runtime "9.1.1" chalk "^4.1.1" cross-spawn "^7.0.3" - debug "^4.3.2" + debug "^4.3.4" fs-extra "^10.0.0" http-proxy-agent "^5.0.0" https-proxy-agent "^5.0.0" @@ -2518,6 +2504,11 @@ chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1: optionalDependencies: fsevents "~2.3.2" +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + chrome-trace-event@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" @@ -2893,7 +2884,7 @@ debug@2.6.9, debug@^2.6.8, debug@^2.6.9: dependencies: ms "2.0.0" -debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3: +debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.3, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -2991,21 +2982,21 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" -dmg-builder@23.0.3: - version "23.0.3" - resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-23.0.3.tgz#ea94bc76fcd94612641580f3c6ae42c3f07f3fee" - integrity sha512-mBYrHHnSM5PC656TDE+xTGmXIuWHAGmmRfyM+dV0kP+AxtwPof4pAXNQ8COd0/exZQ4dqf72FiPS3B9G9aB5IA== +dmg-builder@23.3.3: + version "23.3.3" + resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-23.3.3.tgz#b37547f8403c3e9f7c60265a93d902f5b0c395ea" + integrity sha512-ECwAjt+ZWyOvddrkDx1xRD6IVUCZb5SV6vSMHZd+Va3G2sUXHrnglR1cGDKRF4oYRQm8SYVrpLZKbi8npyDcAQ== dependencies: - app-builder-lib "23.0.3" - builder-util "23.0.2" - builder-util-runtime "9.0.0" + app-builder-lib "23.3.3" + builder-util "23.3.3" + builder-util-runtime "9.0.3" fs-extra "^10.0.0" iconv-lite "^0.6.2" js-yaml "^4.1.0" optionalDependencies: - dmg-license "^1.0.9" + dmg-license "^1.0.11" -dmg-license@^1.0.9: +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== @@ -3130,36 +3121,36 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -ejs@^3.1.6: +ejs@^3.1.7: 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-builder-squirrel-windows@^22.13.1: - version "22.14.13" - resolved "https://registry.yarnpkg.com/electron-builder-squirrel-windows/-/electron-builder-squirrel-windows-22.14.13.tgz#ca3984c040efef3f0a78d57b4893afe8543b448d" - integrity sha512-rgr/TrxkuZPpbL5zHGHexgYztqvkZzaN7ZZXKj4GciUCwyezdO8NJiyWQiyMoVjGL8bJbUz3HWEGzQvjb8yHfA== +electron-builder-squirrel-windows@^23.5.0: + version "23.5.0" + resolved "https://registry.yarnpkg.com/electron-builder-squirrel-windows/-/electron-builder-squirrel-windows-23.5.0.tgz#9990cd4891799f327d6974387afc66c342e66579" + integrity sha512-WrQgKWr5s9jFATUqN+zNb3XXZFw91TktkNQAPK2wYYF5496sFWMg1uQ2O+e/gS0ovFdJ7m6F6C98nN68D1OUHQ== dependencies: - app-builder-lib "22.14.13" - archiver "^5.3.0" - builder-util "22.14.13" + app-builder-lib "23.5.0" + archiver "^5.3.1" + builder-util "23.5.0" fs-extra "^10.0.0" optionalDependencies: "7zip-bin" "~5.1.1" -electron-builder@^23.0.3: - version "23.0.3" - resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-23.0.3.tgz#16264a0d8e3d40da1467bcc8ef7917538b54a3bc" - integrity sha512-0lnTsljAgcOMuIiOjPcoFf+WxOOe/O04hZPgIvvUBXIbz3kolbNu0Xdch1f5WuQ40NdeZI7oqs8Eo395PcuGHQ== +electron-builder@^23.3.3: + version "23.3.3" + resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-23.3.3.tgz#88d4e584a99b9e36ca4e8432b1163a1ef877355f" + integrity sha512-mFYYdhoFPKevP6y5uaaF3dusmB2OtQ/HnwwpyOePeU7QDS0SEIAUokQsHUanAiJAZcBqtY7iyLBgX18QybdFFw== dependencies: "@types/yargs" "^17.0.1" - app-builder-lib "23.0.3" - builder-util "23.0.2" - builder-util-runtime "9.0.0" + app-builder-lib "23.3.3" + builder-util "23.3.3" + builder-util-runtime "9.0.3" chalk "^4.1.1" - dmg-builder "23.0.3" + dmg-builder "23.3.3" fs-extra "^10.0.0" is-ci "^3.0.0" lazy-val "^1.0.5" @@ -3218,18 +3209,6 @@ electron-localshortcut@^3.1.0: keyboardevent-from-electron-accelerator "^2.0.0" keyboardevents-areequal "^0.2.1" -electron-osx-sign@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/electron-osx-sign/-/electron-osx-sign-0.5.0.tgz#fc258c5e896859904bbe3d01da06902c04b51c3a" - integrity sha512-icoRLHzFz/qxzDh/N4Pi2z4yVHurlsCAYQvsCSG7fCedJ4UJXBS6PoQyGH71IfcqKupcKeK7HX/NkyfG+v6vlQ== - dependencies: - bluebird "^3.5.0" - compare-version "^0.1.2" - debug "^2.6.8" - isbinaryfile "^3.0.2" - minimist "^1.2.0" - plist "^3.0.1" - electron-osx-sign@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/electron-osx-sign/-/electron-osx-sign-0.6.0.tgz#9b69c191d471d9458ef5b1e4fdd52baa059f1bb8" @@ -3242,27 +3221,27 @@ electron-osx-sign@^0.6.0: minimist "^1.2.0" plist "^3.0.1" -electron-publish@22.14.13: - version "22.14.13" - resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.14.13.tgz#8b71e6975af8cc6ac5b21f293ade23f8704047c7" - integrity sha512-0oP3QiNj3e8ewOaEpEJV/o6Zrmy2VarVvZ/bH7kyO/S/aJf9x8vQsKVWpsdmSiZ5DJEHgarFIXrnO0ZQf0P9iQ== +electron-publish@23.3.3: + version "23.3.3" + resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-23.3.3.tgz#c4125fbb00620acb854f6e994fd3ab3115662ddd" + integrity sha512-1dX17eE5xVXedTxjC+gjsP74oC0+sIHgqysp0ryTlF9+yfQUyXjBk6kcK+zhtBA2SsHMSglDtM+JPxDD/WpPTQ== dependencies: "@types/fs-extra" "^9.0.11" - builder-util "22.14.13" - builder-util-runtime "8.9.2" + builder-util "23.3.3" + builder-util-runtime "9.0.3" chalk "^4.1.1" fs-extra "^10.0.0" lazy-val "^1.0.5" mime "^2.5.2" -electron-publish@23.0.2: - version "23.0.2" - resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-23.0.2.tgz#aa11419ae57b847df4beb63b95e2b2a43161957c" - integrity sha512-8gMYgWqv96lc83FCm85wd+tEyxNTJQK7WKyPkNkO8GxModZqt1GO8S+/vAnFGxilS/7vsrVRXFfqiCDUCSuxEg== +electron-publish@23.5.0: + version "23.5.0" + resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-23.5.0.tgz#9f9a3242f93428f8e5d07bade43ecf319fc167f8" + integrity sha512-dY/bAN5tIjEPX1AV5FK9TXKKoGGalGb53SgGbhiII3o+WLzK+4vew6rrmChBTwELP/q8r4a89X+slTDG/iPdww== dependencies: "@types/fs-extra" "^9.0.11" - builder-util "23.0.2" - builder-util-runtime "9.0.0" + builder-util "23.5.0" + builder-util-runtime "9.1.1" chalk "^4.1.1" fs-extra "^10.0.0" lazy-val "^1.0.5" @@ -3928,7 +3907,7 @@ fs-constants@^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.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== @@ -3956,6 +3935,13 @@ fs-extra@^9.0.0, fs-extra@^9.0.1: jsonfile "^6.0.1" universalify "^2.0.0" +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + fs-monkey@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.3.tgz#ae3ac92d53bb328efe0e9a1d9541f6ad8d48e2d3" @@ -4253,7 +4239,7 @@ hosted-git-info@^2.1.4: resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== -hosted-git-info@^4.0.2: +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== @@ -4769,7 +4755,7 @@ isbinaryfile@^3.0.2: dependencies: buffer-alloc "^1.2.0" -isbinaryfile@^4.0.8: +isbinaryfile@^4.0.10: version "4.0.10" resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.10.tgz#0c5b5e30c2557a2f06febd37b7322946aaee42b3" integrity sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw== @@ -5317,6 +5303,26 @@ minimist@^1.2.0, minimist@^1.2.6: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== +minipass@^3.0.0: + version "3.3.4" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.4.tgz#ca99f95dd77c43c7a76bf51e6d200025eee0ffae" + integrity sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw== + dependencies: + yallist "^4.0.0" + +minizlib@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + +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" @@ -6411,7 +6417,7 @@ semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semve resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: +semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7: version "7.3.7" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== @@ -6861,6 +6867,18 @@ tar-stream@^2.2.0: inherits "^2.0.3" readable-stream "^3.1.1" +tar@^6.1.11: + version "6.1.11" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" + integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + temp-file@^3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/temp-file/-/temp-file-3.4.0.tgz#766ea28911c683996c248ef1a20eea04d51652c7" From c845df9d53726b60a08ad6462b64bec6313e995a Mon Sep 17 00:00:00 2001 From: PikachuEXE Date: Thu, 8 Sep 2022 19:09:49 +0800 Subject: [PATCH 061/414] ^ Update electron 20.x (#2549) --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 32640f111..8d507cef6 100644 --- a/package.json +++ b/package.json @@ -92,7 +92,7 @@ "babel-loader": "^8.2.5", "copy-webpack-plugin": "^11.0.0", "css-loader": "5.2.6", - "electron": "^20.1.1", + "electron": "^20.1.2", "electron-builder": "^23.3.3", "electron-builder-squirrel-windows": "^23.5.0", "electron-debug": "^3.2.0", diff --git a/yarn.lock b/yarn.lock index 86af9a3a1..3d456e837 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3252,10 +3252,10 @@ electron-to-chromium@^1.4.118: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.137.tgz#186180a45617283f1c012284458510cd99d6787f" integrity sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA== -electron@^20.1.1: - version "20.1.1" - resolved "https://registry.yarnpkg.com/electron/-/electron-20.1.1.tgz#511ae795b57c5683f22b733d5bf2ba7663136850" - integrity sha512-cFTfP4R2O5onaXiu+S20xK7eLpyX/H7PYk7lj9mlHS0ui1+w1jDDWD3RhvjmPgeksPfMAZiRLK8lAQvzSBAKdg== +electron@^20.1.2: + version "20.1.2" + resolved "https://registry.yarnpkg.com/electron/-/electron-20.1.2.tgz#ef5502e4a1ea7c08bfbae17a49da861ac9f882dc" + integrity sha512-Yz2GAUqgXNr3+7vI+xL3qoCBUw4nVX+MeF/+HNL80y67ZrhMFUbJFirw7Tm6/Kx8r6TBPz0/D3aleeySWFUmzw== dependencies: "@electron/get" "^1.14.1" "@types/node" "^16.11.26" From d853b2719442de2d24a311f97d51b521a0c84e5b Mon Sep 17 00:00:00 2001 From: "J. Lavoie" Date: Thu, 8 Sep 2022 11:49:24 +0000 Subject: [PATCH 062/414] Translated using Weblate (German) Currently translated at 99.8% (619 of 620 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/de/ --- static/locales/de-DE.yaml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/static/locales/de-DE.yaml b/static/locales/de-DE.yaml index 5fbc757d8..c5856c549 100644 --- a/static/locales/de-DE.yaml +++ b/static/locales/de-DE.yaml @@ -60,8 +60,8 @@ Search Filters: Long (> 20 minutes): Lang (> 20 Minuten) # On Search Page Search Results: Suchergebnisse - Fetching results. Please wait: Lade Ergebnisse. Bitte warten - Fetch more results: Lade mehr Ergebnisse + Fetching results. Please wait: Ergebnisse werden geladen. Bitte warten + Fetch more results: Mehr Ergebnisse laden # Sidebar There are no more results for this search: Keine weiteren Ergebnisse für diese Suche vorhanden @@ -74,7 +74,7 @@ Subscriptions: zu sehen. 'Getting Subscriptions. Please wait.': Rufe Abonnements ab. Bitte warten. Refresh Subscriptions: Abonnements aktualisieren - Getting Subscriptions. Please wait.: Lade Abonnements. Bitte warten. + Getting Subscriptions. Please wait.: Abonnements werden geladen. Bitte warten. This profile has a large number of subscriptions. Forcing RSS to avoid rate limiting: Dieses Profil hat eine große Anzahl von Abonnements. RSS zur Vermeidung von Geschwindigkeitsbeschränkungen erzwingen @@ -115,7 +115,7 @@ Settings: General Settings: Allgemeine Einstellungen Fallback to Non-Preferred Backend on Failure: Falle zu nicht-präferiertem System bei Fehlschlag zurück - Enable Search Suggestions: Aktiviere Suchvorschläge + Enable Search Suggestions: Suchvorschläge aktivieren Default Landing Page: Standardseite Locale Preference: Spracheinstellung @@ -203,6 +203,7 @@ Settings: Catppuccin Mocha Mauve: Catppuccin Mocha Mauve Catppuccin Mocha Red: Catppuccin Mocha Rot Catppuccin Mocha Maroon: Catppuccin Mocha Kastanienbraun + Catppuccin Mocha Teal: Catppuccin Mokka Blaugrün Secondary Color Theme: Sekundäres Farbschema #* Main Color Theme UI Scale: Skalierung der Benutzeroberfläche @@ -749,7 +750,7 @@ Comments: Replies: Antworten Reply: Antworten There are no comments available for this video: Für dieses Video gibt es keine Kommentare - Load More Comments: Lade mehr Kommentare + Load More Comments: Mehr Kommentare laden There are no more comments for this video: Es gibt keine weiteren Kommentare zu diesem Video No more comments available: Keine Kommentare mehr verfügbar From 790265ed7dff4441ba269a52c2b2b3838c2ac96b Mon Sep 17 00:00:00 2001 From: "J. Lavoie" Date: Thu, 8 Sep 2022 11:51:13 +0000 Subject: [PATCH 063/414] Translated using Weblate (Finnish) Currently translated at 99.8% (619 of 620 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/fi/ --- static/locales/fi.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/static/locales/fi.yaml b/static/locales/fi.yaml index 5699d635e..f3460808a 100644 --- a/static/locales/fi.yaml +++ b/static/locales/fi.yaml @@ -410,6 +410,9 @@ Settings: Ignore Unsupported Action Warnings: Sivuuta ei-tuettujen toimintojen varoitukset External Player: Ulkoinen toisto-ohjelma External Player Settings: Ulkoisen videontoisto-ohjelman asetukset + Players: + None: + Name: Ei mitään Download Settings: Download Settings: Latausasetukset Choose Path: Valitse polku @@ -560,6 +563,7 @@ Video: Upcoming: 'Ensiesitys' Minutes: Minuuttia Minute: Minuutti + Less than a minute: Vähemmän kuin minuutti Published on: 'Julkaistu' # $ is replaced with the number and % with the unit (days, hours, minutes...) Publicationtemplate: '$ % sitten' From 91ca964913b62f5607ada07d189a169af717c33d Mon Sep 17 00:00:00 2001 From: "J. Lavoie" Date: Thu, 8 Sep 2022 11:46:48 +0000 Subject: [PATCH 064/414] Translated using Weblate (Italian) Currently translated at 100.0% (620 of 620 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/it/ --- static/locales/it.yaml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/static/locales/it.yaml b/static/locales/it.yaml index 87df6d070..5ed37646a 100644 --- a/static/locales/it.yaml +++ b/static/locales/it.yaml @@ -31,7 +31,7 @@ Back: 'Indietro' Forward: 'Avanti' # Search Bar -Search / Go to URL: 'Cerca o aggiungi link YouTube' +Search / Go to URL: 'Cerca o aggiungi URL YouTube' # In Filter Button Search Filters: Search Filters: 'Filtri di ricerca' @@ -153,7 +153,7 @@ Settings: External Link Handling: No Action: Nessuna azione Ask Before Opening Link: Chiedi prima di aprire il link - Open Link: Apri il link + Open Link: Apri il collegamento External Link Handling: Gestione dei collegamenti esterni Theme Settings: Theme Settings: 'Impostazioni del tema' @@ -776,7 +776,7 @@ A new blog is now available, $. Click to view more: Un nuovo blog è ora disponi $. Clicca per saperne di più Version $ is now available! Click for more details: La versione $ è ora disponibile! Clicca per maggiori dettagli -Download From Site: Download dal sito +Download From Site: Scarica dal sito The playlist has been reversed: La playlist è stata invertita Profile: Are you sure you want to delete the selected channels? This will not delete the channel from any other profile.: Sei @@ -896,7 +896,8 @@ Search Bar: Clear Input: Pulisci ricerca External link opening has been disabled in the general settings: L'apertura dei collegamenti esterni è stata disabilitata nelle impostazioni generali -Are you sure you want to open this link?: Sei sicuro di voler aprire questo link? +Are you sure you want to open this link?: Sei sicuro/sicura di voler aprire questo + collegamento? Downloading has completed: 'Il download di "$" è terminato' Starting download: Avvio del download di "$" Downloading failed: Si è verificato un problema durante il download di "$" From 7b7c9990f50d0d9b20b33d549b313da97bf1c255 Mon Sep 17 00:00:00 2001 From: "J. Lavoie" Date: Thu, 8 Sep 2022 11:51:22 +0000 Subject: [PATCH 065/414] Translated using Weblate (English (United Kingdom)) Currently translated at 100.0% (620 of 620 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/en_GB/ --- static/locales/en_GB.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/static/locales/en_GB.yaml b/static/locales/en_GB.yaml index 0d771774a..0fd27bedb 100644 --- a/static/locales/en_GB.yaml +++ b/static/locales/en_GB.yaml @@ -608,6 +608,7 @@ Video: Years: 'Years' Ago: 'Ago' Upcoming: 'Premieres on' + Less than a minute: Less than a minute Published on: 'Published on' # $ is replaced with the number and % with the unit (days, hours, minutes...) Publicationtemplate: '$ % ago' @@ -680,6 +681,7 @@ Video: Video statistics are not available for legacy videos: Video statistics are not available for legacy videos Video ID: Video ID + Premieres in: Premieres in Videos: #& Sort By Sort By: From b6e17b6bdeea85d41bfc7e5fe67854fecc639e24 Mon Sep 17 00:00:00 2001 From: Massimo Pissarello Date: Thu, 8 Sep 2022 14:12:47 +0000 Subject: [PATCH 066/414] Translated using Weblate (Italian) Currently translated at 100.0% (620 of 620 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/it/ --- static/locales/it.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/static/locales/it.yaml b/static/locales/it.yaml index 5ed37646a..2d7bf68e5 100644 --- a/static/locales/it.yaml +++ b/static/locales/it.yaml @@ -896,8 +896,7 @@ Search Bar: Clear Input: Pulisci ricerca External link opening has been disabled in the general settings: L'apertura dei collegamenti esterni è stata disabilitata nelle impostazioni generali -Are you sure you want to open this link?: Sei sicuro/sicura di voler aprire questo - collegamento? +Are you sure you want to open this link?: Sei sicuro di voler aprire questo collegamento? Downloading has completed: 'Il download di "$" è terminato' Starting download: Avvio del download di "$" Downloading failed: Si è verificato un problema durante il download di "$" From c2329b9e42b4c0c78491fec248fed546bba8b24a Mon Sep 17 00:00:00 2001 From: Massimo Pissarello Date: Thu, 8 Sep 2022 15:52:13 +0000 Subject: [PATCH 067/414] Translated using Weblate (Italian) Currently translated at 100.0% (620 of 620 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/it/ --- static/locales/it.yaml | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/static/locales/it.yaml b/static/locales/it.yaml index 2d7bf68e5..00f1ac551 100644 --- a/static/locales/it.yaml +++ b/static/locales/it.yaml @@ -152,7 +152,7 @@ Settings: System Default: Predefinito del sistema External Link Handling: No Action: Nessuna azione - Ask Before Opening Link: Chiedi prima di aprire il link + Ask Before Opening Link: Chiedi prima di aprire il collegamento Open Link: Apri il collegamento External Link Handling: Gestione dei collegamenti esterni Theme Settings: @@ -538,11 +538,11 @@ Video: Video has been marked as watched: 'Il video è stato contrassegnato come già visto' Video has been removed from your history: 'Il video è stato rimosso dalla cronologia' Open in YouTube: 'Apri con YouTube' - Copy YouTube Link: 'Copia link YouTube' + Copy YouTube Link: 'Copia collegamento YouTube' Open YouTube Embedded Player: 'Apri con lettore YouTube incorporato' - Copy YouTube Embedded Player Link: 'Copia link del lettore YouTube incorporato' + Copy YouTube Embedded Player Link: 'Copia collegamento del lettore YouTube incorporato' Open in Invidious: 'Apri con Invidious' - Copy Invidious Link: 'Copia link Invidious' + Copy Invidious Link: 'Copia collegamento Invidious' View: 'Vista' Views: 'Visualizzazioni' # Context is "X People Watching" @@ -612,9 +612,9 @@ Video: audio only: solo audio video only: solo video Download Video: Download video - Copy Invidious Channel Link: Copia link del canale Invidious + Copy Invidious Channel Link: Copia collegamento canale Invidious Open Channel in Invidious: Apri il canale con Invidious - Copy YouTube Channel Link: Copia link del canale YouTube + Copy YouTube Channel Link: Copia collegamento canale YouTube Open Channel in YouTube: Apri il canale con YouTube Started streaming on: Stream iniziato il Streamed on: Streaming il @@ -686,9 +686,9 @@ Playlist: Last Updated On: 'Ultimo aggiornamento il' Share Playlist: Share Playlist: 'Condividi la playlist' - Copy YouTube Link: 'Copia link YouTube' + Copy YouTube Link: 'Copia collegamento YouTube' Open in YouTube: 'Apri con YouTube' - Copy Invidious Link: 'Copia link Invidious' + Copy Invidious Link: 'Copia collegamento Invidious' Open in Invidious: 'Apri con Invidious' # On Video Watch Page @@ -707,8 +707,8 @@ Change Format: per questo video Share: Share Video: 'Condividi video' - Copy Link: 'Copia link' - Open Link: 'Apri link' + Copy Link: 'Copia collegamento' + Open Link: 'Apri collegamento' Copy Embed: 'Copia codice da incorporare' Open Embed: 'Apri codice da incorporare' # On Click @@ -860,8 +860,8 @@ Tooltips: di cui si vogliono vedere i video di tendenza. Non tutte le nazioni mostrate sono ufficialmente supportate da YouTube. External Link Handling: "Scegli il comportamento predefinito quando si clicca\ - \ su un link che non può essere aperto in FreeTube.\nPer impostazione predefinita\ - \ FreeTube aprirà il link nel browser predefinito.\n" + \ su un collegamento che non può essere aperto in FreeTube.\nPer impostazione\ + \ predefinita FreeTube aprirà il collegamento nel browser predefinito.\n" External Player Settings: Ignore Warnings: Non notifica gli avvisi quando il lettore esterno selezionato non supporta l'azione richiesta (ad esempio invertire la playlist, etc.). @@ -890,7 +890,7 @@ Default Invidious instance has been set to $: L'istanza predefinita di Invidious stata impostata a $ Hashtags have not yet been implemented, try again later: Gli hashtag non sono ancora stati implementati, riprova più tardi -Unknown YouTube url type, cannot be opened in app: Tipo di link YouTube sconosciuto, +Unknown YouTube url type, cannot be opened in app: Tipo di collegamento YouTube sconosciuto, non può essere aperto nell'applicazione Search Bar: Clear Input: Pulisci ricerca From 4e1c843a4899e7fa9a0c06b1ff551ec94150b190 Mon Sep 17 00:00:00 2001 From: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com> Date: Thu, 8 Sep 2022 21:10:10 -0400 Subject: [PATCH 068/414] update autolinker to version 4 (#2552) --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 8d507cef6..835936f7c 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,7 @@ "@freetube/yt-comment-scraper": "^6.2.0", "@freetube/yt-trending-scraper": "^3.1.0", "@silvermine/videojs-quality-selector": "^1.2.5", - "autolinker": "^3.15.0", + "autolinker": "^4.0.0", "electron-context-menu": "^3.1.2", "http-proxy-agent": "^4.0.1", "https-proxy-agent": "^5.0.0", diff --git a/yarn.lock b/yarn.lock index 3d456e837..b64dd8207 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2087,10 +2087,10 @@ at-least-node@^1.0.0: resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== -autolinker@^3.15.0: - version "3.15.0" - resolved "https://registry.yarnpkg.com/autolinker/-/autolinker-3.15.0.tgz#03956088648f236642a5783612f9ca16adbbed38" - integrity sha512-N/5Dk5AZnqL9k6kkHdFIGLm/0/rRuSnJwqYYhLCJjU7ZtiaJwCBzNTvjzy1zzJADngv/wvtHYcrPHytPnASeFA== +autolinker@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/autolinker/-/autolinker-4.0.0.tgz#aa1f9a52786b727b0ecee8cd7d4a97e0e3ef59f1" + integrity sha512-fl5Kh6BmEEZx+IWBfEirnRUU5+cOiV0OK7PEt0RBKvJMJ8GaRseIOeDU3FKf4j3CE5HVefcjHmhYPOcaVt0bZw== dependencies: tslib "^2.3.0" From efc5477563e47520151d0311e0cc02d64a9ab06e Mon Sep 17 00:00:00 2001 From: Massimo Pissarello Date: Fri, 9 Sep 2022 07:29:20 +0000 Subject: [PATCH 069/414] Translated using Weblate (Italian) Currently translated at 100.0% (620 of 620 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/it/ --- static/locales/it.yaml | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/static/locales/it.yaml b/static/locales/it.yaml index 00f1ac551..33e71b82d 100644 --- a/static/locales/it.yaml +++ b/static/locales/it.yaml @@ -152,8 +152,8 @@ Settings: System Default: Predefinito del sistema External Link Handling: No Action: Nessuna azione - Ask Before Opening Link: Chiedi prima di aprire il collegamento - Open Link: Apri il collegamento + Ask Before Opening Link: Chiedi prima di aprire il link + Open Link: Apri link External Link Handling: Gestione dei collegamenti esterni Theme Settings: Theme Settings: 'Impostazioni del tema' @@ -538,11 +538,11 @@ Video: Video has been marked as watched: 'Il video è stato contrassegnato come già visto' Video has been removed from your history: 'Il video è stato rimosso dalla cronologia' Open in YouTube: 'Apri con YouTube' - Copy YouTube Link: 'Copia collegamento YouTube' + Copy YouTube Link: 'Copia link YouTube' Open YouTube Embedded Player: 'Apri con lettore YouTube incorporato' - Copy YouTube Embedded Player Link: 'Copia collegamento del lettore YouTube incorporato' + Copy YouTube Embedded Player Link: 'Copia link del lettore YouTube incorporato' Open in Invidious: 'Apri con Invidious' - Copy Invidious Link: 'Copia collegamento Invidious' + Copy Invidious Link: 'Copia link Invidious' View: 'Vista' Views: 'Visualizzazioni' # Context is "X People Watching" @@ -612,9 +612,9 @@ Video: audio only: solo audio video only: solo video Download Video: Download video - Copy Invidious Channel Link: Copia collegamento canale Invidious + Copy Invidious Channel Link: Copia link canale Invidious Open Channel in Invidious: Apri il canale con Invidious - Copy YouTube Channel Link: Copia collegamento canale YouTube + Copy YouTube Channel Link: Copia link canale YouTube Open Channel in YouTube: Apri il canale con YouTube Started streaming on: Stream iniziato il Streamed on: Streaming il @@ -686,9 +686,9 @@ Playlist: Last Updated On: 'Ultimo aggiornamento il' Share Playlist: Share Playlist: 'Condividi la playlist' - Copy YouTube Link: 'Copia collegamento YouTube' + Copy YouTube Link: 'Copia link YouTube' Open in YouTube: 'Apri con YouTube' - Copy Invidious Link: 'Copia collegamento Invidious' + Copy Invidious Link: 'Copia link Invidious' Open in Invidious: 'Apri con Invidious' # On Video Watch Page @@ -707,8 +707,8 @@ Change Format: per questo video Share: Share Video: 'Condividi video' - Copy Link: 'Copia collegamento' - Open Link: 'Apri collegamento' + Copy Link: 'Copia link' + Open Link: 'Apri link' Copy Embed: 'Copia codice da incorporare' Open Embed: 'Apri codice da incorporare' # On Click @@ -860,8 +860,8 @@ Tooltips: di cui si vogliono vedere i video di tendenza. Non tutte le nazioni mostrate sono ufficialmente supportate da YouTube. External Link Handling: "Scegli il comportamento predefinito quando si clicca\ - \ su un collegamento che non può essere aperto in FreeTube.\nPer impostazione\ - \ predefinita FreeTube aprirà il collegamento nel browser predefinito.\n" + \ su un link che non può essere aperto in FreeTube.\nPer impostazione predefinita\ + \ FreeTube aprirà il link nel browser predefinito.\n" External Player Settings: Ignore Warnings: Non notifica gli avvisi quando il lettore esterno selezionato non supporta l'azione richiesta (ad esempio invertire la playlist, etc.). @@ -890,13 +890,13 @@ Default Invidious instance has been set to $: L'istanza predefinita di Invidious stata impostata a $ Hashtags have not yet been implemented, try again later: Gli hashtag non sono ancora stati implementati, riprova più tardi -Unknown YouTube url type, cannot be opened in app: Tipo di collegamento YouTube sconosciuto, +Unknown YouTube url type, cannot be opened in app: Tipo di link YouTube sconosciuto, non può essere aperto nell'applicazione Search Bar: Clear Input: Pulisci ricerca External link opening has been disabled in the general settings: L'apertura dei collegamenti esterni è stata disabilitata nelle impostazioni generali -Are you sure you want to open this link?: Sei sicuro di voler aprire questo collegamento? +Are you sure you want to open this link?: Sei sicuro di voler aprire questo link? Downloading has completed: 'Il download di "$" è terminato' Starting download: Avvio del download di "$" Downloading failed: Si è verificato un problema durante il download di "$" From 77470751c3d49b2e2d56808b85d39b487a0d2ca4 Mon Sep 17 00:00:00 2001 From: Emma Date: Fri, 9 Sep 2022 13:39:56 -0400 Subject: [PATCH 070/414] Localization inconsistency fix for Local API (#2535) * Applying a workaround for localization issue This changes where the title comes from on the response object from ytdl. This is related to FreeTubeApp#2530. * Applying the same workaround on the description * Added a fallback to videoDetails * Adding a console error to the title try block Co-authored-by: absidue <48293849+absidue@users.noreply.github.com> * Simplifying a loop to Array.join Co-authored-by: absidue <48293849+absidue@users.noreply.github.com> * Adding a console error to the description try block Co-authored-by: absidue <48293849+absidue@users.noreply.github.com> * Add a map for the description lines Co-authored-by: absidue <48293849+absidue@users.noreply.github.com> * Added a question mark operator for descriptions This should prevent errors from erroneously being thrown on videos which have a blank description. If the description is undefined or does not contain a 'runs' field, the resulting descriptionLines should be and empty array. Then, videoDescription will be an empty string. * Each line already contains a `\n` Co-authored-by: absidue <48293849+absidue@users.noreply.github.com> --- src/renderer/views/Watch/Watch.js | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/renderer/views/Watch/Watch.js b/src/renderer/views/Watch/Watch.js index db3435d34..f18e9808d 100644 --- a/src/renderer/views/Watch/Watch.js +++ b/src/renderer/views/Watch/Watch.js @@ -275,8 +275,14 @@ export default Vue.extend({ throw new Error(`${reason}: ${subReason}`) } - - this.videoTitle = result.videoDetails.title + try { + // workaround for title localization + this.videoTitle = result.response.contents.twoColumnWatchNextResults.results.results.contents[0].videoPrimaryInfoRenderer.title.runs[0].text + } catch (err) { + console.error('Failed to extract localised video title, falling back to the standard one.', err) + // if the workaround for localization fails, this sets the title to the potentially non-localized value + this.videoTitle = result.videoDetails.title + } this.videoViewCount = parseInt( result.player_response.videoDetails.viewCount, 10 @@ -300,7 +306,15 @@ export default Vue.extend({ }) this.videoPublished = new Date(result.videoDetails.publishDate.replace('-', '/')).getTime() - this.videoDescription = result.player_response.videoDetails.shortDescription + try { + // workaround for description localization + const descriptionLines = result.response.contents.twoColumnWatchNextResults.results.results.contents[1].videoSecondaryInfoRenderer.description?.runs + this.videoDescription = descriptionLines?.map(line => line.text).join('') ?? '' + } catch (err) { + console.error('Failed to extract localised video description, falling back to the standard one.', err) + // if the workaround for localization fails, this sets the description to the potentially non-localized value + this.videoDescription = result.player_response.videoDetails.shortDescription + } switch (this.thumbnailPreference) { case 'start': From 4b47ebee1c83ccac086a1ef94410fb8c7472f94a Mon Sep 17 00:00:00 2001 From: Vik Date: Fri, 9 Sep 2022 18:54:58 +0000 Subject: [PATCH 071/414] Translated using Weblate (Russian) Currently translated at 100.0% (620 of 620 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/ru/ --- static/locales/ru.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/static/locales/ru.yaml b/static/locales/ru.yaml index 2d0058380..748d3d683 100644 --- a/static/locales/ru.yaml +++ b/static/locales/ru.yaml @@ -654,6 +654,7 @@ Video: Mimetype: MIME-типы Buffered: Буферизовано Premieres on: Премьеры + Premieres in: Премьеры в Videos: #& Sort By Sort By: From 644df97acc85bc26d6342b89689874787413d75e Mon Sep 17 00:00:00 2001 From: absidue <48293849+absidue@users.noreply.github.com> Date: Sat, 10 Sep 2022 16:14:18 +0200 Subject: [PATCH 072/414] Increase width of quality selector so that 1080p60 doesn't overflow into the full screen button (#2556) --- src/renderer/components/ft-video-player/ft-video-player.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/renderer/components/ft-video-player/ft-video-player.js b/src/renderer/components/ft-video-player/ft-video-player.js index 59abd95bd..024ad6da1 100644 --- a/src/renderer/components/ft-video-player/ft-video-player.js +++ b/src/renderer/components/ft-video-player/ft-video-player.js @@ -1498,6 +1498,8 @@ export default Vue.extend({ ` */ }) + // the default width is 3em which is too narrow for qualitly labels with fps e.g. 1080p60 + button.style.width = '4em' return $(button).html( $(beginningHtml + qualityHtml + endingHtml).attr( 'title', From 19bf3880a47df4d999611cbac3d3d0d97ed68452 Mon Sep 17 00:00:00 2001 From: absidue <48293849+absidue@users.noreply.github.com> Date: Sat, 10 Sep 2022 16:24:22 +0200 Subject: [PATCH 073/414] Build and release 7zip artifacts (#2558) --- .github/workflows/build.yml | 44 ++++++++++++++++++++++- .github/workflows/release.yml | 68 ++++++++++++++++++++++++++++++++++- _scripts/build.js | 12 +++---- 3 files changed, 116 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3ef58734f..c882086de 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -114,13 +114,27 @@ jobs: name: freetube_${{ steps.versionNumber.outputs.result }}_linux_portable_x64 path: build/freetube-${{ steps.versionNumber.outputs.result }}.zip + - name: Upload Linux .7z x64 Artifact + uses: actions/upload-artifact@v2 + if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-x64') + with: + name: freetube_${{ steps.versionNumber.outputs.result }}_linux_portable_x64.7z + path: build/freetube-${{ steps.versionNumber.outputs.result }}.7z + - name: Upload Linux .zip ARMv7l Artifact uses: actions/upload-artifact@v2 if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-armv7l') with: name: freetube_${{ steps.versionNumber.outputs.result }}_linux_portable_armv7l path: build/freetube-${{ steps.versionNumber.outputs.result }}-armv7l.zip - + + - name: Upload Linux .7z ARMv7l Artifact + uses: actions/upload-artifact@v2 + if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-armv7l') + with: + name: freetube_${{ steps.versionNumber.outputs.result }}_linux_portable_armv7l.7z + path: build/freetube-${{ steps.versionNumber.outputs.result }}-armv7l.7z + - name: Upload Linux .zip ARM64 Artifact uses: actions/upload-artifact@v2 if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-arm64') @@ -128,6 +142,13 @@ jobs: name: freetube_${{ steps.versionNumber.outputs.result }}_linux_portable_arm64 path: build/freetube-${{ steps.versionNumber.outputs.result }}-arm64.zip + - name: Upload Linux .7z ARM64 Artifact + uses: actions/upload-artifact@v2 + if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-arm64') + with: + name: freetube_${{ steps.versionNumber.outputs.result }}_linux_portable_arm64.7z + path: build/freetube-${{ steps.versionNumber.outputs.result }}-arm64.7z + - name: Upload .deb x64 Artifact uses: actions/upload-artifact@v2 if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-x64') @@ -242,12 +263,26 @@ jobs: name: freetube-${{ steps.versionNumber.outputs.result }}-win-x64-portable path: build/freetube-${{ steps.versionNumber.outputs.result }}-win.zip + - name: Upload Windows x64 .7z Artifact + uses: actions/upload-artifact@v2 + if: startsWith(matrix.os, 'windows') && startsWith(matrix.runtime, 'win-x64') + with: + name: freetube-${{ steps.versionNumber.outputs.result }}-win-x64-portable.7z + path: build/freetube-${{ steps.versionNumber.outputs.result }}-win.7z + - name: Upload Windows arm64 .zip Artifact uses: actions/upload-artifact@v2 if: startsWith(matrix.os, 'windows') && startsWith(matrix.runtime, 'win-arm64') with: name: freetube-${{ steps.versionNumber.outputs.result }}-win-arm64-portable path: build/freetube-${{ steps.versionNumber.outputs.result }}-arm64-win.zip + + - name: Upload Windows arm64 .7z Artifact + uses: actions/upload-artifact@v2 + if: startsWith(matrix.os, 'windows') && startsWith(matrix.runtime, 'win-arm64') + with: + name: freetube-${{ steps.versionNumber.outputs.result }}-win-arm64-portable.7z + path: build/freetube-${{ steps.versionNumber.outputs.result }}-arm64-win.7z - name: Upload Windows x64 Portable Artifact uses: actions/upload-artifact@v2 @@ -284,6 +319,13 @@ jobs: name: freetube-${{ steps.versionNumber.outputs.result }}-mac-x64.zip path: build/freetube-${{ steps.versionNumber.outputs.result }}-mac.zip + - name: Upload Mac x64 .7z Artifact + uses: actions/upload-artifact@v2 + if: startsWith(matrix.os, 'macos') && startsWith(matrix.runtime, 'osx-x64') + with: + name: freetube-${{ steps.versionNumber.outputs.result }}-mac-x64.7z + path: build/freetube-${{ steps.versionNumber.outputs.result }}-mac.7z + # - name: Upload Mac arm64 .zip Artifact # uses: actions/upload-artifact@v2 # if: startsWith(matrix.os, 'macos') && startsWith(matrix.runtime, 'osx-arm64') diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0a3d00475..350bc4f83 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -97,6 +97,17 @@ jobs: asset_path: build/freetube-${{ env.PACKAGE_VERSION }}.zip asset_content_type: application/zip + - name: Upload Linux .7z x64 Release + uses: actions/upload-release-asset@v1 + if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-x64') + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} + asset_name: freetube-${{ env.PACKAGE_VERSION }}-linux-portable-x64.7z + asset_path: build/freetube-${{ env.PACKAGE_VERSION }}.7z + asset_content_type: application/x-7z-compressed + - name: Upload Linux .zip ARMv7l Release uses: actions/upload-release-asset@v1 if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-armv7l') @@ -108,6 +119,17 @@ jobs: asset_path: build/freetube-${{ env.PACKAGE_VERSION }}-armv7l.zip asset_content_type: application/zip + - name: Upload Linux .7z ARMv7l Release + uses: actions/upload-release-asset@v1 + if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-armv7l') + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} + asset_name: freetube-${{ env.PACKAGE_VERSION }}-linux-portable-armv7l.7z + asset_path: build/freetube-${{ env.PACKAGE_VERSION }}-armv7l.7z + asset_content_type: application/x-7z-compressed + - name: Upload Linux .zip ARM64 Release uses: actions/upload-release-asset@v1 if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-arm64') @@ -119,6 +141,17 @@ jobs: asset_path: build/freetube-${{ env.PACKAGE_VERSION }}-arm64.zip asset_content_type: application/zip + - name: Upload Linux .7z ARM64 Release + uses: actions/upload-release-asset@v1 + if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-arm64') + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} + asset_name: freetube-${{ env.PACKAGE_VERSION }}-linux-portable-arm64.7z + asset_path: build/freetube-${{ env.PACKAGE_VERSION }}-arm64.7z + asset_content_type: application/x-7z-compressed + - name: Upload Linux .deb x64 Release uses: actions/upload-release-asset@v1 if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-x64') @@ -209,6 +242,17 @@ jobs: asset_path: build/freetube-${{ env.PACKAGE_VERSION }}-win.zip asset_content_type: application/zip + - name: Upload Windows x64 .7z Release + uses: actions/upload-release-asset@v1 + if: startsWith(matrix.os, 'windows') && startsWith(matrix.runtime, 'win-x64') + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} + asset_name: freetube-${{ env.PACKAGE_VERSION }}-win-x64-portable.7z + asset_path: build/freetube-${{ env.PACKAGE_VERSION }}-win.7z + asset_content_type: application/x-7z-compressed + - name: Upload Windows arm64 .zip Release uses: actions/upload-release-asset@v1 if: startsWith(matrix.os, 'windows') && startsWith(matrix.runtime, 'win-arm64') @@ -219,6 +263,17 @@ jobs: asset_name: freetube-${{ env.PACKAGE_VERSION }}-win-arm64-portable.zip asset_path: build/freetube-${{ env.PACKAGE_VERSION }}-arm64-win.zip asset_content_type: application/zip + + - name: Upload Windows arm64 .7z Release + uses: actions/upload-release-asset@v1 + if: startsWith(matrix.os, 'windows') && startsWith(matrix.runtime, 'win-arm64') + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} + asset_name: freetube-${{ env.PACKAGE_VERSION }}-win-arm64-portable.7z + asset_path: build/freetube-${{ env.PACKAGE_VERSION }}-arm64-win.7z + asset_content_type: application/x-7z-compressed - name: Upload Windows x64 portable Release uses: actions/upload-release-asset@v1 @@ -273,7 +328,18 @@ jobs: upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} asset_name: freetube-${{ env.PACKAGE_VERSION }}-mac-x64.zip asset_path: build/freetube-${{ env.PACKAGE_VERSION }}-mac.zip - asset_content_type: application/x-apple-diskimage + asset_content_type: application/zip + + - name: Upload Mac x64 .7z Release + uses: actions/upload-release-asset@v1 + if: startsWith(matrix.os, 'macos') && startsWith(matrix.runtime, 'osx-x64') + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} + asset_name: freetube-${{ env.PACKAGE_VERSION }}-mac-x64.7z + asset_path: build/freetube-${{ env.PACKAGE_VERSION }}-mac.7z + asset_content_type: application/x-7z-compressed # - name: Upload Mac arm64 .zip Release # uses: actions/upload-release-asset@v1 diff --git a/_scripts/build.js b/_scripts/build.js index e4a727c96..2ec04df97 100644 --- a/_scripts/build.js +++ b/_scripts/build.js @@ -17,7 +17,7 @@ if (platform === 'darwin') { arch = Arch.arm64 } - targets = Platform.MAC.createTarget(['DMG','zip'], arch) + targets = Platform.MAC.createTarget(['DMG','zip', '7z'], arch) } else if (platform === 'win32') { let arch = Arch.x64 @@ -25,7 +25,7 @@ if (platform === 'darwin') { arch = Arch.arm64 } - targets = Platform.WINDOWS.createTarget(['nsis', 'zip', 'portable'], arch) + targets = Platform.WINDOWS.createTarget(['nsis', 'zip', '7z', 'portable'], arch) } else if (platform === 'linux') { let arch = Arch.x64 @@ -37,7 +37,7 @@ if (platform === 'darwin') { arch = Arch.armv7l } - targets = Platform.LINUX.createTarget(['deb', 'zip', 'apk', 'rpm', 'AppImage', 'pacman'], arch) + targets = Platform.LINUX.createTarget(['deb', 'zip', '7z', 'apk', 'rpm', 'AppImage', 'pacman'], arch) } const config = { @@ -93,7 +93,7 @@ const config = { linux: { category: 'Network', icon: '_icons/icon.svg', - target: ['deb', 'zip', 'apk', 'rpm', 'AppImage', 'pacman'], + target: ['deb', 'zip', '7z', 'apk', 'rpm', 'AppImage', 'pacman'], }, // See the following issues for more information // https://github.com/jordansissel/fpm/issues/1503 @@ -117,7 +117,7 @@ const config = { mac: { category: 'public.app-category.utilities', icon: '_icons/iconMac.icns', - target: ['dmg', 'zip'], + target: ['dmg', 'zip', '7z'], type: 'distribution', extendInfo: { CFBundleURLTypes: [ @@ -130,7 +130,7 @@ const config = { }, win: { icon: '_icons/icon.ico', - target: ['nsis', 'zip', 'portable'], + target: ['nsis', 'zip', '7z', 'portable'], }, nsis: { allowToChangeInstallationDirectory: true, From 82c0e86710d2458ba5e89d1468713af3adaf774e Mon Sep 17 00:00:00 2001 From: efb4f5ff-1298-471a-8973-3d47447115dc <73130443+efb4f5ff-1298-471a-8973-3d47447115dc@users.noreply.github.com> Date: Sat, 10 Sep 2022 15:09:05 +0000 Subject: [PATCH 074/414] Add Scoop to readme, issue template and label workflow (#2553) * Add Scoop to readme * added scoop to issue template * added Scoop to label workflow --- .github/ISSUE_TEMPLATE/bug_report.yaml | 1 + .github/workflows/autoLabelIssue.yaml | 2 +- README.md | 2 ++ 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yaml b/.github/ISSUE_TEMPLATE/bug_report.yaml index 464ec55de..7851d8240 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yaml +++ b/.github/ISSUE_TEMPLATE/bug_report.yaml @@ -89,6 +89,7 @@ body: - Portable - PortableApps - .rpm + - Scoop - winget - .zip - other diff --git a/.github/workflows/autoLabelIssue.yaml b/.github/workflows/autoLabelIssue.yaml index adf9a90c2..a232d1518 100644 --- a/.github/workflows/autoLabelIssue.yaml +++ b/.github/workflows/autoLabelIssue.yaml @@ -10,5 +10,5 @@ jobs: - uses: Naturalclar/issue-action@v2.0.2 with: body: "both" - parameters: '[ {"keywords": ["visual bug"], "labels": ["B: visual"]}, {"keywords": ["AUR", "Chocolatey", "PortableApps", "winget"], "labels": ["B: Unofficial Download"]}, {"keywords": ["keyboard control not working"], "labels": ["B: keyboard control"]}, {"keywords": ["text/string issue"], "labels": ["B: text/string"]}, {"keywords": ["content not loading"], "labels": ["B: content not loading"]}, {"keywords": ["accessibility issue"], "labels": ["B: accessibility"]}, {"keywords": ["usability issue"], "labels": ["B: usability"]}, {"keywords": ["causes crash"], "labels": ["B: crash"]}, {"keywords": ["feature stopped working"], "labels": ["B: feature stopped working"]}, {"keywords": ["inconsistent behavior"], "labels": ["B: inconsistent behavior"]}, {"keywords": ["data loss"], "labels": ["B: data loss"]}, {"keywords": ["race condition"], "labels": ["B: race condition"]}, {"keywords": ["API issue"], "labels": ["B: API issue"]}, {"keywords": ["only happens in developer mode"], "labels": ["B: developer mode"]}, {"keywords": ["improvement to existing feature"], "labels": ["E: improvement existing feature"]}, {"keywords": ["new optional setting"], "labels": ["E: new optional setting"]}, {"keywords": ["visual improvement"], "labels": ["E: visual improvement"]}, {"keywords": ["display more information to user"], "labels": ["E: display more information"]}, {"keywords": ["ease of use improvement"], "labels": ["E: ease of use improvement"]}, {"keywords": ["support for external software"], "labels": ["E: support external software"]}, {"keywords": ["new feature"], "labels": ["E: new feature"]}, {"keywords": ["new keyboard shortcut"], "labels": ["E: keyboard shortcut"]}]' + parameters: '[ {"keywords": ["visual bug"], "labels": ["B: visual"]}, {"keywords": ["AUR", "Chocolatey", "PortableApps", "winget", "Scoop"], "labels": ["B: Unofficial Download"]}, {"keywords": ["keyboard control not working"], "labels": ["B: keyboard control"]}, {"keywords": ["text/string issue"], "labels": ["B: text/string"]}, {"keywords": ["content not loading"], "labels": ["B: content not loading"]}, {"keywords": ["accessibility issue"], "labels": ["B: accessibility"]}, {"keywords": ["usability issue"], "labels": ["B: usability"]}, {"keywords": ["causes crash"], "labels": ["B: crash"]}, {"keywords": ["feature stopped working"], "labels": ["B: feature stopped working"]}, {"keywords": ["inconsistent behavior"], "labels": ["B: inconsistent behavior"]}, {"keywords": ["data loss"], "labels": ["B: data loss"]}, {"keywords": ["race condition"], "labels": ["B: race condition"]}, {"keywords": ["API issue"], "labels": ["B: API issue"]}, {"keywords": ["only happens in developer mode"], "labels": ["B: developer mode"]}, {"keywords": ["improvement to existing feature"], "labels": ["E: improvement existing feature"]}, {"keywords": ["new optional setting"], "labels": ["E: new optional setting"]}, {"keywords": ["visual improvement"], "labels": ["E: visual improvement"]}, {"keywords": ["display more information to user"], "labels": ["E: display more information"]}, {"keywords": ["ease of use improvement"], "labels": ["E: ease of use improvement"]}, {"keywords": ["support for external software"], "labels": ["E: support external software"]}, {"keywords": ["new feature"], "labels": ["E: new feature"]}, {"keywords": ["new keyboard shortcut"], "labels": ["E: keyboard shortcut"]}]' github-token: "${{ secrets.GITHUB_TOKEN }}" diff --git a/README.md b/README.md index b8e6a5b8b..50e7a06d1 100644 --- a/README.md +++ b/README.md @@ -66,6 +66,8 @@ Chocolatey: [Download](https://chocolatey.org/packages/freetube/) PortableApps (Windows Only): [Download](https://github.com/rddim/FreeTubePortable/releases) [Source](https://github.com/rddim/FreeTubePortable) +Scoop (Windows Only): [Usage](https://github.com/ScoopInstaller/Scoop) + Windows Package Manager (winget): [Usage](https://docs.microsoft.com/en-us/windows/package-manager/winget/) ### Automated Builds (Nightly / Weekly) From c5bef13ee66377a246346d8cf72313eab44d816c Mon Sep 17 00:00:00 2001 From: absidue <48293849+absidue@users.noreply.github.com> Date: Sat, 10 Sep 2022 18:08:11 +0200 Subject: [PATCH 075/414] Don't log any errors if there are no SponsorBlock segments (#2555) --- src/renderer/store/modules/sponsorblock.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/renderer/store/modules/sponsorblock.js b/src/renderer/store/modules/sponsorblock.js index 241830789..a214deadd 100644 --- a/src/renderer/store/modules/sponsorblock.js +++ b/src/renderer/store/modules/sponsorblock.js @@ -24,10 +24,16 @@ const actions = { .flatMap((result) => result.segments) resolve(segments) }).fail((xhr, textStatus, error) => { + // 404 means that there are no segments registered for the video + if (xhr.status === 404) { + resolve([]) + return + } + console.log(xhr) console.log(textStatus) console.log(requestUrl) - console.log(error) + console.error(error) reject(xhr) }) }) From 9fedbca934dc930eb6309ecdb3a24184954d5a57 Mon Sep 17 00:00:00 2001 From: gallegonovato Date: Sat, 10 Sep 2022 18:26:53 +0000 Subject: [PATCH 076/414] Translated using Weblate (Spanish) Currently translated at 94.0% (583 of 620 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/es/ --- static/locales/es.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/locales/es.yaml b/static/locales/es.yaml index 1106009c8..36c6a9a94 100644 --- a/static/locales/es.yaml +++ b/static/locales/es.yaml @@ -85,7 +85,7 @@ Trending: Gaming: Videojuegos Music: Música Most Popular: 'Más populares' -Playlists: 'Tus favoritos' +Playlists: 'Listas de reproducción' User Playlists: Your Playlists: 'Tus listas de reproducción' Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Tus From 1d0f2a7dab32478c30b4ee31ee4d3a17d8566385 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Sun, 11 Sep 2022 18:48:59 +0800 Subject: [PATCH 077/414] Use some rich format to improve README.md readability (#2456) * Use some rich format to improve README.md readability. * added missing s * moved sentence up in donate section Co-authored-by: efb4f5ff-1298-471a-8973-3d47447115dc <73130443+efb4f5ff-1298-471a-8973-3d47447115dc@users.noreply.github.com> --- README.md | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 50e7a06d1..9bc96cda2 100644 --- a/README.md +++ b/README.md @@ -14,11 +14,11 @@ addressed. ### Browser Extension -FreeTube is supported by the [Privacy Redirect](https://github.com/SimonBrazell/privacy-redirect) and [LibRedirect](https://github.com/libredirect/libredirect) extension, which will allow you to open YouTube links into FreeTube. You must enable the option within the advanced settings for it to work. +FreeTube is supported by the [Privacy Redirect](https://github.com/SimonBrazell/privacy-redirect) and [LibRedirect](https://github.com/libredirect/libredirect) extensions, which will allow you to open YouTube links into FreeTube. You must enable the option within the advanced settings for it to work. -Download Privacy Redirect for [Firefox](https://addons.mozilla.org/en-US/firefox/addon/privacy-redirect/) or [Google Chrome](https://chrome.google.com/webstore/detail/privacy-redirect/pmcmeagblkinmogikoikkdjiligflglb). +* Download Privacy Redirect for [Firefox](https://addons.mozilla.org/en-US/firefox/addon/privacy-redirect/) or [Google Chrome](https://chrome.google.com/webstore/detail/privacy-redirect/pmcmeagblkinmogikoikkdjiligflglb). -Download LibRedirect for [Firefox](https://addons.mozilla.org/firefox/addon/libredirect/) or [Google Chrome](https://github.com/libredirect/libredirect/blob/master/chromium.md). +* Download LibRedirect for [Firefox](https://addons.mozilla.org/firefox/addon/libredirect/) or [Google Chrome](https://github.com/libredirect/libredirect/blob/master/chromium.md). Disclaimer: Learn more about why a browser extension is bad for your [privacy](https://www.privacyguides.org/desktop-browsers/#additional-resources). @@ -50,25 +50,25 @@ Go to [FreeTube's Documentation](https://docs.freetubeapp.io/) if you'd like to ### Official Downloads -[GitHub Releases](https://github.com/FreeTubeApp/FreeTube/releases) +* [GitHub Releases](https://github.com/FreeTubeApp/FreeTube/releases) -[FreeTube Website](https://freetubeapp.io/#download) +* [FreeTube Website](https://freetubeapp.io/#download) -Flatpak on Flathub: [Download](https://flathub.org/apps/details/io.freetubeapp.FreeTube) [Source](https://github.com/flathub/io.freetubeapp.FreeTube) +* Flatpak on Flathub: [Download](https://flathub.org/apps/details/io.freetubeapp.FreeTube) [Source](https://github.com/flathub/io.freetubeapp.FreeTube) ### Unofficial Downloads These builds are maintained by the community. While they should be safe, download at your own risk. There may be issues with using these versus the official builds. Any issues specific with these builds should be sent to their respective maintainer. -Arch User Repository (AUR): [Download](https://aur.archlinux.org/packages/freetube-bin/) +* Arch User Repository (AUR): [Download](https://aur.archlinux.org/packages/freetube-bin/) -Chocolatey: [Download](https://chocolatey.org/packages/freetube/) +* Chocolatey: [Download](https://chocolatey.org/packages/freetube/) -PortableApps (Windows Only): [Download](https://github.com/rddim/FreeTubePortable/releases) [Source](https://github.com/rddim/FreeTubePortable) +* PortableApps (Windows Only): [Download](https://github.com/rddim/FreeTubePortable/releases) [Source](https://github.com/rddim/FreeTubePortable) -Scoop (Windows Only): [Usage](https://github.com/ScoopInstaller/Scoop) +* Scoop (Windows Only): [Usage](https://github.com/ScoopInstaller/Scoop) -Windows Package Manager (winget): [Usage](https://docs.microsoft.com/en-us/windows/package-manager/winget/) +* Windows Package Manager (winget): [Usage](https://docs.microsoft.com/en-us/windows/package-manager/winget/) ### Automated Builds (Nightly / Weekly) @@ -105,14 +105,15 @@ If you ever have any questions, feel free to make an issue here on GitHub. Alte You can also stay up to date by reading the [FreeTube Blog](https://write.as/freetube/). [View the welcome blog](https://write.as/freetube/welcome-to-freetube-blogs). ## Donate +If you enjoy using FreeTube, you're welcome to leave a donation using the following methods. -[FreeTube on Liberapay](https://liberapay.com/FreeTube) +* [FreeTube on Liberapay](https://liberapay.com/FreeTube) -Bitcoin Address: 1Lih7Ho5gnxb1CwPD4o59ss78pwo2T91eS +* Bitcoin Address: `1Lih7Ho5gnxb1CwPD4o59ss78pwo2T91eS` -Monero Address: 48WyAPdjwc6VokeXACxSZCFeKEXBiYPV6GjfvBsfg4CrUJ95LLCQSfpM9pvNKy5GE5H4hNaw99P8RZyzmaU9kb1pD7kzhCB +* Monero Address: `48WyAPdjwc6VokeXACxSZCFeKEXBiYPV6GjfvBsfg4CrUJ95LLCQSfpM9pvNKy5GE5H4hNaw99P8RZyzmaU9kb1pD7kzhCB` -If you enjoy using FreeTube, you're welcome to leave a donation using the following methods. While your donations are much appreciated, only donate if you really want to. Donations are used for keeping the website up and running and eventual code signing costs. +While your donations are much appreciated, only donate if you really want to. Donations are used for keeping the website up and running and eventual code signing costs. ## License [![GNU AGPLv3 Image](https://www.gnu.org/graphics/agplv3-155x51.png)](https://www.gnu.org/licenses/agpl-3.0.html) From 49272331764ad30a51355184dd5562c3c4d42929 Mon Sep 17 00:00:00 2001 From: Rusi Dimitrov Date: Sun, 11 Sep 2022 10:11:50 +0000 Subject: [PATCH 078/414] Translated using Weblate (Bulgarian) Currently translated at 100.0% (620 of 620 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/bg/ --- static/locales/bg.yaml | 39 ++++++++++++++++++++++++++++++--------- 1 file changed, 30 insertions(+), 9 deletions(-) diff --git a/static/locales/bg.yaml b/static/locales/bg.yaml index 8668dbfb7..77bbb49b9 100644 --- a/static/locales/bg.yaml +++ b/static/locales/bg.yaml @@ -167,8 +167,9 @@ Settings: Black: 'Черна' Dark: 'Тъмна' Light: 'Светла' - Dracula: Дракула + Dracula: Dracula System Default: Стандартна за системата + Catppuccin Mocha: Catppuccin Mocha Main Color Theme: Main Color Theme: 'Основна цветова тема' Red: 'Червено' @@ -187,13 +188,27 @@ Settings: Amber: 'Кехлибарено' Orange: 'Оранжево' Deep Orange: 'Наситено оранжево' - Dracula Cyan: 'Дракула Синьозелено' - Dracula Green: 'Дракула Зелено' - Dracula Orange: 'Дракула Оранжево' - Dracula Pink: 'Дракула Розово' - Dracula Purple: 'Дракула Пурпурно' - Dracula Red: 'Дракула Червено' - Dracula Yellow: 'Дракула Жълто' + Dracula Cyan: 'Dracula Синьозелено' + Dracula Green: 'Dracula Зелено' + Dracula Orange: 'Dracula Оранжево' + Dracula Pink: 'Dracula Розово' + Dracula Purple: 'Dracula Пурпурно' + Dracula Red: 'Dracula Червено' + Dracula Yellow: 'Dracula Жълто' + Catppuccin Mocha Rosewater: Catppuccin Mocha Розова вода + Catppuccin Mocha Flamingo: Catppuccin Mocha Фламинго + Catppuccin Mocha Pink: Catppuccin Mocha Розово + Catppuccin Mocha Mauve: Catppuccin Mocha Мораво + Catppuccin Mocha Red: Catppuccin Mocha Червено + Catppuccin Mocha Maroon: Catppuccin Mocha Кестеняво + Catppuccin Mocha Peach: Catppuccin Mocha Праскова + Catppuccin Mocha Yellow: Catppuccin Mocha Жълто + Catppuccin Mocha Sky: Catppuccin Mocha Небесносиньо + Catppuccin Mocha Sapphire: Catppuccin Mocha Сапфир + Catppuccin Mocha Teal: Catppuccin Mocha Синьозелено + Catppuccin Mocha Lavender: Catppuccin Mocha Лавандула + Catppuccin Mocha Blue: Catppuccin Mocha Синьо + Catppuccin Mocha Green: Catppuccin Mocha Зелено Secondary Color Theme: 'Вторична цветова тема' #* Main Color Theme UI Scale: Мащаб на интерфейса @@ -405,6 +420,9 @@ Settings: действия External Player: Външен плейър External Player Settings: Настройки за външен плейър + Players: + None: + Name: Няма Download Settings: Download Settings: Настройки за изтегляне Choose Path: Избор на път @@ -616,6 +634,7 @@ Video: Years: 'години' Ago: 'преди' Upcoming: 'Премиера на' + Less than a minute: По-малко от минута Published on: 'Публикуван на' # $ is replaced with the number and % with the unit (days, hours, minutes...) Publicationtemplate: 'Преди $ %' @@ -685,6 +704,7 @@ Video: Video statistics are not available for legacy videos: Статистиката не е налична за наследени видеоклипове Premieres on: Премиера на + Premieres in: Премиери в Videos: #& Sort By Sort By: @@ -838,7 +858,8 @@ Tooltips: външен плейър може да бъде намерен чрез променливата на средата 'PATH'. Ако е необходимо, тук може да се зададе потребителски път. External Player: При избора на външен плейър, върху миниатюрата ще се покаже икона - за отваряне на видеото (плейлиста, ако се поддържа) във външния плейър. + за отваряне на видеото (плейлиста, ако се поддържа) във външния плейър. Внимание, + настройките на Invidious не влияят на външните плейъри. DefaultCustomArgumentsTemplate: "(По подразбиране: '$')" More: Още Playing Next Video Interval: Пускане на следващото видео веднага. Щракнете за отказ. From 9cf664ba2cc2d1c097d450dd7624555c9f6b0a7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kau=C3=A3=20Azevedo?= Date: Sun, 11 Sep 2022 14:26:28 +0000 Subject: [PATCH 079/414] Translated using Weblate (Spanish) Currently translated at 96.6% (599 of 620 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/es/ --- static/locales/es.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/static/locales/es.yaml b/static/locales/es.yaml index 36c6a9a94..eb36c38b6 100644 --- a/static/locales/es.yaml +++ b/static/locales/es.yaml @@ -1,9 +1,9 @@ # Put the name of your locale in the same language -Locale Name: 'español' +Locale Name: 'Español' FreeTube: 'FreeTube' # Currently on Subscriptions, Playlists, and History 'This part of the app is not ready yet. Come back later when progress has been made.': >- - Esta sección de la app no está lista. Regresa más tarde cuando hayamos progresado. + Esta sección del aplicación no está lista. Regresa más tarde cuando hayamos progresado. # Webkit Menu Bar File: 'Archivo' From 9a5b47c720816542001d751f671f279a561545e3 Mon Sep 17 00:00:00 2001 From: gallegonovato Date: Sun, 11 Sep 2022 13:17:45 +0000 Subject: [PATCH 080/414] Translated using Weblate (Spanish) Currently translated at 96.6% (599 of 620 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/es/ --- static/locales/es.yaml | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/static/locales/es.yaml b/static/locales/es.yaml index eb36c38b6..bd7446f13 100644 --- a/static/locales/es.yaml +++ b/static/locales/es.yaml @@ -243,6 +243,12 @@ Settings: Format Label: Formato de las capturas de pantalla File Name Label: Patrón de nombre de archivo Folder Label: Carpeta de capturas de pantalla + Ask Path: Pedir la Carpeta para Guardar + File Name Tooltip: Puede utilizar las siguientes variables. %Y Año 4 dígitos. + %M Mes 2 dígitos. %D Día 2 dígitos. %H Hora 2 dígitos. %N Minuto 2 dígitos. + %S Segundo 2 dígitos. %T Milisegundo 3 dígitos. %s Video Segundo. %t Video + Milisegundo 3 dígitos. %i Video ID. También puede utilizar "\" o "/" para + crear subcarpetas. Privacy Settings: Privacy Settings: 'Privacidad' Remember History: 'Recordar historial' @@ -351,6 +357,8 @@ Settings: Distraction Free Settings: Modo sin distracciones Hide Active Subscriptions: Ocultar suscripciones activas Hide Playlists: Ocultar listas de reproducción + Hide Video Description: Ocultar la descripción del vídeo + Hide Comments: Ocultar los comentarios The app needs to restart for changes to take effect. Restart and apply change?: ¿Quieres reiniciar FreeTube ahora para aplicar los cambios? Proxy Settings: @@ -380,6 +388,8 @@ Settings: Skip Options: Show In Seek Bar: Mostrar en la barra de búsqueda Do Nothing: No hacer nada + Skip Option: Omitir opción + Auto Skip: Salto automático External Player Settings: Custom External Player Arguments: Argumentos adicionales del reproductor Custom External Player Executable: Ruta alternativa del ejecutable del reproductor @@ -395,6 +405,10 @@ Settings: Choose Path: Elegir ruta Download in app: Descargar en la aplicación Open in web browser: Abrir en el navegador web + Parental Control Settings: + Hide Unsubscribe Button: Ocultar botón Unsubscribe + Hide Search Bar: Ocultar barra de búsqueda + Parental Control Settings: Ajustes del control para padres About: #On About page About: 'Acerca de' @@ -588,6 +602,7 @@ Video: Years: 'años' Ago: 'Hace' Upcoming: 'Se estrenará el' + Less than a minute: Menos de un minuto Published on: 'Publicado el' # $ is replaced with the number and % with the unit (days, hours, minutes...) Publicationtemplate: 'Hace $ %' @@ -620,11 +635,11 @@ Video: translated from English: traducido del inglés Sponsor Block category: music offtopic: música fuera de tema - interaction: interacción - self-promotion: autopromoción + interaction: Interacción + self-promotion: Auto promoción outro: epílogo - intro: introducción - sponsor: patrocinador + intro: Introducción + sponsor: Patrocinador recap: Recapitulación Skipped segment: Segmento saltado External Player: @@ -663,6 +678,7 @@ Video: Video ID: ID de vídeo Buffered: En búfer Dropped / Total Frames: Fotogramas Perdidos / Fotogramas Totales + Premieres in: Estrenos en Videos: #& Sort By Sort By: @@ -865,3 +881,4 @@ Age Restricted: Type: Channel: Canal Video: Vídeo + This $contentType is age restricted: Este $ tiene restricción de edad From 4a088b6b9b7db09155126a887388a5322ef0765a Mon Sep 17 00:00:00 2001 From: Sergio Varela Date: Sun, 11 Sep 2022 15:59:37 +0000 Subject: [PATCH 081/414] Translated using Weblate (Spanish) Currently translated at 96.6% (599 of 620 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/es/ --- static/locales/es.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/locales/es.yaml b/static/locales/es.yaml index bd7446f13..aa22fab02 100644 --- a/static/locales/es.yaml +++ b/static/locales/es.yaml @@ -406,7 +406,7 @@ Settings: Download in app: Descargar en la aplicación Open in web browser: Abrir en el navegador web Parental Control Settings: - Hide Unsubscribe Button: Ocultar botón Unsubscribe + Hide Unsubscribe Button: Ocultar botón de anular suscripción Hide Search Bar: Ocultar barra de búsqueda Parental Control Settings: Ajustes del control para padres About: From 3c813f3e38c6ea27e74fec505a99173056ad167f Mon Sep 17 00:00:00 2001 From: Mozart Michael Date: Sun, 11 Sep 2022 11:42:27 +0000 Subject: [PATCH 082/414] Translated using Weblate (Romanian) Currently translated at 100.0% (620 of 620 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/ro/ --- static/locales/ro.yaml | 98 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 91 insertions(+), 7 deletions(-) diff --git a/static/locales/ro.yaml b/static/locales/ro.yaml index 8e626ee55..d41661796 100644 --- a/static/locales/ro.yaml +++ b/static/locales/ro.yaml @@ -86,6 +86,7 @@ Subscriptions: This profile has a large number of subscriptions. Forcing RSS to avoid rate limiting: Acest profil are un număr mare de abonamente. Se forțează RSS pentru a evita limitarea vitezei + Error Channels: Canale cu erori Trending: Trending: 'Tendințe' Trending Tabs: File în tendințe @@ -105,12 +106,14 @@ User Playlists: Când lucrările vor fi finalizate, toate videoclipurile care se află în prezent aici vor fi migrate într-o listă de redare "Favorite". Search bar placeholder: Căutare în lista de redare + Empty Search Message: Nu sunt videoclipuri pentru căutarea ta History: # On History Page History: 'Istoric' Watch History: 'Istoricul vizionărilor' Your history list is currently empty.: 'Lista dvs. de istoric este momentan goală.' Search bar placeholder: Căutare în istoric + Empty Search Message: Nu sunt videoclipuri în istoricul tău pentru termenii căutați Settings: # On Settings Page Settings: 'Setări' @@ -165,6 +168,8 @@ Settings: Dark: 'Întunecat' Light: 'Aprinsă' Dracula: 'Dracula' + System Default: Setări implicite + Catppuccin Mocha: Catppuccin Mocha Main Color Theme: Main Color Theme: 'Culoarea principală a temei' Red: 'Roşu' @@ -190,6 +195,20 @@ Settings: Dracula Purple: 'Dracula Violet' Dracula Red: 'Dracula Roşu' Dracula Yellow: 'Dracula Chihlimbar' + Catppuccin Mocha Pink: Catppuccin Mocha Roz + Catppuccin Mocha Mauve: Catppuccin Mocha Mov + Catppuccin Mocha Red: Catppuccin Mocha Roșu + Catppuccin Mocha Yellow: Catppuccin Mocha Galben + Catppuccin Mocha Green: Catppuccin Mocha Verde + Catppuccin Mocha Teal: Catppuccin Mocha Teal + Catppuccin Mocha Sky: Catppuccin Mocha Albastru + Catppuccin Mocha Sapphire: Catppuccin Mocha Safir + Catppuccin Mocha Blue: Catppuccin Mocha Albastru + Catppuccin Mocha Lavender: Catppuccin Mocha Lavandă + Catppuccin Mocha Flamingo: Catppuccin Mocha Flamingo + Catppuccin Mocha Maroon: Catppuccin Mocha Maro + Catppuccin Mocha Peach: Catppuccin Mocha Piersică + Catppuccin Mocha Rosewater: Catppuccin Mocha Apă de Trandafiri Secondary Color Theme: 'Culoarea secundară a temei' #* Main Color Theme UI Scale: Scala UI @@ -229,6 +248,26 @@ Settings: Next Video Interval: Următorul interval video Display Play Button In Video Player: Afișați butonul de redare în playerul video Scroll Volume Over Video Player: Derulați volumul peste playerul video + Screenshot: + Quality Label: Calitatea capturii de ecran + Ask Path: Întreabă pentru dosarul de salvare + Folder Label: Dosarul pentru capturi de ecran + Folder Button: Selectează dosar + File Name Label: Tiparul denumirii fișierelor + Error: + Forbidden Characters: Caractere interzise + Empty File Name: Denumiri de fișiere goale + File Name Tooltip: Poți folosi variabile mai jos. %Y An patru numere. %M Lună + doua numere. %D Zi două numere. %H oră două numere. %N Minute două numere. + %S Secunde două numere. %T Milisecunde trei numere. %s Secunda din videoclip. + %t Milisecunda din videoclip trei numere. %i Numele videoclipului. Poți folosi + și "\" sau "/" pentru a creea subdosare. + Enable: Activează captura de ecran + Format Label: Formatul capturii de ecran + Video Playback Rate Interval: Intervalul de redare video + Max Video Playback Rate: Viteza maximă de redare + Scroll Playback Rate Over Video Player: Schimbă viteza de redare cu ajutorul rotiței + de scroll Privacy Settings: Privacy Settings: 'Setări de confidențialitate' Remember History: 'Reține istoric' @@ -329,6 +368,9 @@ Settings: Ignore Unsupported Action Warnings: Ignorați avertismentele de acțiune nesuportată External Player: Player extern External Player Settings: Setări pentru playerul extern + Players: + None: + Name: Fără Distraction Free Settings: Hide Active Subscriptions: Ascundeți abonamentele active Hide Live Chat: Ascundeți Chat-ul Live @@ -341,6 +383,10 @@ Settings: Hide Video Likes And Dislikes: Ascundeți like-urile și dislike-urile din video Hide Video Views: Ascundeți vizualizările video Distraction Free Settings: Setări împotriva distragerii atenției + Hide Video Description: Ascunde descrierea videoclipului + Hide Comments: Ascunde comentariile + Hide Live Streams: Ascunde stream-urile live + Hide Sharing Actions: Ascunde butoanele de sharing SponsorBlock Settings: Notify when sponsor segment is skipped: Notificare atunci când segmentul sponsorului este sărit @@ -348,6 +394,13 @@ Settings: SponsorBlock (Cel implicit este https://sponsor.ajay.app) Enable SponsorBlock: Activați SponsorBlock SponsorBlock Settings: Setări SponsorBlock + Skip Options: + Auto Skip: Sari automat + Skip Option: Sari peste această opțiune + Show In Seek Bar: Arată în bara de derulare + Prompt To Skip: Întreabă pentru a sării + Do Nothing: Nu fă nimic + Category Color: Culoarea categoriilor Proxy Settings: Error getting network information. Is your proxy configured properly?: Eroare la obținerea informațiilor despre rețea. Proxy-ul este configurat corect? @@ -368,6 +421,14 @@ Settings: Ask Download Path: Solicită calea de descărcare Choose Path: Alege calea Download Settings: Setări de descărcare + Download Behavior: Comportamentul descărcărilor + Download in app: Descarcă în aplicație + Open in web browser: Deschide în browser-ul web + Parental Control Settings: + Hide Unsubscribe Button: Ascunde butonul de dezabonare + Parental Control Settings: Setările controlului parental + Show Family Friendly Only: Arata numai conținut family friendly + Hide Search Bar: Ascunde bara de căutare About: #On About page About: 'Despre' @@ -561,6 +622,7 @@ Video: Years: 'Ani' Ago: 'În urmă' Upcoming: 'În premieră la' + Less than a minute: Mai putin de un minut Published on: 'Publicat pe' # $ is replaced with the number and % with the unit (days, hours, minutes...) Publicationtemplate: 'acum $ %' @@ -581,12 +643,14 @@ Video: video: video OpenInTemplate: Deschideți în $ Sponsor Block category: - music offtopic: muzică offtopic - interaction: interacțiune - self-promotion: auto-promovare - outro: outro - intro: introducere - sponsor: sponsor + music offtopic: Muzică offtopic + interaction: Interacțiune + self-promotion: Autopromovare + outro: Outro + intro: Introducere + sponsor: Sponsor + recap: Recapitulare + filler: Filler Skipped segment: Segment omis translated from English: tradus din engleză Started streaming on: A început să transmită pe @@ -628,6 +692,7 @@ Video: Dropped / Total Frames: Cadre pierdute / totale Mimetype: Mimetype Premieres on: Premieră pe + Premieres in: Are premiera în Videos: #& Sort By Sort By: @@ -705,6 +770,7 @@ Comments: And others: și altele From $channelName: de la $channelName Pinned by: Lipit de + Member: Membru Up Next: 'În continuare' # Toast Messages @@ -766,7 +832,8 @@ Tooltips: extern ales poate fi găsit prin intermediul variabilei de mediu PATH. Dacă este necesar, aici poate fi setată o cale personalizată. External Player: Alegerea unui player extern va afișa o pictogramă, pentru a deschide - videoclipul (lista de redare, dacă este acceptată) în playerul extern, pe miniatură. + videoclipul (playlist, dacă este acceptat) în playerul extern, pe thumbnail. + Atenție, setările Invidious nu afectează playerele externe. DefaultCustomArgumentsTemplate: "(Implicit: '$')" Player Settings: Default Video Format: Setați formatele utilizate la redarea unui videoclip. Formatele @@ -808,3 +875,20 @@ External link opening has been disabled in the general settings: Deschiderea lin Starting download: Se începe descărcarea a "$" Downloading failed: A existat o problemă la descărcarea "$" Downloading has completed: '"$" s-a terminat de descărcat' +New Window: Fereastră nouă +Age Restricted: + This $contentType is age restricted: Acest $ este restricționat datorită vârstei + Type: + Channel: Canal + Video: Video +Channels: + Channels: Canale + Title: Listă de canale + Search bar placeholder: Caută canale + Count: $ canal(e) găsit(e). + Empty: Lista ta de canale este goală. + Unsubscribe: Dezabonează-te + Unsubscribed: $ a fost eliminat din lista ta de abonamente + Unsubscribe Prompt: Ești sigur că dorești să te dezabonezi de la "$"? +Screenshot Success: Capturi de ecran salvate ca "$" +Screenshot Error: Captura de ecran a eșuat From 3fdce212f259663b5c13e8926981fd0d0696f86a Mon Sep 17 00:00:00 2001 From: absidue <48293849+absidue@users.noreply.github.com> Date: Sun, 11 Sep 2022 20:10:22 +0200 Subject: [PATCH 083/414] Update sass and sass-loader to the latest versions (#2568) --- package.json | 4 ++-- yarn.lock | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 835936f7c..b3055b82c 100644 --- a/package.json +++ b/package.json @@ -112,8 +112,8 @@ "npm-run-all": "^4.1.5", "prettier": "^2.3.2", "rimraf": "^3.0.2", - "sass": "^1.38.2", - "sass-loader": "^12.1.0", + "sass": "^1.54.9", + "sass-loader": "^13.0.2", "style-loader": "^3.2.1", "tree-kill": "1.2.2", "url-loader": "^4.1.1", diff --git a/yarn.lock b/yarn.lock index b64dd8207..696013f36 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6323,18 +6323,18 @@ sanitize-filename@^1.6.3: dependencies: truncate-utf8-bytes "^1.0.0" -sass-loader@^12.1.0: - version "12.6.0" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-12.6.0.tgz#5148362c8e2cdd4b950f3c63ac5d16dbfed37bcb" - integrity sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA== +sass-loader@^13.0.2: + version "13.0.2" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-13.0.2.tgz#e81a909048e06520e9f2ff25113a801065adb3fe" + integrity sha512-BbiqbVmbfJaWVeOOAu2o7DhYWtcNmTfvroVgFXa6k2hHheMxNAeDHLNoDy/Q5aoaVlz0LH+MbMktKwm9vN/j8Q== dependencies: klona "^2.0.4" neo-async "^2.6.2" -sass@^1.38.2: - version "1.51.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.51.0.tgz#25ea36cf819581fe1fe8329e8c3a4eaaf70d2845" - integrity sha512-haGdpTgywJTvHC2b91GSq+clTKGbtkkZmVAb82jZQN/wTy6qs8DdFm2lhEQbEwrY0QDRgSQ3xDurqM977C3noA== +sass@^1.54.9: + version "1.54.9" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.54.9.tgz#b05f14ed572869218d1a76961de60cd647221762" + integrity sha512-xb1hjASzEH+0L0WI9oFjqhRi51t/gagWnxLiwUNMltA0Ab6jIDkAacgKiGYKM9Jhy109osM7woEEai6SXeJo5Q== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" From 9a7a4c4fd76712c7a1a367993893b9943357c4aa Mon Sep 17 00:00:00 2001 From: PikachuEXE Date: Mon, 12 Sep 2022 02:11:47 +0800 Subject: [PATCH 084/414] Update auto-label-issue GH workflow config to use multiline (#2565) Validated via a YAML Parser --- .github/workflows/autoLabelIssue.yaml | 92 ++++++++++++++++++++++++++- 1 file changed, 91 insertions(+), 1 deletion(-) diff --git a/.github/workflows/autoLabelIssue.yaml b/.github/workflows/autoLabelIssue.yaml index a232d1518..7764bd2fd 100644 --- a/.github/workflows/autoLabelIssue.yaml +++ b/.github/workflows/autoLabelIssue.yaml @@ -10,5 +10,95 @@ jobs: - uses: Naturalclar/issue-action@v2.0.2 with: body: "both" - parameters: '[ {"keywords": ["visual bug"], "labels": ["B: visual"]}, {"keywords": ["AUR", "Chocolatey", "PortableApps", "winget", "Scoop"], "labels": ["B: Unofficial Download"]}, {"keywords": ["keyboard control not working"], "labels": ["B: keyboard control"]}, {"keywords": ["text/string issue"], "labels": ["B: text/string"]}, {"keywords": ["content not loading"], "labels": ["B: content not loading"]}, {"keywords": ["accessibility issue"], "labels": ["B: accessibility"]}, {"keywords": ["usability issue"], "labels": ["B: usability"]}, {"keywords": ["causes crash"], "labels": ["B: crash"]}, {"keywords": ["feature stopped working"], "labels": ["B: feature stopped working"]}, {"keywords": ["inconsistent behavior"], "labels": ["B: inconsistent behavior"]}, {"keywords": ["data loss"], "labels": ["B: data loss"]}, {"keywords": ["race condition"], "labels": ["B: race condition"]}, {"keywords": ["API issue"], "labels": ["B: API issue"]}, {"keywords": ["only happens in developer mode"], "labels": ["B: developer mode"]}, {"keywords": ["improvement to existing feature"], "labels": ["E: improvement existing feature"]}, {"keywords": ["new optional setting"], "labels": ["E: new optional setting"]}, {"keywords": ["visual improvement"], "labels": ["E: visual improvement"]}, {"keywords": ["display more information to user"], "labels": ["E: display more information"]}, {"keywords": ["ease of use improvement"], "labels": ["E: ease of use improvement"]}, {"keywords": ["support for external software"], "labels": ["E: support external software"]}, {"keywords": ["new feature"], "labels": ["E: new feature"]}, {"keywords": ["new keyboard shortcut"], "labels": ["E: keyboard shortcut"]}]' + parameters: >- + [ + { + "keywords": ["visual bug"], + "labels": ["B: visual"] + }, + { + "keywords": ["AUR", "Chocolatey", "PortableApps", "winget", "Scoop"], + "labels": ["B: Unofficial Download"] + }, + { + "keywords": ["keyboard control not working"], + "labels": ["B: keyboard control"] + }, + { + "keywords": ["text/string issue"], + "labels": ["B: text/string"] + }, + { + "keywords": ["content not loading"], + "labels": ["B: content not loading"] + }, + { + "keywords": ["accessibility issue"], + "labels": ["B: accessibility"] + }, + { + "keywords": ["usability issue"], + "labels": ["B: usability"] + }, + { + "keywords": ["causes crash"], + "labels": ["B: crash"] + }, + { + "keywords": ["feature stopped working"], + "labels": ["B: feature stopped working"] + }, + { + "keywords": ["inconsistent behavior"], + "labels": ["B: inconsistent behavior"] + }, + { + "keywords": ["data loss"], + "labels": ["B: data loss"] + }, + { + "keywords": ["race condition"], + "labels": ["B: race condition"] + }, + { + "keywords": ["API issue"], + "labels": ["B: API issue"] + }, + { + "keywords": ["only happens in developer mode"], + "labels": ["B: developer mode"] + }, + { + "keywords": ["improvement to existing feature"], + "labels": ["E: improvement existing feature"] + }, + { + "keywords": ["new optional setting"], + "labels": ["E: new optional setting"] + }, + { + "keywords": ["visual improvement"], + "labels": ["E: visual improvement"] + }, + { + "keywords": ["display more information to user"], + "labels": ["E: display more information"] + }, + { + "keywords": ["ease of use improvement"], + "labels": ["E: ease of use improvement"] + }, + { + "keywords": ["support for external software"], + "labels": ["E: support external software"] + }, + { + "keywords": ["new feature"], + "labels": ["E: new feature"] + }, + { + "keywords": ["new keyboard shortcut"], + "labels": ["E: keyboard shortcut"] + } + ] github-token: "${{ secrets.GITHUB_TOKEN }}" From 2d2c1e7a0bccbdb9b1622403c946835c2f086106 Mon Sep 17 00:00:00 2001 From: absidue <48293849+absidue@users.noreply.github.com> Date: Sun, 11 Sep 2022 20:28:48 +0200 Subject: [PATCH 085/414] Remove unneeded electron-builder-squirrel-windows dependency (#2560) --- package.json | 1 - yarn.lock | 227 ++------------------------------------------------- 2 files changed, 7 insertions(+), 221 deletions(-) diff --git a/package.json b/package.json index b3055b82c..f45ff3ea3 100644 --- a/package.json +++ b/package.json @@ -94,7 +94,6 @@ "css-loader": "5.2.6", "electron": "^20.1.2", "electron-builder": "^23.3.3", - "electron-builder-squirrel-windows": "^23.5.0", "electron-debug": "^3.2.0", "eslint": "^7.32.0", "eslint-config-prettier": "^8.3.0", diff --git a/yarn.lock b/yarn.lock index 696013f36..1859fc07f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1929,67 +1929,6 @@ app-builder-lib@23.3.3: tar "^6.1.11" temp-file "^3.4.0" -app-builder-lib@23.5.0: - version "23.5.0" - resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-23.5.0.tgz#5c6b117ea318a668d851dd4aaaf0d4810a3a0178" - integrity sha512-AJIqUK+fe9dMPwHZf7NTE1Z0qrLGAbwB7cCcsLxoV2tOSySBPqzOvqhU1l7rOGBaFQUHvYyQTuk1FDmVSW3Psw== - dependencies: - "7zip-bin" "~5.1.1" - "@develar/schema-utils" "~2.6.5" - "@electron/universal" "1.2.1" - "@malept/flatpak-bundler" "^0.4.0" - async-exit-hook "^2.0.1" - bluebird-lst "^1.0.9" - builder-util "23.5.0" - builder-util-runtime "9.1.1" - chromium-pickle-js "^0.2.0" - debug "^4.3.4" - ejs "^3.1.7" - electron-osx-sign "^0.6.0" - electron-publish "23.5.0" - form-data "^4.0.0" - fs-extra "^10.1.0" - hosted-git-info "^4.1.0" - is-ci "^3.0.0" - isbinaryfile "^4.0.10" - js-yaml "^4.1.0" - lazy-val "^1.0.5" - minimatch "^3.1.2" - read-config-file "6.2.0" - sanitize-filename "^1.6.3" - semver "^7.3.7" - tar "^6.1.11" - temp-file "^3.4.0" - -archiver-utils@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-2.1.0.tgz#e8a460e94b693c3e3da182a098ca6285ba9249e2" - integrity sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw== - dependencies: - glob "^7.1.4" - graceful-fs "^4.2.0" - lazystream "^1.0.0" - lodash.defaults "^4.2.0" - lodash.difference "^4.5.0" - lodash.flatten "^4.4.0" - lodash.isplainobject "^4.0.6" - lodash.union "^4.6.0" - normalize-path "^3.0.0" - readable-stream "^2.0.0" - -archiver@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/archiver/-/archiver-5.3.1.tgz#21e92811d6f09ecfce649fbefefe8c79e57cbbb6" - integrity sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w== - dependencies: - archiver-utils "^2.1.0" - async "^3.2.3" - buffer-crc32 "^0.2.1" - readable-stream "^3.6.0" - readdir-glob "^1.0.0" - tar-stream "^2.2.0" - zip-stream "^4.1.0" - argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -2204,15 +2143,6 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -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" @@ -2323,7 +2253,7 @@ buffer-alloc@^1.2.0: buffer-alloc-unsafe "^1.1.0" buffer-fill "^1.0.0" -buffer-crc32@^0.2.1, buffer-crc32@^0.2.13, buffer-crc32@~0.2.3: +buffer-crc32@~0.2.3: version "0.2.13" resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= @@ -2343,7 +2273,7 @@ buffer-from@^1.0.0: 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: +buffer@^5.1.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== @@ -2359,14 +2289,6 @@ builder-util-runtime@9.0.3: debug "^4.3.4" sax "^1.2.4" -builder-util-runtime@9.1.1: - version "9.1.1" - resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-9.1.1.tgz#2da7b34e78a64ad14ccd070d6eed4662d893bd60" - integrity sha512-azRhYLEoDvRDR8Dhis4JatELC/jUvYjm4cVSj7n9dauGTOM2eeNn9KS0z6YA6oDsjI1xphjNbY6PZZeHPzzqaw== - dependencies: - debug "^4.3.4" - sax "^1.2.4" - builder-util@23.3.3: version "23.3.3" resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-23.3.3.tgz#449ee57ec1ffc7e59f7a3a8a1a33d25cf5e39e43" @@ -2390,29 +2312,6 @@ builder-util@23.3.3: stat-mode "^1.0.0" temp-file "^3.4.0" -builder-util@23.5.0: - version "23.5.0" - resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-23.5.0.tgz#5986a9da37c3ddbec790fcaaf88cae343b6bce49" - integrity sha512-TYz3sj2NMoG1/524/Je0p0RtEAKKjmTL6z2WQnzU6yM+WU/jHnA2OqX9Q/jys+rKuMy+7MCMdc+G+HrbpKWYSg== - dependencies: - "7zip-bin" "~5.1.1" - "@types/debug" "^4.1.6" - "@types/fs-extra" "^9.0.11" - app-builder-bin "4.0.0" - bluebird-lst "^1.0.9" - builder-util-runtime "9.1.1" - chalk "^4.1.1" - cross-spawn "^7.0.3" - debug "^4.3.4" - fs-extra "^10.0.0" - http-proxy-agent "^5.0.0" - https-proxy-agent "^5.0.0" - 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" - bytes@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" @@ -2657,16 +2556,6 @@ compare-version@^0.1.2: resolved "https://registry.yarnpkg.com/compare-version/-/compare-version-0.1.2.tgz#0162ec2d9351f5ddd59a9202cba935366a725080" integrity sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA= -compress-commons@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.1.1.tgz#df2a09a7ed17447642bad10a85cc9a19e5c42a7d" - integrity sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ== - dependencies: - buffer-crc32 "^0.2.13" - crc32-stream "^4.0.2" - normalize-path "^3.0.0" - readable-stream "^3.6.0" - compressible@~2.0.16: version "2.0.18" resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" @@ -2783,19 +2672,6 @@ core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== -crc-32@^1.2.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" - integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== - -crc32-stream@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.2.tgz#c922ad22b38395abe9d3870f02fa8134ed709007" - integrity sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w== - dependencies: - crc-32 "^1.2.0" - readable-stream "^3.4.0" - crc@^3.8.0: version "3.8.0" resolved "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz#ad60269c2c856f8c299e2c4cc0de4556914056c6" @@ -3128,18 +3004,6 @@ ejs@^3.1.7: dependencies: jake "^10.8.5" -electron-builder-squirrel-windows@^23.5.0: - version "23.5.0" - resolved "https://registry.yarnpkg.com/electron-builder-squirrel-windows/-/electron-builder-squirrel-windows-23.5.0.tgz#9990cd4891799f327d6974387afc66c342e66579" - integrity sha512-WrQgKWr5s9jFATUqN+zNb3XXZFw91TktkNQAPK2wYYF5496sFWMg1uQ2O+e/gS0ovFdJ7m6F6C98nN68D1OUHQ== - dependencies: - app-builder-lib "23.5.0" - archiver "^5.3.1" - builder-util "23.5.0" - fs-extra "^10.0.0" - optionalDependencies: - "7zip-bin" "~5.1.1" - electron-builder@^23.3.3: version "23.3.3" resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-23.3.3.tgz#88d4e584a99b9e36ca4e8432b1163a1ef877355f" @@ -3234,19 +3098,6 @@ electron-publish@23.3.3: lazy-val "^1.0.5" mime "^2.5.2" -electron-publish@23.5.0: - version "23.5.0" - resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-23.5.0.tgz#9f9a3242f93428f8e5d07bade43ecf319fc167f8" - integrity sha512-dY/bAN5tIjEPX1AV5FK9TXKKoGGalGb53SgGbhiII3o+WLzK+4vew6rrmChBTwELP/q8r4a89X+slTDG/iPdww== - dependencies: - "@types/fs-extra" "^9.0.11" - builder-util "23.5.0" - builder-util-runtime "9.1.1" - chalk "^4.1.1" - fs-extra "^10.0.0" - lazy-val "^1.0.5" - mime "^2.5.2" - electron-to-chromium@^1.4.118: version "1.4.137" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.137.tgz#186180a45617283f1c012284458510cd99d6787f" @@ -3276,7 +3127,7 @@ encodeurl@^1.0.2, encodeurl@~1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= -end-of-stream@^1.1.0, end-of-stream@^1.4.1: +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== @@ -3902,11 +3753,6 @@ fresh@0.5.2: resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= -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" @@ -4054,7 +3900,7 @@ glob-to-regexp@^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.3, glob@^7.1.4, glob@^7.1.6: +glob@^7.1.3, glob@^7.1.6: version "7.2.2" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.2.tgz#29deb38e1ef90f132d5958abe9c3ee8e87f3c318" integrity sha512-NzDgHDiJwKYByLrL5lONmQFpK/2G78SMMfo+E9CuGlX4IkvfKDsiQSNPwAYxEy+e6p7ZQ3uslSLlwlJcqezBmQ== @@ -4487,7 +4333,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, 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== @@ -4956,13 +4802,6 @@ lazy-val@^1.0.4, lazy-val@^1.0.5: resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.5.tgz#6cf3b9f5bc31cee7ee3e369c0832b7583dcd923d" integrity sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q== -lazystream@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.1.tgz#494c831062f1f9408251ec44db1cba29242a2638" - integrity sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw== - dependencies: - readable-stream "^2.0.5" - levn@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" @@ -5038,31 +4877,11 @@ lodash.debounce@^4.0.8: resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= -lodash.defaults@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" - integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= - -lodash.difference@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" - integrity sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw= - -lodash.flatten@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" - integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= - lodash.isequal@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= -lodash.isplainobject@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" - integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= - lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" @@ -5073,11 +4892,6 @@ lodash.truncate@^4.4.2: resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= -lodash.union@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" - integrity sha1-SLtQiECfFvGCFmZkHETdGqrjzYg= - lodash@^4.17.10, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" @@ -6012,7 +5826,7 @@ read-pkg@^3.0.0: normalize-package-data "^2.3.2" path-type "^3.0.0" -readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.5: +readable-stream@^2.0.1: 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== @@ -6025,7 +5839,7 @@ readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.5: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: +readable-stream@^3.0.6: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -6044,13 +5858,6 @@ readable-stream@~1.1.10: isarray "0.0.1" string_decoder "~0.10.x" -readdir-glob@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/readdir-glob/-/readdir-glob-1.1.1.tgz#f0e10bb7bf7bfa7e0add8baffdc54c3f7dbee6c4" - integrity sha512-91/k1EzZwDx6HbERR+zucygRFfiPl2zkIYZtv3Jjr6Mn7SkKcVct8aVO+sSRiGMc6fLf72du3d92/uY63YPdEA== - dependencies: - minimatch "^3.0.4" - readdirp@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" @@ -6856,17 +6663,6 @@ tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0: resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== -tar-stream@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" - integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== - dependencies: - bl "^4.0.3" - end-of-stream "^1.4.1" - fs-constants "^1.0.0" - inherits "^2.0.3" - readable-stream "^3.1.1" - tar@^6.1.11: version "6.1.11" resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" @@ -7726,12 +7522,3 @@ ytsr@^3.8.0: integrity sha512-R+RfYXvBBMAr2e4OxrQ5SBv5x/Mdhmcj1Q8TH0f2HK5d2jbhHOtK4BdzPvLriA6MDoMwqqX04GD8Rpf9UNtSTg== dependencies: miniget "^4.2.2" - -zip-stream@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.1.0.tgz#51dd326571544e36aa3f756430b313576dc8fc79" - integrity sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A== - dependencies: - archiver-utils "^2.1.0" - compress-commons "^4.1.0" - readable-stream "^3.6.0" From 036abdc96b32a3f6ea54f26a103c52c6ae576124 Mon Sep 17 00:00:00 2001 From: absidue <48293849+absidue@users.noreply.github.com> Date: Sun, 11 Sep 2022 20:29:27 +0200 Subject: [PATCH 086/414] Remove unused ft-intersection-observer component (#2563) --- .../ft-intersection-observer.js | 54 ------------------- .../ft-intersection-observer.vue | 5 -- 2 files changed, 59 deletions(-) delete mode 100644 src/renderer/components/ft-intersection-observer/ft-intersection-observer.js delete mode 100644 src/renderer/components/ft-intersection-observer/ft-intersection-observer.vue diff --git a/src/renderer/components/ft-intersection-observer/ft-intersection-observer.js b/src/renderer/components/ft-intersection-observer/ft-intersection-observer.js deleted file mode 100644 index 80183c669..000000000 --- a/src/renderer/components/ft-intersection-observer/ft-intersection-observer.js +++ /dev/null @@ -1,54 +0,0 @@ -import Vue from 'vue' - -export default Vue.extend({ - name: 'FtIntersectionObserver', - props: { - checkOnMount: { - type: Boolean, - default: false - }, - margin: { - type: String, - default: '0px 0px 0px 0px' - }, - observeParent: { - type: Boolean, - default: false - }, - threshold: { - type: Number, - default: 1 - } - }, - data() { - const observer = new IntersectionObserver(this.handleIntersection, { - rootMargin: this.margin, - threshold: this.threshold - }) - const runOnce = false - - return { - observer, - runOnce - } - }, - mounted() { - this.observer.observe(this.observeParent ? this.$refs.elem.parentElement : this.$refs.elem) - }, - beforeDestroy() { - this.observer.disconnect() - }, - methods: { - handleIntersection(entries) { - if (!this.runOnce) { - this.runOnce = true - - if (!this.checkOnMount) { - return - } - } - - this.$emit(entries[0].isIntersecting ? 'intersected' : 'unintersected') - } - } -}) diff --git a/src/renderer/components/ft-intersection-observer/ft-intersection-observer.vue b/src/renderer/components/ft-intersection-observer/ft-intersection-observer.vue deleted file mode 100644 index bb02f5a02..000000000 --- a/src/renderer/components/ft-intersection-observer/ft-intersection-observer.vue +++ /dev/null @@ -1,5 +0,0 @@ - - - + <% } %> - <% } %> -