Merge branch 'master' into locale-improvements

This commit is contained in:
ChunkyProgrammer 2021-09-05 08:12:46 -04:00 committed by GitHub
commit d65d0b2fae
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 213 additions and 155 deletions

View file

@ -12,7 +12,7 @@
"@fortawesome/free-brands-svg-icons": "^5.15.4", "@fortawesome/free-brands-svg-icons": "^5.15.4",
"@fortawesome/free-solid-svg-icons": "^5.15.4", "@fortawesome/free-solid-svg-icons": "^5.15.4",
"@fortawesome/vue-fontawesome": "^3.0.0-4", "@fortawesome/vue-fontawesome": "^3.0.0-4",
"core-js": "3.16.4", "core-js": "3.17.2",
"css-loader": "^6.2.0", "css-loader": "^6.2.0",
"dompurify": "^2.3.1", "dompurify": "^2.3.1",
"hotkeys-js": "^3.8.7", "hotkeys-js": "^3.8.7",
@ -21,7 +21,7 @@
"register-service-worker": "^1.7.1", "register-service-worker": "^1.7.1",
"shaka-player": "3.2.0", "shaka-player": "3.2.0",
"uikit": "3.7.2", "uikit": "3.7.2",
"vue": "^3.1.5", "vue": "^3.2.8",
"vue-i18n": "^9.1.7", "vue-i18n": "^9.1.7",
"vue-router": "^4.0.11", "vue-router": "^4.0.11",
"xml-js": "^1.6.11" "xml-js": "^1.6.11"
@ -31,7 +31,7 @@
"@vue/cli-plugin-eslint": "^4.5.13", "@vue/cli-plugin-eslint": "^4.5.13",
"@vue/cli-plugin-pwa": "^4.5.13", "@vue/cli-plugin-pwa": "^4.5.13",
"@vue/cli-service": "^4.5.13", "@vue/cli-service": "^4.5.13",
"@vue/compiler-sfc": "3.2.6", "@vue/compiler-sfc": "3.2.8",
"babel-eslint": "^10.1.0", "babel-eslint": "^10.1.0",
"eslint": "^7.32.0", "eslint": "^7.32.0",
"eslint-plugin-vue": "^7.17.0" "eslint-plugin-vue": "^7.17.0"

View file

@ -1,12 +1,23 @@
<template> <template>
<h1 class="uk-text-bold uk-text-center" v-t="'titles.feed'" /> <h1 class="uk-text-bold uk-text-center" v-t="'titles.feed'" />
<small>You can import subscriptions from <router-link to="/import">here</router-link>.</small> <button
v-if="authenticated"
@click="exportHandler"
class="uk-button uk-button-small"
style="background: #222; margin-right: 0.5rem"
type="button"
>
<router-link to="/subscriptions">
Subscriptions
</router-link>
</button>
<br /> <span>
<router-link to="/subscriptions" class="uk-text-center" v-t="'actions.view_subscriptions'" /> <a :href="getRssUrl"><font-awesome-icon icon="rss" style="padding-top: 0.2rem"></font-awesome-icon></a>
</span>
<br /> <span class="uk-align-right">
{{ $t("actions.sort_by") }} {{ $t("actions.sort_by") }}
<select class="uk-select uk-width-auto" v-model="selectedSort" @change="onChange()"> <select class="uk-select uk-width-auto" v-model="selectedSort" @change="onChange()">
<option value="descending" v-t="'actions.most_recent'" /> <option value="descending" v-t="'actions.most_recent'" />
@ -14,10 +25,7 @@
<option value="channel_ascending" v-t="'actions.channel_name_asc'" /> <option value="channel_ascending" v-t="'actions.channel_name_asc'" />
<option value="channel_descending" v-t="'actions.channel_name_desc'" /> <option value="channel_descending" v-t="'actions.channel_name_desc'" />
</select> </select>
</span>
<div class="uk-align-right">
<a :href="getRssUrl"><font-awesome-icon icon="rss"></font-awesome-icon></a>
</div>
<hr /> <hr />

View file

@ -1,14 +1,16 @@
<template> <template>
<h1 class="uk-text-bold uk-text-center">Watch History</h1> <h1 class="uk-text-bold uk-text-center">Watch History</h1>
<br />
{{ $t("actions.sort_by") }} <div style="text-align: right">
{{ $t("actions.sort_by") }}:
<select class="uk-select uk-width-auto" v-model="selectedSort" @change="onChange()"> <select class="uk-select uk-width-auto" v-model="selectedSort" @change="onChange()">
<option value="descending" v-t="'actions.most_recent'" /> <option value="descending" v-t="'actions.most_recent'" />
<option value="ascending" v-t="'actions.least_recent'" /> <option value="ascending" v-t="'actions.least_recent'" />
<option value="channel_ascending" v-t="'actions.channel_name_asc'" /> <option value="channel_ascending" v-t="'actions.channel_name_asc'" />
<option value="channel_descending" v-t="'actions.channel_name_desc'" /> <option value="channel_descending" v-t="'actions.channel_name_desc'" />
</select> </select>
</div>
<hr /> <hr />
@ -22,6 +24,8 @@
<VideoItem :video="video" /> <VideoItem :video="video" />
</div> </div>
</div> </div>
<br />
</template> </template>
<script> <script>

View file

@ -95,7 +95,9 @@ export default {
const MseSupport = window.MediaSource !== undefined; const MseSupport = window.MediaSource !== undefined;
const lbry = this.video.videoStreams.filter(stream => stream.quality === "LBRY")[0]; const lbry = this.getPreferenceBoolean("disableLBRY", false)
? null
: this.video.videoStreams.filter(stream => stream.quality === "LBRY")[0];
var uri; var uri;
@ -112,6 +114,12 @@ export default {
} else uri = this.video.dash; } else uri = this.video.dash;
} else if (lbry) { } else if (lbry) {
uri = lbry.url; uri = lbry.url;
if (this.getPreferenceBoolean("proxyLBRY", false)) {
const url = new URL(uri);
url.searchParams.set("host", url.host);
url.host = new URL(this.video.proxyUrl).host;
uri = url.toString();
}
} else { } else {
uri = this.video.videoStreams.filter(stream => stream.codec == null).slice(-1)[0].url; uri = this.video.videoStreams.filter(stream => stream.codec == null).slice(-1)[0].url;
} }

View file

@ -106,6 +106,14 @@
<option value="vp9">VP9</option> <option value="vp9">VP9</option>
<option value="avc">AVC (h.264)</option> <option value="avc">AVC (h.264)</option>
</select> </select>
<br />
<b v-t="'actions.disable_lbry'" />
<br />
<input class="uk-checkbox" v-model="disableLBRY" @change="onChange($event)" type="checkbox" />
<br />
<b v-t="'actions.enable_lbry_proxy'" />
<br />
<input class="uk-checkbox" v-model="proxyLBRY" @change="onChange($event)" type="checkbox" />
<h2 v-t="'actions.instances_list'" /> <h2 v-t="'actions.instances_list'" />
<table class="uk-table"> <table class="uk-table">
<thead> <thead>
@ -181,6 +189,8 @@ export default {
{ code: "tr", name: "Turkish" }, { code: "tr", name: "Turkish" },
], ],
enabledCodecs: ["av1", "vp9", "avc"], enabledCodecs: ["av1", "vp9", "avc"],
disableLBRY: false,
proxyLBRY: false,
}; };
}, },
activated() { activated() {
@ -267,6 +277,8 @@ export default {
this.watchHistory = this.getPreferenceBoolean("watchHistory", false); this.watchHistory = this.getPreferenceBoolean("watchHistory", false);
this.selectedLanguage = this.getPreferenceString("hl", "en"); this.selectedLanguage = this.getPreferenceString("hl", "en");
this.enabledCodecs = this.getPreferenceString("enabledCodecs", "av1,vp9,avc").split(","); this.enabledCodecs = this.getPreferenceString("enabledCodecs", "av1,vp9,avc").split(",");
this.disableLBRY = this.getPreferenceBoolean("disableLBRY", false);
this.proxyLBRY = this.getPreferenceBoolean("proxyLBRY", false);
} }
}, },
methods: { methods: {
@ -307,6 +319,8 @@ export default {
localStorage.setItem("watchHistory", this.watchHistory); localStorage.setItem("watchHistory", this.watchHistory);
localStorage.setItem("hl", this.selectedLanguage); localStorage.setItem("hl", this.selectedLanguage);
localStorage.setItem("enabledCodecs", this.enabledCodecs.join(",")); localStorage.setItem("enabledCodecs", this.enabledCodecs.join(","));
localStorage.setItem("disableLBRY", this.disableLBRY);
localStorage.setItem("proxyLBRY", this.proxyLBRY);
if (shouldReload) window.location.reload(); if (shouldReload) window.location.reload();
} }

View file

@ -25,15 +25,11 @@
v-bind:key="result.url" v-bind:key="result.url"
v-for="result in results.items" v-for="result in results.items"
> >
<div class="uk-text-secondary"> <VideoItem v-if="shouldUseVideoItem(result)" :video="result" height="94" width="168" />
<div class="uk-text-secondary" v-if="!shouldUseVideoItem(result)">
<router-link class="uk-text-emphasis" v-bind:to="result.url"> <router-link class="uk-text-emphasis" v-bind:to="result.url">
<div class="uk-position-relative"> <div class="uk-position-relative">
<img style="width: 100%" v-bind:src="result.thumbnail" loading="lazy" /> <img style="width: 100%" v-bind:src="result.thumbnail" loading="lazy" />
<span
v-if="result.duration"
class="uk-label uk-border-rounded uk-position-absolute uk-dark"
style="bottom: 5px; right: 5px; opacity: .95;"
>{{ timeFormat(result.duration) }}</span>
</div> </div>
<p> <p>
{{ result.name }}&thinsp;<font-awesome-icon {{ result.name }}&thinsp;<font-awesome-icon
@ -52,25 +48,18 @@
</p> </p>
</router-link> </router-link>
<b v-if="result.uploadDate">
{{ result.uploadDate }}
</b>
<a v-if="result.uploaderName" class="uk-text-muted">{{ result.uploaderName }}</a> <a v-if="result.uploaderName" class="uk-text-muted">{{ result.uploaderName }}</a>
<b v-if="result.videos >= 0"><br v-if="result.uploaderName" />{{ result.videos }} {{ $t("video.videos") }}</b> <b v-if="result.videos >= 0"><br v-if="result.uploaderName" />{{ result.videos }} {{ $t("video.videos") }}</b>
<br /> <br />
<b v-if="result.views >= 0" class="uk-text-small">
<font-awesome-icon icon="eye"></font-awesome-icon>
{{ numberFormat(result.views) }} {{ $t("video.views") }}
</b>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import VideoItem from "@/components/VideoItem.vue";
export default { export default {
data() { data() {
return { return {
@ -124,6 +113,12 @@ export default {
}); });
} }
}, },
shouldUseVideoItem(item) {
return item.title;
},
},
components: {
VideoItem,
}, },
}; };
</script> </script>

View file

@ -1,32 +1,51 @@
<template> <template>
<h1 class="uk-text-bold uk-text-center">Subscriptions</h1> <h1 class="uk-text-bold uk-text-center">Subscriptions</h1>
<div style="text-align: center">
<button
v-if="authenticated"
class="uk-button uk-button-small"
style="background: #222; margin-right: 0.5rem"
type="button"
>
<router-link to="/import">
Import from JSON
</router-link>
</button>
<button <button
v-if="authenticated" v-if="authenticated"
@click="exportHandler" @click="exportHandler"
class="uk-button uk-button-small" class="uk-button uk-button-small"
style="background: #222" style="background: #222; color: white"
type="button" type="button"
> >
{{ $t("actions.export_to_json") }} {{ $t("actions.export_to_json") }}
</button> </button>
<div :key="subscription.url" v-for="subscription in subscriptions"> </div>
<hr />
<div :key="subscription.url" v-for="subscription in subscriptions" style="text-align: center;">
<div class="uk-text-primary" :style="[{ background: backgroundColor }]"> <div class="uk-text-primary" :style="[{ background: backgroundColor }]">
<a :href="subscription.url"> <a :href="subscription.url">
<img :src="subscription.avatar" class="uk-margin-small-right uk-border-circle" width="50" height="50" /> <img :src="subscription.avatar" class="uk-margin-small-right uk-border-circle" width="96" height="96" />
<span class="uk-text-truncate">{{ subscription.name }}</span> <span class="uk-text-large" style="width: 30rem; display: inline-block; text-align: center; margin-left: 6rem">{{ subscription.name }}</span>
</a> </a>
<button <button
class="uk-button uk-button-small" class="uk-button uk-button-large"
style="background: #222" style="background: #222; margin-left: 0.5rem; width: 185px"
type="button" type="button"
@click="handleButton(subscription)" @click="handleButton(subscription)"
> >
{{ subscription.subscribed ? $t("actions.unsubscribe") : $t("actions.subscribe") }} {{ subscription.subscribed ? $t("actions.unsubscribe") : $t("actions.subscribe") }}
</button> </button>
</div> </div>
<br />
</div> </div>
<br />
</template> </template>
<script> <script>

View file

@ -23,38 +23,46 @@
>{{ $t("video.watched") }}</span >{{ $t("video.watched") }}</span
> >
</div> </div>
<p class="uk-text-break">{{ video.title }}</p>
<div>
<p class="uk-text-break" style="padding-top: 0.5rem; margin-bottom: 0.5rem">{{ video.title }}</p>
</div>
</router-link> </router-link>
<div :class="{ 'uk-align-left': !(video.views >= 0 || video.uploadedDate) }"> <div class="uk-align-right" style="margin-left: 0; margin-bottom: 0; display: inline-block; width: 10%">
<div v-if="video.uploaderUrl && video.uploaderName && !hideChannel"> <router-link :to="video.url + '&listen=1'">
<font-awesome-icon icon="headphones"></font-awesome-icon>
</router-link>
</div>
<div v-if="video.uploaderUrl && video.uploaderName && !hideChannel" style="display: flex; flex-flow: row; height: 15%">
<router-link class="uk-link-muted" :to="video.uploaderUrl">
<img v-if="video.uploaderAvatar" :src="video.uploaderAvatar" loading="lazy" class="uk-border-circle" style="margin-right: 0.5rem; margin-top:0.5rem; width: 32px; height: 32px;" />
</router-link>
<div>
<router-link class="uk-link-muted" :to="video.uploaderUrl"> <router-link class="uk-link-muted" :to="video.uploaderUrl">
{{ video.uploaderName }}&thinsp;<font-awesome-icon {{ video.uploaderName }}&thinsp;<font-awesome-icon
v-if="video.uploaderVerified" v-if="video.uploaderVerified"
icon="check" icon="check"
></font-awesome-icon> ></font-awesome-icon>
</router-link> </router-link>
<br />
</div>
</div>
<b v-if="video.views >= 0 || video.uploadedDate" class="uk-text-small uk-align-left">
<div v-if="video.views >= 0">
<font-awesome-icon icon="eye"></font-awesome-icon>
{{ numberFormat(video.views) }} {{ $t("video.views") }}
<br /> <br />
</div>
<div v-if="video.uploadedDate"> <b v-if="video.views >= 0 || video.uploadedDate" class="uk-text-small">
<span v-if="video.views >= 0">
<font-awesome-icon icon="eye"></font-awesome-icon>
{{ numberFormat(video.views) }}
</span>
<span v-if="video.uploadedDate">
{{ video.uploadedDate }} {{ video.uploadedDate }}
</div> </span>
<div v-if="video.uploaded"> <span v-if="video.uploaded">
{{ timeAgo(video.uploaded) }} {{ timeAgo(video.uploaded) }}
</div> </span>
</b> </b>
<div class="uk-align-right"> </div>
<router-link :to="video.url + '&listen=1'">
<font-awesome-icon icon="headphones"></font-awesome-icon>
</router-link>
</div> </div>
</div> </div>
</template> </template>

View file

@ -57,9 +57,9 @@
<div class="uk-flex uk-flex-middle uk-margin-small-top"> <div class="uk-flex uk-flex-middle uk-margin-small-top">
<img :src="video.uploaderAvatar" loading="lazy" class="uk-border-circle" /> <img :src="video.uploaderAvatar" loading="lazy" class="uk-border-circle" />
<router-link class="uk-text-bold uk-margin-small-left" v-if="video.uploaderUrl" :to="video.uploaderUrl"> <router-link class="uk-link uk-margin-small-left" v-if="video.uploaderUrl" :to="video.uploaderUrl">
<a>{{ video.uploader }}</a> {{ video.uploader }} </router-link
</router-link> >&thinsp;<font-awesome-icon v-if="video.uploaderVerified" icon="check"></font-awesome-icon>
<div class="uk-flex-1"></div> <div class="uk-flex-1"></div>
<button <button
v-if="authenticated" v-if="authenticated"

View file

@ -54,7 +54,9 @@
"auto_play_next_video": "Auto Play next Video", "auto_play_next_video": "Auto Play next Video",
"donations": "Donations", "donations": "Donations",
"minimize_description": "Minimize Description", "minimize_description": "Minimize Description",
"show_description": "Show Description" "show_description": "Show Description",
"disable_lbry": "Disable LBRY for Streaming",
"enable_lbry_proxy": "Enable Proxy for LBRY"
}, },
"comment": { "comment": {
"pinned_by": "Pinned by" "pinned_by": "Pinned by"

128
yarn.lock
View file

@ -1513,38 +1513,38 @@
semver "^6.1.0" semver "^6.1.0"
strip-ansi "^6.0.0" strip-ansi "^6.0.0"
"@vue/compiler-core@3.2.6": "@vue/compiler-core@3.2.8":
version "3.2.6" version "3.2.8"
resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.6.tgz#7162bb0670273f04566af0d353009187ab577915" resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.8.tgz#13b2386bdb03455c9f6c6af2f3468561a5ae5b1d"
integrity sha512-vbwnz7+OhtLO5p5i630fTuQCL+MlUpEMTKHuX+RfetQ+3pFCkItt2JUH+9yMaBG2Hkz6av+T9mwN/acvtIwpbw== integrity sha512-Sx8qJ030+QM/NakUrkQuUGCeDEb+0d0AgFOl5W4qRvR6e+YgLnW2ew0jREf4T1hak9Fdk8Edl67StECHrhEuew==
dependencies: dependencies:
"@babel/parser" "^7.15.0" "@babel/parser" "^7.15.0"
"@babel/types" "^7.15.0" "@babel/types" "^7.15.0"
"@vue/shared" "3.2.6" "@vue/shared" "3.2.8"
estree-walker "^2.0.2" estree-walker "^2.0.2"
source-map "^0.6.1" source-map "^0.6.1"
"@vue/compiler-dom@3.2.6": "@vue/compiler-dom@3.2.8":
version "3.2.6" version "3.2.8"
resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.6.tgz#3764d7fe1a696e39fb2a3c9d638da0749e369b2d" resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.8.tgz#69bc9e08928a12295c31299067f18d87301981a9"
integrity sha512-+a/3oBAzFIXhHt8L5IHJOTP4a5egzvpXYyi13jR7CUYOR1S+Zzv7vBWKYBnKyJLwnrxTZnTQVjeHCgJq743XKg== integrity sha512-nxBW6k8FMWQ74294CRbqR+iEJRO5vIjx85I3YCOyZFD6FsDHyFL60g76TcJzucp+F2XXIDaYz+A+F4gQlDatjw==
dependencies: dependencies:
"@vue/compiler-core" "3.2.6" "@vue/compiler-core" "3.2.8"
"@vue/shared" "3.2.6" "@vue/shared" "3.2.8"
"@vue/compiler-sfc@3.2.6": "@vue/compiler-sfc@3.2.8":
version "3.2.6" version "3.2.8"
resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.6.tgz#d6ab7410cff57081ab627b15a1ea51a1072c7cf1" resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.8.tgz#23699f69d38b1c32ec54f8b470f3e6375ffc6b6e"
integrity sha512-Ariz1eDsf+2fw6oWXVwnBNtfKHav72RjlWXpEgozYBLnfRPzP+7jhJRw4Nq0OjSsLx2HqjF3QX7HutTjYB0/eA== integrity sha512-XClueQAXoWtN2EToKgfYH9FCL70Ac4bxx6OZFZzxYSg1bei8IB9srJP1UOfnJb2IpnM1heikAz1dp1HI1wHcyQ==
dependencies: dependencies:
"@babel/parser" "^7.15.0" "@babel/parser" "^7.15.0"
"@babel/types" "^7.15.0" "@babel/types" "^7.15.0"
"@types/estree" "^0.0.48" "@types/estree" "^0.0.48"
"@vue/compiler-core" "3.2.6" "@vue/compiler-core" "3.2.8"
"@vue/compiler-dom" "3.2.6" "@vue/compiler-dom" "3.2.8"
"@vue/compiler-ssr" "3.2.6" "@vue/compiler-ssr" "3.2.8"
"@vue/ref-transform" "3.2.6" "@vue/ref-transform" "3.2.8"
"@vue/shared" "3.2.6" "@vue/shared" "3.2.8"
consolidate "^0.16.0" consolidate "^0.16.0"
estree-walker "^2.0.2" estree-walker "^2.0.2"
hash-sum "^2.0.0" hash-sum "^2.0.0"
@ -1556,13 +1556,13 @@
postcss-selector-parser "^6.0.4" postcss-selector-parser "^6.0.4"
source-map "^0.6.1" source-map "^0.6.1"
"@vue/compiler-ssr@3.2.6": "@vue/compiler-ssr@3.2.8":
version "3.2.6" version "3.2.8"
resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.6.tgz#cadcf199859fa00739f4275b4c85970e4b0abe7d" resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.8.tgz#99733532f44d77144ce1e3b853f2fa08ba394e7a"
integrity sha512-A7IKRKHSyPnTC4w1FxHkjzoyjXInsXkcs/oX22nBQ+6AWlXj2Tt1le96CWPOXy5vYlsTYkF1IgfBaKIdeN/39g== integrity sha512-QqyiFRiIl55W0abDNQ6cNG/7iIfBHmbXVtssUAjX3IlI87ELeT0xackmrCyTSnfIX12ixljg9AN0COIZwlvt5A==
dependencies: dependencies:
"@vue/compiler-dom" "3.2.6" "@vue/compiler-dom" "3.2.8"
"@vue/shared" "3.2.6" "@vue/shared" "3.2.8"
"@vue/component-compiler-utils@^3.1.0", "@vue/component-compiler-utils@^3.1.2": "@vue/component-compiler-utils@^3.1.0", "@vue/component-compiler-utils@^3.1.2":
version "3.2.2" version "3.2.2"
@ -1590,45 +1590,45 @@
resolved "https://registry.yarnpkg.com/@vue/preload-webpack-plugin/-/preload-webpack-plugin-1.1.2.tgz#ceb924b4ecb3b9c43871c7a429a02f8423e621ab" resolved "https://registry.yarnpkg.com/@vue/preload-webpack-plugin/-/preload-webpack-plugin-1.1.2.tgz#ceb924b4ecb3b9c43871c7a429a02f8423e621ab"
integrity sha512-LIZMuJk38pk9U9Ur4YzHjlIyMuxPlACdBIHH9/nGYVTsaGKOSnSuELiE8vS9wa+dJpIYspYUOqk+L1Q4pgHQHQ== integrity sha512-LIZMuJk38pk9U9Ur4YzHjlIyMuxPlACdBIHH9/nGYVTsaGKOSnSuELiE8vS9wa+dJpIYspYUOqk+L1Q4pgHQHQ==
"@vue/reactivity@3.2.6": "@vue/reactivity@3.2.8":
version "3.2.6" version "3.2.8"
resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.6.tgz#b8993fa6f48545178e588e25a9c9431a1c1b7d50" resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.8.tgz#b27200ccfaa06f312ac467b12a38161377c557ed"
integrity sha512-8vIDD2wpCnYisNNZjmcIj+Rixn0uhZNY3G1vzlgdVdLygeRSuFjkmnZk6WwvGzUWpKfnG0e/NUySM3mVi59hAA== integrity sha512-/Hj3Uz28SG+xB5SDWPOXUs0emvHkq82EmTgk44/plTVFeswCZ3i3Hd7WmsrPT4rGajlDKd5uqMmW0ith1ED0FA==
dependencies: dependencies:
"@vue/shared" "3.2.6" "@vue/shared" "3.2.8"
"@vue/ref-transform@3.2.6": "@vue/ref-transform@3.2.8":
version "3.2.6" version "3.2.8"
resolved "https://registry.yarnpkg.com/@vue/ref-transform/-/ref-transform-3.2.6.tgz#30b5f1fa77daf9894bc23e6a5a0e3586a4a796b8" resolved "https://registry.yarnpkg.com/@vue/ref-transform/-/ref-transform-3.2.8.tgz#a527047bab43ce50ef3d400ce71312ab30f825dc"
integrity sha512-ie39+Y4nbirDLvH+WEq6Eo/l3n3mFATayqR+kEMSphrtMW6Uh/eEMx1Gk2Jnf82zmj3VLRq7dnmPx72JLcBYkQ== integrity sha512-9LdADd4JM3klt+b2qNT8a7b7JvBETNBy2Btv5rDzyPrAVS4Vrw+1WWay6gZBgnxfJ9TPSvG8f/9zu6gNGHmJLA==
dependencies: dependencies:
"@babel/parser" "^7.15.0" "@babel/parser" "^7.15.0"
"@vue/compiler-core" "3.2.6" "@vue/compiler-core" "3.2.8"
"@vue/shared" "3.2.6" "@vue/shared" "3.2.8"
estree-walker "^2.0.2" estree-walker "^2.0.2"
magic-string "^0.25.7" magic-string "^0.25.7"
"@vue/runtime-core@3.2.6": "@vue/runtime-core@3.2.8":
version "3.2.6" version "3.2.8"
resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.6.tgz#376baeef7fe02a62377d46d0d0a8ab9510db1d8e" resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.8.tgz#8a2342c0baa0fee192f819a3bdc19547d7430b88"
integrity sha512-3mqtgpj/YSGFxtvTufSERRApo92B16JNNxz9p+5eG6PPuqTmuRJz214MqhKBEgLEAIQ6R6YCbd83ZDtjQnyw2g== integrity sha512-hwzXLGw1njBEY5JSyRXIIdCtzMFFF6F38WcKMmoIE3p7da30jEbWt8EwwrBomjT8ZbqzElOGlewBcnXNOiiIUg==
dependencies: dependencies:
"@vue/reactivity" "3.2.6" "@vue/reactivity" "3.2.8"
"@vue/shared" "3.2.6" "@vue/shared" "3.2.8"
"@vue/runtime-dom@3.2.6": "@vue/runtime-dom@3.2.8":
version "3.2.6" version "3.2.8"
resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.6.tgz#0f74dbca84d56c222fbfbd53415b260386859a3b" resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.8.tgz#c6631b507049d39844b0434e81df1aa79efcc6cb"
integrity sha512-fq33urnP0BNCGm2O3KCzkJlKIHI80C94HJ4qDZbjsTtxyOn5IHqwKSqXVN3RQvO6epcQH+sWS+JNwcNDPzoasg== integrity sha512-A/aRrlGLJ5y4Z7eNbnO/xHwx2RiPijQo7D3OIwESroG3HNP+dpuoqamajo5TXS9ZGjbMOih82COoe7xb9P4BZw==
dependencies: dependencies:
"@vue/runtime-core" "3.2.6" "@vue/runtime-core" "3.2.8"
"@vue/shared" "3.2.6" "@vue/shared" "3.2.8"
csstype "^2.6.8" csstype "^2.6.8"
"@vue/shared@3.2.6": "@vue/shared@3.2.8":
version "3.2.6" version "3.2.8"
resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.6.tgz#2c22bae88fe2b7b59fa68a9c9c4cd60bae2c1794" resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.8.tgz#2f918e330aeb3f56ab1031ca60a5b30672512457"
integrity sha512-uwX0Qs2e6kdF+WmxwuxJxOnKs/wEkMArtYpHSm7W+VY/23Tl8syMRyjnzEeXrNCAP0/8HZxEGkHJsjPEDNRuHw== integrity sha512-E2DQQnG7Qr4GwTs3GlfPPlHliGVADoufTnhpwfoViw7JlyLMmYtjfnTwM6nXAwvSJWiF7D+7AxpnWBBT3VWo6Q==
"@vue/web-component-wrapper@^1.2.0": "@vue/web-component-wrapper@^1.2.0":
version "1.3.0" version "1.3.0"
@ -2983,10 +2983,10 @@ core-js-compat@^3.14.0, core-js-compat@^3.16.0, core-js-compat@^3.6.5:
browserslist "^4.16.8" browserslist "^4.16.8"
semver "7.0.0" semver "7.0.0"
core-js@3.16.4, core-js@^3.6.5: core-js@3.17.2, core-js@^3.6.5:
version "3.16.4" version "3.17.2"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.16.4.tgz#0fb1029a554fc2688c0963d7c900e188188a78e0" resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.17.2.tgz#f960eae710dc62c29cca93d5332e3660e289db10"
integrity sha512-Tq4GVE6XCjE+hcyW6hPy0ofN3hwtLudz5ZRdrlCnsnD/xkm/PWQRudzYHiKgZKUcefV6Q57fhDHjZHJP5dpfSg== integrity sha512-XkbXqhcXeMHPRk2ItS+zQYliAMilea2euoMsnpRRdDad6b2VY6CQQcwz1K8AnWesfw4p165RzY0bTnr3UrbYiA==
core-js@^2.4.0: core-js@^2.4.0:
version "2.6.12" version "2.6.12"
@ -8795,14 +8795,14 @@ vue-template-es2015-compiler@^1.9.0:
resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825" resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825"
integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw== integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==
vue@^3.1.5: vue@^3.2.8:
version "3.2.6" version "3.2.8"
resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.6.tgz#c71445078751f458648fd8fb3a2da975507d03d2" resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.8.tgz#9124e4c31ebc9c592b2b9f293df5c9a88a78e944"
integrity sha512-Zlb3LMemQS3Xxa6xPsecu45bNjr1hxO8Bh5FUmE0Dr6Ot0znZBKiM47rK6O7FTcakxOnvVN+NTXWJF6u8ajpCQ== integrity sha512-x7lwdnOSkceHQUXRVVHBaZzcp6v7M2CYtSZH75zZaT1mTjB4plC4KZHKP/5jAvdqOLBHZGwDSMkWXm3YbAufrA==
dependencies: dependencies:
"@vue/compiler-dom" "3.2.6" "@vue/compiler-dom" "3.2.8"
"@vue/runtime-dom" "3.2.6" "@vue/runtime-dom" "3.2.8"
"@vue/shared" "3.2.6" "@vue/shared" "3.2.8"
watchpack-chokidar2@^2.0.1: watchpack-chokidar2@^2.0.1:
version "2.0.1" version "2.0.1"