Merge branch 'development' into piped-support

This commit is contained in:
ChunkyProgrammer 2023-06-26 11:47:58 -07:00
commit 0e88d70987
16 changed files with 168 additions and 152 deletions

View File

@ -89,31 +89,31 @@
"copy-webpack-plugin": "^11.0.0",
"css-loader": "^6.8.1",
"css-minimizer-webpack-plugin": "^5.0.1",
"electron": "^22.3.13",
"electron": "^22.3.14",
"electron-builder": "^23.6.0",
"eslint": "^8.43.0",
"eslint-config-prettier": "^8.8.0",
"eslint-config-standard": "^17.1.0",
"eslint-plugin-import": "^2.27.5",
"eslint-plugin-jsonc": "^2.9.0",
"eslint-plugin-n": "^16.0.0",
"eslint-plugin-n": "^16.0.1",
"eslint-plugin-prettier": "^4.2.1",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-unicorn": "^47.0.0",
"eslint-plugin-vue": "^9.15.0",
"eslint-plugin-vue": "^9.15.1",
"eslint-plugin-vuejs-accessibility": "^2.1.0",
"eslint-plugin-yml": "^1.8.0",
"html-webpack-plugin": "^5.5.3",
"js-yaml": "^4.1.0",
"json-minimizer-webpack-plugin": "^4.0.0",
"lefthook": "^1.4.2",
"lefthook": "^1.4.3",
"mini-css-extract-plugin": "^2.7.6",
"npm-run-all": "^4.1.5",
"postcss": "^8.4.24",
"postcss-scss": "^4.0.6",
"prettier": "^2.8.8",
"rimraf": "^5.0.1",
"sass": "^1.63.4",
"sass": "^1.63.6",
"sass-loader": "^13.3.2",
"stylelint": "^14.16.1",
"stylelint-config-sass-guidelines": "^9.0.1",
@ -123,7 +123,7 @@
"vue-devtools": "^5.1.4",
"vue-eslint-parser": "^9.3.1",
"vue-loader": "^15.10.0",
"webpack": "^5.87.0",
"webpack": "^5.88.0",
"webpack-cli": "^5.1.4",
"webpack-dev-server": "^4.15.1",
"yaml-eslint-parser": "^1.2.2"

View File

@ -53,11 +53,8 @@ export default defineComponent({
this.channelName = this.data.name
this.id = this.data.id
if (this.hideChannelSubscriptions || this.data.subscribers == null) {
this.subscriberCount = null
} else {
this.subscriberCount = this.data.subscribers.replace(/ subscriber(s)?/, '')
}
this.subscriberCount = this.data.subscribers != null ? this.data.subscribers.replace(/ subscriber(s)?/, '') : null
if (this.data.videos === null) {
this.videoCount = 0
} else {
@ -79,11 +76,7 @@ export default defineComponent({
this.channelName = this.data.author
this.id = this.data.authorId
if (this.hideChannelSubscriptions) {
this.subscriberCount = null
} else {
this.subscriberCount = formatNumber(this.data.subCount)
}
this.subscriberCount = formatNumber(this.data.subCount)
this.videoCount = formatNumber(this.data.videoCount)
this.description = this.data.description
}

View File

@ -26,7 +26,7 @@
</router-link>
<div class="infoLine">
<span
v-if="subscriberCount !== null"
v-if="subscriberCount !== null && !hideChannelSubscriptions"
class="subscriberCount"
>
{{ subscriberCount }} subscribers -

View File

@ -50,9 +50,13 @@ export default defineComponent({
return this.subscriptionInfo !== null
},
hideChannelSubscriptions: function () {
return this.$store.getters.getHideChannelSubscriptions
},
subscribedText: function () {
let subscribedValue = (this.isSubscribed ? this.$t('Channel.Unsubscribe') : this.$t('Channel.Subscribe')).toUpperCase()
if (this.subscriptionCountText !== '') {
if (this.subscriptionCountText !== '' && !this.hideChannelSubscriptions) {
subscribedValue += ' ' + this.subscriptionCountText
}
return subscribedValue

View File

@ -8,7 +8,6 @@ import FtFlexBox from '../ft-flex-box/ft-flex-box.vue'
import FtButton from '../ft-button/ft-button.vue'
import FtInput from '../ft-input/ft-input.vue'
import FtTooltip from '../ft-tooltip/ft-tooltip.vue'
import { ipcRenderer } from 'electron'
import { IpcChannels } from '../../../constants'
import path from 'path'
import { getPicturesPath } from '../../helpers/utils'
@ -61,6 +60,10 @@ export default defineComponent({
}
},
computed: {
usingElectron: function () {
return process.env.IS_ELECTRON
},
backendPreference: function () {
let preference = this.$store.getters.getBackendPreference
if (preference === 'piped') {
@ -230,7 +233,11 @@ export default defineComponent({
},
getScreenshotEmptyFolderPlaceholder: async function() {
return path.join(await getPicturesPath(), 'Freetube')
if (process.env.IS_ELECTRON) {
return path.join(await getPicturesPath(), 'Freetube')
} else {
return ''
}
},
getScreenshotFolderPlaceholder: function() {
@ -238,21 +245,26 @@ export default defineComponent({
this.screenshotFolderPlaceholder = this.screenshotFolder
return
}
this.getScreenshotEmptyFolderPlaceholder().then((res) => {
this.screenshotFolderPlaceholder = res
})
if (process.env.IS_ELECTRON) {
this.getScreenshotEmptyFolderPlaceholder().then((res) => {
this.screenshotFolderPlaceholder = res
})
}
},
chooseScreenshotFolder: async function() {
// only use with electron
const folder = await ipcRenderer.invoke(
IpcChannels.SHOW_OPEN_DIALOG,
{ properties: ['openDirectory'] }
)
if (process.env.IS_ELECTRON) {
const { ipcRenderer } = require('electron')
const folder = await ipcRenderer.invoke(
IpcChannels.SHOW_OPEN_DIALOG,
{ properties: ['openDirectory'] }
)
if (!folder.canceled) {
await this.updateScreenshotFolderPath(folder.filePaths[0])
this.getScreenshotFolderPlaceholder()
if (!folder.canceled) {
await this.updateScreenshotFolderPath(folder.filePaths[0])
this.getScreenshotFolderPlaceholder()
}
}
},

View File

@ -169,14 +169,16 @@
/>
</ft-flex-box>
<br>
<ft-flex-box>
<ft-flex-box
v-if="usingElectron"
>
<ft-toggle-switch
:label="$t('Settings.Player Settings.Screenshot.Enable')"
:default-value="enableScreenshot"
@change="updateEnableScreenshot"
/>
</ft-flex-box>
<div v-if="enableScreenshot">
<div v-if="usingElectron && enableScreenshot">
<ft-flex-box>
<ft-select
:placeholder="$t('Settings.Player Settings.Screenshot.Format Label')"
@ -204,7 +206,7 @@
/>
</ft-flex-box>
<ft-flex-box
v-if="!screenshotAskPath"
v-if="usingElectron && !screenshotAskPath"
class="screenshotFolderContainer"
>
<p class="screenshotFolderLabel">
@ -223,7 +225,10 @@
@click="chooseScreenshotFolder"
/>
</ft-flex-box>
<ft-flex-box class="screenshotFolderContainer">
<ft-flex-box
v-if="usingElectron"
class="screenshotFolderContainer"
>
<p class="screenshotFilenamePatternTitle">
{{ $t('Settings.Player Settings.Screenshot.File Name Label') }}
<ft-tooltip

View File

@ -1,5 +1,6 @@
import fs from 'fs/promises'
import { pathExists } from '../../helpers/filesystem'
import { createWebURL } from '../../helpers/utils'
const state = {
currentInvidiousInstance: '',
@ -41,9 +42,10 @@ const actions = {
const fileName = 'invidious-instances.json'
/* eslint-disable-next-line n/no-path-concat */
const fileLocation = process.env.NODE_ENV === 'development' ? './static/' : `${__dirname}/static/`
if (await pathExists(`${fileLocation}${fileName}`)) {
const filePath = `${fileLocation}${fileName}`
if (!process.env.IS_ELECTRON || await pathExists(filePath)) {
console.warn('reading static file for invidious instances')
const fileData = await fs.readFile(`${fileLocation}${fileName}`)
const fileData = process.env.IS_ELECTRON ? JSON.parse(await fs.readFile(filePath)) : await (await fetch(createWebURL(filePath))).text()
instances = JSON.parse(fileData).filter(e => {
return process.env.IS_ELECTRON || e.cors
}).map(e => {

View File

@ -163,9 +163,9 @@ const defaultSideEffectsTriggerId = settingId =>
const state = {
autoplayPlaylists: true,
autoplayVideos: true,
backendFallback: true,
backendPreference: 'local',
fallbackPreference: 'invidious',
backendFallback: process.env.IS_ELECTRON,
backendPreference: !process.env.IS_ELECTRON ? 'invidious' : 'local',
fallbackPreference: !process.env.IS_ELECTRON ? 'piped' : 'invidious',
barColor: false,
checkForBlogPosts: true,
checkForUpdates: true,
@ -226,7 +226,7 @@ const state = {
proxyHostname: '127.0.0.1',
proxyPort: '9050',
proxyProtocol: 'socks5',
proxyVideos: false,
proxyVideos: !process.env.IS_ELECTRON,
region: 'US',
rememberHistory: true,
removeVideoMetaFiles: true,

View File

@ -563,7 +563,7 @@ export default defineComponent({
document.title = `${channelName} - ${packageDetails.productName}`
if (!this.hideChannelSubscriptions && subscriberText) {
if (subscriberText) {
const subCount = parseLocalSubscriberCount(subscriberText)
if (isNaN(subCount)) {
@ -868,11 +868,7 @@ export default defineComponent({
document.title = `${this.channelName} - ${packageDetails.productName}`
this.id = channelId
this.isFamilyFriendly = response.isFamilyFriendly
if (this.hideChannelSubscriptions) {
this.subCount = null
} else {
this.subCount = response.subCount
}
this.subCount = response.subCount
const thumbnail = response.authorThumbnails[3].url
this.thumbnailUrl = youtubeImageUrlToInvidious(thumbnail, this.currentInvidiousInstance)
this.updateSubscriptionDetails({ channelThumbnailUrl: thumbnail, channelName: channelName, channelId: channelId })

View File

@ -49,7 +49,7 @@
</h1>
<p
v-if="subCount !== null"
v-if="subCount !== null && !hideChannelSubscriptions"
class="channelSubCount"
>
{{ formattedSubCount }}

View File

@ -361,18 +361,10 @@ export default defineComponent({
this.isUpcoming = !!result.basic_info.is_upcoming
this.isLiveContent = !!result.basic_info.is_live_content
if (!this.hideChannelSubscriptions) {
const subCount = parseLocalSubscriberCount(result.secondary_info.owner.subscriber_count.text)
const subCount = parseLocalSubscriberCount(result.secondary_info.owner.subscriber_count.text)
if (!isNaN(subCount)) {
if (subCount >= 10000) {
this.channelSubscriptionCountText = formatNumber(subCount, { notation: 'compact' })
} else {
this.channelSubscriptionCountText = formatNumber(subCount)
}
} else {
this.channelSubscriptionCountText = ''
}
if (!isNaN(subCount)) {
this.channelSubscriptionCountText = formatNumber(subCount, subCount >= 10000 ? { notation: 'compact' } : undefined)
} else {
this.channelSubscriptionCountText = ''
}
@ -724,6 +716,7 @@ export default defineComponent({
this.videoTitle = result.title
this.videoViewCount = result.viewCount
this.channelSubscriptionCountText = result.subCountText || 'FT-0'
if (this.hideVideoLikesAndDislikes) {
this.videoLikeCount = null
this.videoDislikeCount = null
@ -731,11 +724,7 @@ export default defineComponent({
this.videoLikeCount = result.likeCount
this.videoDislikeCount = result.dislikeCount
}
if (this.hideChannelSubscriptions) {
this.channelSubscriptionCountText = ''
} else {
this.channelSubscriptionCountText = result.subCountText || 'FT-0'
}
this.channelId = result.authorId
this.channelName = result.author
const channelThumb = result.authorThumbnails[1]

View File

@ -270,6 +270,8 @@ Settings:
Enter Fullscreen on Display Rotate: Entrar em tela cheia ao girar a tela
Skip by Scrolling Over Video Player: Pular rolando o tocador de vídeo
Allow DASH AV1 formats: Permitir formatos DASH AV1
Comment Auto Load:
Comment Auto Load: Carregar automaticamente os comentários
Subscription Settings:
Subscription Settings: 'Configurações de inscrições'
Hide Videos on Watch: 'Esconder vídeos após assisti-los'
@ -403,6 +405,15 @@ Settings:
Display Titles Without Excessive Capitalisation: Mostrar Títulos sem Capitalização
Excessiva
Hide Channels: Ocultar Vídeos dos Canais
Sections:
Side Bar: Barra lateral
Channel Page: Página do canal
Watch Page: Página de Visualização
General: Geral
Hide Featured Channels: Ocultar canais em destaque
Hide Channel Playlists: Ocultar listas de reprodução de canais
Hide Channel Community: Ocultar comunidade do canal
Hide Channel Shorts: Ocultar Shorts do Canal
The app needs to restart for changes to take effect. Restart and apply change?: O
aplicativo necessita reiniciar para as mudanças fazerem efeito. Reiniciar e aplicar
mudança?
@ -580,6 +591,10 @@ Channel:
Live: Ao vivo
This channel does not currently have any live streams: Este canal não tem nenhuma
transmissão ao vivo no momento
Shorts:
Shorts: Shorts
This channel does not currently have any shorts: Este canal não tem atualmente
nenhum short
Video:
Mark As Watched: 'Marcar como assistido'
Remove From History: 'Remover do histórico'
@ -605,8 +620,8 @@ Video:
nessa versão.'
'Chat is disabled or the Live Stream has ended.': 'O chat está desativado ou a transmissão
ao vivo se encerrou.'
Live chat is enabled. Chat messages will appear here once sent.: 'Chat ao vivo
habilitado. As mensagens irão aparecer uma vez enviadas.'
Live chat is enabled. Chat messages will appear here once sent.: 'Chat ao vivo habilitado.
As mensagens irão aparecer uma vez enviadas.'
'Live Chat is currently not supported with the Invidious API. A direct connection to YouTube is required.': 'O
chat ao vivo não é suportado pela API do Invidious. Uma conexão com o YouTube
é necessária.'
@ -920,9 +935,9 @@ Tooltips:
Preferred API Backend: Escolha o backend que o FreeTube usa para obter os dados.
A API local é um extrator integrado. A API Invidious requer um servidor Invidious
para se conectar.
External Link Handling: "Escolha o comportamento padrão quando um link, que não\
\ pode ser aberto no FreeTube, é clicado.\nPor padrão, o FreeTube abrirá o link\
\ clicado no seu navegador padrão.\n"
External Link Handling: "Escolha o comportamento padrão quando um link, que não
pode ser aberto no FreeTube, é clicado.\nPor padrão, o FreeTube abrirá o link
clicado no seu navegador padrão.\n"
Privacy Settings:
Remove Video Meta Files: Quando ativado, o FreeTube exclui automaticamente os
metarquivos criados durante a reprodução do vídeo quando a página de exibição
@ -1000,3 +1015,7 @@ Chapters:
capítulo atual: {chapterName}'
Chapters: Capítulos
Ok: Ok
Hashtag:
This hashtag does not currently have any videos: Esta hashtag não tem atualmente
nenhum vídeo
Hashtag: Hashtag

View File

@ -65,7 +65,7 @@ Settings:
Settings: 'සැකසුම්'
General Settings:
General Settings: 'සාමාන්‍ය සැකසුම්'
Check for Updates: 'යාවත්කාල සඳහා පරීක්ෂා කරන්න'
Check for Updates: 'යාවත්කාල බලන්න'
Preferred API Backend:
Local API: 'ස්ථානීය යෙ.ක්‍ර. අ.මු. (API)'
Invidious API: 'ඉන්වීඩියස් යෙ.ක්‍ර. අ.මු. (API)'

View File

@ -503,7 +503,7 @@ Profile:
Your default profile has been changed to your primary profile: 'Ваш типовий профіль
змінено на основний'
'{profile} is now the active profile': '{profile} активний профіль зараз'
Subscription List: ідписки'
Subscription List: ерелік підписок'
Other Channels: 'Інші канали'
'{number} selected': '{number} вибрано'
Select All: 'Вибрати все'

View File

@ -53,10 +53,6 @@ self.addEventListener('install', function (event) {
console.log('[PWA Builder] Caching pages during install')
return cache.addAll(precacheFiles).then(function () {
if (offlineFallbackPage === 'ToDo-replace-this-name.html') {
return cache.add(new Response('TODO: Update the value of the offlineFallbackPage constant in the serviceworker.'))
}
return cache.add(offlineFallbackPage)
})
})

156
yarn.lock
View File

@ -3344,10 +3344,10 @@ electron-to-chromium@^1.4.411:
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.411.tgz#8cb7787f0442fcb4209590e9951bdb482caa93b2"
integrity sha512-5VXLW4Qw89vM2WTICHua/y8v7fKGDRVa2VPOtBB9IpLvW316B+xd8yD1wTmLPY2ot/00P/qt87xdolj4aG/Lzg==
electron@^22.3.13:
version "22.3.13"
resolved "https://registry.yarnpkg.com/electron/-/electron-22.3.13.tgz#ce1de257a3f17dc44c8954789ada0ac31dec1120"
integrity sha512-SDqQM3zSNiiiHIaxhx9yshWwgkqhyYMEH7XfWQhnvtI3N+5bnC6Po7Uz7p2jVqHWaBYTatdbBwB0flhvlDtBuQ==
electron@^22.3.14:
version "22.3.14"
resolved "https://registry.yarnpkg.com/electron/-/electron-22.3.14.tgz#539fc7d7b6df37483aaa351856a28e43092d550e"
integrity sha512-WxVcLnC4DrkBLN1/BwpxNkGvVq8iq1hM7lae5nvjnSYg/bwVbuo1Cwc80Keft4MIWKlYCXNiKKqs3qCXV4Aiaw==
dependencies:
"@electron/get" "^2.0.0"
"@types/node" "^16.11.26"
@ -3618,10 +3618,10 @@ eslint-module-utils@^2.7.4:
dependencies:
debug "^3.2.7"
eslint-plugin-es-x@^6.1.0:
version "6.2.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-es-x/-/eslint-plugin-es-x-6.2.1.tgz#34c9abc22483d7d49ff9ca8b5db29d54442d2e6b"
integrity sha512-uR34zUhZ9EBoiSD2DdV5kHLpydVEvwWqjteUr9sXRgJknwbKZJZhdJ7uFnaTtd+Nr/2G3ceJHnHXrFhJ67n3Tw==
eslint-plugin-es-x@^7.1.0:
version "7.1.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-es-x/-/eslint-plugin-es-x-7.1.0.tgz#f0d5421e658cca95c1cfb2355831851bdc83322d"
integrity sha512-AhiaF31syh4CCQ+C5ccJA0VG6+kJK8+5mXKKE7Qs1xcPRg02CDPOj3mWlQxuWS/AYtg7kxrDNgW9YW3vc0Q+Mw==
dependencies:
"@eslint-community/eslint-utils" "^4.1.2"
"@eslint-community/regexpp" "^4.5.0"
@ -3656,19 +3656,19 @@ eslint-plugin-jsonc@^2.9.0:
jsonc-eslint-parser "^2.0.4"
natural-compare "^1.4.0"
eslint-plugin-n@^16.0.0:
version "16.0.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-16.0.0.tgz#de39e4dd6cf04fd78fd6f49cb39ecb20ea0167ff"
integrity sha512-akkZTE3hsHBrq6CwmGuYCzQREbVUrA855kzcHqe6i0FLBkeY7Y/6tThCVkjUnjhvRBAlc+8lILcSe5QvvDpeZQ==
eslint-plugin-n@^16.0.1:
version "16.0.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-16.0.1.tgz#baa62bb3af52940a53ba15386348ad9b0b425ada"
integrity sha512-CDmHegJN0OF3L5cz5tATH84RPQm9kG+Yx39wIqIwPR2C0uhBGMWfbbOtetR83PQjjidA5aXMu+LEFw1jaSwvTA==
dependencies:
"@eslint-community/eslint-utils" "^4.4.0"
builtins "^5.0.1"
eslint-plugin-es-x "^6.1.0"
ignore "^5.1.1"
is-core-module "^2.12.0"
eslint-plugin-es-x "^7.1.0"
ignore "^5.2.4"
is-core-module "^2.12.1"
minimatch "^3.1.2"
resolve "^1.22.2"
semver "^7.5.0"
semver "^7.5.3"
eslint-plugin-prettier@^4.2.1:
version "4.2.1"
@ -3704,10 +3704,10 @@ eslint-plugin-unicorn@^47.0.0:
semver "^7.3.8"
strip-indent "^3.0.0"
eslint-plugin-vue@^9.15.0:
version "9.15.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.15.0.tgz#2bffe2b8a628ee438f983672a73cd89df455c461"
integrity sha512-XYzpK6e2REli100+6iCeBA69v6Sm0D/yK2FZP+fCeNt0yH/m82qZQq+ztseyV0JsKdhFysuSEzeE1yCmSC92BA==
eslint-plugin-vue@^9.15.1:
version "9.15.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.15.1.tgz#3c09e0edab444b5d4d9239a12a645a0e2e2ea5be"
integrity sha512-CJE/oZOslvmAR9hf8SClTdQ9JLweghT6JCBQNrT2Iel1uVw0W0OLJxzvPd6CxmABKCvLrtyDnqGV37O7KQv6+A==
dependencies:
"@eslint-community/eslint-utils" "^4.3.0"
natural-compare "^1.4.0"
@ -4722,7 +4722,7 @@ ieee754@^1.1.13:
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
ignore@^5.1.1, ignore@^5.2.0, ignore@^5.2.1:
ignore@^5.2.0, ignore@^5.2.1, ignore@^5.2.4:
version "5.2.4"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324"
integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==
@ -4897,7 +4897,7 @@ is-ci@^3.0.0:
dependencies:
ci-info "^3.2.0"
is-core-module@^2.11.0, is-core-module@^2.12.0, is-core-module@^2.5.0:
is-core-module@^2.11.0, is-core-module@^2.12.1, is-core-module@^2.5.0:
version "2.12.1"
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd"
integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==
@ -5343,59 +5343,59 @@ 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==
lefthook-darwin-arm64@1.4.2:
version "1.4.2"
resolved "https://registry.yarnpkg.com/lefthook-darwin-arm64/-/lefthook-darwin-arm64-1.4.2.tgz#aa2fc610491c651e77c95d346bf41f589ef2fc7b"
integrity sha512-1tyNoHbjIuGa3xWWoMwaX5cF3EjRYCZSomMDPiHnIom1dxa/p3nSaF0thJSnQRlXNddsisH+t6vWOmccgukCWA==
lefthook-darwin-arm64@1.4.3:
version "1.4.3"
resolved "https://registry.yarnpkg.com/lefthook-darwin-arm64/-/lefthook-darwin-arm64-1.4.3.tgz#b253fbc20041815010da66e8588faf4bbd75c0aa"
integrity sha512-ZFsgIzN+Z0c4RpMMHU/M4J43XFyXYGZI8r0GG4jqVMX+prDBIb/6vpgMdZxK5IozRUmnfLGQPXcVokE9WBHSOg==
lefthook-darwin-x64@1.4.2:
version "1.4.2"
resolved "https://registry.yarnpkg.com/lefthook-darwin-x64/-/lefthook-darwin-x64-1.4.2.tgz#fc8a3900def1839cac180bd3c418e4a2acdc5cd7"
integrity sha512-+CcLTMvNTOdP2E7qHnAiSn1xtNeMLbhykyJOe/7Dd5beAv4BZ94ZnuoH74RIgyBALeZxpUeOdwJNI3Nc8Pg6+A==
lefthook-darwin-x64@1.4.3:
version "1.4.3"
resolved "https://registry.yarnpkg.com/lefthook-darwin-x64/-/lefthook-darwin-x64-1.4.3.tgz#5afa63f7a18cf89495895fc1321cdd749825bf9c"
integrity sha512-O6ZesdJ9MStI38gNfJh0ShExIf0KyHG1lR32F9FUFklFwhcquRM+uIDyDqVCxU3UWqmKwcbTk9AJWMjQZGPLxQ==
lefthook-freebsd-arm64@1.4.2:
version "1.4.2"
resolved "https://registry.yarnpkg.com/lefthook-freebsd-arm64/-/lefthook-freebsd-arm64-1.4.2.tgz#58fa1714f5c2972e7e4ff8ced9658654de654fae"
integrity sha512-uT0PR66ZEMzaFco+eTn/3jYzf47vt0UQM6u5eWPdYoUQTbYavvpsecyGw6YyhIaIYVOwbK8Gaf2YVJMvZFEyLA==
lefthook-freebsd-arm64@1.4.3:
version "1.4.3"
resolved "https://registry.yarnpkg.com/lefthook-freebsd-arm64/-/lefthook-freebsd-arm64-1.4.3.tgz#070141ccc981658bd7545f40b14814b410f2930e"
integrity sha512-6swb+98Qs6P9V9Rcd2lHWH2LunFEk+kfIPpf6oiPrOHnw3OkfFhQLmawX425Ari7Y9qy9gfDoNe/0/IR7YGmGw==
lefthook-freebsd-x64@1.4.2:
version "1.4.2"
resolved "https://registry.yarnpkg.com/lefthook-freebsd-x64/-/lefthook-freebsd-x64-1.4.2.tgz#118d01566e308704a4c8d351b19187cd403ed68f"
integrity sha512-4FaBXxenytECD1R3qM/VTVSqp7E3mlKBtm5dDVGXNMBIsTXiEP/qkuk3nteIUnhgjQv0Ma23V0v7KTmNlo1oXA==
lefthook-freebsd-x64@1.4.3:
version "1.4.3"
resolved "https://registry.yarnpkg.com/lefthook-freebsd-x64/-/lefthook-freebsd-x64-1.4.3.tgz#47b4e7cf4c0459b1152e605c047541ec3eec5f0b"
integrity sha512-+58NARATypmIj0kDutd29ozywr6IeA0lVBxsVzq7C5ycYrd31iNak3lnaEvNJvdj5fGVNEL9X7XRojylthZlAg==
lefthook-linux-arm64@1.4.2:
version "1.4.2"
resolved "https://registry.yarnpkg.com/lefthook-linux-arm64/-/lefthook-linux-arm64-1.4.2.tgz#30a879fcb460cd3e1341853cbe8cbdd1a46db9a5"
integrity sha512-RzI1j6LPW1y4dqrVSBv/B/Sipa9Bp9LP0TB9BRB0CmxIqerFe90x9wVp3vAAkodGHv/B7Xa5f1OAibwkSbtTkw==
lefthook-linux-arm64@1.4.3:
version "1.4.3"
resolved "https://registry.yarnpkg.com/lefthook-linux-arm64/-/lefthook-linux-arm64-1.4.3.tgz#b3caae33a20cc2665ec047a098e7b4e4498d63d1"
integrity sha512-gAWJQEhgheOfPu579fhlcNNm3KoJbNkT11AATKHlFu+esyiCxI8xZVpGwDQVMphO7s43FKbkQJSvIM4tElb6FQ==
lefthook-linux-x64@1.4.2:
version "1.4.2"
resolved "https://registry.yarnpkg.com/lefthook-linux-x64/-/lefthook-linux-x64-1.4.2.tgz#972270c7e9284fb8d13531fef1a315c7d26ccdae"
integrity sha512-huBfLsIPVfdU0jPnGCvJ4e39JdkXKsbb0Dr+fzAhLNhcg6Touo6y/pwDbW5zfeN2hu0EdhzT0p0a28FGsV9dEQ==
lefthook-linux-x64@1.4.3:
version "1.4.3"
resolved "https://registry.yarnpkg.com/lefthook-linux-x64/-/lefthook-linux-x64-1.4.3.tgz#ac2990e23a4c39bf774e4094f33c0fbaef79129c"
integrity sha512-mVv/amRqX81nQcizhRRx/X6KKNIkMUG4HdDItWkDazwLAviZ2zv8TRcSaEYBOpriP/dBZm8gt6EhzPpfoWtcJw==
lefthook-windows-arm64@1.4.2:
version "1.4.2"
resolved "https://registry.yarnpkg.com/lefthook-windows-arm64/-/lefthook-windows-arm64-1.4.2.tgz#47d509e769ab64e0b49ad732b2e123ae017c077d"
integrity sha512-vzx6jbyLkAncE7UB3IB9HJqoFFZpGaxnp6zVimvDDOUSAOLKgbF+jJHgXlX8j6kzs/rZAoYmA0oR48dpUcUNQw==
lefthook-windows-arm64@1.4.3:
version "1.4.3"
resolved "https://registry.yarnpkg.com/lefthook-windows-arm64/-/lefthook-windows-arm64-1.4.3.tgz#dc0dcfea32badab031183bdc8cd91bda929cee9b"
integrity sha512-ccClPTC7AvhcbyT6pLzdV8K8e/P0T7p/THGRtcyjkKIU0IS89k95VazDlt22QPzUTc8UMNCQyZ1XY4UDx295jw==
lefthook-windows-x64@1.4.2:
version "1.4.2"
resolved "https://registry.yarnpkg.com/lefthook-windows-x64/-/lefthook-windows-x64-1.4.2.tgz#d59db53a464137b6f3af615fa7911a8706861837"
integrity sha512-sXTlvUITYzBIpNwlQO6Oa8nIB9GV4cUPmf6wdyPn1dv/1qa1+0ROgeROJzLYj2v+NtiJ2aIHTjaOXiBeoZCISA==
lefthook-windows-x64@1.4.3:
version "1.4.3"
resolved "https://registry.yarnpkg.com/lefthook-windows-x64/-/lefthook-windows-x64-1.4.3.tgz#795b1215969c7d0d4007f89bfe660cfc2736075c"
integrity sha512-q1K5kycfqTYLm5/pOCiAFa+hoSFt/29QjHVZAWRmk/nKDIf8MvTWX0tdaEx7/VJuG3cgQT1jM+xiTwSmNUXTKg==
lefthook@^1.4.2:
version "1.4.2"
resolved "https://registry.yarnpkg.com/lefthook/-/lefthook-1.4.2.tgz#83f9aaa84d847026f13058406560f9a12eac84c2"
integrity sha512-T7fvI7WXEZGUcaeuLckAzL5EURi6x5fkoBYjeiJ1u2ix2/A4Xjlca/lGQzgrqVWyCaHKeW5QkhR2tXwiubuLlw==
lefthook@^1.4.3:
version "1.4.3"
resolved "https://registry.yarnpkg.com/lefthook/-/lefthook-1.4.3.tgz#cedfd13f13c87a974ea5e055853c7fae0c6df11e"
integrity sha512-zvhAJ9wDQW7F27XYWRfx72L6LuPLu49be+sRUF+DKku1IGT+x3eHjQ9k70pt65lnEq1X8Xl/Xygm3Kwi/piOYg==
optionalDependencies:
lefthook-darwin-arm64 "1.4.2"
lefthook-darwin-x64 "1.4.2"
lefthook-freebsd-arm64 "1.4.2"
lefthook-freebsd-x64 "1.4.2"
lefthook-linux-arm64 "1.4.2"
lefthook-linux-x64 "1.4.2"
lefthook-windows-arm64 "1.4.2"
lefthook-windows-x64 "1.4.2"
lefthook-darwin-arm64 "1.4.3"
lefthook-darwin-x64 "1.4.3"
lefthook-freebsd-arm64 "1.4.3"
lefthook-freebsd-x64 "1.4.3"
lefthook-linux-arm64 "1.4.3"
lefthook-linux-x64 "1.4.3"
lefthook-windows-arm64 "1.4.3"
lefthook-windows-x64 "1.4.3"
levn@^0.4.1:
version "0.4.1"
@ -7057,10 +7057,10 @@ sass-loader@^13.3.2:
dependencies:
neo-async "^2.6.2"
sass@^1.63.4:
version "1.63.4"
resolved "https://registry.yarnpkg.com/sass/-/sass-1.63.4.tgz#caf60643321044c61f6a0fe638a07abbd31cfb5d"
integrity sha512-Sx/+weUmK+oiIlI+9sdD0wZHsqpbgQg8wSwSnGBjwb5GwqFhYNwwnI+UWZtLjKvKyFlKkatRK235qQ3mokyPoQ==
sass@^1.63.6:
version "1.63.6"
resolved "https://registry.yarnpkg.com/sass/-/sass-1.63.6.tgz#481610e612902e0c31c46b46cf2dad66943283ea"
integrity sha512-MJuxGMHzaOW7ipp+1KdELtqKbfAWbH7OLIdoSMnVe3EXPMTmxTmlaZDCTsgIpPCs3w99lLo9/zDKkOrJuT5byw==
dependencies:
chokidar ">=3.0.0 <4.0.0"
immutable "^4.0.0"
@ -7117,10 +7117,10 @@ semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0:
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
semver@^7.0.0, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.6, semver@^7.3.7, semver@^7.3.8, semver@^7.5.0:
version "7.5.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.1.tgz#c90c4d631cf74720e46b21c1d37ea07edfab91ec"
integrity sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==
semver@^7.0.0, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.6, semver@^7.3.7, semver@^7.3.8, semver@^7.5.3:
version "7.5.3"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.3.tgz#161ce8c2c6b4b3bdca6caadc9fa3317a4c4fe88e"
integrity sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==
dependencies:
lru-cache "^6.0.0"
@ -8346,10 +8346,10 @@ 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.87.0:
version "5.87.0"
resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.87.0.tgz#df8a9c094c6037f45e0d77598f9e59d33ca3a98c"
integrity sha512-GOu1tNbQ7p1bDEoFRs2YPcfyGs8xq52yyPBZ3m2VGnXGtV9MxjrkABHm4V9Ia280OefsSLzvbVoXcfLxjKY/Iw==
webpack@^5.88.0:
version "5.88.0"
resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.88.0.tgz#a07aa2f8e7a64a8f1cec0c6c2e180e3cb34440c8"
integrity sha512-O3jDhG5e44qIBSi/P6KpcCcH7HD+nYIHVBhdWFxcLOcIGN8zGo5nqF3BjyNCxIh4p1vFdNnreZv2h2KkoAw3lw==
dependencies:
"@types/eslint-scope" "^3.7.3"
"@types/estree" "^1.0.0"