4 Commits

Author SHA1 Message Date
e817e5778b chore(deps): bump @nuxt/devtools from 2.6.2 to 2.7.0
Bumps [@nuxt/devtools](https://github.com/nuxt/devtools/tree/HEAD/packages/devtools) from 2.6.2 to 2.7.0.
- [Release notes](https://github.com/nuxt/devtools/releases)
- [Changelog](https://github.com/nuxt/devtools/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nuxt/devtools/commits/v2.7.0/packages/devtools)

---
updated-dependencies:
- dependency-name: "@nuxt/devtools"
  dependency-version: 2.7.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-07 18:11:35 +00:00
289034d0c8 Add manual release date editor (#262)
* add manual release date editor

* watch() releaseDate instead of relying on coreMetadata updates

* make linter happy

---------

Co-authored-by: udifogiel <udifogiel@proton.me>
2025-11-07 09:27:37 +11:00
2a23f4d14c Fix lints 2025-10-24 09:33:39 +11:00
b20d355527 Improve igdb metadata fetching (#257)
* improve igdb metadata fetching

    * Make sure to get images with reasonable resolution.
      By default the url igdb returns is in "t_thumb" size,
      an image of size 90x90, which is good only for the icon,
      but bad for pretty much else. This commit will make sure
      covers will be of size "t_cover_big", artworks of 1080p
      height (i.e. "t_1080p") and logos will have their original
      size ("t_original"). Maybe "t_logo_med" is more appropriate?

    * Fetch screenshots as well.

    * Use a separate image for icon and for cover.
      icon needs to be a square, and can be of low
      resolution, so the "t_thmb" size is more appropriate
      for him.

    * If there is a storyline for a game use it as a short
      description.

* IDGB -> IGDB

* use the longer text between storyline and description for description

---------

Co-authored-by: udifogiel <udifogiel@proton.me>
2025-10-24 09:25:54 +11:00
6 changed files with 294 additions and 207 deletions

View File

@ -29,6 +29,23 @@
<div class="grid grid-cols-1 lg:grid-cols-3 gap-4 pt-8">
<MultiItemSelector v-model="currentTags" :items="tags" />
<div class="flex flex-col">
<label
for="releaseDate"
class="text-sm/6 font-medium text-zinc-100"
>
{{ $t("library.admin.game.editReleaseDate") }}
</label>
<div class="mt-2">
<input
id="releaseDate"
v-model="releaseDate"
type="date"
name="releaseDate"
class="block w-full rounded-md bg-zinc-800 px-3 py-1.5 text-base text-zinc-100 outline outline-1 -outline-offset-1 outline-zinc-700 placeholder:text-zinc-400 focus:outline focus:outline-2 focus:-outline-offset-2 focus:outline-blue-600 sm:text-sm/6"
/>
</div>
</div>
</div>
<!-- image carousel pick -->
@ -491,11 +508,38 @@ watch(
{ deep: true },
);
const releaseDate = ref(
game.value.mReleased
? new Date(game.value.mReleased).toISOString().substring(0, 10)
: "",
);
watch(releaseDate, async (newDate) => {
const body: PatchGameBody = {};
if (newDate) {
const parsed = new Date(newDate);
if (!isNaN(parsed.getTime())) {
body.mReleased = parsed;
}
}
await $dropFetch(`/api/v1/admin/game/:id`, {
method: "PATCH",
params: {
id: game.value.id,
},
body,
failTitle: "Failed to update release date",
});
});
const { t } = useI18n();
// I don't know why I split these fields off.
const coreMetadataName = ref(game.value.mName);
const coreMetadataDescription = ref(game.value.mShortDescription);
const coreMetadataIconUrl = ref(useObject(game.value.mIconObjectId));
const coreMetadataIconFileUpload = ref<FileList | undefined>();
const coreMetadataLoading = ref(false);

View File

@ -1,3 +1,12 @@
<i18n>
{
"en": {
"↓": "↓",
"↑": "↑"
}
}
</i18n>
<template>
<div>
<div>
@ -180,7 +189,7 @@
>
{{ option.name }}
<span v-if="currentSort === option.param">
{{ sortOrder === 'asc' ? '↑' : '↓' }}
{{ sortOrder === "asc" ? $t("↑") : $t("↓") }}
</span>
</button>
</MenuItem>
@ -500,11 +509,10 @@ await updateGames(filterQuery.value, true);
function handleSortClick(option: StoreSortOption, event: MouseEvent) {
event.stopPropagation();
if (currentSort.value === option.param) {
sortOrder.value = sortOrder.value === 'asc' ? 'desc' : 'asc';
sortOrder.value = sortOrder.value === "asc" ? "desc" : "asc";
} else {
currentSort.value = option.param;
sortOrder.value = option.param === 'name' ? 'asc' : 'desc';
sortOrder.value = option.param === "name" ? "asc" : "desc";
}
}
</script>
</script>

View File

@ -292,6 +292,7 @@
"deleteImage": "Delete image",
"editGameDescription": "Game Description",
"editGameName": "Game Name",
"editReleaseDate": "Release Date",
"imageCarousel": "Image Carousel",
"imageCarouselDescription": "Customise what images and what order are shown on the store page.",
"imageCarouselEmpty": "No images added to the carousel yet.",

356
pnpm-lock.yaml generated
View File

@ -19,10 +19,10 @@ importers:
version: 3.2.0
'@headlessui/vue':
specifier: ^1.7.23
version: 1.7.23(vue@3.5.22(typescript@5.8.3))
version: 1.7.23(vue@3.5.24(typescript@5.8.3))
'@heroicons/vue':
specifier: ^2.1.5
version: 2.2.0(vue@3.5.22(typescript@5.8.3))
version: 2.2.0(vue@3.5.24(typescript@5.8.3))
'@lobomfz/prismark':
specifier: 0.0.3
version: 0.0.3
@ -34,7 +34,7 @@ importers:
version: 1.10.0(@netlify/blobs@9.1.2)(db0@0.3.2)(ioredis@5.7.0)(magicast@0.3.5)
'@nuxtjs/i18n':
specifier: ^9.5.5
version: 9.5.6(@vue/compiler-dom@3.5.22)(eslint@9.31.0(jiti@2.5.1))(magicast@0.3.5)(rollup@4.46.2)(vue@3.5.22(typescript@5.8.3))
version: 9.5.6(@vue/compiler-dom@3.5.24)(eslint@9.31.0(jiti@2.5.1))(magicast@0.3.5)(rollup@4.46.2)(vue@3.5.24(typescript@5.8.3))
'@prisma/client':
specifier: ^6.11.1
version: 6.12.0(prisma@6.12.0(typescript@5.8.3))(typescript@5.8.3)
@ -43,7 +43,7 @@ importers:
version: 4.1.11(vite@7.0.6(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0))
'@vueuse/nuxt':
specifier: 13.6.0
version: 13.6.0(magicast@0.3.5)(nuxt@3.17.7(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.1)(@types/node@22.16.5)(@vue/compiler-sfc@3.5.22)(db0@0.3.2)(eslint@9.31.0(jiti@2.5.1))(ioredis@5.7.0)(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.46.2)(sass@1.89.2)(terser@5.43.1)(typescript@5.8.3)(vite@7.0.6(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0))(vue-tsc@3.0.4(typescript@5.8.3))(yaml@2.8.0))(vue@3.5.22(typescript@5.8.3))
version: 13.6.0(magicast@0.3.5)(nuxt@3.17.7(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.1)(@types/node@22.16.5)(@vue/compiler-sfc@3.5.24)(db0@0.3.2)(eslint@9.31.0(jiti@2.5.1))(ioredis@5.7.0)(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.46.2)(sass@1.89.2)(terser@5.43.1)(typescript@5.8.3)(vite@7.0.6(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0))(vue-tsc@3.0.4(typescript@5.8.3))(yaml@2.8.0))(vue@3.5.24(typescript@5.8.3))
argon2:
specifier: ^0.43.0
version: 0.43.1
@ -82,7 +82,7 @@ importers:
version: 8.0.2
nuxt:
specifier: ^3.17.4
version: 3.17.7(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.1)(@types/node@22.16.5)(@vue/compiler-sfc@3.5.22)(db0@0.3.2)(eslint@9.31.0(jiti@2.5.1))(ioredis@5.7.0)(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.46.2)(sass@1.89.2)(terser@5.43.1)(typescript@5.8.3)(vite@7.0.6(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0))(vue-tsc@3.0.4(typescript@5.8.3))(yaml@2.8.0)
version: 3.17.7(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.1)(@types/node@22.16.5)(@vue/compiler-sfc@3.5.24)(db0@0.3.2)(eslint@9.31.0(jiti@2.5.1))(ioredis@5.7.0)(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.46.2)(sass@1.89.2)(terser@5.43.1)(typescript@5.8.3)(vite@7.0.6(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0))(vue-tsc@3.0.4(typescript@5.8.3))(yaml@2.8.0)
nuxt-security:
specifier: 2.2.0
version: 2.2.0(magicast@0.3.5)(rollup@4.46.2)
@ -115,26 +115,26 @@ importers:
version: 3.1.2(vite@7.0.6(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0))
vue:
specifier: latest
version: 3.5.22(typescript@5.8.3)
version: 3.5.24(typescript@5.8.3)
vue-router:
specifier: latest
version: 4.5.1(vue@3.5.22(typescript@5.8.3))
version: 4.6.3(vue@3.5.24(typescript@5.8.3))
vue3-carousel:
specifier: ^0.16.0
version: 0.16.0(vue@3.5.22(typescript@5.8.3))
version: 0.16.0(vue@3.5.24(typescript@5.8.3))
vue3-carousel-nuxt:
specifier: ^1.1.5
version: 1.1.6(magicast@0.3.5)(vue@3.5.22(typescript@5.8.3))
version: 1.1.6(magicast@0.3.5)(vue@3.5.24(typescript@5.8.3))
vuedraggable:
specifier: ^4.1.0
version: 4.1.0(vue@3.5.22(typescript@5.8.3))
version: 4.1.0(vue@3.5.24(typescript@5.8.3))
devDependencies:
'@intlify/eslint-plugin-vue-i18n':
specifier: ^4.0.1
version: 4.0.1(eslint@9.31.0(jiti@2.5.1))(jsonc-eslint-parser@2.4.0)(vue-eslint-parser@10.2.0(eslint@9.31.0(jiti@2.5.1)))(yaml-eslint-parser@1.3.0)
'@nuxt/eslint':
specifier: ^1.3.0
version: 1.7.1(@typescript-eslint/utils@8.38.0(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3))(@vue/compiler-sfc@3.5.22)(eslint@9.31.0(jiti@2.5.1))(magicast@0.3.5)(typescript@5.8.3)(vite@7.0.6(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0))
version: 1.7.1(@typescript-eslint/utils@8.38.0(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3))(@vue/compiler-sfc@3.5.24)(eslint@9.31.0(jiti@2.5.1))(magicast@0.3.5)(typescript@5.8.3)(vite@7.0.6(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0))
'@tailwindcss/forms':
specifier: ^0.5.9
version: 0.5.10(tailwindcss@4.1.11)
@ -283,6 +283,10 @@ packages:
resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==}
engines: {node: '>=6.9.0'}
'@babel/helper-validator-identifier@7.28.5':
resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==}
engines: {node: '>=6.9.0'}
'@babel/helper-validator-option@7.27.1':
resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==}
engines: {node: '>=6.9.0'}
@ -296,8 +300,8 @@ packages:
engines: {node: '>=6.0.0'}
hasBin: true
'@babel/parser@7.28.4':
resolution: {integrity: sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==}
'@babel/parser@7.28.5':
resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==}
engines: {node: '>=6.0.0'}
hasBin: true
@ -339,8 +343,8 @@ packages:
resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==}
engines: {node: '>=6.9.0'}
'@babel/types@7.28.4':
resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==}
'@babel/types@7.28.5':
resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==}
engines: {node: '>=6.9.0'}
'@capsizecss/metrics@3.5.0':
@ -2084,26 +2088,26 @@ packages:
'@vue/compiler-core@3.5.18':
resolution: {integrity: sha512-3slwjQrrV1TO8MoXgy3aynDQ7lslj5UqDxuHnrzHtpON5CBinhWjJETciPngpin/T3OuW3tXUf86tEurusnztw==}
'@vue/compiler-core@3.5.22':
resolution: {integrity: sha512-jQ0pFPmZwTEiRNSb+i9Ow/I/cHv2tXYqsnHKKyCQ08irI2kdF5qmYedmF8si8mA7zepUFmJ2hqzS8CQmNOWOkQ==}
'@vue/compiler-core@3.5.24':
resolution: {integrity: sha512-eDl5H57AOpNakGNAkFDH+y7kTqrQpJkZFXhWZQGyx/5Wh7B1uQYvcWkvZi11BDhscPgj8N7XV3oRwiPnx1Vrig==}
'@vue/compiler-dom@3.5.18':
resolution: {integrity: sha512-RMbU6NTU70++B1JyVJbNbeFkK+A+Q7y9XKE2EM4NLGm2WFR8x9MbAtWxPPLdm0wUkuZv9trpwfSlL6tjdIa1+A==}
'@vue/compiler-dom@3.5.22':
resolution: {integrity: sha512-W8RknzUM1BLkypvdz10OVsGxnMAuSIZs9Wdx1vzA3mL5fNMN15rhrSCLiTm6blWeACwUwizzPVqGJgOGBEN/hA==}
'@vue/compiler-dom@3.5.24':
resolution: {integrity: sha512-1QHGAvs53gXkWdd3ZMGYuvQFXHW4ksKWPG8HP8/2BscrbZ0brw183q2oNWjMrSWImYLHxHrx1ItBQr50I/q2zw==}
'@vue/compiler-sfc@3.5.18':
resolution: {integrity: sha512-5aBjvGqsWs+MoxswZPoTB9nSDb3dhd1x30xrrltKujlCxo48j8HGDNj3QPhF4VIS0VQDUrA1xUfp2hEa+FNyXA==}
'@vue/compiler-sfc@3.5.22':
resolution: {integrity: sha512-tbTR1zKGce4Lj+JLzFXDq36K4vcSZbJ1RBu8FxcDv1IGRz//Dh2EBqksyGVypz3kXpshIfWKGOCcqpSbyGWRJQ==}
'@vue/compiler-sfc@3.5.24':
resolution: {integrity: sha512-8EG5YPRgmTB+YxYBM3VXy8zHD9SWHUJLIGPhDovo3Z8VOgvP+O7UP5vl0J4BBPWYD9vxtBabzW1EuEZ+Cqs14g==}
'@vue/compiler-ssr@3.5.18':
resolution: {integrity: sha512-xM16Ak7rSWHkM3m22NlmcdIM+K4BMyFARAfV9hYFl+SFuRzrZ3uGMNW05kA5pmeMa0X9X963Kgou7ufdbpOP9g==}
'@vue/compiler-ssr@3.5.22':
resolution: {integrity: sha512-GdgyLvg4R+7T8Nk2Mlighx7XGxq/fJf9jaVofc3IL0EPesTE86cP/8DD1lT3h1JeZr2ySBvyqKQJgbS54IX1Ww==}
'@vue/compiler-ssr@3.5.24':
resolution: {integrity: sha512-trOvMWNBMQ/odMRHW7Ae1CdfYx+7MuiQu62Jtu36gMLXcaoqKvAyh+P73sYG9ll+6jLB6QPovqoKGGZROzkFFg==}
'@vue/compiler-vue2@2.7.16':
resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==}
@ -2130,25 +2134,25 @@ packages:
typescript:
optional: true
'@vue/reactivity@3.5.22':
resolution: {integrity: sha512-f2Wux4v/Z2pqc9+4SmgZC1p73Z53fyD90NFWXiX9AKVnVBEvLFOWCEgJD3GdGnlxPZt01PSlfmLqbLYzY/Fw4A==}
'@vue/reactivity@3.5.24':
resolution: {integrity: sha512-BM8kBhtlkkbnyl4q+HiF5R5BL0ycDPfihowulm02q3WYp2vxgPcJuZO866qa/0u3idbMntKEtVNuAUp5bw4teg==}
'@vue/runtime-core@3.5.22':
resolution: {integrity: sha512-EHo4W/eiYeAzRTN5PCextDUZ0dMs9I8mQ2Fy+OkzvRPUYQEyK9yAjbasrMCXbLNhF7P0OUyivLjIy0yc6VrLJQ==}
'@vue/runtime-core@3.5.24':
resolution: {integrity: sha512-RYP/byyKDgNIqfX/gNb2PB55dJmM97jc9wyF3jK7QUInYKypK2exmZMNwnjueWwGceEkP6NChd3D2ZVEp9undQ==}
'@vue/runtime-dom@3.5.22':
resolution: {integrity: sha512-Av60jsryAkI023PlN7LsqrfPvwfxOd2yAwtReCjeuugTJTkgrksYJJstg1e12qle0NarkfhfFu1ox2D+cQotww==}
'@vue/runtime-dom@3.5.24':
resolution: {integrity: sha512-Z8ANhr/i0XIluonHVjbUkjvn+CyrxbXRIxR7wn7+X7xlcb7dJsfITZbkVOeJZdP8VZwfrWRsWdShH6pngMxRjw==}
'@vue/server-renderer@3.5.22':
resolution: {integrity: sha512-gXjo+ao0oHYTSswF+a3KRHZ1WszxIqO7u6XwNHqcqb9JfyIL/pbWrrh/xLv7jeDqla9u+LK7yfZKHih1e1RKAQ==}
'@vue/server-renderer@3.5.24':
resolution: {integrity: sha512-Yh2j2Y4G/0/4z/xJ1Bad4mxaAk++C2v4kaa8oSYTMJBJ00/ndPuxCnWeot0/7/qafQFLh5pr6xeV6SdMcE/G1w==}
peerDependencies:
vue: 3.5.22
vue: 3.5.24
'@vue/shared@3.5.18':
resolution: {integrity: sha512-cZy8Dq+uuIXbxCZpuLd2GJdeSO/lIzIspC2WtkqIpje5QyFbvLaI5wZtdUjLHjGZrlVX6GilejatWwVYYRc8tA==}
'@vue/shared@3.5.22':
resolution: {integrity: sha512-F4yc6palwq3TT0u+FYf0Ns4Tfl9GRFURDN2gWG7L1ecIaS/4fCIuFOjMTnCyjsu/OK6vaDKLCrGAa+KvvH+h4w==}
'@vue/shared@3.5.24':
resolution: {integrity: sha512-9cwHL2EsJBdi8NY22pngYYWzkTDhld6fAD6jlaeloNGciNSJL6bLpbxVgXl96X00Jtc6YWQv96YA/0sxex/k1A==}
'@vueuse/core@13.6.0':
resolution: {integrity: sha512-DJbD5fV86muVmBgS9QQPddVX7d9hWYswzlf4bIyUD2dj8GC46R1uNClZhVAmsdVts4xb2jwp1PbpuiA50Qee1A==}
@ -3961,8 +3965,8 @@ packages:
magic-string@0.30.17:
resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==}
magic-string@0.30.19:
resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==}
magic-string@0.30.21:
resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
magicast@0.3.5:
resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==}
@ -5709,10 +5713,10 @@ packages:
peerDependencies:
vue: ^3.0.0
vue-router@4.5.1:
resolution: {integrity: sha512-ogAF3P97NPm8fJsE4by9dwSYtDwXIY1nFY9T6DyQnGHd1E2Da94w9JIolpe42LJGIl0DwOHBi8TcRPlPGwbTtw==}
vue-router@4.6.3:
resolution: {integrity: sha512-ARBedLm9YlbvQomnmq91Os7ck6efydTSpRP3nuOKCvgJOHNrhRoJDSKtee8kcL1Vf7nz6U+PMBL+hTvR3bTVQg==}
peerDependencies:
vue: ^3.2.0
vue: ^3.5.0
vue-tsc@3.0.4:
resolution: {integrity: sha512-kZmSEjGtROApVBuaIcoprrXZsFNGon5ggkTJokmhQ/H1hMzCFRPQ0Ed8IHYFsmYJYvHBcdmEQVGVcRuxzPzNbw==}
@ -5733,8 +5737,8 @@ packages:
peerDependencies:
vue: ^3.5.0
vue@3.5.22:
resolution: {integrity: sha512-toaZjQ3a/G/mYaLSbV+QsQhIdMo9x5rrqIpYRObsJ6T/J+RyCSFwN2LHNVH9v8uIcljDNa3QzPVdv3Y6b9hAJQ==}
vue@3.5.24:
resolution: {integrity: sha512-uTHDOpVQTMjcGgrqFPSb8iO2m1DUvo+WbGqoXQz8Y1CeBYQ0FXf2z1gLRaBtHjlRz7zZUBHxjVB5VTLzYkvftg==}
peerDependencies:
typescript: '*'
peerDependenciesMeta:
@ -5946,7 +5950,7 @@ snapshots:
'@babel/helper-annotate-as-pure@7.27.3':
dependencies:
'@babel/types': 7.28.4
'@babel/types': 7.28.5
'@babel/helper-compilation-targets@7.27.2':
dependencies:
@ -5974,7 +5978,7 @@ snapshots:
'@babel/helper-member-expression-to-functions@7.27.1':
dependencies:
'@babel/traverse': 7.28.0
'@babel/types': 7.28.4
'@babel/types': 7.28.5
transitivePeerDependencies:
- supports-color
@ -5996,7 +6000,7 @@ snapshots:
'@babel/helper-optimise-call-expression@7.27.1':
dependencies:
'@babel/types': 7.28.4
'@babel/types': 7.28.5
'@babel/helper-plugin-utils@7.27.1': {}
@ -6012,7 +6016,7 @@ snapshots:
'@babel/helper-skip-transparent-expression-wrappers@7.27.1':
dependencies:
'@babel/traverse': 7.28.0
'@babel/types': 7.28.4
'@babel/types': 7.28.5
transitivePeerDependencies:
- supports-color
@ -6020,6 +6024,8 @@ snapshots:
'@babel/helper-validator-identifier@7.27.1': {}
'@babel/helper-validator-identifier@7.28.5': {}
'@babel/helper-validator-option@7.27.1': {}
'@babel/helpers@7.28.2':
@ -6031,9 +6037,9 @@ snapshots:
dependencies:
'@babel/types': 7.28.2
'@babel/parser@7.28.4':
'@babel/parser@7.28.5':
dependencies:
'@babel/types': 7.28.4
'@babel/types': 7.28.5
'@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.0)':
dependencies:
@ -6086,10 +6092,10 @@ snapshots:
'@babel/helper-string-parser': 7.27.1
'@babel/helper-validator-identifier': 7.27.1
'@babel/types@7.28.4':
'@babel/types@7.28.5':
dependencies:
'@babel/helper-string-parser': 7.27.1
'@babel/helper-validator-identifier': 7.27.1
'@babel/helper-validator-identifier': 7.28.5
'@capsizecss/metrics@3.5.0': {}
@ -6434,14 +6440,14 @@ snapshots:
'@fastify/busboy@3.1.1': {}
'@headlessui/vue@1.7.23(vue@3.5.22(typescript@5.8.3))':
'@headlessui/vue@1.7.23(vue@3.5.24(typescript@5.8.3))':
dependencies:
'@tanstack/vue-virtual': 3.13.12(vue@3.5.22(typescript@5.8.3))
vue: 3.5.22(typescript@5.8.3)
'@tanstack/vue-virtual': 3.13.12(vue@3.5.24(typescript@5.8.3))
vue: 3.5.24(typescript@5.8.3)
'@heroicons/vue@2.2.0(vue@3.5.22(typescript@5.8.3))':
'@heroicons/vue@2.2.0(vue@3.5.24(typescript@5.8.3))':
dependencies:
vue: 3.5.22(typescript@5.8.3)
vue: 3.5.24(typescript@5.8.3)
'@humanfs/core@0.19.1': {}
@ -6456,7 +6462,7 @@ snapshots:
'@humanwhocodes/retry@0.4.3': {}
'@intlify/bundle-utils@10.0.1(vue-i18n@10.0.8(vue@3.5.22(typescript@5.8.3)))':
'@intlify/bundle-utils@10.0.1(vue-i18n@10.0.8(vue@3.5.24(typescript@5.8.3)))':
dependencies:
'@intlify/message-compiler': 11.1.11
'@intlify/shared': 11.1.11
@ -6468,7 +6474,7 @@ snapshots:
source-map-js: 1.2.1
yaml-eslint-parser: 1.3.0
optionalDependencies:
vue-i18n: 10.0.8(vue@3.5.22(typescript@5.8.3))
vue-i18n: 10.0.8(vue@3.5.24(typescript@5.8.3))
'@intlify/core-base@10.0.8':
dependencies:
@ -6529,12 +6535,12 @@ snapshots:
'@intlify/shared@11.1.11': {}
'@intlify/unplugin-vue-i18n@6.0.8(@vue/compiler-dom@3.5.22)(eslint@9.31.0(jiti@2.5.1))(rollup@4.46.2)(typescript@5.8.3)(vue-i18n@10.0.8(vue@3.5.22(typescript@5.8.3)))(vue@3.5.22(typescript@5.8.3))':
'@intlify/unplugin-vue-i18n@6.0.8(@vue/compiler-dom@3.5.24)(eslint@9.31.0(jiti@2.5.1))(rollup@4.46.2)(typescript@5.8.3)(vue-i18n@10.0.8(vue@3.5.24(typescript@5.8.3)))(vue@3.5.24(typescript@5.8.3))':
dependencies:
'@eslint-community/eslint-utils': 4.7.0(eslint@9.31.0(jiti@2.5.1))
'@intlify/bundle-utils': 10.0.1(vue-i18n@10.0.8(vue@3.5.22(typescript@5.8.3)))
'@intlify/bundle-utils': 10.0.1(vue-i18n@10.0.8(vue@3.5.24(typescript@5.8.3)))
'@intlify/shared': 11.1.11
'@intlify/vue-i18n-extensions': 8.0.0(@intlify/shared@11.1.11)(@vue/compiler-dom@3.5.22)(vue-i18n@10.0.8(vue@3.5.22(typescript@5.8.3)))(vue@3.5.22(typescript@5.8.3))
'@intlify/vue-i18n-extensions': 8.0.0(@intlify/shared@11.1.11)(@vue/compiler-dom@3.5.24)(vue-i18n@10.0.8(vue@3.5.24(typescript@5.8.3)))(vue@3.5.24(typescript@5.8.3))
'@rollup/pluginutils': 5.2.0(rollup@4.46.2)
'@typescript-eslint/scope-manager': 8.38.0
'@typescript-eslint/typescript-estree': 8.38.0(typescript@5.8.3)
@ -6546,9 +6552,9 @@ snapshots:
picocolors: 1.1.1
source-map-js: 1.2.1
unplugin: 1.16.1
vue: 3.5.22(typescript@5.8.3)
vue: 3.5.24(typescript@5.8.3)
optionalDependencies:
vue-i18n: 10.0.8(vue@3.5.22(typescript@5.8.3))
vue-i18n: 10.0.8(vue@3.5.24(typescript@5.8.3))
transitivePeerDependencies:
- '@vue/compiler-dom'
- eslint
@ -6558,14 +6564,14 @@ snapshots:
'@intlify/utils@0.13.0': {}
'@intlify/vue-i18n-extensions@8.0.0(@intlify/shared@11.1.11)(@vue/compiler-dom@3.5.22)(vue-i18n@10.0.8(vue@3.5.22(typescript@5.8.3)))(vue@3.5.22(typescript@5.8.3))':
'@intlify/vue-i18n-extensions@8.0.0(@intlify/shared@11.1.11)(@vue/compiler-dom@3.5.24)(vue-i18n@10.0.8(vue@3.5.24(typescript@5.8.3)))(vue@3.5.24(typescript@5.8.3))':
dependencies:
'@babel/parser': 7.28.0
optionalDependencies:
'@intlify/shared': 11.1.11
'@vue/compiler-dom': 3.5.22
vue: 3.5.22(typescript@5.8.3)
vue-i18n: 10.0.8(vue@3.5.22(typescript@5.8.3))
'@vue/compiler-dom': 3.5.24
vue: 3.5.24(typescript@5.8.3)
vue-i18n: 10.0.8(vue@3.5.24(typescript@5.8.3))
'@ioredis/commands@1.3.0': {}
@ -6814,12 +6820,12 @@ snapshots:
prompts: 2.4.2
semver: 7.7.2
'@nuxt/devtools@2.6.2(vite@7.0.6(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.22(typescript@5.8.3))':
'@nuxt/devtools@2.6.2(vite@7.0.6(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.24(typescript@5.8.3))':
dependencies:
'@nuxt/devtools-kit': 2.6.2(magicast@0.3.5)(vite@7.0.6(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0))
'@nuxt/devtools-wizard': 2.6.2
'@nuxt/kit': 3.18.0(magicast@0.3.5)
'@vue/devtools-core': 7.7.7(vite@7.0.6(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.22(typescript@5.8.3))
'@vue/devtools-core': 7.7.7(vite@7.0.6(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.24(typescript@5.8.3))
'@vue/devtools-kit': 7.7.7
birpc: 2.5.0
consola: 3.4.2
@ -6846,7 +6852,7 @@ snapshots:
tinyglobby: 0.2.14
vite: 7.0.6(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0)
vite-plugin-inspect: 11.3.2(@nuxt/kit@3.18.0(magicast@0.3.5))(vite@7.0.6(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0))
vite-plugin-vue-tracer: 1.0.0(vite@7.0.6(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.22(typescript@5.8.3))
vite-plugin-vue-tracer: 1.0.0(vite@7.0.6(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.24(typescript@5.8.3))
which: 5.0.0
ws: 8.18.3
transitivePeerDependencies:
@ -6855,7 +6861,7 @@ snapshots:
- utf-8-validate
- vue
'@nuxt/eslint-config@1.7.1(@typescript-eslint/utils@8.38.0(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3))(@vue/compiler-sfc@3.5.22)(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3)':
'@nuxt/eslint-config@1.7.1(@typescript-eslint/utils@8.38.0(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3))(@vue/compiler-sfc@3.5.24)(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3)':
dependencies:
'@antfu/install-pkg': 1.1.0
'@clack/prompts': 0.11.0
@ -6874,7 +6880,7 @@ snapshots:
eslint-plugin-regexp: 2.9.0(eslint@9.31.0(jiti@2.5.1))
eslint-plugin-unicorn: 60.0.0(eslint@9.31.0(jiti@2.5.1))
eslint-plugin-vue: 10.4.0(@typescript-eslint/parser@8.38.0(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.31.0(jiti@2.5.1))(vue-eslint-parser@10.2.0(eslint@9.31.0(jiti@2.5.1)))
eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.22)(eslint@9.31.0(jiti@2.5.1))
eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.24)(eslint@9.31.0(jiti@2.5.1))
globals: 16.3.0
local-pkg: 1.1.1
pathe: 2.0.3
@ -6895,11 +6901,11 @@ snapshots:
- supports-color
- typescript
'@nuxt/eslint@1.7.1(@typescript-eslint/utils@8.38.0(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3))(@vue/compiler-sfc@3.5.22)(eslint@9.31.0(jiti@2.5.1))(magicast@0.3.5)(typescript@5.8.3)(vite@7.0.6(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0))':
'@nuxt/eslint@1.7.1(@typescript-eslint/utils@8.38.0(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3))(@vue/compiler-sfc@3.5.24)(eslint@9.31.0(jiti@2.5.1))(magicast@0.3.5)(typescript@5.8.3)(vite@7.0.6(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0))':
dependencies:
'@eslint/config-inspector': 1.1.0(eslint@9.31.0(jiti@2.5.1))
'@nuxt/devtools-kit': 2.6.2(magicast@0.3.5)(vite@7.0.6(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0))
'@nuxt/eslint-config': 1.7.1(@typescript-eslint/utils@8.38.0(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3))(@vue/compiler-sfc@3.5.22)(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3)
'@nuxt/eslint-config': 1.7.1(@typescript-eslint/utils@8.38.0(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3))(@vue/compiler-sfc@3.5.24)(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3)
'@nuxt/eslint-plugin': 1.7.1(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3)
'@nuxt/kit': 4.0.2(magicast@0.3.5)
chokidar: 4.0.3
@ -7109,12 +7115,12 @@ snapshots:
transitivePeerDependencies:
- magicast
'@nuxt/vite-builder@3.17.7(@types/node@22.16.5)(eslint@9.31.0(jiti@2.5.1))(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.46.2)(sass@1.89.2)(terser@5.43.1)(typescript@5.8.3)(vue-tsc@3.0.4(typescript@5.8.3))(vue@3.5.22(typescript@5.8.3))(yaml@2.8.0)':
'@nuxt/vite-builder@3.17.7(@types/node@22.16.5)(eslint@9.31.0(jiti@2.5.1))(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.46.2)(sass@1.89.2)(terser@5.43.1)(typescript@5.8.3)(vue-tsc@3.0.4(typescript@5.8.3))(vue@3.5.24(typescript@5.8.3))(yaml@2.8.0)':
dependencies:
'@nuxt/kit': 3.17.7(magicast@0.3.5)
'@rollup/plugin-replace': 6.0.2(rollup@4.46.2)
'@vitejs/plugin-vue': 5.2.4(vite@6.3.5(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.22(typescript@5.8.3))
'@vitejs/plugin-vue-jsx': 4.2.0(vite@6.3.5(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.22(typescript@5.8.3))
'@vitejs/plugin-vue': 5.2.4(vite@6.3.5(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.24(typescript@5.8.3))
'@vitejs/plugin-vue-jsx': 4.2.0(vite@6.3.5(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.24(typescript@5.8.3))
autoprefixer: 10.4.21(postcss@8.5.6)
consola: 3.4.2
cssnano: 7.1.0(postcss@8.5.6)
@ -7142,7 +7148,7 @@ snapshots:
vite: 6.3.5(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0)
vite-node: 3.2.4(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0)
vite-plugin-checker: 0.10.1(eslint@9.31.0(jiti@2.5.1))(optionator@0.9.4)(typescript@5.8.3)(vite@6.3.5(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0))(vue-tsc@3.0.4(typescript@5.8.3))
vue: 3.5.22(typescript@5.8.3)
vue: 3.5.24(typescript@5.8.3)
vue-bundle-renderer: 2.1.2
transitivePeerDependencies:
- '@biomejs/biome'
@ -7169,11 +7175,11 @@ snapshots:
- vue-tsc
- yaml
'@nuxtjs/i18n@9.5.6(@vue/compiler-dom@3.5.22)(eslint@9.31.0(jiti@2.5.1))(magicast@0.3.5)(rollup@4.46.2)(vue@3.5.22(typescript@5.8.3))':
'@nuxtjs/i18n@9.5.6(@vue/compiler-dom@3.5.24)(eslint@9.31.0(jiti@2.5.1))(magicast@0.3.5)(rollup@4.46.2)(vue@3.5.24(typescript@5.8.3))':
dependencies:
'@intlify/h3': 0.6.1
'@intlify/shared': 10.0.8
'@intlify/unplugin-vue-i18n': 6.0.8(@vue/compiler-dom@3.5.22)(eslint@9.31.0(jiti@2.5.1))(rollup@4.46.2)(typescript@5.8.3)(vue-i18n@10.0.8(vue@3.5.22(typescript@5.8.3)))(vue@3.5.22(typescript@5.8.3))
'@intlify/unplugin-vue-i18n': 6.0.8(@vue/compiler-dom@3.5.24)(eslint@9.31.0(jiti@2.5.1))(rollup@4.46.2)(typescript@5.8.3)(vue-i18n@10.0.8(vue@3.5.24(typescript@5.8.3)))(vue@3.5.24(typescript@5.8.3))
'@intlify/utils': 0.13.0
'@miyaneee/rollup-plugin-json5': 1.2.0(rollup@4.46.2)
'@nuxt/kit': 3.18.0(magicast@0.3.5)
@ -7193,9 +7199,9 @@ snapshots:
typescript: 5.8.3
ufo: 1.6.1
unplugin: 2.3.5
unplugin-vue-router: 0.12.0(vue-router@4.5.1(vue@3.5.22(typescript@5.8.3)))(vue@3.5.22(typescript@5.8.3))
vue-i18n: 10.0.8(vue@3.5.22(typescript@5.8.3))
vue-router: 4.5.1(vue@3.5.22(typescript@5.8.3))
unplugin-vue-router: 0.12.0(vue-router@4.6.3(vue@3.5.24(typescript@5.8.3)))(vue@3.5.24(typescript@5.8.3))
vue-i18n: 10.0.8(vue@3.5.24(typescript@5.8.3))
vue-router: 4.6.3(vue@3.5.24(typescript@5.8.3))
transitivePeerDependencies:
- '@vue/compiler-dom'
- eslint
@ -7673,10 +7679,10 @@ snapshots:
'@tanstack/virtual-core@3.13.12': {}
'@tanstack/vue-virtual@3.13.12(vue@3.5.22(typescript@5.8.3))':
'@tanstack/vue-virtual@3.13.12(vue@3.5.24(typescript@5.8.3))':
dependencies:
'@tanstack/virtual-core': 3.13.12
vue: 3.5.22(typescript@5.8.3)
vue: 3.5.24(typescript@5.8.3)
'@tokenizer/token@0.3.0': {}
@ -7824,11 +7830,11 @@ snapshots:
'@typescript-eslint/types': 8.38.0
eslint-visitor-keys: 4.2.1
'@unhead/vue@2.0.13(vue@3.5.22(typescript@5.8.3))':
'@unhead/vue@2.0.13(vue@3.5.24(typescript@5.8.3))':
dependencies:
hookable: 5.5.3
unhead: 2.0.13
vue: 3.5.22(typescript@5.8.3)
vue: 3.5.24(typescript@5.8.3)
'@unrs/resolver-binding-android-arm-eabi@1.11.1':
optional: true
@ -7908,21 +7914,21 @@ snapshots:
- rollup
- supports-color
'@vitejs/plugin-vue-jsx@4.2.0(vite@6.3.5(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.22(typescript@5.8.3))':
'@vitejs/plugin-vue-jsx@4.2.0(vite@6.3.5(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.24(typescript@5.8.3))':
dependencies:
'@babel/core': 7.28.0
'@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.0)
'@rolldown/pluginutils': 1.0.0-beta.29
'@vue/babel-plugin-jsx': 1.4.0(@babel/core@7.28.0)
vite: 6.3.5(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0)
vue: 3.5.22(typescript@5.8.3)
vue: 3.5.24(typescript@5.8.3)
transitivePeerDependencies:
- supports-color
'@vitejs/plugin-vue@5.2.4(vite@6.3.5(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.22(typescript@5.8.3))':
'@vitejs/plugin-vue@5.2.4(vite@6.3.5(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.24(typescript@5.8.3))':
dependencies:
vite: 6.3.5(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0)
vue: 3.5.22(typescript@5.8.3)
vue: 3.5.24(typescript@5.8.3)
'@volar/language-core@2.4.20':
dependencies:
@ -7936,7 +7942,7 @@ snapshots:
path-browserify: 1.0.1
vscode-uri: 3.1.0
'@vue-macros/common@1.16.1(vue@3.5.22(typescript@5.8.3))':
'@vue-macros/common@1.16.1(vue@3.5.24(typescript@5.8.3))':
dependencies:
'@vue/compiler-sfc': 3.5.18
ast-kit: 1.4.3
@ -7945,17 +7951,17 @@ snapshots:
pathe: 2.0.3
picomatch: 4.0.3
optionalDependencies:
vue: 3.5.22(typescript@5.8.3)
vue: 3.5.24(typescript@5.8.3)
'@vue-macros/common@3.0.0-beta.15(vue@3.5.22(typescript@5.8.3))':
'@vue-macros/common@3.0.0-beta.15(vue@3.5.24(typescript@5.8.3))':
dependencies:
'@vue/compiler-sfc': 3.5.22
'@vue/compiler-sfc': 3.5.24
ast-kit: 2.1.1
local-pkg: 1.1.1
magic-string-ast: 1.0.0
unplugin-utils: 0.2.4
optionalDependencies:
vue: 3.5.22(typescript@5.8.3)
vue: 3.5.24(typescript@5.8.3)
'@vue/babel-helper-vue-transform-on@1.4.0': {}
@ -7981,8 +7987,8 @@ snapshots:
'@babel/core': 7.28.0
'@babel/helper-module-imports': 7.27.1
'@babel/helper-plugin-utils': 7.27.1
'@babel/parser': 7.28.4
'@vue/compiler-sfc': 3.5.22
'@babel/parser': 7.28.5
'@vue/compiler-sfc': 3.5.24
transitivePeerDependencies:
- supports-color
@ -7994,10 +8000,10 @@ snapshots:
estree-walker: 2.0.2
source-map-js: 1.2.1
'@vue/compiler-core@3.5.22':
'@vue/compiler-core@3.5.24':
dependencies:
'@babel/parser': 7.28.4
'@vue/shared': 3.5.22
'@babel/parser': 7.28.5
'@vue/shared': 3.5.24
entities: 4.5.0
estree-walker: 2.0.2
source-map-js: 1.2.1
@ -8007,10 +8013,10 @@ snapshots:
'@vue/compiler-core': 3.5.18
'@vue/shared': 3.5.18
'@vue/compiler-dom@3.5.22':
'@vue/compiler-dom@3.5.24':
dependencies:
'@vue/compiler-core': 3.5.22
'@vue/shared': 3.5.22
'@vue/compiler-core': 3.5.24
'@vue/shared': 3.5.24
'@vue/compiler-sfc@3.5.18':
dependencies:
@ -8024,15 +8030,15 @@ snapshots:
postcss: 8.5.6
source-map-js: 1.2.1
'@vue/compiler-sfc@3.5.22':
'@vue/compiler-sfc@3.5.24':
dependencies:
'@babel/parser': 7.28.4
'@vue/compiler-core': 3.5.22
'@vue/compiler-dom': 3.5.22
'@vue/compiler-ssr': 3.5.22
'@vue/shared': 3.5.22
'@babel/parser': 7.28.5
'@vue/compiler-core': 3.5.24
'@vue/compiler-dom': 3.5.24
'@vue/compiler-ssr': 3.5.24
'@vue/shared': 3.5.24
estree-walker: 2.0.2
magic-string: 0.30.19
magic-string: 0.30.21
postcss: 8.5.6
source-map-js: 1.2.1
@ -8041,10 +8047,10 @@ snapshots:
'@vue/compiler-dom': 3.5.18
'@vue/shared': 3.5.18
'@vue/compiler-ssr@3.5.22':
'@vue/compiler-ssr@3.5.24':
dependencies:
'@vue/compiler-dom': 3.5.22
'@vue/shared': 3.5.22
'@vue/compiler-dom': 3.5.24
'@vue/shared': 3.5.24
'@vue/compiler-vue2@2.7.16':
dependencies:
@ -8053,7 +8059,7 @@ snapshots:
'@vue/devtools-api@6.6.4': {}
'@vue/devtools-core@7.7.7(vite@7.0.6(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.22(typescript@5.8.3))':
'@vue/devtools-core@7.7.7(vite@7.0.6(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.24(typescript@5.8.3))':
dependencies:
'@vue/devtools-kit': 7.7.7
'@vue/devtools-shared': 7.7.7
@ -8061,7 +8067,7 @@ snapshots:
nanoid: 5.1.5
pathe: 2.0.3
vite-hot-client: 2.1.0(vite@7.0.6(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0))
vue: 3.5.22(typescript@5.8.3)
vue: 3.5.24(typescript@5.8.3)
transitivePeerDependencies:
- vite
@ -8092,55 +8098,55 @@ snapshots:
optionalDependencies:
typescript: 5.8.3
'@vue/reactivity@3.5.22':
'@vue/reactivity@3.5.24':
dependencies:
'@vue/shared': 3.5.22
'@vue/shared': 3.5.24
'@vue/runtime-core@3.5.22':
'@vue/runtime-core@3.5.24':
dependencies:
'@vue/reactivity': 3.5.22
'@vue/shared': 3.5.22
'@vue/reactivity': 3.5.24
'@vue/shared': 3.5.24
'@vue/runtime-dom@3.5.22':
'@vue/runtime-dom@3.5.24':
dependencies:
'@vue/reactivity': 3.5.22
'@vue/runtime-core': 3.5.22
'@vue/shared': 3.5.22
'@vue/reactivity': 3.5.24
'@vue/runtime-core': 3.5.24
'@vue/shared': 3.5.24
csstype: 3.1.3
'@vue/server-renderer@3.5.22(vue@3.5.22(typescript@5.8.3))':
'@vue/server-renderer@3.5.24(vue@3.5.24(typescript@5.8.3))':
dependencies:
'@vue/compiler-ssr': 3.5.22
'@vue/shared': 3.5.22
vue: 3.5.22(typescript@5.8.3)
'@vue/compiler-ssr': 3.5.24
'@vue/shared': 3.5.24
vue: 3.5.24(typescript@5.8.3)
'@vue/shared@3.5.18': {}
'@vue/shared@3.5.22': {}
'@vue/shared@3.5.24': {}
'@vueuse/core@13.6.0(vue@3.5.22(typescript@5.8.3))':
'@vueuse/core@13.6.0(vue@3.5.24(typescript@5.8.3))':
dependencies:
'@types/web-bluetooth': 0.0.21
'@vueuse/metadata': 13.6.0
'@vueuse/shared': 13.6.0(vue@3.5.22(typescript@5.8.3))
vue: 3.5.22(typescript@5.8.3)
'@vueuse/shared': 13.6.0(vue@3.5.24(typescript@5.8.3))
vue: 3.5.24(typescript@5.8.3)
'@vueuse/metadata@13.6.0': {}
'@vueuse/nuxt@13.6.0(magicast@0.3.5)(nuxt@3.17.7(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.1)(@types/node@22.16.5)(@vue/compiler-sfc@3.5.22)(db0@0.3.2)(eslint@9.31.0(jiti@2.5.1))(ioredis@5.7.0)(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.46.2)(sass@1.89.2)(terser@5.43.1)(typescript@5.8.3)(vite@7.0.6(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0))(vue-tsc@3.0.4(typescript@5.8.3))(yaml@2.8.0))(vue@3.5.22(typescript@5.8.3))':
'@vueuse/nuxt@13.6.0(magicast@0.3.5)(nuxt@3.17.7(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.1)(@types/node@22.16.5)(@vue/compiler-sfc@3.5.24)(db0@0.3.2)(eslint@9.31.0(jiti@2.5.1))(ioredis@5.7.0)(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.46.2)(sass@1.89.2)(terser@5.43.1)(typescript@5.8.3)(vite@7.0.6(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0))(vue-tsc@3.0.4(typescript@5.8.3))(yaml@2.8.0))(vue@3.5.24(typescript@5.8.3))':
dependencies:
'@nuxt/kit': 4.0.2(magicast@0.3.5)
'@vueuse/core': 13.6.0(vue@3.5.22(typescript@5.8.3))
'@vueuse/core': 13.6.0(vue@3.5.24(typescript@5.8.3))
'@vueuse/metadata': 13.6.0
local-pkg: 1.1.1
nuxt: 3.17.7(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.1)(@types/node@22.16.5)(@vue/compiler-sfc@3.5.22)(db0@0.3.2)(eslint@9.31.0(jiti@2.5.1))(ioredis@5.7.0)(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.46.2)(sass@1.89.2)(terser@5.43.1)(typescript@5.8.3)(vite@7.0.6(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0))(vue-tsc@3.0.4(typescript@5.8.3))(yaml@2.8.0)
vue: 3.5.22(typescript@5.8.3)
nuxt: 3.17.7(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.1)(@types/node@22.16.5)(@vue/compiler-sfc@3.5.24)(db0@0.3.2)(eslint@9.31.0(jiti@2.5.1))(ioredis@5.7.0)(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.46.2)(sass@1.89.2)(terser@5.43.1)(typescript@5.8.3)(vite@7.0.6(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0))(vue-tsc@3.0.4(typescript@5.8.3))(yaml@2.8.0)
vue: 3.5.24(typescript@5.8.3)
transitivePeerDependencies:
- magicast
'@vueuse/shared@13.6.0(vue@3.5.22(typescript@5.8.3))':
'@vueuse/shared@13.6.0(vue@3.5.24(typescript@5.8.3))':
dependencies:
vue: 3.5.22(typescript@5.8.3)
vue: 3.5.24(typescript@5.8.3)
'@whatwg-node/disposablestack@0.0.6':
dependencies:
@ -8849,7 +8855,7 @@ snapshots:
detective-vue2@2.2.0(typescript@5.8.3):
dependencies:
'@dependents/detective-less': 5.0.1
'@vue/compiler-sfc': 3.5.22
'@vue/compiler-sfc': 3.5.24
detective-es6: 5.0.1
detective-sass: 6.0.1
detective-scss: 5.0.1
@ -9149,9 +9155,9 @@ snapshots:
optionalDependencies:
'@typescript-eslint/parser': 8.38.0(eslint@9.31.0(jiti@2.5.1))(typescript@5.8.3)
eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.22)(eslint@9.31.0(jiti@2.5.1)):
eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.24)(eslint@9.31.0(jiti@2.5.1)):
dependencies:
'@vue/compiler-sfc': 3.5.22
'@vue/compiler-sfc': 3.5.24
eslint: 9.31.0(jiti@2.5.1)
eslint-scope@8.4.0:
@ -10051,7 +10057,7 @@ snapshots:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.4
magic-string@0.30.19:
magic-string@0.30.21:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
@ -10502,16 +10508,16 @@ snapshots:
- rollup
- supports-color
nuxt@3.17.7(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.1)(@types/node@22.16.5)(@vue/compiler-sfc@3.5.22)(db0@0.3.2)(eslint@9.31.0(jiti@2.5.1))(ioredis@5.7.0)(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.46.2)(sass@1.89.2)(terser@5.43.1)(typescript@5.8.3)(vite@7.0.6(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0))(vue-tsc@3.0.4(typescript@5.8.3))(yaml@2.8.0):
nuxt@3.17.7(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.1)(@types/node@22.16.5)(@vue/compiler-sfc@3.5.24)(db0@0.3.2)(eslint@9.31.0(jiti@2.5.1))(ioredis@5.7.0)(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.46.2)(sass@1.89.2)(terser@5.43.1)(typescript@5.8.3)(vite@7.0.6(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0))(vue-tsc@3.0.4(typescript@5.8.3))(yaml@2.8.0):
dependencies:
'@nuxt/cli': 3.27.0(magicast@0.3.5)
'@nuxt/devalue': 2.0.2
'@nuxt/devtools': 2.6.2(vite@7.0.6(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.22(typescript@5.8.3))
'@nuxt/devtools': 2.6.2(vite@7.0.6(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.24(typescript@5.8.3))
'@nuxt/kit': 3.17.7(magicast@0.3.5)
'@nuxt/schema': 3.17.7
'@nuxt/telemetry': 2.6.6(magicast@0.3.5)
'@nuxt/vite-builder': 3.17.7(@types/node@22.16.5)(eslint@9.31.0(jiti@2.5.1))(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.46.2)(sass@1.89.2)(terser@5.43.1)(typescript@5.8.3)(vue-tsc@3.0.4(typescript@5.8.3))(vue@3.5.22(typescript@5.8.3))(yaml@2.8.0)
'@unhead/vue': 2.0.13(vue@3.5.22(typescript@5.8.3))
'@nuxt/vite-builder': 3.17.7(@types/node@22.16.5)(eslint@9.31.0(jiti@2.5.1))(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.46.2)(sass@1.89.2)(terser@5.43.1)(typescript@5.8.3)(vue-tsc@3.0.4(typescript@5.8.3))(vue@3.5.24(typescript@5.8.3))(yaml@2.8.0)
'@unhead/vue': 2.0.13(vue@3.5.24(typescript@5.8.3))
'@vue/shared': 3.5.18
c12: 3.2.0(magicast@0.3.5)
chokidar: 4.0.3
@ -10558,13 +10564,13 @@ snapshots:
unctx: 2.4.1
unimport: 5.2.0
unplugin: 2.3.5
unplugin-vue-router: 0.14.0(@vue/compiler-sfc@3.5.22)(vue-router@4.5.1(vue@3.5.22(typescript@5.8.3)))(vue@3.5.22(typescript@5.8.3))
unplugin-vue-router: 0.14.0(@vue/compiler-sfc@3.5.24)(vue-router@4.6.3(vue@3.5.24(typescript@5.8.3)))(vue@3.5.24(typescript@5.8.3))
unstorage: 1.16.1(@netlify/blobs@9.1.2)(db0@0.3.2)(ioredis@5.7.0)
untyped: 2.0.0
vue: 3.5.22(typescript@5.8.3)
vue: 3.5.24(typescript@5.8.3)
vue-bundle-renderer: 2.1.2
vue-devtools-stub: 0.1.0
vue-router: 4.5.1(vue@3.5.22(typescript@5.8.3))
vue-router: 4.6.3(vue@3.5.24(typescript@5.8.3))
optionalDependencies:
'@parcel/watcher': 2.5.1
'@types/node': 22.16.5
@ -11861,10 +11867,10 @@ snapshots:
pathe: 2.0.3
picomatch: 4.0.3
unplugin-vue-router@0.12.0(vue-router@4.5.1(vue@3.5.22(typescript@5.8.3)))(vue@3.5.22(typescript@5.8.3)):
unplugin-vue-router@0.12.0(vue-router@4.6.3(vue@3.5.24(typescript@5.8.3)))(vue@3.5.24(typescript@5.8.3)):
dependencies:
'@babel/types': 7.28.2
'@vue-macros/common': 1.16.1(vue@3.5.22(typescript@5.8.3))
'@vue-macros/common': 1.16.1(vue@3.5.24(typescript@5.8.3))
ast-walker-scope: 0.6.2
chokidar: 4.0.3
fast-glob: 3.3.3
@ -11879,14 +11885,14 @@ snapshots:
unplugin-utils: 0.2.4
yaml: 2.8.0
optionalDependencies:
vue-router: 4.5.1(vue@3.5.22(typescript@5.8.3))
vue-router: 4.6.3(vue@3.5.24(typescript@5.8.3))
transitivePeerDependencies:
- vue
unplugin-vue-router@0.14.0(@vue/compiler-sfc@3.5.22)(vue-router@4.5.1(vue@3.5.22(typescript@5.8.3)))(vue@3.5.22(typescript@5.8.3)):
unplugin-vue-router@0.14.0(@vue/compiler-sfc@3.5.24)(vue-router@4.6.3(vue@3.5.24(typescript@5.8.3)))(vue@3.5.24(typescript@5.8.3)):
dependencies:
'@vue-macros/common': 3.0.0-beta.15(vue@3.5.22(typescript@5.8.3))
'@vue/compiler-sfc': 3.5.22
'@vue-macros/common': 3.0.0-beta.15(vue@3.5.24(typescript@5.8.3))
'@vue/compiler-sfc': 3.5.24
ast-walker-scope: 0.8.1
chokidar: 4.0.3
fast-glob: 3.3.3
@ -11901,7 +11907,7 @@ snapshots:
unplugin-utils: 0.2.4
yaml: 2.8.0
optionalDependencies:
vue-router: 4.5.1(vue@3.5.22(typescript@5.8.3))
vue-router: 4.6.3(vue@3.5.24(typescript@5.8.3))
transitivePeerDependencies:
- vue
@ -12080,7 +12086,7 @@ snapshots:
tinyglobby: 0.2.14
vite: 7.0.6(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0)
vite-plugin-vue-tracer@1.0.0(vite@7.0.6(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.22(typescript@5.8.3)):
vite-plugin-vue-tracer@1.0.0(vite@7.0.6(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0))(vue@3.5.24(typescript@5.8.3)):
dependencies:
estree-walker: 3.0.3
exsolve: 1.0.7
@ -12088,7 +12094,7 @@ snapshots:
pathe: 2.0.3
source-map-js: 1.2.1
vite: 7.0.6(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0)
vue: 3.5.22(typescript@5.8.3)
vue: 3.5.24(typescript@5.8.3)
vite@6.3.5(@types/node@22.16.5)(jiti@2.5.1)(lightningcss@1.30.1)(sass@1.89.2)(terser@5.43.1)(yaml@2.8.0):
dependencies:
@ -12144,17 +12150,17 @@ snapshots:
transitivePeerDependencies:
- supports-color
vue-i18n@10.0.8(vue@3.5.22(typescript@5.8.3)):
vue-i18n@10.0.8(vue@3.5.24(typescript@5.8.3)):
dependencies:
'@intlify/core-base': 10.0.8
'@intlify/shared': 10.0.8
'@vue/devtools-api': 6.6.4
vue: 3.5.22(typescript@5.8.3)
vue: 3.5.24(typescript@5.8.3)
vue-router@4.5.1(vue@3.5.22(typescript@5.8.3)):
vue-router@4.6.3(vue@3.5.24(typescript@5.8.3)):
dependencies:
'@vue/devtools-api': 6.6.4
vue: 3.5.22(typescript@5.8.3)
vue: 3.5.24(typescript@5.8.3)
vue-tsc@3.0.4(typescript@5.8.3):
dependencies:
@ -12162,36 +12168,36 @@ snapshots:
'@vue/language-core': 3.0.4(typescript@5.8.3)
typescript: 5.8.3
vue3-carousel-nuxt@1.1.6(magicast@0.3.5)(vue@3.5.22(typescript@5.8.3)):
vue3-carousel-nuxt@1.1.6(magicast@0.3.5)(vue@3.5.24(typescript@5.8.3)):
dependencies:
'@nuxt/kit': 3.18.0(magicast@0.3.5)
vue3-carousel: 0.15.1(vue@3.5.22(typescript@5.8.3))
vue3-carousel: 0.15.1(vue@3.5.24(typescript@5.8.3))
transitivePeerDependencies:
- magicast
- vue
vue3-carousel@0.15.1(vue@3.5.22(typescript@5.8.3)):
vue3-carousel@0.15.1(vue@3.5.24(typescript@5.8.3)):
dependencies:
vue: 3.5.22(typescript@5.8.3)
vue: 3.5.24(typescript@5.8.3)
vue3-carousel@0.16.0(vue@3.5.22(typescript@5.8.3)):
vue3-carousel@0.16.0(vue@3.5.24(typescript@5.8.3)):
dependencies:
vue: 3.5.22(typescript@5.8.3)
vue: 3.5.24(typescript@5.8.3)
vue@3.5.22(typescript@5.8.3):
vue@3.5.24(typescript@5.8.3):
dependencies:
'@vue/compiler-dom': 3.5.22
'@vue/compiler-sfc': 3.5.22
'@vue/runtime-dom': 3.5.22
'@vue/server-renderer': 3.5.22(vue@3.5.22(typescript@5.8.3))
'@vue/shared': 3.5.22
'@vue/compiler-dom': 3.5.24
'@vue/compiler-sfc': 3.5.24
'@vue/runtime-dom': 3.5.24
'@vue/server-renderer': 3.5.24(vue@3.5.24(typescript@5.8.3))
'@vue/shared': 3.5.24
optionalDependencies:
typescript: 5.8.3
vuedraggable@4.1.0(vue@3.5.22(typescript@5.8.3)):
vuedraggable@4.1.0(vue@3.5.24(typescript@5.8.3)):
dependencies:
sortablejs: 1.14.0
vue: 3.5.22(typescript@5.8.3)
vue: 3.5.24(typescript@5.8.3)
web-streams-polyfill@3.3.3: {}

View File

@ -123,4 +123,4 @@ export default defineEventHandler(async (h3) => {
]);
return { results, count };
});
});

View File

@ -72,7 +72,7 @@ interface IGDBCompanyWebsite extends IGDBItem {
}
interface IGDBCover extends IGDBItem {
url: string;
image_id: string;
}
interface IGDBSearchStub extends IGDBItem {
@ -179,7 +179,7 @@ export class IGDBProvider implements MetadataProvider {
if (response.status !== 200)
throw new Error(
`Error in IDGB \nStatus Code: ${response.status}\n${response.data}`,
`Error in IGDB \nStatus Code: ${response.status}\n${response.data}`,
);
this.accessToken = response.data.access_token;
@ -187,7 +187,7 @@ export class IGDBProvider implements MetadataProvider {
seconds: response.data.expires_in,
});
logger.info("IDGB done authorizing with twitch");
logger.info("IGDB done authorizing with twitch");
}
private async refreshCredentials() {
@ -246,39 +246,47 @@ export class IGDBProvider implements MetadataProvider {
return <T[]>response.data;
}
private async _getMediaInternal(mediaID: IGDBID, type: string) {
private async _getMediaInternal(
mediaID: IGDBID,
type: string,
size: string = "t_thumb",
) {
if (mediaID === undefined)
throw new Error(
`IGDB mediaID when getting item of type ${type} was undefined`,
);
const body = `where id = ${mediaID}; fields url;`;
const body = `where id = ${mediaID}; fields image_id;`;
const response = await this.request<IGDBCover>(type, body);
let result = "";
if (!response.length || !response[0].image_id) {
throw new Error(`No image_id found for ${type} with id ${mediaID}`);
}
response.forEach((cover) => {
if (cover.url.startsWith("https:")) {
result = cover.url;
} else {
// twitch *sometimes* provides it in the format "//images.igdb.com"
result = `https:${cover.url}`;
}
});
const imageId = response[0].image_id;
const result = `https://images.igdb.com/igdb/image/upload/${size}/${imageId}.jpg`;
return result;
}
private async getCoverURL(id: IGDBID) {
return await this._getMediaInternal(id, "covers");
return await this._getMediaInternal(id, "covers", "t_cover_big");
}
private async getArtworkURL(id: IGDBID) {
return await this._getMediaInternal(id, "artworks");
return await this._getMediaInternal(id, "artworks", "t_1080p");
}
private async getScreenshotURL(id: IGDBID) {
return await this._getMediaInternal(id, "screenshots", "t_1080p");
}
private async getIconURL(id: IGDBID) {
return await this._getMediaInternal(id, "covers", "t_thumb");
}
private async getCompanyLogoURl(id: IGDBID) {
return await this._getMediaInternal(id, "company_logos");
return await this._getMediaInternal(id, "company_logos", "t_original");
}
private trimMessage(msg: string, len: number) {
@ -327,7 +335,7 @@ export class IGDBProvider implements MetadataProvider {
let icon = "";
const cover = response[i].cover;
if (cover !== undefined) {
icon = await this.getCoverURL(cover);
icon = await this.getIconURL(cover);
} else {
icon = "";
}
@ -355,23 +363,26 @@ export class IGDBProvider implements MetadataProvider {
const currentGame = (await this.request<IGDBGameFull>("games", body)).at(0);
if (!currentGame) throw new Error("No game found on IGDB with that id");
context?.logger.info("Using IDGB provider.");
context?.logger.info("Using IGDB provider.");
let iconRaw;
let iconRaw, coverRaw;
const cover = currentGame.cover;
if (cover !== undefined) {
context?.logger.info("Found cover URL, using...");
iconRaw = await this.getCoverURL(cover);
iconRaw = await this.getIconURL(cover);
coverRaw = await this.getCoverURL(cover);
} else {
context?.logger.info("Missing cover URL, using fallback...");
iconRaw = jdenticon.toPng(id, 512);
coverRaw = iconRaw;
}
const icon = createObject(iconRaw);
const coverID = createObject(coverRaw);
let banner;
const images = [icon];
const images = [coverID];
for (const art of currentGame.artworks ?? []) {
const objectId = createObject(await this.getArtworkURL(art));
if (!banner) {
@ -384,6 +395,11 @@ export class IGDBProvider implements MetadataProvider {
banner = createObject(jdenticon.toPng(id, 512));
}
for (const screenshot of currentGame.screenshots ?? []) {
const objectId = createObject(await this.getScreenshotURL(screenshot));
images.push(objectId);
}
context?.progress(20);
const publishers: CompanyModel[] = [];
@ -452,13 +468,25 @@ export class IGDBProvider implements MetadataProvider {
const genres = await this.getGenres(currentGame.genres);
const deck = this.trimMessage(currentGame.summary, 280);
let description = "";
let shortDescription = "";
if (currentGame.summary.length > (currentGame.storyline?.length ?? 0)) {
description = currentGame.summary;
shortDescription = this.trimMessage(
currentGame.storyline ?? currentGame.summary,
280,
);
} else {
description = currentGame.storyline ?? currentGame.summary;
shortDescription = this.trimMessage(currentGame.summary, 280);
}
const metadata = {
id: currentGame.id.toString(),
name: currentGame.name,
shortDescription: deck,
description: currentGame.summary,
shortDescription,
description,
released,
genres,
@ -471,7 +499,7 @@ export class IGDBProvider implements MetadataProvider {
icon,
bannerId: banner,
coverId: icon,
coverId: coverID,
images,
};