Merge remote-tracking branch 'origin/develop' into misc-style-fixes-or-changes

+ better comment
This commit is contained in:
Henry Jameson 2025-08-21 17:15:50 +03:00
commit 17c04d4d83
17 changed files with 521 additions and 140 deletions

View file

@ -0,0 +1 @@
Allow copying an emoji from a remote post into a local pack

View file

@ -0,0 +1 @@
Allow copying one emoji from a remote pack into a local pack

View file

@ -0,0 +1 @@
When an emoji is clicked in a post, show a popover with its name and a bigger image. Admins can also copy it to a local pack

View file

@ -17,12 +17,12 @@
"lint-fix": "eslint --fix src test/unit/specs test/e2e/specs" "lint-fix": "eslint --fix src test/unit/specs test/e2e/specs"
}, },
"dependencies": { "dependencies": {
"@babel/runtime": "7.28.2", "@babel/runtime": "7.28.3",
"@chenfengyuan/vue-qrcode": "2.0.0", "@chenfengyuan/vue-qrcode": "2.0.0",
"@fortawesome/fontawesome-svg-core": "6.7.2", "@fortawesome/fontawesome-svg-core": "6.7.2",
"@fortawesome/free-regular-svg-icons": "6.7.2", "@fortawesome/free-regular-svg-icons": "6.7.2",
"@fortawesome/free-solid-svg-icons": "6.7.2", "@fortawesome/free-solid-svg-icons": "6.7.2",
"@fortawesome/vue-fontawesome": "3.0.8", "@fortawesome/vue-fontawesome": "3.1.1",
"@kazvmoe-infra/pinch-zoom-element": "1.3.0", "@kazvmoe-infra/pinch-zoom-element": "1.3.0",
"@kazvmoe-infra/unicode-emoji-json": "0.4.0", "@kazvmoe-infra/unicode-emoji-json": "0.4.0",
"@ruffle-rs/ruffle": "0.1.0-nightly.2025.1.13", "@ruffle-rs/ruffle": "0.1.0-nightly.2025.1.13",
@ -54,24 +54,24 @@
"vuex": "4.1.0" "vuex": "4.1.0"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "7.28.0", "@babel/core": "7.28.3",
"@babel/eslint-parser": "7.28.0", "@babel/eslint-parser": "7.28.0",
"@babel/plugin-transform-runtime": "7.28.0", "@babel/plugin-transform-runtime": "7.28.3",
"@babel/preset-env": "7.28.0", "@babel/preset-env": "7.28.3",
"@babel/register": "7.27.1", "@babel/register": "7.28.3",
"@ungap/event-target": "0.2.4", "@ungap/event-target": "0.2.4",
"@vitejs/plugin-vue": "^5.2.1", "@vitejs/plugin-vue": "^5.2.1",
"@vitejs/plugin-vue-jsx": "^4.1.1", "@vitejs/plugin-vue-jsx": "^4.1.1",
"@vitest/browser": "^3.0.7", "@vitest/browser": "^3.0.7",
"@vitest/ui": "^3.0.7", "@vitest/ui": "^3.0.7",
"@vue/babel-helper-vue-jsx-merge-props": "1.4.0", "@vue/babel-helper-vue-jsx-merge-props": "1.4.0",
"@vue/babel-plugin-jsx": "1.4.0", "@vue/babel-plugin-jsx": "1.5.0",
"@vue/compiler-sfc": "3.5.18", "@vue/compiler-sfc": "3.5.18",
"@vue/test-utils": "2.4.6", "@vue/test-utils": "2.4.6",
"autoprefixer": "10.4.21", "autoprefixer": "10.4.21",
"babel-plugin-lodash": "3.3.4", "babel-plugin-lodash": "3.3.4",
"chai": "5.2.1", "chai": "5.2.1",
"chalk": "5.4.1", "chalk": "5.6.0",
"chromedriver": "135.0.4", "chromedriver": "135.0.4",
"connect-history-api-fallback": "2.0.0", "connect-history-api-fallback": "2.0.0",
"cross-spawn": "7.0.6", "cross-spawn": "7.0.6",
@ -81,16 +81,16 @@
"eslint-config-standard": "17.1.0", "eslint-config-standard": "17.1.0",
"eslint-formatter-friendly": "7.0.0", "eslint-formatter-friendly": "7.0.0",
"eslint-plugin-import": "2.31.0", "eslint-plugin-import": "2.31.0",
"eslint-plugin-n": "17.18.0", "eslint-plugin-n": "17.21.3",
"eslint-plugin-promise": "7.2.1", "eslint-plugin-promise": "7.2.1",
"eslint-plugin-vue": "10.1.0", "eslint-plugin-vue": "10.4.0",
"eventsource-polyfill": "0.9.6", "eventsource-polyfill": "0.9.6",
"express": "5.1.0", "express": "5.1.0",
"function-bind": "1.1.2", "function-bind": "1.1.2",
"http-proxy-middleware": "3.0.5", "http-proxy-middleware": "3.0.5",
"iso-639-1": "3.1.5", "iso-639-1": "3.1.5",
"lodash": "4.17.21", "lodash": "4.17.21",
"msw": "2.10.4", "msw": "2.10.5",
"nightwatch": "3.12.2", "nightwatch": "3.12.2",
"playwright": "1.52.0", "playwright": "1.52.0",
"postcss": "8.5.6", "postcss": "8.5.6",

View file

@ -19,6 +19,7 @@
:title="'@'+(user && user.screen_name_ui)" :title="'@'+(user && user.screen_name_ui)"
:html="htmlTitle" :html="htmlTitle"
:emoji="user.emoji || []" :emoji="user.emoji || []"
:is-local="user.is_local"
/> />
</div> </div>
</template> </template>

View file

@ -71,6 +71,7 @@
:title="'@'+notification.from_profile.screen_name_ui" :title="'@'+notification.from_profile.screen_name_ui"
:html="notification.from_profile.name_html" :html="notification.from_profile.name_html"
:emoji="notification.from_profile.emoji" :emoji="notification.from_profile.emoji"
:is-local="notification.from_profile.is_local"
/> />
</bdi> </bdi>
<!-- eslint-enable vue/no-v-html --> <!-- eslint-enable vue/no-v-html -->

View file

@ -2,7 +2,7 @@ import { unescape, flattenDeep } from 'lodash'
import { getTagName, processTextForEmoji, getAttrs } from 'src/services/html_converter/utility.service.js' import { getTagName, processTextForEmoji, getAttrs } from 'src/services/html_converter/utility.service.js'
import { convertHtmlToTree } from 'src/services/html_converter/html_tree_converter.service.js' import { convertHtmlToTree } from 'src/services/html_converter/html_tree_converter.service.js'
import { convertHtmlToLines } from 'src/services/html_converter/html_line_converter.service.js' import { convertHtmlToLines } from 'src/services/html_converter/html_line_converter.service.js'
import StillImage from 'src/components/still-image/still-image.vue' import StillImageEmojiPopover from 'src/components/still-image/still-image-emoji-popover.vue'
import MentionsLine from 'src/components/mentions_line/mentions_line.vue' import MentionsLine from 'src/components/mentions_line/mentions_line.vue'
import { MENTIONS_LIMIT } from 'src/components/mentions_line/mentions_line.js' import { MENTIONS_LIMIT } from 'src/components/mentions_line/mentions_line.js'
import HashtagLink from 'src/components/hashtag_link/hashtag_link.vue' import HashtagLink from 'src/components/hashtag_link/hashtag_link.vue'
@ -92,6 +92,18 @@ export default {
required: false, required: false,
type: Boolean, type: Boolean,
default: false default: false
},
/* Content comes from current instance
*
* This is used for emoji stealing popover.
* By default we assume it is, so that steal
* emoji button isn't shown where it probably
* should not be.
*/
isLocal: {
required: false,
type: Boolean,
default: true
} }
}, },
// NEVER EVER TOUCH DATA INSIDE RENDER // NEVER EVER TOUCH DATA INSIDE RENDER
@ -168,11 +180,14 @@ export default {
item, item,
this.emoji, this.emoji,
({ shortcode, url }) => { ({ shortcode, url }) => {
return <StillImage return <StillImageEmojiPopover
class="emoji img" class="emoji img"
src={url} src={url}
title={`:${shortcode}:`} title={`:${shortcode}:`}
alt={`:${shortcode}:`} alt={`:${shortcode}:`}
shortcode={shortcode}
isLocal={this.isLocal}
/> />
} }
)] )]

View file

@ -145,9 +145,9 @@ const EmojiTab = {
}) })
}, },
updatePackFiles (newFiles) { updatePackFiles (newFiles, packName) {
this.pack.files = newFiles this.knownPacks[packName].files = newFiles
this.sortPackFiles(this.packName) this.sortPackFiles(packName)
}, },
loadPacksPaginated (listFunction) { loadPacksPaginated (listFunction) {

View file

@ -387,11 +387,12 @@
ref="emojiPopovers" ref="emojiPopovers"
:key="shortcode" :key="shortcode"
placement="top" placement="top"
:title="$t('admin_dash.emoji.editing', [shortcode])" :title="$t(`admin_dash.emoji.${pack.remote === undefined ? 'editing' : 'copying'}`, [shortcode])"
:disabled="pack.remote !== undefined"
:shortcode="shortcode" :shortcode="shortcode"
:file="file" :file="file"
:pack-name="packName" :pack-name="packName"
:remote="pack.remote"
:known-local-packs="knownLocalPacks"
@update-pack-files="updatePackFiles" @update-pack-files="updatePackFiles"
@display-error="displayError" @display-error="displayError"
> >

View file

@ -7,7 +7,6 @@
popover-class="emoji-tab-edit-popover popover-default" popover-class="emoji-tab-edit-popover popover-default"
:bound-to="{ x: 'container' }" :bound-to="{ x: 'container' }"
:offset="{ y: 5 }" :offset="{ y: 5 }"
:disabled="disabled"
:class="{'emoji-unsaved': isEdited}" :class="{'emoji-unsaved': isEdited}"
> >
<template #trigger> <template #trigger>
@ -28,17 +27,26 @@
class="emoji" class="emoji"
/> />
<div <div v-if="newUpload" class="emoji-tab-popover-new-upload">
v-if="newUpload" <h4>{{ $t('admin_dash.emoji.emoji_source') }}</h4>
class="emoji-tab-popover-input"
> <div class="emoji-tab-popover-input">
<input <input
type="file" type="file"
accept="image/*" accept="image/*"
class="emoji-tab-popover-file input" class="emoji-tab-popover-file input"
@change="uploadFile = $event.target.files" @change="uploadFile = $event.target.files"
> >
</div>
<div class="emoji-tab-popover-input ">
<input
v-model="uploadURL"
:placeholder="$t('admin_dash.emoji.upload_url')"
class="emoji-data-input input"
>
</div>
</div> </div>
<div> <div>
<div class="emoji-tab-popover-input"> <div class="emoji-tab-popover-input">
<label> <label>
@ -63,16 +71,50 @@
</label> </label>
</div> </div>
<div
v-if="remote !== undefined"
class="emoji-tab-popover-input"
>
<label>
{{ $t('admin_dash.emoji.copy_to') }}
<SelectComponent
v-model="copyToPack"
class="form-control"
>
<option
value=""
disabled
hidden
>
{{ $t('admin_dash.emoji.emoji_pack') }}
</option>
<option
v-for="(pack, listPackName) in knownLocalPacks"
:key="listPackName"
:label="listPackName"
>
{{ listPackName }}
</option>
</SelectComponent>
</label>
</div>
<!--
For local emojis, disable the button if nothing was edited.
For remote emojis, also disable it if a local pack is not selected.
Remote emojis are processed by the same function that uploads new ones, as that is effectively what it does
-->
<button <button
class="button button-default btn" class="button button-default btn"
type="button" type="button"
:disabled="newUpload ? uploadFile.length == 0 : !isEdited" :disabled="saveButtonDisabled"
@click="newUpload ? uploadEmoji() : saveEditedEmoji()" @click="(newUpload || remote !== undefined) ? uploadEmoji() : saveEditedEmoji()"
> >
{{ $t('admin_dash.emoji.save') }} {{ $t('admin_dash.emoji.save') }}
</button> </button>
<template v-if="!newUpload"> <template v-if="!newUpload && remote === undefined">
<button <button
class="button button-default btn emoji-tab-popover-button" class="button button-default btn emoji-tab-popover-button"
type="button" type="button"
@ -107,19 +149,16 @@
import Popover from 'components/popover/popover.vue' import Popover from 'components/popover/popover.vue'
import ConfirmModal from 'components/confirm_modal/confirm_modal.vue' import ConfirmModal from 'components/confirm_modal/confirm_modal.vue'
import StillImage from 'components/still-image/still-image.vue' import StillImage from 'components/still-image/still-image.vue'
import SelectComponent from 'components/select/select.vue'
export default { export default {
components: { Popover, ConfirmModal, StillImage }, components: { Popover, ConfirmModal, StillImage, SelectComponent },
inject: ['emojiAddr'], inject: ['emojiAddr'],
props: { props: {
placement: { placement: {
type: String, type: String,
required: true required: true
}, },
disabled: {
type: Boolean,
default: false
},
newUpload: Boolean, newUpload: Boolean,
@ -140,21 +179,35 @@ export default {
type: String, type: String,
// Only exists when this is not a new upload // Only exists when this is not a new upload
default: '' default: ''
},
// Only exists for emojis from remote packs
remote: {
type: Object,
default: undefined
},
knownLocalPacks: {
type: Object,
default: undefined
} }
}, },
emits: ['updatePackFiles', 'displayError'], emits: ['updatePackFiles', 'displayError'],
data () { data () {
return { return {
uploadFile: [], uploadFile: [],
uploadURL: '',
editedShortcode: this.shortcode, editedShortcode: this.shortcode,
editedFile: this.file, editedFile: this.file,
deleteModalVisible: false deleteModalVisible: false,
copyToPack: ''
} }
}, },
computed: { computed: {
emojiPreview () { emojiPreview () {
if (this.newUpload && this.uploadFile.length > 0) { if (this.newUpload && this.uploadFile.length > 0) {
return URL.createObjectURL(this.uploadFile[0]) return URL.createObjectURL(this.uploadFile[0])
} else if (this.newUpload && this.uploadURL !== '') {
return this.uploadURL
} else if (!this.newUpload) { } else if (!this.newUpload) {
return this.emojiAddr(this.file) return this.emojiAddr(this.file)
} }
@ -163,6 +216,12 @@ export default {
}, },
isEdited () { isEdited () {
return !this.newUpload && (this.editedShortcode !== this.shortcode || this.editedFile !== this.file) return !this.newUpload && (this.editedShortcode !== this.shortcode || this.editedFile !== this.file)
},
saveButtonDisabled() {
if (this.remote === undefined)
return this.newUpload ? (this.uploadURL === "" && this.uploadFile.length == 0) : !this.isEdited
else
return this.copyToPack === ""
} }
}, },
methods: { methods: {
@ -181,9 +240,12 @@ export default {
}).then(resp => this.$emit('updatePackFiles', resp)) }).then(resp => this.$emit('updatePackFiles', resp))
}, },
uploadEmoji () { uploadEmoji () {
let packName = this.remote === undefined ? this.packName : this.copyToPack
this.$store.state.api.backendInteractor.addNewEmojiFile({ this.$store.state.api.backendInteractor.addNewEmojiFile({
packName: this.packName, packName: packName,
file: this.uploadFile[0], file: this.remote === undefined
? (this.uploadURL !== "" ? this.uploadURL : this.uploadFile[0])
: this.emojiAddr(this.file),
shortcode: this.editedShortcode, shortcode: this.editedShortcode,
filename: this.editedFile filename: this.editedFile
}).then(resp => resp.json()).then(resp => { }).then(resp => resp.json()).then(resp => {
@ -192,7 +254,7 @@ export default {
return return
} }
this.$emit('updatePackFiles', resp) this.$emit('updatePackFiles', resp, packName)
this.$refs.emojiPopover.hidePopover() this.$refs.emojiPopover.hidePopover()
this.editedFile = '' this.editedFile = ''
@ -215,7 +277,7 @@ export default {
return return
} }
this.$emit('updatePackFiles', resp) this.$emit('updatePackFiles', resp, this.packName)
}) })
} }
} }
@ -228,9 +290,22 @@ export default {
padding-right: 0.5em; padding-right: 0.5em;
padding-bottom: 0.5em; padding-bottom: 0.5em;
.emoji-tab-popover-new-upload {
margin-bottom: 2em;
}
.emoji { .emoji {
width: 2.3em; width: 2.3em;
height: 2.3em; height: 2.3em;
} }
.Select {
display: inline-block;
}
h4 {
margin-bottom: 1em;
margin-top: 1em;
}
} }
</style> </style>

View file

@ -79,6 +79,7 @@
<RichContent <RichContent
:html="retweeterHtml" :html="retweeterHtml"
:emoji="retweeterUser.emoji" :emoji="retweeterUser.emoji"
:is-local="retweeterUser.is_local"
/> />
</router-link> </router-link>
<router-link <router-link
@ -139,6 +140,7 @@
<RichContent <RichContent
:html="status.user.name" :html="status.user.name"
:emoji="status.user.emoji" :emoji="status.user.emoji"
:is-local="status.user.is_local"
/> />
</h4> </h4>
<h4 <h4

View file

@ -18,8 +18,8 @@ library.add(
faPollH faPollH
) )
const StatusContent = { const StatusBody = {
name: 'StatusContent', name: 'StatusBody',
props: [ props: [
'compact', 'compact',
'collapse', // replaces newlines with spaces 'collapse', // replaces newlines with spaces
@ -150,4 +150,4 @@ const StatusContent = {
} }
} }
export default StatusContent export default StatusBody

View file

@ -14,6 +14,7 @@
:faint="compact" :faint="compact"
:html="status.summary_raw_html" :html="status.summary_raw_html"
:emoji="status.emojis" :emoji="status.emojis"
:is-local="status.isLocal"
/> />
<button <button
v-show="longSubject && showingLongSubject" v-show="longSubject && showingLongSubject"
@ -45,6 +46,7 @@
:faint="compact" :faint="compact"
:greentext="mergedConfig.greentext" :greentext="mergedConfig.greentext"
:attentions="status.attentions" :attentions="status.attentions"
:is-local="status.is_local"
@parse-ready="onParseReady" @parse-ready="onParseReady"
/> />
<div <div

View file

@ -0,0 +1,189 @@
<template>
<Popover
ref="emojiPopover"
trigger="click"
placement="top"
:bound-to="{ x: 'container' }"
:offset="{ y: 10 }"
@show="fetchEmojiPacksIfAdmin"
>
<template #trigger>
<StillImage v-bind="$attrs" />
</template>
<template #content>
<div class="emoji-popover">
<h3>{{ $attrs.title }}</h3>
<div class="emoji-popover-centered">
<StillImage
class="emoji"
v-bind="$attrs"
/>
</div>
<div v-if="isUserAdmin && !isLocal">
<button
class="button button-default btn emoji-popover-button"
type="button"
@click="copyToLocalPack"
:disabled="packName == ''"
>
{{ $t('admin_dash.emoji.copy_to_pack') }}
</button>
<SelectComponent
v-model="packName"
>
<option
value=""
disabled
hidden
>
{{ $t('admin_dash.emoji.emoji_pack') }}
</option>
<option
v-for="(pack, listPackName) in knownLocalPacks"
:key="listPackName"
:label="listPackName"
>
{{ listPackName }}
</option>
</SelectComponent>
</div>
</div>
</template>
</Popover>
</template>
<script>
import { assign } from 'lodash'
import StillImage from './still-image.vue'
import Popover from 'components/popover/popover.vue'
import SelectComponent from 'components/select/select.vue'
import { useInterfaceStore } from 'src/stores/interface'
export default {
components: { StillImage, Popover, SelectComponent },
props: {
shortcode: {
type: String,
required: true
},
isLocal: {
type: Boolean,
required: true
}
},
data() {
return {
knownLocalPacks: { },
packName: ""
}
},
computed: {
isUserAdmin () {
return this.$store.state.users.currentUser.rights.admin
}
},
methods: {
displayError (msg) {
useInterfaceStore().pushGlobalNotice({
messageKey: 'admin_dash.emoji.error',
messageArgs: [msg],
level: 'error'
})
},
copyToLocalPack() {
this.$store.state.api.backendInteractor.addNewEmojiFile({
packName: this.packName,
file: this.$attrs.src,
shortcode: this.shortcode,
filename: ""
}).then(resp => resp.json()).then(resp => {
if (resp.error !== undefined) {
this.displayError(resp.error)
return
}
useInterfaceStore().pushGlobalNotice({
messageKey: 'admin_dash.emoji.copied_successfully',
messageArgs: [this.shortcode, this.packName],
level: 'success'
})
this.$refs.emojiPopover.hidePopover()
this.packName = ''
})
},
// Copied from emoji_tab.js
loadPacksPaginated (listFunction) {
const pageSize = 25
const allPacks = {}
return listFunction({ instance: this.$store.state.instance.server, page: 1, pageSize: 0 })
.then(data => data.json())
.then(data => {
if (data.error !== undefined) { return Promise.reject(data.error) }
let resultingPromise = Promise.resolve({})
for (let i = 0; i < Math.ceil(data.count / pageSize); i++) {
resultingPromise = resultingPromise.then(() => listFunction({ instance: this.$store.state.instance.server, page: i, pageSize })
).then(data => data.json()).then(pageData => {
if (pageData.error !== undefined) { return Promise.reject(pageData.error) }
assign(allPacks, pageData.packs)
})
}
return resultingPromise
})
.then(() => allPacks)
.catch(data => {
this.displayError(data)
})
},
fetchEmojiPacksIfAdmin() {
if (!this.isUserAdmin) return
this.loadPacksPaginated(this.$store.state.api.backendInteractor.listEmojiPacks)
.then(allPacks => {
// Sort by key
const sorted = Object.keys(allPacks).sort().reduce((acc, key) => {
if (key.length === 0) return acc
acc[key] = allPacks[key]
return acc
}, {})
this.knownLocalPacks = sorted
})
}
}
}
</script>
<style>
.emoji-popover {
margin: 0 0.5em 0.5em;
text-align: center;
.emoji {
width: 4.6em;
height: 4.6em;
}
.emoji-popover-centered {
display: flex;
align-items: center;
justify-content: center;
}
.emoji-popover-button {
width: 100%;
margin-top: 0.5em;
}
.Select {
width: 100%;
}
}
</style>

View file

@ -1205,6 +1205,8 @@
"adding_new": "Adding new emoji", "adding_new": "Adding new emoji",
"shortcode": "Shortcode", "shortcode": "Shortcode",
"filename": "Filename", "filename": "Filename",
"emoji_source": "Emoji file source",
"upload_url": "Upload from URL",
"new_shortcode": "Shortcode, leave blank to infer", "new_shortcode": "Shortcode, leave blank to infer",
"new_filename": "Filename, leave blank to infer", "new_filename": "Filename, leave blank to infer",
"delete_confirm": "Are you sure you want to delete {0}?", "delete_confirm": "Are you sure you want to delete {0}?",
@ -1215,10 +1217,14 @@
"download_as_name_full": "New name, leave blank to reuse", "download_as_name_full": "New name, leave blank to reuse",
"files": "Files", "files": "Files",
"editing": "Editing {0}", "editing": "Editing {0}",
"copying": "Copying {0}",
"copy_to": "Copy to",
"copy_to_pack": "Copy to local pack",
"delete_title": "Delete?", "delete_title": "Delete?",
"metadata_changed": "Metadata different from saved", "metadata_changed": "Metadata different from saved",
"emoji_changed": "Unsaved emoji file changes, check highlighted emoji", "emoji_changed": "Unsaved emoji file changes, check highlighted emoji",
"replace_warning": "This will REPLACE the local pack of the same name" "replace_warning": "This will REPLACE the local pack of the same name",
"copied_successfully": "Successfully copied emoji \"{0}\" to pack \"{1}\""
}, },
"temp_overrides": { "temp_overrides": {
":pleroma": { ":pleroma": {

View file

@ -218,7 +218,7 @@ describe('RichContent', () => {
const html = p('Ebin :DDDD :spurdo:') const html = p('Ebin :DDDD :spurdo:')
const expected = p( const expected = p(
'Ebin :DDDD ', 'Ebin :DDDD ',
'<anonymous-stub src="about:blank" alt=":spurdo:" class="emoji img" title=":spurdo:"></anonymous-stub>' '<anonymous-stub shortcode="spurdo" islocal="true" class="emoji img" src="about:blank" title=":spurdo:" alt=":spurdo:"></anonymous-stub>'
) )
const wrapper = shallowMount(RichContent, { const wrapper = shallowMount(RichContent, {

272
yarn.lock
View file

@ -61,21 +61,21 @@
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.28.0.tgz#9fc6fd58c2a6a15243cd13983224968392070790" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.28.0.tgz#9fc6fd58c2a6a15243cd13983224968392070790"
integrity sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw== integrity sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==
"@babel/core@7.28.0": "@babel/core@7.28.3":
version "7.28.0" version "7.28.3"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.28.0.tgz#55dad808d5bf3445a108eefc88ea3fdf034749a4" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.28.3.tgz#aceddde69c5d1def69b839d09efa3e3ff59c97cb"
integrity sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ== integrity sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==
dependencies: dependencies:
"@ampproject/remapping" "^2.2.0" "@ampproject/remapping" "^2.2.0"
"@babel/code-frame" "^7.27.1" "@babel/code-frame" "^7.27.1"
"@babel/generator" "^7.28.0" "@babel/generator" "^7.28.3"
"@babel/helper-compilation-targets" "^7.27.2" "@babel/helper-compilation-targets" "^7.27.2"
"@babel/helper-module-transforms" "^7.27.3" "@babel/helper-module-transforms" "^7.28.3"
"@babel/helpers" "^7.27.6" "@babel/helpers" "^7.28.3"
"@babel/parser" "^7.28.0" "@babel/parser" "^7.28.3"
"@babel/template" "^7.27.2" "@babel/template" "^7.27.2"
"@babel/traverse" "^7.28.0" "@babel/traverse" "^7.28.3"
"@babel/types" "^7.28.0" "@babel/types" "^7.28.2"
convert-source-map "^2.0.0" convert-source-map "^2.0.0"
debug "^4.1.0" debug "^4.1.0"
gensync "^1.0.0-beta.2" gensync "^1.0.0-beta.2"
@ -145,6 +145,17 @@
"@jridgewell/trace-mapping" "^0.3.28" "@jridgewell/trace-mapping" "^0.3.28"
jsesc "^3.0.2" jsesc "^3.0.2"
"@babel/generator@^7.28.3":
version "7.28.3"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.28.3.tgz#9626c1741c650cbac39121694a0f2d7451b8ef3e"
integrity sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==
dependencies:
"@babel/parser" "^7.28.3"
"@babel/types" "^7.28.2"
"@jridgewell/gen-mapping" "^0.3.12"
"@jridgewell/trace-mapping" "^0.3.28"
jsesc "^3.0.2"
"@babel/helper-annotate-as-pure@^7.25.9": "@babel/helper-annotate-as-pure@^7.25.9":
version "7.25.9" version "7.25.9"
resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz#d8eac4d2dc0d7b6e11fa6e535332e0d3184f06b4" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz#d8eac4d2dc0d7b6e11fa6e535332e0d3184f06b4"
@ -214,6 +225,19 @@
"@babel/traverse" "^7.27.1" "@babel/traverse" "^7.27.1"
semver "^6.3.1" semver "^6.3.1"
"@babel/helper-create-class-features-plugin@^7.28.3":
version "7.28.3"
resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.3.tgz#3e747434ea007910c320c4d39a6b46f20f371d46"
integrity sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg==
dependencies:
"@babel/helper-annotate-as-pure" "^7.27.3"
"@babel/helper-member-expression-to-functions" "^7.27.1"
"@babel/helper-optimise-call-expression" "^7.27.1"
"@babel/helper-replace-supers" "^7.27.1"
"@babel/helper-skip-transparent-expression-wrappers" "^7.27.1"
"@babel/traverse" "^7.28.3"
semver "^6.3.1"
"@babel/helper-create-regexp-features-plugin@^7.18.6": "@babel/helper-create-regexp-features-plugin@^7.18.6":
version "7.27.0" version "7.27.0"
resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.0.tgz#0e41f7d38c2ebe06ebd9cf0e02fb26019c77cd95" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.0.tgz#0e41f7d38c2ebe06ebd9cf0e02fb26019c77cd95"
@ -298,14 +322,14 @@
"@babel/helper-validator-identifier" "^7.27.1" "@babel/helper-validator-identifier" "^7.27.1"
"@babel/traverse" "^7.27.1" "@babel/traverse" "^7.27.1"
"@babel/helper-module-transforms@^7.27.3": "@babel/helper-module-transforms@^7.28.3":
version "7.27.3" version "7.28.3"
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz#db0bbcfba5802f9ef7870705a7ef8788508ede02" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz#a2b37d3da3b2344fe085dab234426f2b9a2fa5f6"
integrity sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg== integrity sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==
dependencies: dependencies:
"@babel/helper-module-imports" "^7.27.1" "@babel/helper-module-imports" "^7.27.1"
"@babel/helper-validator-identifier" "^7.27.1" "@babel/helper-validator-identifier" "^7.27.1"
"@babel/traverse" "^7.27.3" "@babel/traverse" "^7.28.3"
"@babel/helper-optimise-call-expression@^7.25.9": "@babel/helper-optimise-call-expression@^7.25.9":
version "7.25.9" version "7.25.9"
@ -416,10 +440,10 @@
"@babel/template" "^7.27.0" "@babel/template" "^7.27.0"
"@babel/types" "^7.27.0" "@babel/types" "^7.27.0"
"@babel/helpers@^7.27.6": "@babel/helpers@^7.28.3":
version "7.28.2" version "7.28.3"
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.28.2.tgz#80f0918fecbfebea9af856c419763230040ee850" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.28.3.tgz#b83156c0a2232c133d1b535dd5d3452119c7e441"
integrity sha512-/V9771t+EgXz62aCcyofnQhGM8DQACbRhvzKFsXKC9QM+5MadF8ZmIm0crDMaz3+o0h0zXfJnd4EhbYbxsrcFw== integrity sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==
dependencies: dependencies:
"@babel/template" "^7.27.2" "@babel/template" "^7.27.2"
"@babel/types" "^7.28.2" "@babel/types" "^7.28.2"
@ -455,6 +479,13 @@
dependencies: dependencies:
"@babel/types" "^7.28.0" "@babel/types" "^7.28.0"
"@babel/parser@^7.28.3":
version "7.28.3"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.28.3.tgz#d2d25b814621bca5fe9d172bc93792547e7a2a71"
integrity sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==
dependencies:
"@babel/types" "^7.28.2"
"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.27.1": "@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.27.1":
version "7.27.1" version "7.27.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.27.1.tgz#61dd8a8e61f7eb568268d1b5f129da3eee364bf9" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.27.1.tgz#61dd8a8e61f7eb568268d1b5f129da3eee364bf9"
@ -486,13 +517,13 @@
"@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1"
"@babel/plugin-transform-optional-chaining" "^7.27.1" "@babel/plugin-transform-optional-chaining" "^7.27.1"
"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.27.1": "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.28.3":
version "7.27.1" version "7.28.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.27.1.tgz#bb1c25af34d75115ce229a1de7fa44bf8f955670" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.3.tgz#373f6e2de0016f73caf8f27004f61d167743742a"
integrity sha512-6BpaYGDavZqkI6yT+KSPdpZFfpnd68UKXbcjI9pJ13pvHhPrCKWOOLp+ysvMeA+DxnhuPpgIaRpxRxo5A9t5jw== integrity sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw==
dependencies: dependencies:
"@babel/helper-plugin-utils" "^7.27.1" "@babel/helper-plugin-utils" "^7.27.1"
"@babel/traverse" "^7.27.1" "@babel/traverse" "^7.28.3"
"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": "@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2":
version "7.21.0-placeholder-for-preset-env.2" version "7.21.0-placeholder-for-preset-env.2"
@ -520,6 +551,13 @@
dependencies: dependencies:
"@babel/helper-plugin-utils" "^7.25.9" "@babel/helper-plugin-utils" "^7.25.9"
"@babel/plugin-syntax-jsx@^7.27.1":
version "7.27.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz#2f9beb5eff30fa507c5532d107daac7b888fa34c"
integrity sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==
dependencies:
"@babel/helper-plugin-utils" "^7.27.1"
"@babel/plugin-syntax-typescript@^7.25.9": "@babel/plugin-syntax-typescript@^7.25.9":
version "7.25.9" version "7.25.9"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz#67dda2b74da43727cf21d46cf9afef23f4365399" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz#67dda2b74da43727cf21d46cf9afef23f4365399"
@ -582,25 +620,25 @@
"@babel/helper-create-class-features-plugin" "^7.27.1" "@babel/helper-create-class-features-plugin" "^7.27.1"
"@babel/helper-plugin-utils" "^7.27.1" "@babel/helper-plugin-utils" "^7.27.1"
"@babel/plugin-transform-class-static-block@^7.27.1": "@babel/plugin-transform-class-static-block@^7.28.3":
version "7.27.1" version "7.28.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.27.1.tgz#7e920d5625b25bbccd3061aefbcc05805ed56ce4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.3.tgz#d1b8e69b54c9993bc558203e1f49bfc979bfd852"
integrity sha512-s734HmYU78MVzZ++joYM+NkJusItbdRcbm+AGRgJCt3iA+yux0QpD9cBVdz3tKyrjVYWRl7j0mHSmv4lhV0aoA== integrity sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==
dependencies: dependencies:
"@babel/helper-create-class-features-plugin" "^7.27.1" "@babel/helper-create-class-features-plugin" "^7.28.3"
"@babel/helper-plugin-utils" "^7.27.1" "@babel/helper-plugin-utils" "^7.27.1"
"@babel/plugin-transform-classes@^7.28.0": "@babel/plugin-transform-classes@^7.28.3":
version "7.28.0" version "7.28.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.0.tgz#12fa46cffc32a6e084011b650539e880add8a0f8" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.3.tgz#598297260343d0edbd51cb5f5075e07dee91963a"
integrity sha512-IjM1IoJNw72AZFlj33Cu8X0q2XK/6AaVC3jQu+cgQ5lThWD5ajnuUAml80dqRmOhmPkTH8uAwnpMu9Rvj0LTRA== integrity sha512-DoEWC5SuxuARF2KdKmGUq3ghfPMO6ZzR12Dnp5gubwbeWJo4dbNWXJPVlwvh4Zlq6Z7YVvL8VFxeSOJgjsx4Sg==
dependencies: dependencies:
"@babel/helper-annotate-as-pure" "^7.27.3" "@babel/helper-annotate-as-pure" "^7.27.3"
"@babel/helper-compilation-targets" "^7.27.2" "@babel/helper-compilation-targets" "^7.27.2"
"@babel/helper-globals" "^7.28.0" "@babel/helper-globals" "^7.28.0"
"@babel/helper-plugin-utils" "^7.27.1" "@babel/helper-plugin-utils" "^7.27.1"
"@babel/helper-replace-supers" "^7.27.1" "@babel/helper-replace-supers" "^7.27.1"
"@babel/traverse" "^7.28.0" "@babel/traverse" "^7.28.3"
"@babel/plugin-transform-computed-properties@^7.27.1": "@babel/plugin-transform-computed-properties@^7.27.1":
version "7.27.1" version "7.27.1"
@ -843,10 +881,10 @@
dependencies: dependencies:
"@babel/helper-plugin-utils" "^7.27.1" "@babel/helper-plugin-utils" "^7.27.1"
"@babel/plugin-transform-regenerator@^7.28.0": "@babel/plugin-transform-regenerator@^7.28.3":
version "7.28.1" version "7.28.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.1.tgz#bde80603442ff4bb4e910bc8b35485295d556ab1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.3.tgz#b8eee0f8aed37704bbcc932fd0b1a0a34d0b7344"
integrity sha512-P0QiV/taaa3kXpLY+sXla5zec4E+4t4Aqc9ggHlfZ7a2cp8/x/Gv08jfwEtn9gnnYIMvHx6aoOZ8XJL8eU71Dg== integrity sha512-K3/M/a4+ESb5LEldjQb+XSrpY0nF+ZBFlTCbSnKaYAMfD8v33O6PMs4uYnOk19HlcsI8WMu3McdFPTiQHF/1/A==
dependencies: dependencies:
"@babel/helper-plugin-utils" "^7.27.1" "@babel/helper-plugin-utils" "^7.27.1"
@ -865,10 +903,10 @@
dependencies: dependencies:
"@babel/helper-plugin-utils" "^7.27.1" "@babel/helper-plugin-utils" "^7.27.1"
"@babel/plugin-transform-runtime@7.28.0": "@babel/plugin-transform-runtime@7.28.3":
version "7.28.0" version "7.28.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.28.0.tgz#462e79008cc7bdac03e4c5e1765b9de2bcd31c21" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.28.3.tgz#f5990a1b2d2bde950ed493915e0719841c8d0eaa"
integrity sha512-dGopk9nZrtCs2+nfIem25UuHyt5moSJamArzIoh9/vezUQPmYDOzjaHDCkAzuGJibCIkPup8rMT2+wYB6S73cA== integrity sha512-Y6ab1kGqZ0u42Zv/4a7l0l72n9DKP/MKoKWaUSBylrhNZO2prYuqFOLbn5aW5SIFXwSH93yfjbgllL8lxuGKLg==
dependencies: dependencies:
"@babel/helper-module-imports" "^7.27.1" "@babel/helper-module-imports" "^7.27.1"
"@babel/helper-plugin-utils" "^7.27.1" "@babel/helper-plugin-utils" "^7.27.1"
@ -955,10 +993,10 @@
"@babel/helper-create-regexp-features-plugin" "^7.27.1" "@babel/helper-create-regexp-features-plugin" "^7.27.1"
"@babel/helper-plugin-utils" "^7.27.1" "@babel/helper-plugin-utils" "^7.27.1"
"@babel/preset-env@7.28.0": "@babel/preset-env@7.28.3":
version "7.28.0" version "7.28.3"
resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.28.0.tgz#d23a6bc17b43227d11db77081a0779c706b5569c" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.28.3.tgz#2b18d9aff9e69643789057ae4b942b1654f88187"
integrity sha512-VmaxeGOwuDqzLl5JUkIRM1X2Qu2uKGxHEQWh+cvvbl7JuJRgKGJSfsEF/bUaxFhJl/XAyxBe7q7qSuTbKFuCyg== integrity sha512-ROiDcM+GbYVPYBOeCR6uBXKkQpBExLl8k9HO1ygXEyds39j+vCCsjmj7S8GOniZQlEs81QlkdJZe76IpLSiqpg==
dependencies: dependencies:
"@babel/compat-data" "^7.28.0" "@babel/compat-data" "^7.28.0"
"@babel/helper-compilation-targets" "^7.27.2" "@babel/helper-compilation-targets" "^7.27.2"
@ -968,7 +1006,7 @@
"@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.27.1" "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.27.1"
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.27.1" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.27.1"
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.27.1" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.27.1"
"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.27.1" "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.28.3"
"@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2"
"@babel/plugin-syntax-import-assertions" "^7.27.1" "@babel/plugin-syntax-import-assertions" "^7.27.1"
"@babel/plugin-syntax-import-attributes" "^7.27.1" "@babel/plugin-syntax-import-attributes" "^7.27.1"
@ -979,8 +1017,8 @@
"@babel/plugin-transform-block-scoped-functions" "^7.27.1" "@babel/plugin-transform-block-scoped-functions" "^7.27.1"
"@babel/plugin-transform-block-scoping" "^7.28.0" "@babel/plugin-transform-block-scoping" "^7.28.0"
"@babel/plugin-transform-class-properties" "^7.27.1" "@babel/plugin-transform-class-properties" "^7.27.1"
"@babel/plugin-transform-class-static-block" "^7.27.1" "@babel/plugin-transform-class-static-block" "^7.28.3"
"@babel/plugin-transform-classes" "^7.28.0" "@babel/plugin-transform-classes" "^7.28.3"
"@babel/plugin-transform-computed-properties" "^7.27.1" "@babel/plugin-transform-computed-properties" "^7.27.1"
"@babel/plugin-transform-destructuring" "^7.28.0" "@babel/plugin-transform-destructuring" "^7.28.0"
"@babel/plugin-transform-dotall-regex" "^7.27.1" "@babel/plugin-transform-dotall-regex" "^7.27.1"
@ -1012,7 +1050,7 @@
"@babel/plugin-transform-private-methods" "^7.27.1" "@babel/plugin-transform-private-methods" "^7.27.1"
"@babel/plugin-transform-private-property-in-object" "^7.27.1" "@babel/plugin-transform-private-property-in-object" "^7.27.1"
"@babel/plugin-transform-property-literals" "^7.27.1" "@babel/plugin-transform-property-literals" "^7.27.1"
"@babel/plugin-transform-regenerator" "^7.28.0" "@babel/plugin-transform-regenerator" "^7.28.3"
"@babel/plugin-transform-regexp-modifiers" "^7.27.1" "@babel/plugin-transform-regexp-modifiers" "^7.27.1"
"@babel/plugin-transform-reserved-words" "^7.27.1" "@babel/plugin-transform-reserved-words" "^7.27.1"
"@babel/plugin-transform-shorthand-properties" "^7.27.1" "@babel/plugin-transform-shorthand-properties" "^7.27.1"
@ -1040,10 +1078,10 @@
"@babel/types" "^7.4.4" "@babel/types" "^7.4.4"
esutils "^2.0.2" esutils "^2.0.2"
"@babel/register@7.27.1": "@babel/register@7.28.3":
version "7.27.1" version "7.28.3"
resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.27.1.tgz#ea4d701649d788d7cb8a064b7540fd21083147f1" resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.28.3.tgz#abd8a3753480c799bdaf9c9092d6745d16e052c2"
integrity sha512-K13lQpoV54LATKkzBpBAEu1GGSIRzxR9f4IN4V8DCDgiUMo2UDGagEZr3lPeVNJPLkWUi5JE4hCHKneVTwQlYQ== integrity sha512-CieDOtd8u208eI49bYl4z1J22ySFw87IGwE+IswFEExH7e3rLgKb0WNQeumnacQ1+VoDJLYI5QFA3AJZuyZQfA==
dependencies: dependencies:
clone-deep "^4.0.1" clone-deep "^4.0.1"
find-cache-dir "^2.0.0" find-cache-dir "^2.0.0"
@ -1051,10 +1089,10 @@
pirates "^4.0.6" pirates "^4.0.6"
source-map-support "^0.5.16" source-map-support "^0.5.16"
"@babel/runtime@7.28.2": "@babel/runtime@7.28.3":
version "7.28.2" version "7.28.3"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.28.2.tgz#2ae5a9d51cc583bd1f5673b3bb70d6d819682473" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.28.3.tgz#75c5034b55ba868121668be5d5bb31cc64e6e61a"
integrity sha512-KHp2IflsnGywDjBWDkR9iEqiWSpc8GIi0lgTT3mOElT0PP1tG26P4tmFI2YvAdzgq9RGyoHZQEIEdZy6Ec5xCA== integrity sha512-9uIQ10o0WGdpP6GDhXcdOJPJuDgFtIDtN/9+ArJQ2NAfAmiuhTQdzkaTGR33v43GYS2UrSA0eX2pPPHoFVvpxA==
"@babel/runtime@^7.12.5": "@babel/runtime@^7.12.5":
version "7.27.1" version "7.27.1"
@ -1105,7 +1143,7 @@
debug "^4.3.1" debug "^4.3.1"
globals "^11.1.0" globals "^11.1.0"
"@babel/traverse@^7.27.3", "@babel/traverse@^7.28.0": "@babel/traverse@^7.28.0":
version "7.28.0" version "7.28.0"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.28.0.tgz#518aa113359b062042379e333db18380b537e34b" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.28.0.tgz#518aa113359b062042379e333db18380b537e34b"
integrity sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg== integrity sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==
@ -1118,6 +1156,19 @@
"@babel/types" "^7.28.0" "@babel/types" "^7.28.0"
debug "^4.3.1" debug "^4.3.1"
"@babel/traverse@^7.28.3":
version "7.28.3"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.28.3.tgz#6911a10795d2cce43ec6a28cffc440cca2593434"
integrity sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==
dependencies:
"@babel/code-frame" "^7.27.1"
"@babel/generator" "^7.28.3"
"@babel/helper-globals" "^7.28.0"
"@babel/parser" "^7.28.3"
"@babel/template" "^7.27.2"
"@babel/types" "^7.28.2"
debug "^4.3.1"
"@babel/types@^7.0.0-beta.49", "@babel/types@^7.25.9", "@babel/types@^7.26.10", "@babel/types@^7.26.9", "@babel/types@^7.27.0", "@babel/types@^7.4.4": "@babel/types@^7.0.0-beta.49", "@babel/types@^7.25.9", "@babel/types@^7.26.10", "@babel/types@^7.26.9", "@babel/types@^7.27.0", "@babel/types@^7.4.4":
version "7.27.0" version "7.27.0"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.27.0.tgz#ef9acb6b06c3173f6632d993ecb6d4ae470b4559" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.27.0.tgz#ef9acb6b06c3173f6632d993ecb6d4ae470b4559"
@ -1546,10 +1597,10 @@
dependencies: dependencies:
"@fortawesome/fontawesome-common-types" "6.7.2" "@fortawesome/fontawesome-common-types" "6.7.2"
"@fortawesome/vue-fontawesome@3.0.8": "@fortawesome/vue-fontawesome@3.1.1":
version "3.0.8" version "3.1.1"
resolved "https://registry.yarnpkg.com/@fortawesome/vue-fontawesome/-/vue-fontawesome-3.0.8.tgz#1e8032df151173d8174ac9f5a28da3c0f5a495e4" resolved "https://registry.yarnpkg.com/@fortawesome/vue-fontawesome/-/vue-fontawesome-3.1.1.tgz#15212b003928f7a37a64ce1f3b7d02b2a2701af5"
integrity sha512-yyHHAj4G8pQIDfaIsMvQpwKMboIZtcHTUvPqXjOHyldh1O1vZfH4W03VDPv5RvI9P6DLTzJQlmVgj9wCf7c2Fw== integrity sha512-U5azn4mcUVpjHe4JO0Wbe7Ih8e3VbN83EH7OTBtA5/QGw9qcPGffqcmwsLyZYgEkpVkYbq/6dX1Iyl5KUGMp6Q==
"@humanfs/core@^0.19.1": "@humanfs/core@^0.19.1":
version "0.19.1" version "0.19.1"
@ -1999,15 +2050,6 @@
resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.29.tgz#5a40109a1ab5f84d6fd8fc928b19f367cbe7e7b1" resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.29.tgz#5a40109a1ab5f84d6fd8fc928b19f367cbe7e7b1"
integrity sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww== integrity sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==
"@rollup/pluginutils@^5.1.3":
version "5.1.4"
resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.1.4.tgz#bb94f1f9eaaac944da237767cdfee6c5b2262d4a"
integrity sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==
dependencies:
"@types/estree" "^1.0.0"
estree-walker "^2.0.2"
picomatch "^4.0.2"
"@rollup/pluginutils@^5.2.0": "@rollup/pluginutils@^5.2.0":
version "5.2.0" version "5.2.0"
resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.2.0.tgz#eac25ca5b0bdda4ba735ddaca5fbf26bd435f602" resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.2.0.tgz#eac25ca5b0bdda4ba735ddaca5fbf26bd435f602"
@ -2375,7 +2417,27 @@
resolved "https://registry.yarnpkg.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.4.0.tgz#616020488692a9c42a613280d62ed1b727045d95" resolved "https://registry.yarnpkg.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.4.0.tgz#616020488692a9c42a613280d62ed1b727045d95"
integrity sha512-mCokbouEQ/ocRce/FpKCRItGo+013tHg7tixg3DUNS+6bmIchPt66012kBMm476vyEIJPafrvOf4E5OYj3shSw== integrity sha512-mCokbouEQ/ocRce/FpKCRItGo+013tHg7tixg3DUNS+6bmIchPt66012kBMm476vyEIJPafrvOf4E5OYj3shSw==
"@vue/babel-plugin-jsx@1.4.0", "@vue/babel-plugin-jsx@^1.2.5": "@vue/babel-helper-vue-transform-on@1.5.0":
version "1.5.0"
resolved "https://registry.yarnpkg.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.5.0.tgz#b7e99d37eeb144d7b9757d7a1f40cd977fde748a"
integrity sha512-0dAYkerNhhHutHZ34JtTl2czVQHUNWv6xEbkdF5W+Yrv5pCWsqjeORdOgbtW2I9gWlt+wBmVn+ttqN9ZxR5tzA==
"@vue/babel-plugin-jsx@1.5.0":
version "1.5.0"
resolved "https://registry.yarnpkg.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.5.0.tgz#1b988b497cb1f79725da94463e75cebe60b72e70"
integrity sha512-mneBhw1oOqCd2247O0Yw/mRwC9jIGACAJUlawkmMBiNmL4dGA2eMzuNZVNqOUfYTa6vqmND4CtOPzmEEEqLKFw==
dependencies:
"@babel/helper-module-imports" "^7.27.1"
"@babel/helper-plugin-utils" "^7.27.1"
"@babel/plugin-syntax-jsx" "^7.27.1"
"@babel/template" "^7.27.2"
"@babel/traverse" "^7.28.0"
"@babel/types" "^7.28.2"
"@vue/babel-helper-vue-transform-on" "1.5.0"
"@vue/babel-plugin-resolve-type" "1.5.0"
"@vue/shared" "^3.5.18"
"@vue/babel-plugin-jsx@^1.2.5":
version "1.4.0" version "1.4.0"
resolved "https://registry.yarnpkg.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.4.0.tgz#c155c795ce980edf46aa6feceed93945a95ca658" resolved "https://registry.yarnpkg.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.4.0.tgz#c155c795ce980edf46aa6feceed93945a95ca658"
integrity sha512-9zAHmwgMWlaN6qRKdrg1uKsBKHvnUU+Py+MOCTuYZBoZsopa90Di10QRjB+YPnVss0BZbG/H5XFwJY1fTxJWhA== integrity sha512-9zAHmwgMWlaN6qRKdrg1uKsBKHvnUU+Py+MOCTuYZBoZsopa90Di10QRjB+YPnVss0BZbG/H5XFwJY1fTxJWhA==
@ -2401,6 +2463,17 @@
"@babel/parser" "^7.26.9" "@babel/parser" "^7.26.9"
"@vue/compiler-sfc" "^3.5.13" "@vue/compiler-sfc" "^3.5.13"
"@vue/babel-plugin-resolve-type@1.5.0":
version "1.5.0"
resolved "https://registry.yarnpkg.com/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.5.0.tgz#6881d7b1478e9fc0ea4bb08aaad1f4d206655568"
integrity sha512-Wm/60o+53JwJODm4Knz47dxJnLDJ9FnKnGZJbUUf8nQRAtt6P+undLUAVU3Ha33LxOJe6IPoifRQ6F/0RrU31w==
dependencies:
"@babel/code-frame" "^7.27.1"
"@babel/helper-module-imports" "^7.27.1"
"@babel/helper-plugin-utils" "^7.27.1"
"@babel/parser" "^7.28.0"
"@vue/compiler-sfc" "^3.5.18"
"@vue/compiler-core@3.5.13": "@vue/compiler-core@3.5.13":
version "3.5.13" version "3.5.13"
resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.5.13.tgz#b0ae6c4347f60c03e849a05d34e5bf747c9bda05" resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.5.13.tgz#b0ae6c4347f60c03e849a05d34e5bf747c9bda05"
@ -2439,7 +2512,7 @@
"@vue/compiler-core" "3.5.18" "@vue/compiler-core" "3.5.18"
"@vue/shared" "3.5.18" "@vue/shared" "3.5.18"
"@vue/compiler-sfc@3.5.18": "@vue/compiler-sfc@3.5.18", "@vue/compiler-sfc@^3.5.18":
version "3.5.18" version "3.5.18"
resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.5.18.tgz#ba1e849561337d809937994cdaf900539542eeca" resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.5.18.tgz#ba1e849561337d809937994cdaf900539542eeca"
integrity sha512-5aBjvGqsWs+MoxswZPoTB9nSDb3dhd1x30xrrltKujlCxo48j8HGDNj3QPhF4VIS0VQDUrA1xUfp2hEa+FNyXA== integrity sha512-5aBjvGqsWs+MoxswZPoTB9nSDb3dhd1x30xrrltKujlCxo48j8HGDNj3QPhF4VIS0VQDUrA1xUfp2hEa+FNyXA==
@ -2555,7 +2628,7 @@
resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.13.tgz#87b309a6379c22b926e696893237826f64339b6f" resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.13.tgz#87b309a6379c22b926e696893237826f64339b6f"
integrity sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ== integrity sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==
"@vue/shared@3.5.18": "@vue/shared@3.5.18", "@vue/shared@^3.5.18":
version "3.5.18" version "3.5.18"
resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.18.tgz#529f24a88d3ed678d50fd5c07455841fbe8ac95e" resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.18.tgz#529f24a88d3ed678d50fd5c07455841fbe8ac95e"
integrity sha512-cZy8Dq+uuIXbxCZpuLd2GJdeSO/lIzIspC2WtkqIpje5QyFbvLaI5wZtdUjLHjGZrlVX6GilejatWwVYYRc8tA== integrity sha512-cZy8Dq+uuIXbxCZpuLd2GJdeSO/lIzIspC2WtkqIpje5QyFbvLaI5wZtdUjLHjGZrlVX6GilejatWwVYYRc8tA==
@ -3211,10 +3284,10 @@ chalk@2.4.2, chalk@^2.4.2:
escape-string-regexp "^1.0.5" escape-string-regexp "^1.0.5"
supports-color "^5.3.0" supports-color "^5.3.0"
chalk@5.4.1: chalk@5.6.0:
version "5.4.1" version "5.6.0"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.4.1.tgz#1b48bf0963ec158dce2aacf69c093ae2dd2092d8" resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.0.tgz#a1a8d294ea3526dbb77660f12649a08490e33ab8"
integrity sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w== integrity sha512-46QrSQFyVSEyYAgQ22hQ+zDa60YHA4fBstHmtSApj1Y5vKtG27fWowW03jCk5KcbXEWPZUIR894aARCA/G1kfQ==
chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.2: chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.2:
version "4.1.2" version "4.1.2"
@ -4184,19 +4257,20 @@ eslint-plugin-import@2.31.0:
string.prototype.trimend "^1.0.8" string.prototype.trimend "^1.0.8"
tsconfig-paths "^3.15.0" tsconfig-paths "^3.15.0"
eslint-plugin-n@17.18.0: eslint-plugin-n@17.21.3:
version "17.18.0" version "17.21.3"
resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-17.18.0.tgz#8515979b49ef8db7bb16e457b8ed22cc695d2a84" resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-17.21.3.tgz#a07592c28390ac742bf52acae89048c997a7b91c"
integrity sha512-hvZ/HusueqTJ7VDLoCpjN0hx4N4+jHIWTXD4TMLHy9F23XkDagR9v+xQWRWR57yY55GPF8NnD4ox9iGTxirY8A== integrity sha512-MtxYjDZhMQgsWRm/4xYLL0i2EhusWT7itDxlJ80l1NND2AL2Vi5Mvneqv/ikG9+zpran0VsVRXTEHrpLmUZRNw==
dependencies: dependencies:
"@eslint-community/eslint-utils" "^4.5.0" "@eslint-community/eslint-utils" "^4.5.0"
enhanced-resolve "^5.17.1" enhanced-resolve "^5.17.1"
eslint-plugin-es-x "^7.8.0" eslint-plugin-es-x "^7.8.0"
get-tsconfig "^4.8.1" get-tsconfig "^4.8.1"
globals "^15.11.0" globals "^15.11.0"
globrex "^0.1.2"
ignore "^5.3.2" ignore "^5.3.2"
minimatch "^9.0.5"
semver "^7.6.3" semver "^7.6.3"
ts-declaration-location "^1.0.6"
eslint-plugin-promise@7.2.1: eslint-plugin-promise@7.2.1:
version "7.2.1" version "7.2.1"
@ -4205,10 +4279,10 @@ eslint-plugin-promise@7.2.1:
dependencies: dependencies:
"@eslint-community/eslint-utils" "^4.4.0" "@eslint-community/eslint-utils" "^4.4.0"
eslint-plugin-vue@10.1.0: eslint-plugin-vue@10.4.0:
version "10.1.0" version "10.4.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-10.1.0.tgz#434cb84eecfa0a69b7cd95bf913f11ded259308e" resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-10.4.0.tgz#2ae20df43801d20515c58ec2ae0555bf1127a080"
integrity sha512-/VTiJ1eSfNLw6lvG9ENySbGmcVvz6wZ9nA7ZqXlLBY2RkaF15iViYKxglWiIch12KiLAj0j1iXPYU6W4wTROFA== integrity sha512-K6tP0dW8FJVZLQxa2S7LcE1lLw3X8VvB3t887Q6CLrFVxHYBXGANbXvwNzYIu6Ughx1bSJ5BDT0YB3ybPT39lw==
dependencies: dependencies:
"@eslint-community/eslint-utils" "^4.4.0" "@eslint-community/eslint-utils" "^4.4.0"
natural-compare "^1.4.0" natural-compare "^1.4.0"
@ -4882,6 +4956,11 @@ globjoin@^0.1.4:
resolved "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz#2f4494ac8919e3767c5cbb691e9f463324285d43" resolved "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz#2f4494ac8919e3767c5cbb691e9f463324285d43"
integrity sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg== integrity sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==
globrex@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098"
integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==
gopd@^1.0.1, gopd@^1.2.0: gopd@^1.0.1, gopd@^1.2.0:
version "1.2.0" version "1.2.0"
resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1"
@ -5902,7 +5981,7 @@ minimatch@^5.0.1, minimatch@^5.1.0:
dependencies: dependencies:
brace-expansion "^2.0.1" brace-expansion "^2.0.1"
minimatch@^9.0.4, minimatch@^9.0.5: minimatch@^9.0.4:
version "9.0.5" version "9.0.5"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5"
integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==
@ -5975,10 +6054,10 @@ ms@2.1.3, ms@^2.1.1, ms@^2.1.3:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
msw@2.10.4: msw@2.10.5:
version "2.10.4" version "2.10.5"
resolved "https://registry.yarnpkg.com/msw/-/msw-2.10.4.tgz#a39dad96468aecfd752e5b7df4bbc86f1d73dec4" resolved "https://registry.yarnpkg.com/msw/-/msw-2.10.5.tgz#3e43f12e97581c260bf38d8817732b9fec3bfdb0"
integrity sha512-6R1or/qyele7q3RyPwNuvc0IxO8L8/Aim6Sz5ncXEgcWUNxSKE+udriTOWHtpMwmfkLYlacA2y7TIx4cL5lgHA== integrity sha512-0EsQCrCI1HbhpBWd89DvmxY6plmvrM96b0sCIztnvcNHQbXn5vqwm1KlXslo6u4wN9LFGLC1WFjjgljcQhe40A==
dependencies: dependencies:
"@bundled-es-modules/cookie" "^2.0.1" "@bundled-es-modules/cookie" "^2.0.1"
"@bundled-es-modules/statuses" "^1.0.1" "@bundled-es-modules/statuses" "^1.0.1"
@ -7714,6 +7793,13 @@ tr46@^5.1.0:
dependencies: dependencies:
punycode "^2.3.1" punycode "^2.3.1"
ts-declaration-location@^1.0.6:
version "1.0.7"
resolved "https://registry.yarnpkg.com/ts-declaration-location/-/ts-declaration-location-1.0.7.tgz#d4068fe9975828b3b453b3ab112b4711d8267688"
integrity sha512-EDyGAwH1gO0Ausm9gV6T2nUvBgXT5kGoCMJPllOaooZ+4VvJiKBdZE7wK18N1deEowhcUptS+5GXZK8U/fvpwA==
dependencies:
picomatch "^4.0.2"
tsconfig-paths@^3.15.0: tsconfig-paths@^3.15.0:
version "3.15.0" version "3.15.0"
resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4"