Implement album page

This commit is contained in:
Jorge Vargas 2025-02-18 20:21:37 -06:00
parent fc39c085f0
commit 34c7143279
34 changed files with 563 additions and 142 deletions

View file

@ -39,11 +39,31 @@
"randomPull": "Random Pull",
"highlightAlbum": "Highlight Soundtrack",
"ostCount": "Soundtrack Count",
"animOsts": "Animation Soundtracks",
"gameOsts": "Game Soundtracks",
"recentReleases": "Recent Releases",
"moreGameReleases": "More Game Releases",
"moreAnimReleases": "more Animation releases",
"moreLastAdded": "more Last Added",
"lastAdded": "Last Added"
"lastAdded": "Last Added",
"releaseDate": "Release Date",
"artists": "Artists",
"classification": "Classification",
"AnimationOsts": "Animation Soundtracks",
"GameOsts": "Game Soundtracks",
"publishedBy": "Published by",
"animations": "Animations",
"avgRating": "Average Rating",
"tracklist": "Tracklist",
"donationCall": "Consider Donating to remove ads",
"donationSteps": "After donating, if the donation e-mail is the same as the one used in the notation, it should be\r\n available in a few hours. If not, contact us on",
"brokenLinkContact": "Broken Link? Contact us at Join our Discord!",
"mediafirePermission": "MediaFire permission denied?",
"mediafirePermissionGuide": "Check this guide",
"disc": "Disc",
"checkVGMDB": "Check album at",
"buyOriginal": "Buy The Original Soundtrack to support the artists",
"download": "Download",
"flyInc": "Fly.inc",
"ouoIO": "ouo.io",
"direct": "Direct",
"relatedAlbums": "Related Albums"
}

View file

@ -4,8 +4,8 @@
"version": "0.0.1",
"scripts": {
"start": "npm run dev",
"dev": "astro dev",
"build": "npm run paraglide:compile && prisma generate --sql && astro build",
"dev": "prisma generate && astro dev",
"build": "npm run paraglide:compile && astro build",
"preview": "astro preview",
"paraglide:compile": "paraglide-js compile --project ./project.inlang --outdir ./src\\paraglide"
},

View file

@ -184,12 +184,12 @@ model albums {
status String? @db.VarChar(255)
placeholder String? @db.Text
headerColor String? @default("#ffffff") @db.VarChar(255)
Album_Animation Album_Animation[]
animList Album_Animation[]
artistList Album_Artist[]
Album_Category Album_Category[]
Album_Classification Album_Classification[]
Album_Game Album_Game[]
Album_Platform Album_Platform[]
categoryList Album_Category[]
classificationList Album_Classification[]
gameList Album_Game[]
platformList Album_Platform[]
Album_Type Album_Type[]
albumHistories albumHistories[]
availables availables[]
@ -199,8 +199,8 @@ model albums {
favorites favorites[]
linkCategories linkCategories[]
ratings ratings[]
related_album_related_album_albumIdToalbums related_album[] @relation("related_album_albumIdToalbums")
related_album_related_album_relatedIdToalbums related_album[] @relation("related_album_relatedIdToalbums")
relatedAlbumList related_album[] @relation("related_album_albumIdToalbums")
relatedToAlbumList related_album[] @relation("related_album_relatedIdToalbums")
stores stores[]
}
@ -423,8 +423,8 @@ model related_album {
updatedAt DateTime @db.DateTime(0)
albumId Int
relatedId Int
albums_related_album_albumIdToalbums albums @relation("related_album_albumIdToalbums", fields: [albumId], references: [id], onDelete: Cascade, map: "related_album_ibfk_1")
albums_related_album_relatedIdToalbums albums @relation("related_album_relatedIdToalbums", fields: [relatedId], references: [id], onDelete: Cascade, map: "related_album_ibfk_2")
pageAlbum albums @relation("related_album_albumIdToalbums", fields: [albumId], references: [id], onDelete: Cascade, map: "related_album_ibfk_1")
relatedAlbum albums @relation("related_album_relatedIdToalbums", fields: [relatedId], references: [id], onDelete: Cascade, map: "related_album_ibfk_2")
@@id([albumId, relatedId])
@@index([relatedId], map: "relatedId")

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

View file

@ -42,7 +42,7 @@ const { session } = Astro.locals
<LoginNav />
</div>
</div>
<nav class='w-full md:h-[55px] bg-dark'>
<nav class='relative w-full md:h-[55px] bg-dark z-50'>
<Toggler>
<a href='/'><NavButton>{m.home()}</NavButton></a>
<a href='/last-added'><NavButton>{m.lastaddednav()}</NavButton></a>

View file

@ -0,0 +1,25 @@
---
import Image from 'astro/components/Image.astro'
interface Props {
href: string | null
alt?: string
icon?: ImageMetadata
direct?: boolean
}
const { href, alt, icon, direct = false } = Astro.props
const { permissions } = Astro.locals
const disabled = direct && !permissions.includes('SKIP_ADS')
---
<a
class:list={[
'flex-1 rounded-md bg-btn-gray hover:bg-dark border-none border-2 border-link hover:border-solid flex justify-center items-center uppercase',
{ 'border-gold hover:text-gold ': direct, 'bg-btn-disabled text-btn-gray': disabled }
]}
target='_blank'
href={href}
>
{icon ? <Image class='rounded' width={20} height={20} alt={alt ?? ''} src={icon} /> : null}
<slot />
</a>

View file

@ -0,0 +1,53 @@
import { useState } from 'react'
import * as m from 'paraglide/messages'
import clsx from 'clsx'
interface Props {
discs: {
number: number | null
body: string | null
}[]
}
export default function TrackList(props: Props) {
const { discs = [] } = props
const [current, setCurrent] = useState(0)
return (
<div className='mt-2'>
<div className='flex'>
{discs.length > 1
? discs.map(({ number }, i) => (
<div key={number} className='flex-1 text-center'>
<button
type='button'
className='w-full py-1 border border-white disabled:text-black disabled:bg-white hover:text-black hover:bg-white'
disabled={current === number}
onClick={() => setCurrent(number ?? 0)}
>
{m.disc()} {(number ?? 0) + 1}
</button>
</div>
))
: null}
</div>
<div className=''>
<div className='col'>
<div className={clsx('border p-3 border-t-0', { 'border-t-2': discs.length === 1 })}>
<table className='gap-y-4' cellPadding='6'>
<tbody>
{discs.length > 0 &&
discs[current].body?.split('\n').map((track, i) => (
<tr key={i}>
<td>{i + 1} </td>
<td>{track}</td>
</tr>
))}
</tbody>
</table>
</div>
</div>
</div>
</div>
)
}

BIN
src/img/assets/fly-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
src/img/assets/ouo-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

338
src/pages/album/[id].astro Normal file
View file

@ -0,0 +1,338 @@
---
import prismaClient from 'utils/prisma-client'
import * as m from 'paraglide/messages'
import { Image } from 'astro:assets'
import BaseLayout from 'layouts/base.astro'
import TrackList from 'components/albumPage/TrackList'
import DownloadBtn from 'components/albumPage/DownloadBtn.astro'
import AlbumBox from 'components/AlbumBox.astro'
import kofi from 'img/socials/ko-fi-donate-button.png'
import discord from 'img/socials/discord.png'
import vgmdbLogo from 'img/assets/vgmdb-logo.png'
import flyIcon from 'img/assets/fly-icon.png'
import ouoIcon from 'img/assets/ouo-icon.png'
const { id } = Astro.params
const album = await prismaClient.albums.findUnique({
where: { id: Number(id) },
include: {
artistList: { select: { artist: true } },
categoryList: { select: { categoryName: true } },
classificationList: { select: { classificationName: true } },
platformList: { select: { platform: { select: { id: true, name: true } } } },
gameList: { select: { game: { select: { slug: true, name: true } } } },
animList: { select: { animation: { select: { id: true, title: true } } } },
stores: { select: { url: true, provider: true }, where: { NOT: { provider: 'SOON' } } },
discs: { select: { number: true, body: true } },
downloads: { select: { title: true, links: true } },
relatedAlbumList: { select: { relatedAlbum: { select: { id: true, title: true } } } }
}
})
if (!album) {
Astro.response.status = 404
Astro.response.statusText = 'Not found'
return
}
const locale = navigator.languages && navigator.languages.length ? navigator.languages[0] : navigator.language
---
<style>
tr {
th {
display: ruby;
}
}
</style>
<BaseLayout>
<div class='flex flex-col flex-1 max-w-[2000px] px-6 py-3'>
<div class='flex gap-x-3'>
<div class='flex-1'>
<div class='size-full relative cursor-pointer'>
<Image
src={`https://cdn.sittingonclouds.net/album/${album.id}.png`}
alt={`${album.title} cover`}
class='rounded-md size-full object-contain absolute'
quality='mid'
inferSize
/>
</div>
</div>
<div class='flex-1'>
<div class='bg-dark rounded-md py-4 px-6'>
<div class='font-medium text-4xl text-center'>{album.title}</div>
{album.subTitle ? <h6 style={{ whiteSpace: 'pre-wrap' }}>{album.subTitle}</h6> : null}
<table class='mt-4'>
<tbody>
{
album.releaseDate ? (
<tr>
<th class='width-row'>{m.releaseDate()}</th>
<td>{new Intl.DateTimeFormat(locale, { dateStyle: 'medium' }).format(album.releaseDate)}</td>
</tr>
) : null
}
{
album.artistList.length > 0 && (
<tr>
<th>{m.artists()}</th>
<td>{album.artistList.map(({ artist }) => artist.name).join(', ')}</td>
</tr>
)
}
<tr>
<th>{m.classification()}</th>
<td>
{
[
album.categoryList.map(({ categoryName }) => (m as any)[`${categoryName}Osts`]()).join(' & '),
album.classificationList.map(({ classificationName }) => classificationName).join(', ')
]
.filter((f) => f !== '')
.join(' - ')
}
</td>
</tr>
{
album.label && (
<tr>
<th>{m.publishedBy()}</th>
<td>
<a class='btn btn-link p-0' href={`/publisher/${album.label}`}>
{album.label}
</a>
</td>
</tr>
)
}
{
album.platformList.length > 0 && (
<tr>
<th>{m.platforms()}</th>
<td>
{album.platformList.map(({ platform }, i) => (
<Fragment key={platform.id}>
{id === '29' ? (
<span class='btn p-0' style={{ color: 'white' }}>
{platform.name}
</span>
) : (
<a class='btn btn-link p-0' href={`/platform/${id}`}>
{platform.name}
</a>
)}
{i !== album.platformList.length - 1 && ', '}
</Fragment>
))}
</td>
</tr>
)
}
{
album.gameList.length > 0 && (
<tr>
<th>{m.games()}</th>
<td>
{album.gameList.map(({ game }, i) => (
<Fragment key={game.slug}>
<a class='btn btn-link p-0' href={`/game/${game.slug}`}>
{game.name}
</a>
{i !== album.gameList.length - 1 && ', '}
</Fragment>
))}
</td>
</tr>
)
}
{
album.animList.length > 0 && (
<tr>
<th>{m.animations()}</th>
<td>
{album.animList.map(({ animation }, i) => (
<Fragment key={id}>
<a class='btn btn-link p-0' href={`/anim/${id}`}>
{animation.title}
</a>
{i !== album.animList.length - 1 && ', '}
</Fragment>
))}
</td>
</tr>
)
}
<tr>
<th>{m.avgRating()}</th>
<td>
<!-- <StarCounter albumId={album.id} /> -->
</td>
</tr>
</tbody>
</table>
<!-- <UserButtons id={album.id} /> -->
</div>
</div>
</div>
<hr />
<div class='flex gap-x-3'>
<div class='flex-1 bg-dark rounded-md p-4'>
<h1 class='text-center uppercase text-4xl font-semibold'>
{m.tracklist()}
</h1>
<div class='px-3'>
<TrackList discs={album.discs} client:only='react' />
</div>
</div>
<div class='flex-1 bg-dark rounded-md p-3'>
{
album.vgmdb && (
<div class='mt-2 mb-3 ml-2 flex'>
<span class='text-xl'>{m.checkVGMDB()}:</span>
<a href={album.vgmdb} class='ml-2' target='_blank' rel='noopener noreferrer'>
<Image width={100} height={30} alt={'VGMdb'} src={vgmdbLogo} />
</a>
</div>
)
}
{
album.stores.length > 0 && (
<div class='row mt-2 px-3'>
<div class='bg-red-500 text-white text-4xl rounded-md px-3 py-4'>
<h1 class='text-center text-3xl uppercase font-semibold drop-shadow-lg'>{m.buyOriginal()}</h1>
<hr class='my-2.5' />
<div class='flex justify-center flex-wrap gap-4'>
{album.stores.map(({ url, provider }, i) => (
<a target='_blank' rel='noopener noreferrer' href={url}>
<Image
class='rounded-md'
width={130}
height={50}
style={{ height: 'auto', width: '130px' }}
alt={provider}
src={`/img/provider/${provider}.jpg`}
/>
</a>
))}
</div>
</div>
</div>
)
}
<hr />
<div>
{
album.downloads?.map((download) => {
const { links, title } = download
return (
<div class=''>
<h2 class='text-center text-3xl'>{title}</h2>
{links.map((link) => {
const { id: linkId, url, url2, provider, directUrl } = link
return (
<Fragment key={linkId}>
<div class='flex gap-2 my-2'>
<div>
<Image
class='rounded'
width={30}
height={30}
alt={provider}
src={`/img/provider/${provider}.png`}
/>
</div>
{url2 && (
<DownloadBtn href={url2} alt='fly' icon={flyIcon}>
{m.flyInc()}
</DownloadBtn>
)}
{url ? (
<DownloadBtn href={url} alt='ouo' icon={ouoIcon}>
{m.ouoIO()}
</DownloadBtn>
) : null}
{directUrl ? (
<DownloadBtn href={directUrl} direct>
{m.direct()}
</DownloadBtn>
) : null}
</div>
</Fragment>
)
})}
<hr />
</div>
)
})
}
</div>
<div>
<div>
<h4 class='text-2xl'>{m.donationCall()}</h4>
<div>
<span> {m.donationSteps()} </span>
<a href='https://discord.gg/AQc9vwGM' target='_blank' rel='noopener noreferrer'>Discord</a>
</div>
</div>
<div class='mt-1'>
<a target='_blank' rel='noopener noreferrer' href='https://ko-fi.com/sittingonclouds'>
<Image style={{ height: 'auto', width: '200px' }} alt='Support me on Ko-fi' src={kofi} />
</a>
</div>
</div>
<hr />
<div class='text-xl'>
<div class='flex items-center'>
<span>{m.brokenLinkContact()}</span>
<a class='' href='https://discord.gg/x23SFbE' target='_blank' rel='noopener noreferrer'>
<Image
alt='Join our Discord!'
class='rounded-md ml-2'
style={{
height: 'auto',
width: '130px'
}}
src={discord}
/>
</a>
</div>
<div class='mt-2'>
<span>{m.mediafirePermission()}</span>
<a class='ml-1 text-link hover:underline' href='https://www.youtube.com/watch?v=d6-hcbEozAQ'>
{m.mediafirePermissionGuide()}
</a>
</div>
</div>
<hr />
</div>
</div>
<!-- Comment List here -->
<div class='mt-2 bg-dark uppercase text-4xl font-semibold rounded-md text-center py-4 px-1.5'>
{m.relatedAlbums()}
</div>
<div class='mt-2'>
<div class='grid grid-cols-4 gap-x-1.5'>
{
album.relatedAlbumList.map(({ relatedAlbum }) => (
<AlbumBox
title={relatedAlbum.title}
href={`/album/${relatedAlbum.id}`}
image={`/album/${relatedAlbum.id}.png`}
/>
))
}
</div>
</div>
</div>
</BaseLayout>

View file

@ -4,3 +4,8 @@
color: white;
font-family: 'Rubik', Sans-serif;
}
hr {
margin-top: 1rem;
margin-bottom: 1rem;
}

View file

@ -9,10 +9,14 @@ export default {
colors: {
dark: '#212529',
'dark-hover': '#2b3035',
gold: '#ffdb37',
'btn-gray': 'rgb(108, 117, 125)',
'btn-disabled': 'rgba(108, 117, 125, .65)',
gray: '#3f3f3f',
'gray-hover': '#4f4f4f',
'soc-green': '#4b7667',
'soc-green-dark': 'rgba(17, 17, 17, 0.7)',
link: 'rgb(110, 168, 254)',
'hover-link': '#00d4ff'
}
}

174
yarn.lock
View file

@ -4,7 +4,7 @@
"@alloc/quick-lru@^5.2.0":
version "5.2.0"
resolved "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz"
resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30"
integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==
"@ampproject/remapping@^2.2.0":
@ -927,7 +927,7 @@
"@isaacs/cliui@^8.0.2":
version "8.0.2"
resolved "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz"
resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550"
integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==
dependencies:
string-width "^5.1.2"
@ -937,7 +937,16 @@
wrap-ansi "^8.1.0"
wrap-ansi-cjs "npm:wrap-ansi@^7.0.0"
"@jridgewell/gen-mapping@^0.3.2", "@jridgewell/gen-mapping@^0.3.5":
"@jridgewell/gen-mapping@^0.3.2":
version "0.3.8"
resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz#4f0e06362e01362f823d348f1872b08f666d8142"
integrity sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==
dependencies:
"@jridgewell/set-array" "^1.2.1"
"@jridgewell/sourcemap-codec" "^1.4.10"
"@jridgewell/trace-mapping" "^0.3.24"
"@jridgewell/gen-mapping@^0.3.5":
version "0.3.5"
resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz"
integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==
@ -1400,7 +1409,7 @@
"@pkgjs/parseargs@^0.11.0":
version "0.11.0"
resolved "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz"
resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33"
integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==
"@pkgr/core@^0.1.0":
@ -1962,7 +1971,7 @@ ansi-styles@^6.1.0, ansi-styles@^6.2.1:
any-promise@^1.0.0:
version "1.3.0"
resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz"
resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==
anymatch@^3.1.3, anymatch@~3.1.2:
@ -1975,7 +1984,7 @@ anymatch@^3.1.3, anymatch@~3.1.2:
arg@^5.0.2:
version "5.0.2"
resolved "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz"
resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c"
integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==
argparse@^1.0.7:
@ -2217,7 +2226,7 @@ asynckit@^0.4.0:
autoprefixer@^10.4.20:
version "10.4.20"
resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz"
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.20.tgz#5caec14d43976ef42e32dcb4bd62878e96be5b3b"
integrity sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==
dependencies:
browserslist "^4.23.3"
@ -2352,17 +2361,7 @@ braces@^3.0.3, braces@~3.0.2:
dependencies:
fill-range "^7.1.1"
browserslist@^4.23.3:
version "4.24.0"
resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz"
integrity sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==
dependencies:
caniuse-lite "^1.0.30001663"
electron-to-chromium "^1.5.28"
node-releases "^2.0.18"
update-browserslist-db "^1.1.0"
browserslist@^4.24.0:
browserslist@^4.23.3, browserslist@^4.24.0:
version "4.24.4"
resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz"
integrity sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==
@ -2405,7 +2404,7 @@ callsites@^3.0.0:
camelcase-css@^2.0.1:
version "2.0.1"
resolved "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz"
resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5"
integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==
camelcase@^8.0.0:
@ -2413,10 +2412,10 @@ camelcase@^8.0.0:
resolved "https://registry.npmjs.org/camelcase/-/camelcase-8.0.0.tgz"
integrity sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==
caniuse-lite@^1.0.30001646, caniuse-lite@^1.0.30001663:
version "1.0.30001663"
resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001663.tgz"
integrity sha512-o9C3X27GLKbLeTYZ6HBOLU1tsAcBZsLis28wrVzddShCS16RujjHp9GDHKZqrB3meE0YjhawvMFsGb/igqiPzA==
caniuse-lite@^1.0.30001646:
version "1.0.30001700"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001700.tgz#26cd429cf09b4fd4e745daf4916039c794d720f6"
integrity sha512-2S6XIXwaE7K7erT8dY+kLQcpa5ms63XlRkMkReXjle+kf6c5g38vyMl+Z5y8dSxOFDhcFe+nxnn261PLxBSQsQ==
caniuse-lite@^1.0.30001688:
version "1.0.30001692"
@ -2586,7 +2585,7 @@ commander@11.1.0:
commander@^4.0.0:
version "4.1.1"
resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz"
resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
commander@^7.2.0:
@ -2661,7 +2660,16 @@ cross-fetch@^4.0.0:
dependencies:
node-fetch "^2.7.0"
cross-spawn@^7.0.0, cross-spawn@^7.0.2:
cross-spawn@^7.0.0:
version "7.0.6"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f"
integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==
dependencies:
path-key "^3.1.0"
shebang-command "^2.0.0"
which "^2.0.1"
cross-spawn@^7.0.2:
version "7.0.3"
resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz"
integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
@ -2909,7 +2917,7 @@ devlop@^1.0.0, devlop@^1.1.0:
didyoumean@^1.2.2:
version "1.2.2"
resolved "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz"
resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037"
integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==
diff@^5.2.0:
@ -2973,7 +2981,7 @@ dset@^3.1.4:
eastasianwidth@^0.2.0:
version "0.2.0"
resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz"
resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb"
integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
ecdsa-sig-formatter@1.0.11:
@ -2988,11 +2996,6 @@ ee-first@1.1.1:
resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"
integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==
electron-to-chromium@^1.5.28:
version "1.5.28"
resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.28.tgz"
integrity sha512-VufdJl+rzaKZoYVUijN13QcXVF5dWPZANeFTLNy+OSpHdDL5ynXTF35+60RSBbaQYB1ae723lQXHCrf4pyLsMw==
electron-to-chromium@^1.5.73:
version "1.5.80"
resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.80.tgz"
@ -3247,7 +3250,7 @@ esbuild@^0.24.2:
"@esbuild/win32-ia32" "0.24.2"
"@esbuild/win32-x64" "0.24.2"
escalade@^3.1.1, escalade@^3.1.2, escalade@^3.2.0:
escalade@^3.1.1, escalade@^3.2.0:
version "3.2.0"
resolved "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz"
integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==
@ -3626,7 +3629,7 @@ for-each@^0.3.3:
foreground-child@^3.1.0:
version "3.3.0"
resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz"
resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.0.tgz#0ac8644c06e431439f8561db8ecf29a7b5519c77"
integrity sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==
dependencies:
cross-spawn "^7.0.0"
@ -3643,7 +3646,7 @@ form-data@^4.0.0:
fraction.js@^4.3.7:
version "4.3.7"
resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz"
resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7"
integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==
fresh@^0.5.2:
@ -3769,7 +3772,7 @@ glob-parent@^6.0.2:
glob@^10.3.10:
version "10.4.5"
resolved "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz"
resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956"
integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==
dependencies:
foreground-child "^3.1.0"
@ -4376,7 +4379,7 @@ iterator.prototype@^1.1.2:
jackspeak@^3.1.2:
version "3.4.3"
resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz"
resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a"
integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==
dependencies:
"@isaacs/cliui" "^8.0.2"
@ -4549,19 +4552,14 @@ levn@^0.4.1:
prelude-ls "^1.2.1"
type-check "~0.4.0"
lilconfig@^3.0.0:
version "3.1.2"
resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz"
integrity sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==
lilconfig@^3.1.3:
lilconfig@^3.0.0, lilconfig@^3.1.3:
version "3.1.3"
resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.3.tgz#a1bcfd6257f9585bf5ae14ceeebb7b559025e4c4"
integrity sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==
lines-and-columns@^1.1.6:
version "1.2.4"
resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz"
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
load-yaml-file@^0.2.0:
@ -5178,7 +5176,7 @@ minipass@^5.0.0:
"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2:
version "7.1.2"
resolved "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz"
resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707"
integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==
minizlib@^2.1.1:
@ -5221,7 +5219,7 @@ murmurhash3js@^3.0.1:
mz@^2.7.0:
version "2.7.0"
resolved "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz"
resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32"
integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==
dependencies:
any-promise "^1.0.0"
@ -5287,11 +5285,6 @@ node-fetch@^2.7.0:
dependencies:
whatwg-url "^5.0.0"
node-releases@^2.0.18:
version "2.0.18"
resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz"
integrity sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==
node-releases@^2.0.19:
version "2.0.19"
resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz"
@ -5309,7 +5302,7 @@ normalize-path@^3.0.0, normalize-path@~3.0.0:
normalize-range@^0.1.2:
version "0.1.2"
resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz"
resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==
nth-check@^2.0.1:
@ -5321,12 +5314,12 @@ nth-check@^2.0.1:
object-assign@^4.0.1, object-assign@^4.1.1:
version "4.1.1"
resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
object-hash@^3.0.0:
version "3.0.0"
resolved "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz"
resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9"
integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==
object-inspect@^1.13.1:
@ -5504,9 +5497,9 @@ p-try@^2.0.0:
integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
package-json-from-dist@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz"
integrity sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==
version "1.0.1"
resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505"
integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==
package-manager-detector@^0.2.0:
version "0.2.0"
@ -5576,7 +5569,7 @@ path-parse@^1.0.7:
path-scurry@^1.11.1:
version "1.11.1"
resolved "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz"
resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2"
integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==
dependencies:
lru-cache "^10.2.0"
@ -5624,7 +5617,7 @@ pify@5.0.0:
pify@^2.3.0:
version "2.3.0"
resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz"
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==
pify@^4.0.1:
@ -5634,7 +5627,7 @@ pify@^4.0.1:
pirates@^4.0.1:
version "4.0.6"
resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz"
resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9"
integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==
pkg-dir@^4.2.0:
@ -5660,7 +5653,7 @@ possible-typed-array-names@^1.0.0:
postcss-import@^15.1.0:
version "15.1.0"
resolved "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz"
resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-15.1.0.tgz#41c64ed8cc0e23735a9698b3249ffdbf704adc70"
integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==
dependencies:
postcss-value-parser "^4.0.0"
@ -5669,14 +5662,14 @@ postcss-import@^15.1.0:
postcss-js@^4.0.1:
version "4.0.1"
resolved "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz"
resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.1.tgz#61598186f3703bab052f1c4f7d805f3991bee9d2"
integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==
dependencies:
camelcase-css "^2.0.1"
postcss-load-config@^4.0.2:
version "4.0.2"
resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz"
resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.2.tgz#7159dcf626118d33e299f485d6afe4aff7c4a3e3"
integrity sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==
dependencies:
lilconfig "^3.0.0"
@ -5691,7 +5684,7 @@ postcss-nested@^6.2.0:
postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.1.1, postcss-selector-parser@^6.1.2:
version "6.1.2"
resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz"
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz#27ecb41fb0e3b6ba7a1ec84fff347f734c7929de"
integrity sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==
dependencies:
cssesc "^3.0.0"
@ -5699,7 +5692,7 @@ postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.1.1, postcss-selecto
postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0:
version "4.2.0"
resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz"
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
postcss@^8.4.14, postcss@^8.4.49:
@ -5712,9 +5705,9 @@ postcss@^8.4.14, postcss@^8.4.49:
source-map-js "^1.2.1"
postcss@^8.4.47, postcss@^8.5.1:
version "8.5.1"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.1.tgz#e2272a1f8a807fafa413218245630b5db10a3214"
integrity sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==
version "8.5.2"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.2.tgz#e7b99cb9d2ec3e8dd424002e7c16517cb2b846bd"
integrity sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA==
dependencies:
nanoid "^3.3.8"
picocolors "^1.1.1"
@ -5879,7 +5872,7 @@ react@^18.3.1:
read-cache@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz"
resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774"
integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==
dependencies:
pify "^2.3.0"
@ -6052,16 +6045,7 @@ resolve-pkg-maps@^1.0.0:
resolved "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz"
integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==
resolve@^1.1.7:
version "1.22.8"
resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz"
integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==
dependencies:
is-core-module "^2.13.0"
path-parse "^1.0.7"
supports-preserve-symlinks-flag "^1.0.0"
resolve@^1.22.8:
resolve@^1.1.7, resolve@^1.22.8:
version "1.22.10"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.10.tgz#b663e83ffb09bbf2386944736baae803029b8b39"
integrity sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==
@ -6349,7 +6333,7 @@ side-channel@^1.0.4, side-channel@^1.0.6:
signal-exit@^4.0.1:
version "4.1.0"
resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04"
integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
simple-swizzle@^0.2.2:
@ -6410,7 +6394,7 @@ stop-iteration-iterator@^1.0.0:
"string-width-cjs@npm:string-width@^4.2.0":
version "4.2.3"
resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
dependencies:
emoji-regex "^8.0.0"
@ -6428,7 +6412,7 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
string-width@^5.0.1, string-width@^5.1.2:
version "5.1.2"
resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794"
integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==
dependencies:
eastasianwidth "^0.2.0"
@ -6516,7 +6500,7 @@ stringify-entities@^4.0.0:
"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
version "6.0.1"
resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
dependencies:
ansi-regex "^5.0.1"
@ -6655,14 +6639,14 @@ text-table@^0.2.0:
thenify-all@^1.0.0:
version "1.6.0"
resolved "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz"
resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726"
integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==
dependencies:
thenify ">= 3.1.0 < 4"
"thenify@>= 3.1.0 < 4":
version "3.3.1"
resolved "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz"
resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f"
integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==
dependencies:
any-promise "^1.0.0"
@ -6726,7 +6710,7 @@ ts-api-utils@^1.3.0:
ts-interface-checker@^0.1.9:
version "0.1.13"
resolved "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz"
resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699"
integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==
tsconfck@^3.1.4:
@ -6989,14 +6973,6 @@ unstorage@^1.14.0:
ofetch "^1.4.1"
ufo "^1.5.4"
update-browserslist-db@^1.1.0:
version "1.1.0"
resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz"
integrity sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==
dependencies:
escalade "^3.1.2"
picocolors "^1.0.1"
update-browserslist-db@^1.1.1:
version "1.1.2"
resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz"
@ -7180,7 +7156,7 @@ word-wrap@^1.2.5:
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
version "7.0.0"
resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
dependencies:
ansi-styles "^4.0.0"
@ -7198,7 +7174,7 @@ wrap-ansi@^7.0.0:
wrap-ansi@^8.1.0:
version "8.1.0"
resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"
integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==
dependencies:
ansi-styles "^6.1.0"
@ -7240,9 +7216,9 @@ yallist@^4.0.0:
integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
yaml@^2.3.4:
version "2.5.1"
resolved "https://registry.npmjs.org/yaml/-/yaml-2.5.1.tgz"
integrity sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==
version "2.7.0"
resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.7.0.tgz#aef9bb617a64c937a9a748803786ad8d3ffe1e98"
integrity sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==
yargs-parser@^21.1.1:
version "21.1.1"