chore: migrate to projects + fix type issues

pull/3388/head
Daniel Roe 2025-09-27 07:49:41 +03:00
rodzic 7f7b480e7d
commit b8289c3c79
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 47C4EE3D46A3A27C
12 zmienionych plików z 63 dodań i 42 usunięć

19
app/augments.d.ts vendored 100644
Wyświetl plik

@ -0,0 +1,19 @@
export {}
declare module '#app' {
interface PageMeta {
wideLayout?: boolean
}
interface RuntimeNuxtHooks {
'elk-logo:click': () => void
}
}
declare global {
namespace NodeJS {
interface Process {
mock?: Record<string, any>
}
}
}

Wyświetl plik

@ -19,11 +19,11 @@ export default defineNuxtPlugin(async (nuxt) => {
if (!supportLanguages.includes(lang.value))
userSettings.value.language = getDefaultLanguage(supportLanguages)
if (lang.value !== i18n.locale)
if (lang.value !== i18n.locale.value)
await setLocale(userSettings.value.language as Locale)
watch([lang, isHydrated], () => {
if (isHydrated.value && lang.value !== i18n.locale)
if (isHydrated.value && lang.value !== i18n.locale.value)
setLocale(lang.value)
}, { immediate: true })
}

Wyświetl plik

@ -75,13 +75,11 @@ export const countryLocaleVariants: Record<string, (LocaleObjectData & { country
const locales: LocaleObjectData[] = [
{
// @ts-expect-error en used as placeholder
code: 'en',
file: 'en.json',
name: 'English',
},
{
// @ts-expect-error ar used as placeholder
code: 'ar',
file: 'ar.json',
name: 'العربية',
@ -112,7 +110,6 @@ const locales: LocaleObjectData[] = [
},
} satisfies LocaleObjectData,
{
// @ts-expect-error ca used as placeholder
code: 'ca',
file: 'ca.json',
name: 'Català',
@ -153,7 +150,6 @@ const locales: LocaleObjectData[] = [
name: 'Nederlands',
},
{
// @ts-expect-error es used as placeholder
code: 'es',
file: 'es.json',
name: 'Español',
@ -207,7 +203,6 @@ const locales: LocaleObjectData[] = [
},
},
{
// @ts-expect-error pt used as placeholder
code: 'pt',
file: 'pt.json',
name: 'Português',

Wyświetl plik

@ -1,4 +1,4 @@
import type { BuildInfo } from '#shared/types'
import type { BuildInfo } from '../shared/types'
import { createResolver, defineNuxtModule } from 'nuxt/kit'
import { isCI } from 'std-env'
import { getEnv, version } from '../config/env'

Wyświetl plik

@ -14,6 +14,7 @@ export default defineNuxtConfig({
compatibilityDate: '2025-07-11',
typescript: {
tsConfig: {
include: ['../tests/nuxt'],
exclude: ['../service-worker'],
compilerOptions: {
// TODO: enable this once we fix the issues
@ -323,25 +324,6 @@ export default defineNuxtConfig({
},
})
declare global {
// eslint-disable-next-line ts/no-namespace
namespace NodeJS {
interface Process {
mock?: Record<string, any>
}
}
}
declare module '#app' {
interface PageMeta {
wideLayout?: boolean
}
interface RuntimeNuxtHooks {
'elk-logo:click': () => void
}
}
declare module '@nuxt/schema' {
interface AppConfig {
storage: any

Wyświetl plik

@ -22,7 +22,7 @@
"generate": "nuxt generate",
"test:unit": "vitest",
"test:unit:ci": "vitest run",
"test:typecheck": "vue-tsc --noEmit && vue-tsc --noEmit --project service-worker/tsconfig.json",
"test:typecheck": "vue-tsc -b --noEmit",
"test": "nr test:unit",
"test:ci": "nr test:unit:ci",
"update:team:avatars": "tsx scripts/avatars.ts",
@ -61,6 +61,7 @@
"@tiptap/suggestion": "2.2.4",
"@tiptap/vue-3": "2.2.4",
"@unhead/schema": "^2.0.17",
"@unlazy/nuxt": "^0.12.4",
"@unocss/nuxt": "^66.5.2",
"@upstash/redis": "^1.27.1",
"@vercel/kv": "^3.0.0",
@ -71,6 +72,7 @@
"@vueuse/math": "^12.0.0",
"@vueuse/motion": "2.2.6",
"@vueuse/nuxt": "^13.9.0",
"@vueuse/shared": "^13.9.0",
"blurhash": "^2.0.5",
"browser-fs-access": "^0.38.0",
"cheerio": "^1.0.0",
@ -93,6 +95,7 @@
"masto": "^6.10.4",
"mocked-exports": "^0.1.1",
"node-emoji": "^2.1.3",
"nuxt": "^4.1.2",
"nuxt-security": "^2.4.0",
"page-lifecycle": "^0.1.2",
"pathe": "^2.0.3",
@ -115,6 +118,7 @@
"unstorage": "^1.17.1",
"vite": "^7.1.7",
"vite-plugin-pwa": "^0.21.0",
"vue": "^3.5.4",
"vue-advanced-cropper": "^2.8.9",
"vue-virtual-scroller": "2.0.0-beta.8",
"workbox-build": "^7.1.1",
@ -136,7 +140,6 @@
"@types/js-yaml": "^4.0.9",
"@types/wicg-file-system-access": "^2023.10.6",
"@types/ws": "^8.18.1",
"@unlazy/nuxt": "^0.12.4",
"@unocss/eslint-config": "^66.4.2",
"@vue/test-utils": "2.4.6",
"bumpp": "^10.2.3",
@ -146,7 +149,6 @@
"flat": "^6.0.1",
"fs-extra": "^11.3.1",
"lint-staged": "^16.1.6",
"nuxt": "^4.1.2",
"prettier": "^3.6.2",
"sharp": "^0.34.3",
"sharp-ico": "^0.1.5",

Wyświetl plik

@ -99,6 +99,9 @@ importers:
'@unhead/schema':
specifier: ^2.0.17
version: 2.0.17
'@unlazy/nuxt':
specifier: ^0.12.4
version: 0.12.4(magicast@0.3.5)
'@unocss/nuxt':
specifier: ^66.5.2
version: 66.5.2(magicast@0.3.5)(postcss@8.5.6)(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1))(webpack@5.101.3(esbuild@0.25.10))
@ -129,6 +132,9 @@ importers:
'@vueuse/nuxt':
specifier: ^13.9.0
version: 13.9.0(magicast@0.3.5)(nuxt@4.1.2(@parcel/watcher@2.5.1)(@types/node@24.5.2)(@upstash/redis@1.35.4)(@vercel/kv@3.0.0)(@vue/compiler-sfc@3.5.22)(better-sqlite3@12.4.1)(db0@0.3.2(better-sqlite3@12.4.1))(eslint@9.36.0(jiti@2.6.0))(idb-keyval@6.2.2)(ioredis@5.8.0)(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.52.2)(terser@5.44.0)(tsx@4.20.6)(typescript@5.9.2)(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1))(vue-tsc@2.2.12(typescript@5.9.2))(yaml@2.8.1))(vue@3.5.22(typescript@5.9.2))
'@vueuse/shared':
specifier: ^13.9.0
version: 13.9.0(vue@3.5.22(typescript@5.9.2))
blurhash:
specifier: ^2.0.5
version: 2.0.5
@ -195,6 +201,9 @@ importers:
node-emoji:
specifier: ^2.1.3
version: 2.2.0
nuxt:
specifier: ^4.1.2
version: 4.1.2(@parcel/watcher@2.5.1)(@types/node@24.5.2)(@upstash/redis@1.35.4)(@vercel/kv@3.0.0)(@vue/compiler-sfc@3.5.22)(better-sqlite3@12.4.1)(db0@0.3.2(better-sqlite3@12.4.1))(eslint@9.36.0(jiti@2.6.0))(idb-keyval@6.2.2)(ioredis@5.8.0)(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.52.2)(terser@5.44.0)(tsx@4.20.6)(typescript@5.9.2)(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1))(vue-tsc@2.2.12(typescript@5.9.2))(yaml@2.8.1)
nuxt-security:
specifier: ^2.4.0
version: 2.4.0(magicast@0.3.5)(rollup@4.52.2)
@ -261,6 +270,9 @@ importers:
vite-plugin-pwa:
specifier: ^0.21.0
version: 0.21.2(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1))(workbox-build@7.3.0)(workbox-window@7.3.0)
vue:
specifier: ^3.5.4
version: 3.5.22(typescript@5.9.2)
vue-advanced-cropper:
specifier: ^2.8.9
version: 2.8.9(vue@3.5.22(typescript@5.9.2))
@ -319,9 +331,6 @@ importers:
'@types/ws':
specifier: ^8.18.1
version: 8.18.1
'@unlazy/nuxt':
specifier: ^0.12.4
version: 0.12.4(magicast@0.3.5)
'@unocss/eslint-config':
specifier: ^66.4.2
version: 66.5.2(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2)
@ -349,9 +358,6 @@ importers:
lint-staged:
specifier: ^16.1.6
version: 16.2.1
nuxt:
specifier: ^4.1.2
version: 4.1.2(@parcel/watcher@2.5.1)(@types/node@24.5.2)(@upstash/redis@1.35.4)(@vercel/kv@3.0.0)(@vue/compiler-sfc@3.5.22)(better-sqlite3@12.4.1)(db0@0.3.2(better-sqlite3@12.4.1))(eslint@9.36.0(jiti@2.6.0))(idb-keyval@6.2.2)(ioredis@5.8.0)(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.52.2)(terser@5.44.0)(tsx@4.20.6)(typescript@5.9.2)(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1))(vue-tsc@2.2.12(typescript@5.9.2))(yaml@2.8.1)
prettier:
specifier: ^3.6.2
version: 3.6.2

Wyświetl plik

@ -1,5 +1,6 @@
{
"extends": "../tsconfig.json",
"extends": "../.nuxt/tsconfig.app.json",
"noEmit": true,
"compilerOptions": {
"lib": ["ESNext", "WebWorker", "DOM.Iterable"],
"types": ["vite/client"]

Wyświetl plik

@ -0,0 +1 @@
{"root":["./elk-sw.ts","./notification.ts","./share-target.ts","./types.ts","./web-push-notifications.ts"],"version":"5.9.2"}

Wyświetl plik

@ -1,6 +1,6 @@
/// <reference lib="WebWorker" />
/// <reference types="vite/client" />
import type { PushPayload } from '~~/service-worker/types'
import type { PushPayload } from './types'
import { ELK_PAGE_LIFECYCLE_FROZEN } from '../app/constants'
import {
closeDatabaseConnections,

Wyświetl plik

@ -1,5 +1,5 @@
import type { RouteLocationRaw } from '#vue-router'
import type { mastodon } from 'masto'
import type { RouteLocationRaw } from 'vue-router'
import type { MarkNonNullable, Mutable } from './utils'
export interface AppInfo {
@ -43,8 +43,6 @@ export interface GroupedLikeNotifications {
export type NotificationSlot = GroupedNotifications | GroupedLikeNotifications | mastodon.v1.Notification
export type TranslateFn = ReturnType<typeof useI18n>['t']
export interface DraftItem {
editingStatus?: mastodon.v1.Status
initialText?: string

Wyświetl plik

@ -1,3 +1,20 @@
{
"extends": "./.nuxt/tsconfig.json"
"references": [
{
"path": "./.nuxt/tsconfig.app.json"
},
{
"path": "./.nuxt/tsconfig.server.json"
},
{
"path": "./.nuxt/tsconfig.shared.json"
},
{
"path": "./.nuxt/tsconfig.node.json"
},
{
"path": "./service-worker/tsconfig.json"
}
],
"files": []
}