From 320ddc0e28abbb80f06144a307a3a78e9d3ffabf Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 30 Sep 2024 17:11:56 +0900 Subject: [PATCH] chore(deps): update dependency @antfu/eslint-config to v3 (#2984) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: TAKAHASHI Shuuji <shuuji3@gmail.com> --- components/command/CommandPanel.vue | 2 +- components/common/CommonInputImage.vue | 2 +- components/common/CommonPaginator.vue | 2 +- components/modal/ModalContainer.vue | 2 +- .../modal/ModalMediaPreviewCarousel.vue | 2 +- components/nav/NavBottom.vue | 4 +- .../notification/NotificationPaginator.vue | 2 +- .../publish/PublishEmojiPicker.client.vue | 2 +- components/publish/PublishLanguagePicker.vue | 13 +- components/publish/PublishWidget.vue | 2 +- components/settings/SettingsFontSize.vue | 2 +- components/settings/SettingsItem.vue | 12 +- components/settings/SettingsLanguage.vue | 2 +- components/status/StatusAttachment.vue | 2 +- components/status/StatusSpoiler.vue | 2 +- components/timeline/TimelinePaginator.vue | 2 +- components/tiptap/TiptapCodeBlock.vue | 2 +- components/tiptap/TiptapEmojiList.vue | 4 +- composables/cache.ts | 33 +- composables/command.ts | 6 +- composables/content-parse.ts | 2 +- composables/content-render.ts | 16 +- composables/dialog.ts | 2 +- composables/masto/masto.ts | 2 +- composables/masto/publish.ts | 26 +- composables/masto/routes.ts | 2 +- composables/settings/metadata.ts | 2 +- composables/settings/storage.ts | 4 +- composables/tiptap.ts | 30 +- composables/tiptap/custom-emoji.ts | 2 +- composables/tiptap/emoji.ts | 4 +- composables/tiptap/shiki-parser.ts | 2 +- composables/tiptap/shiki.ts | 2 +- composables/tiptap/suggestion.ts | 18 +- composables/users.ts | 10 +- composables/vue.ts | 4 +- config/emojis.ts | 4 +- config/pwa.ts | 2 +- modules/build-env.ts | 2 +- modules/pwa/i18n.ts | 2 +- modules/pwa/index.ts | 12 +- modules/pwa/runtime/pwa-plugin.client.ts | 2 +- modules/tauri/runtime/nitro.client.ts | 2 +- modules/tauri/runtime/storage.ts | 2 +- nuxt.config.ts | 4 +- package.json | 2 +- pages/[[server]]/@[account]/[status].vue | 2 +- plugins/0.setup-users.ts | 2 +- plugins/floating-vue.ts | 2 +- plugins/setup-global-effects.client.ts | 2 +- pnpm-lock.yaml | 549 ++++++------------ scripts/avatars.ts | 2 +- scripts/cleanup-translations.ts | 2 +- scripts/generate-pwa-icons.ts | 8 +- scripts/prepare-translation-status.ts | 6 +- server/cache-driver.ts | 2 +- server/utils/shared.ts | 8 +- service-worker/elk-sw.ts | 6 +- service-worker/notification.ts | 2 +- service-worker/web-push-notifications.ts | 2 +- tests/nuxt/content-rich.test.ts | 13 +- tests/nuxt/html-parse.test.ts | 2 +- types/index.ts | 2 +- unocss.config.ts | 6 +- utils/elk-idb.ts | 2 +- 65 files changed, 359 insertions(+), 523 deletions(-) diff --git a/components/command/CommandPanel.vue b/components/command/CommandPanel.vue index dd2115a7..eb1c3454 100644 --- a/components/command/CommandPanel.vue +++ b/components/command/CommandPanel.vue @@ -1,6 +1,6 @@ <script setup lang="ts"> -import type { SearchResult as SearchResultType } from '~/composables/masto/search' import type { CommandScope, QueryResult, QueryResultItem } from '~/composables/command' +import type { SearchResult as SearchResultType } from '~/composables/masto/search' const emit = defineEmits<{ (event: 'close'): void diff --git a/components/common/CommonInputImage.vue b/components/common/CommonInputImage.vue index bcc55346..92c13825 100644 --- a/components/common/CommonInputImage.vue +++ b/components/common/CommonInputImage.vue @@ -1,6 +1,6 @@ <script setup lang="ts"> -import { fileOpen } from 'browser-fs-access' import type { FileWithHandle } from 'browser-fs-access' +import { fileOpen } from 'browser-fs-access' const props = withDefaults(defineProps<{ /** The image src before change */ diff --git a/components/common/CommonPaginator.vue b/components/common/CommonPaginator.vue index 2c190873..9b32ac32 100644 --- a/components/common/CommonPaginator.vue +++ b/components/common/CommonPaginator.vue @@ -1,8 +1,8 @@ <script setup lang="ts" generic="T, O, U = T"> +import type { mastodon } from 'masto' // @ts-expect-error missing types import { DynamicScroller } from 'vue-virtual-scroller' import 'vue-virtual-scroller/dist/vue-virtual-scroller.css' -import type { mastodon } from 'masto' const { paginator, diff --git a/components/modal/ModalContainer.vue b/components/modal/ModalContainer.vue index bb87ee5c..07fa1153 100644 --- a/components/modal/ModalContainer.vue +++ b/components/modal/ModalContainer.vue @@ -1,6 +1,5 @@ <script setup lang="ts"> import type { mastodon } from 'masto' -import type { ConfirmDialogChoice } from '~/types' import { isCommandPanelOpen, isConfirmDialogOpen, @@ -14,6 +13,7 @@ import { isReportDialogOpen, isSigninDialogOpen, } from '~/composables/dialog' +import type { ConfirmDialogChoice } from '~/types' const isMac = useIsMac() diff --git a/components/modal/ModalMediaPreviewCarousel.vue b/components/modal/ModalMediaPreviewCarousel.vue index 12c201ec..43eb6f7d 100644 --- a/components/modal/ModalMediaPreviewCarousel.vue +++ b/components/modal/ModalMediaPreviewCarousel.vue @@ -1,8 +1,8 @@ <script setup lang="ts"> import type { Vector2 } from '@vueuse/gesture' +import type { mastodon } from 'masto' import { useGesture } from '@vueuse/gesture' import { useReducedMotion } from '@vueuse/motion' -import type { mastodon } from 'masto' const { media = [] } = defineProps<{ media?: mastodon.v1.MediaAttachment[] diff --git a/components/nav/NavBottom.vue b/components/nav/NavBottom.vue index 145759cb..fdc10d52 100644 --- a/components/nav/NavBottom.vue +++ b/components/nav/NavBottom.vue @@ -2,10 +2,10 @@ import type { Component } from 'vue' import type { NavButtonName } from '../../composables/settings' -import { STORAGE_KEY_BOTTOM_NAV_BUTTONS } from '~/constants' - import { NavButtonExplore, NavButtonFederated, NavButtonHome, NavButtonLocal, NavButtonMention, NavButtonMoreMenu, NavButtonNotification, NavButtonSearch } from '#components' +import { STORAGE_KEY_BOTTOM_NAV_BUTTONS } from '~/constants' + interface NavButton { name: string component: Component diff --git a/components/notification/NotificationPaginator.vue b/components/notification/NotificationPaginator.vue index 7f08049b..3e2a2ac8 100644 --- a/components/notification/NotificationPaginator.vue +++ b/components/notification/NotificationPaginator.vue @@ -1,7 +1,7 @@ <script setup lang="ts"> +import type { mastodon } from 'masto' // @ts-expect-error missing types import { DynamicScrollerItem } from 'vue-virtual-scroller' -import type { mastodon } from 'masto' import type { GroupedAccountLike, NotificationSlot } from '~/types' const { paginator, stream } = defineProps<{ diff --git a/components/publish/PublishEmojiPicker.client.vue b/components/publish/PublishEmojiPicker.client.vue index 314aebbb..b8a55d1e 100644 --- a/components/publish/PublishEmojiPicker.client.vue +++ b/components/publish/PublishEmojiPicker.client.vue @@ -1,6 +1,6 @@ <script setup lang="ts"> -import importEmojiLang from 'virtual:emoji-mart-lang-importer' import type { Picker } from 'emoji-mart' +import importEmojiLang from 'virtual:emoji-mart-lang-importer' const emit = defineEmits<{ (e: 'select', code: string): void diff --git a/components/publish/PublishLanguagePicker.vue b/components/publish/PublishLanguagePicker.vue index ba16fe28..7068c500 100644 --- a/components/publish/PublishLanguagePicker.vue +++ b/components/publish/PublishLanguagePicker.vue @@ -16,14 +16,13 @@ const fuse = new Fuse(languagesNameList, { const languages = computed(() => languageKeyword.value.trim() ? fuse.search(languageKeyword.value).map(r => r.item) - : [...languagesNameList].filter(entry => !userSettings.value.disabledTranslationLanguages.includes(entry.code)) - .sort(({ code: a }, { code: b }) => { - // Put English on the top - if (a === 'en') - return -1 + : [...languagesNameList].filter(entry => !userSettings.value.disabledTranslationLanguages.includes(entry.code)).sort(({ code: a }, { code: b }) => { + // Put English on the top + if (a === 'en') + return -1 - return a === modelValue.value ? -1 : b === modelValue.value ? 1 : a.localeCompare(b) - }), + return a === modelValue.value ? -1 : b === modelValue.value ? 1 : a.localeCompare(b) + }), ) const preferredLanguages = computed(() => { diff --git a/components/publish/PublishWidget.vue b/components/publish/PublishWidget.vue index c9bc246d..0eacdf5a 100644 --- a/components/publish/PublishWidget.vue +++ b/components/publish/PublishWidget.vue @@ -1,7 +1,7 @@ <script setup lang="ts"> +import type { mastodon } from 'masto' import { EditorContent } from '@tiptap/vue-3' import stringLength from 'string-length' -import type { mastodon } from 'masto' import type { DraftItem } from '~/types' const { diff --git a/components/settings/SettingsFontSize.vue b/components/settings/SettingsFontSize.vue index 249c60df..d2518eaa 100644 --- a/components/settings/SettingsFontSize.vue +++ b/components/settings/SettingsFontSize.vue @@ -1,6 +1,6 @@ <script setup lang="ts"> -import { DEFAULT_FONT_SIZE } from '~/constants' import type { FontSize } from '~/composables/settings' +import { DEFAULT_FONT_SIZE } from '~/constants' const userSettings = useUserSettings() diff --git a/components/settings/SettingsItem.vue b/components/settings/SettingsItem.vue index b0992895..7fde7894 100644 --- a/components/settings/SettingsItem.vue +++ b/components/settings/SettingsItem.vue @@ -20,12 +20,12 @@ useCommand({ scope: 'Settings', name: () => props.text - ?? (props.to - ? typeof props.to === 'string' - ? props.to - : props.to.name - : '' - ), + ?? (props.to + ? typeof props.to === 'string' + ? props.to + : props.to.name + : '' + ), description: () => props.description, icon: () => props.icon || '', visible: () => props.command && props.to, diff --git a/components/settings/SettingsLanguage.vue b/components/settings/SettingsLanguage.vue index 24c9d85e..6973868f 100644 --- a/components/settings/SettingsLanguage.vue +++ b/components/settings/SettingsLanguage.vue @@ -1,6 +1,6 @@ <script setup lang="ts"> -import type { ComputedRef } from 'vue' import type { LocaleObject } from '@nuxtjs/i18n' +import type { ComputedRef } from 'vue' const userSettings = useUserSettings() diff --git a/components/status/StatusAttachment.vue b/components/status/StatusAttachment.vue index 834ddfc1..836d4ae5 100644 --- a/components/status/StatusAttachment.vue +++ b/components/status/StatusAttachment.vue @@ -1,6 +1,6 @@ <script setup lang="ts"> -import { clamp } from '@vueuse/core' import type { mastodon } from 'masto' +import { clamp } from '@vueuse/core' import { decode } from 'blurhash' const { diff --git a/components/status/StatusSpoiler.vue b/components/status/StatusSpoiler.vue index ff6149b6..6d96a2f4 100644 --- a/components/status/StatusSpoiler.vue +++ b/components/status/StatusSpoiler.vue @@ -12,7 +12,7 @@ const expandSpoilers = computed(() => { return !props.filter // always prevent expansion if filtered && ((props.sensitiveNonSpoiler && expandMedia) - || (!props.sensitiveNonSpoiler && expandCW)) + || (!props.sensitiveNonSpoiler && expandCW)) }) const hideContent = props.enabled || props.sensitiveNonSpoiler diff --git a/components/timeline/TimelinePaginator.vue b/components/timeline/TimelinePaginator.vue index b24830e0..0f03d444 100644 --- a/components/timeline/TimelinePaginator.vue +++ b/components/timeline/TimelinePaginator.vue @@ -1,8 +1,8 @@ <script setup lang="ts"> +import type { mastodon } from 'masto' // @ts-expect-error missing types import { DynamicScrollerItem } from 'vue-virtual-scroller' import 'vue-virtual-scroller/dist/vue-virtual-scroller.css' -import type { mastodon } from 'masto' const { paginator, stream, account, buffer = 10, endMessage = true } = defineProps<{ paginator: mastodon.Paginator<mastodon.v1.Status[], mastodon.rest.v1.ListAccountStatusesParams> diff --git a/components/tiptap/TiptapCodeBlock.vue b/components/tiptap/TiptapCodeBlock.vue index b9aa0e79..df054407 100644 --- a/components/tiptap/TiptapCodeBlock.vue +++ b/components/tiptap/TiptapCodeBlock.vue @@ -1,5 +1,5 @@ <script setup lang="ts"> -import { NodeViewContent, NodeViewWrapper, nodeViewProps } from '@tiptap/vue-3' +import { NodeViewContent, nodeViewProps, NodeViewWrapper } from '@tiptap/vue-3' const props = defineProps(nodeViewProps) diff --git a/components/tiptap/TiptapEmojiList.vue b/components/tiptap/TiptapEmojiList.vue index d1b5726a..88234590 100644 --- a/components/tiptap/TiptapEmojiList.vue +++ b/components/tiptap/TiptapEmojiList.vue @@ -1,9 +1,9 @@ <script setup lang="ts"> import { getEmojiMatchesInText } from '@iconify/utils/lib/emoji/replace/find' -import type { CustomEmoji, Emoji } from '~/composables/tiptap/suggestion' -import { isCustomEmoji } from '~/composables/tiptap/suggestion' import { emojiFilename, emojiPrefix, emojiRegEx } from '~~/config/emojis' import type { CommandHandler } from '~/composables/command' +import type { CustomEmoji, Emoji } from '~/composables/tiptap/suggestion' +import { isCustomEmoji } from '~/composables/tiptap/suggestion' const { items, command } = defineProps<{ items: (CustomEmoji | Emoji)[] diff --git a/composables/cache.ts b/composables/cache.ts index bf6627f9..83d25c05 100644 --- a/composables/cache.ts +++ b/composables/cache.ts @@ -1,5 +1,5 @@ -import { LRUCache } from 'lru-cache' import type { mastodon } from 'masto' +import { LRUCache } from 'lru-cache' const cache = new LRUCache<string, any>({ max: 1000, @@ -25,11 +25,10 @@ export function fetchStatus(id: string, force = false): Promise<mastodon.v1.Stat if (cached && !force) return Promise.resolve(cached) - const promise = useMastoClient().v1.statuses.$select(id).fetch() - .then((status) => { - cacheStatus(status) - return status - }) + const promise = useMastoClient().v1.statuses.$select(id).fetch().then((status) => { + cacheStatus(status) + return status + }) cache.set(key, promise) return promise } @@ -46,14 +45,13 @@ export function fetchAccountById(id?: string | null): Promise<mastodon.v1.Accoun return Promise.resolve(cached) const domain = getInstanceDomainFromServer(server) - const promise = useMastoClient().v1.accounts.$select(id).fetch() - .then((r) => { - if (r.acct && !r.acct.includes('@') && domain) - r.acct = `${r.acct}@${domain}` + const promise = useMastoClient().v1.accounts.$select(id).fetch().then((r) => { + if (r.acct && !r.acct.includes('@') && domain) + r.acct = `${r.acct}@${domain}` - cacheAccount(r, server, true) - return r - }) + cacheAccount(r, server, true) + return r + }) cache.set(key, promise) return promise } @@ -101,11 +99,10 @@ export function fetchTag(tagName: string, force = false): Promise<mastodon.v1.Ta if (cached && !force) return Promise.resolve(cached) - const promise = useMastoClient().v1.tags.$select(tagName).fetch() - .then((tag) => { - cacheTag(tag) - return tag - }) + const promise = useMastoClient().v1.tags.$select(tagName).fetch().then((tag) => { + cacheTag(tag) + return tag + }) cache.set(key, promise) return promise } diff --git a/composables/command.ts b/composables/command.ts index 838e3d17..d1643832 100644 --- a/composables/command.ts +++ b/composables/command.ts @@ -1,7 +1,7 @@ -import type { ComputedRef } from 'vue' -import { defineStore } from 'pinia' -import Fuse from 'fuse.js' import type { LocaleObject } from '@nuxtjs/i18n' +import type { ComputedRef } from 'vue' +import Fuse from 'fuse.js' +import { defineStore } from 'pinia' import type { SearchResult } from '~/composables/masto/search' // @unocss-include diff --git a/composables/content-parse.ts b/composables/content-parse.ts index fd220efa..f9b02b65 100644 --- a/composables/content-parse.ts +++ b/composables/content-parse.ts @@ -1,9 +1,9 @@ // @unimport-disable import type { mastodon } from 'masto' import type { Node } from 'ultrahtml' -import { DOCUMENT_NODE, ELEMENT_NODE, TEXT_NODE, h, parse, render } from 'ultrahtml' import { findAndReplaceEmojisInText } from '@iconify/utils' import { decode } from 'tiny-decode' +import { DOCUMENT_NODE, ELEMENT_NODE, h, parse, render, TEXT_NODE } from 'ultrahtml' import { emojiRegEx, getEmojiAttributes } from '../config/emojis' export interface ContentParseOptions { diff --git a/composables/content-render.ts b/composables/content-render.ts index 69024c09..5e029d07 100644 --- a/composables/content-render.ts +++ b/composables/content-render.ts @@ -1,16 +1,16 @@ -import { ELEMENT_NODE, TEXT_NODE } from 'ultrahtml' import type { ElementNode, Node } from 'ultrahtml' -import { Fragment, h, isVNode } from 'vue' import type { VNode } from 'vue' -import { RouterLink } from 'vue-router' -import { decode } from 'tiny-decode' import type { ContentParseOptions } from './content-parse' -import { parseMastodonHTML } from './content-parse' -import Emoji from '~/components/emoji/Emoji.vue' -import ContentCode from '~/components/content/ContentCode.vue' -import ContentMentionGroup from '~/components/content/ContentMentionGroup.vue' +import { decode } from 'tiny-decode' +import { ELEMENT_NODE, TEXT_NODE } from 'ultrahtml' +import { Fragment, h, isVNode } from 'vue' +import { RouterLink } from 'vue-router' import AccountHoverWrapper from '~/components/account/AccountHoverWrapper.vue' import TagHoverWrapper from '~/components/account/TagHoverWrapper.vue' +import ContentCode from '~/components/content/ContentCode.vue' +import ContentMentionGroup from '~/components/content/ContentMentionGroup.vue' +import Emoji from '~/components/emoji/Emoji.vue' +import { parseMastodonHTML } from './content-parse' function getTextualAstComponents(astChildren: Node[]): string { return astChildren diff --git a/composables/dialog.ts b/composables/dialog.ts index ba02eca1..c237e644 100644 --- a/composables/dialog.ts +++ b/composables/dialog.ts @@ -1,6 +1,6 @@ import type { mastodon } from 'masto' -import type { ConfirmDialogChoice, ConfirmDialogOptions, DraftItem, ErrorDialogData } from '~/types' import { STORAGE_KEY_FIRST_VISIT } from '~/constants' +import type { ConfirmDialogChoice, ConfirmDialogOptions, DraftItem, ErrorDialogData } from '~/types' export const confirmDialogChoice = ref<ConfirmDialogChoice>() export const confirmDialogLabel = ref<ConfirmDialogOptions>() diff --git a/composables/masto/masto.ts b/composables/masto/masto.ts index 56f0918c..b2c5a862 100644 --- a/composables/masto/masto.ts +++ b/composables/masto/masto.ts @@ -1,8 +1,8 @@ import type { Pausable } from '@vueuse/core' import type { mastodon } from 'masto' -import { createRestAPIClient, createStreamingAPIClient } from 'masto' import type { Ref } from 'vue' import type { ElkInstance } from '../users' +import { createRestAPIClient, createStreamingAPIClient } from 'masto' import type { UserLogin } from '~/types' export function createMasto() { diff --git a/composables/masto/publish.ts b/composables/masto/publish.ts index 9c5593aa..dba585c0 100644 --- a/composables/masto/publish.ts +++ b/composables/masto/publish.ts @@ -1,7 +1,7 @@ -import { fileOpen } from 'browser-fs-access' -import type { Ref } from 'vue' -import type { mastodon } from 'masto' import type { DraftItem } from '~~/types' +import type { mastodon } from 'masto' +import type { Ref } from 'vue' +import { fileOpen } from 'browser-fs-access' export function usePublish(options: { draftItem: Ref<DraftItem> @@ -45,16 +45,16 @@ export function usePublish(options: { || failedMessages.value.length > 0 || (attachments.length > 0 && params.poll !== null && params.poll !== undefined) || ((params.poll !== null && params.poll !== undefined) - && ( - (firstEmptyInputIndex !== -1 - && firstEmptyInputIndex !== params.poll.options.length - 1 - ) - || params.poll.options.findLastIndex(option => option.trim().length > 0) + 1 < 2 - || (new Set(params.poll.options).size !== params.poll.options.length) - || (currentInstance.value?.configuration?.polls.maxCharactersPerOption !== undefined - && params.poll.options.find(option => option.length > currentInstance.value!.configuration!.polls.maxCharactersPerOption) !== undefined - ) - )) + && ( + (firstEmptyInputIndex !== -1 + && firstEmptyInputIndex !== params.poll.options.length - 1 + ) + || params.poll.options.findLastIndex(option => option.trim().length > 0) + 1 < 2 + || (new Set(params.poll.options).size !== params.poll.options.length) + || (currentInstance.value?.configuration?.polls.maxCharactersPerOption !== undefined + && params.poll.options.find(option => option.length > currentInstance.value!.configuration!.polls.maxCharactersPerOption) !== undefined + ) + )) }) watch(draftItem, () => { diff --git a/composables/masto/routes.ts b/composables/masto/routes.ts index f2a4d8d0..31dfe4e8 100644 --- a/composables/masto/routes.ts +++ b/composables/masto/routes.ts @@ -1,5 +1,5 @@ -import { withoutProtocol } from 'ufo' import type { mastodon } from 'masto' +import { withoutProtocol } from 'ufo' export function getAccountRoute(account: mastodon.v1.Account) { return useRouter().resolve({ diff --git a/composables/settings/metadata.ts b/composables/settings/metadata.ts index 703056c2..8e8c0428 100644 --- a/composables/settings/metadata.ts +++ b/composables/settings/metadata.ts @@ -1,6 +1,6 @@ import type { Node } from 'ultrahtml' import { decode } from 'tiny-decode' -import { TEXT_NODE, parse } from 'ultrahtml' +import { parse, TEXT_NODE } from 'ultrahtml' export const maxAccountFieldCount = computed(() => isGlitchEdition.value ? 16 : 4) diff --git a/composables/settings/storage.ts b/composables/settings/storage.ts index 329f56b2..0d2a92d9 100644 --- a/composables/settings/storage.ts +++ b/composables/settings/storage.ts @@ -1,8 +1,8 @@ -import type { Ref } from 'vue' import type { LocaleObject } from '@nuxtjs/i18n' +import type { Ref } from 'vue' import type { FontSize, OldFontSize, PreferencesSettings, UserSettings } from './definition' -import { STORAGE_KEY_SETTINGS } from '~/constants' import { oldFontSizeMap } from '~~/constants/options' +import { STORAGE_KEY_SETTINGS } from '~/constants' export function useUserSettings() { const { locales } = useNuxtApp().$i18n diff --git a/composables/tiptap.ts b/composables/tiptap.ts index b50e3829..18555909 100644 --- a/composables/tiptap.ts +++ b/composables/tiptap.ts @@ -1,22 +1,22 @@ import type { Editor } from '@tiptap/vue-3' -import { Extension, useEditor } from '@tiptap/vue-3' -import Placeholder from '@tiptap/extension-placeholder' -import Document from '@tiptap/extension-document' -import Paragraph from '@tiptap/extension-paragraph' -import Text from '@tiptap/extension-text' -import Mention from '@tiptap/extension-mention' -import HardBreak from '@tiptap/extension-hard-break' -import Bold from '@tiptap/extension-bold' -import Italic from '@tiptap/extension-italic' -import Code from '@tiptap/extension-code' -import History from '@tiptap/extension-history' -import { Plugin } from 'prosemirror-state' - import type { Ref } from 'vue' -import { TiptapEmojiSuggestion, TiptapHashtagSuggestion, TiptapMentionSuggestion } from './tiptap/suggestion' -import { TiptapPluginCodeBlockShiki } from './tiptap/shiki' +import Bold from '@tiptap/extension-bold' +import Code from '@tiptap/extension-code' +import Document from '@tiptap/extension-document' +import HardBreak from '@tiptap/extension-hard-break' +import History from '@tiptap/extension-history' +import Italic from '@tiptap/extension-italic' +import Mention from '@tiptap/extension-mention' +import Paragraph from '@tiptap/extension-paragraph' +import Placeholder from '@tiptap/extension-placeholder' +import Text from '@tiptap/extension-text' +import { Extension, useEditor } from '@tiptap/vue-3' + +import { Plugin } from 'prosemirror-state' import { TiptapPluginCustomEmoji } from './tiptap/custom-emoji' import { TiptapPluginEmoji } from './tiptap/emoji' +import { TiptapPluginCodeBlockShiki } from './tiptap/shiki' +import { TiptapEmojiSuggestion, TiptapHashtagSuggestion, TiptapMentionSuggestion } from './tiptap/suggestion' export interface UseTiptapOptions { content: Ref<string> diff --git a/composables/tiptap/custom-emoji.ts b/composables/tiptap/custom-emoji.ts index d25c3bb8..abb03a7c 100644 --- a/composables/tiptap/custom-emoji.ts +++ b/composables/tiptap/custom-emoji.ts @@ -1,6 +1,6 @@ import { - Node, mergeAttributes, + Node, nodeInputRule, } from '@tiptap/core' diff --git a/composables/tiptap/emoji.ts b/composables/tiptap/emoji.ts index e1e95de4..e9fada03 100644 --- a/composables/tiptap/emoji.ts +++ b/composables/tiptap/emoji.ts @@ -1,10 +1,10 @@ import type { ExtendedRegExpMatchArray, InputRuleFinder, nodeInputRule } from '@tiptap/core' import type { NodeType } from '@tiptap/pm/model' import { - InputRule, - Node, callOrReturn, + InputRule, mergeAttributes, + Node, nodePasteRule, } from '@tiptap/core' import { emojiRegEx, getEmojiAttributes } from '~/config/emojis' diff --git a/composables/tiptap/shiki-parser.ts b/composables/tiptap/shiki-parser.ts index b752e196..c3fd6f16 100644 --- a/composables/tiptap/shiki-parser.ts +++ b/composables/tiptap/shiki-parser.ts @@ -1,5 +1,5 @@ -import { type Parser, createParser } from 'prosemirror-highlight/shiki' import type { BuiltinLanguage } from 'shiki' +import { createParser, type Parser } from 'prosemirror-highlight/shiki' let parser: Parser | undefined diff --git a/composables/tiptap/shiki.ts b/composables/tiptap/shiki.ts index ca59060d..fce804d3 100644 --- a/composables/tiptap/shiki.ts +++ b/composables/tiptap/shiki.ts @@ -2,8 +2,8 @@ import CodeBlock from '@tiptap/extension-code-block' import { VueNodeViewRenderer } from '@tiptap/vue-3' import { createHighlightPlugin } from 'prosemirror-highlight' -import { shikiParser } from './shiki-parser' import TiptapCodeBlock from '~/components/tiptap/TiptapCodeBlock.vue' +import { shikiParser } from './shiki-parser' export const TiptapPluginCodeBlockShiki = CodeBlock.extend({ addOptions() { diff --git a/composables/tiptap/suggestion.ts b/composables/tiptap/suggestion.ts index a5c8d0b5..fdaa24cd 100644 --- a/composables/tiptap/suggestion.ts +++ b/composables/tiptap/suggestion.ts @@ -1,15 +1,15 @@ -import type { GetReferenceClientRect, Instance } from 'tippy.js' -import tippy from 'tippy.js' -import { VueRenderer } from '@tiptap/vue-3' -import type { SuggestionOptions } from '@tiptap/suggestion' -import { PluginKey } from 'prosemirror-state' -import type { Component } from 'vue' import type { Emoji, EmojiMartData } from '@emoji-mart/data' +import type { SuggestionOptions } from '@tiptap/suggestion' import type { mastodon } from 'masto' -import { currentCustomEmojis, updateCustomEmojis } from '~/composables/emojis' -import TiptapMentionList from '~/components/tiptap/TiptapMentionList.vue' -import TiptapHashtagList from '~/components/tiptap/TiptapHashtagList.vue' +import type { GetReferenceClientRect, Instance } from 'tippy.js' +import type { Component } from 'vue' +import { VueRenderer } from '@tiptap/vue-3' +import { PluginKey } from 'prosemirror-state' +import tippy from 'tippy.js' import TiptapEmojiList from '~/components/tiptap/TiptapEmojiList.vue' +import TiptapHashtagList from '~/components/tiptap/TiptapHashtagList.vue' +import TiptapMentionList from '~/components/tiptap/TiptapMentionList.vue' +import { currentCustomEmojis, updateCustomEmojis } from '~/composables/emojis' export type { Emoji } diff --git a/composables/users.ts b/composables/users.ts index 8677c248..d229c398 100644 --- a/composables/users.ts +++ b/composables/users.ts @@ -1,10 +1,9 @@ -import { withoutProtocol } from 'ufo' +import type { MaybeRefOrGetter, RemovableRef } from '@vueuse/core' import type { mastodon } from 'masto' import type { EffectScope, Ref } from 'vue' -import type { MaybeRefOrGetter, RemovableRef } from '@vueuse/core' import type { ElkMasto } from './masto/masto' -import type { UserLogin } from '~/types' -import type { Overwrite } from '~/types/utils' +import { withoutProtocol } from 'ufo' +import type { PushNotificationPolicy, PushNotificationRequest } from '~/composables/push-notifications/types' import { DEFAULT_POST_CHARS_LIMIT, STORAGE_KEY_CURRENT_USER_HANDLE, @@ -13,7 +12,8 @@ import { STORAGE_KEY_NOTIFICATION_POLICY, STORAGE_KEY_SERVERS, } from '~/constants' -import type { PushNotificationPolicy, PushNotificationRequest } from '~/composables/push-notifications/types' +import type { UserLogin } from '~/types' +import type { Overwrite } from '~/types/utils' const mock = process.mock diff --git a/composables/vue.ts b/composables/vue.ts index 5b50549d..a988f74f 100644 --- a/composables/vue.ts +++ b/composables/vue.ts @@ -1,7 +1,7 @@ +import type { SchemaAugmentations } from '@unhead/schema' +import type { ActiveHeadEntry, UseHeadInput, UseHeadOptions } from '@unhead/vue' import type { ComponentInternalInstance } from 'vue' import { onActivated, onDeactivated, ref } from 'vue' -import type { ActiveHeadEntry, UseHeadInput, UseHeadOptions } from '@unhead/vue' -import type { SchemaAugmentations } from '@unhead/schema' export const isHydrated = ref(false) diff --git a/config/emojis.ts b/config/emojis.ts index a1fa98dc..d1504f4c 100644 --- a/config/emojis.ts +++ b/config/emojis.ts @@ -1,7 +1,7 @@ -// @unimport-disabled -import { emojiFilename, emojiPrefix, emojiRegEx } from '@iconify-emoji/twemoji' import type { EmojiRegexMatch } from '@iconify/utils/lib/emoji/replace/find' import { getEmojiMatchesInText } from '@iconify/utils/lib/emoji/replace/find' +// @unimport-disabled +import { emojiFilename, emojiPrefix, emojiRegEx } from '@iconify-emoji/twemoji' // Re-export everything from package export * from '@iconify-emoji/twemoji' diff --git a/config/pwa.ts b/config/pwa.ts index a77b4678..f4dbfeae 100644 --- a/config/pwa.ts +++ b/config/pwa.ts @@ -1,5 +1,5 @@ -import { isCI, isDevelopment } from 'std-env' import type { VitePWANuxtOptions } from '../modules/pwa/types' +import { isCI, isDevelopment } from 'std-env' export const pwa: VitePWANuxtOptions = { mode: isCI ? 'production' : 'development', diff --git a/modules/build-env.ts b/modules/build-env.ts index 3f5656d0..a0175a64 100644 --- a/modules/build-env.ts +++ b/modules/build-env.ts @@ -1,7 +1,7 @@ import { createResolver, defineNuxtModule } from '@nuxt/kit' import { isCI } from 'std-env' -import { getEnv, version } from '../config/env' import type { BuildInfo } from '~/types' +import { getEnv, version } from '../config/env' const { resolve } = createResolver(import.meta.url) diff --git a/modules/pwa/i18n.ts b/modules/pwa/i18n.ts index 09a12e43..2e1ce51a 100644 --- a/modules/pwa/i18n.ts +++ b/modules/pwa/i18n.ts @@ -1,7 +1,7 @@ +import type { ManifestOptions } from 'vite-plugin-pwa' import { Buffer } from 'node:buffer' import { readFile } from 'node:fs/promises' import { createResolver } from '@nuxt/kit' -import type { ManifestOptions } from 'vite-plugin-pwa' import { getEnv } from '../../config/env' import { currentLocales } from '../../config/i18n' import { THEME_COLORS } from '../../constants/index' diff --git a/modules/pwa/index.ts b/modules/pwa/index.ts index 0cf91d59..83d39336 100644 --- a/modules/pwa/index.ts +++ b/modules/pwa/index.ts @@ -1,15 +1,15 @@ -import { mkdir, readFile, writeFile } from 'node:fs/promises' import type { Buffer } from 'node:buffer' +import type { Plugin } from 'vite' +import type { VitePluginPWAAPI } from 'vite-plugin-pwa' +import type { VitePWANuxtOptions } from './types' +import { mkdir, readFile, writeFile } from 'node:fs/promises' import { dirname } from 'node:path' import { fileURLToPath } from 'node:url' import { addPlugin, createResolver, defineNuxtModule } from '@nuxt/kit' -import type { VitePluginPWAAPI } from 'vite-plugin-pwa' -import { VitePWA } from 'vite-plugin-pwa' -import type { Plugin } from 'vite' import { join, resolve } from 'pathe' -import type { VitePWANuxtOptions } from './types' +import { VitePWA } from 'vite-plugin-pwa' import { configurePWAOptions } from './config' -import { type LocalizedWebManifest, createI18n, pwaLocales } from './i18n' +import { createI18n, type LocalizedWebManifest, pwaLocales } from './i18n' export * from './types' diff --git a/modules/pwa/runtime/pwa-plugin.client.ts b/modules/pwa/runtime/pwa-plugin.client.ts index ed3d960d..42695d83 100644 --- a/modules/pwa/runtime/pwa-plugin.client.ts +++ b/modules/pwa/runtime/pwa-plugin.client.ts @@ -1,6 +1,6 @@ -import { useRegisterSW } from 'virtual:pwa-register/vue' import type { UnwrapNestedRefs } from 'vue' import type { PwaInjection } from './types' +import { useRegisterSW } from 'virtual:pwa-register/vue' import { STORAGE_KEY_PWA_HIDE_INSTALL } from '~/constants' export default defineNuxtPlugin(() => { diff --git a/modules/tauri/runtime/nitro.client.ts b/modules/tauri/runtime/nitro.client.ts index affedc06..f85ce95b 100644 --- a/modules/tauri/runtime/nitro.client.ts +++ b/modules/tauri/runtime/nitro.client.ts @@ -1,10 +1,10 @@ +import type { FetchResponse } from 'ofetch' import { createApp, createRouter, defineLazyEventHandler, toNodeListener, } from 'h3' -import type { FetchResponse } from 'ofetch' import { createFetch } from 'ofetch' import { createCall, diff --git a/modules/tauri/runtime/storage.ts b/modules/tauri/runtime/storage.ts index f76c0f68..8495d66a 100644 --- a/modules/tauri/runtime/storage.ts +++ b/modules/tauri/runtime/storage.ts @@ -1,5 +1,5 @@ -import { createStorage } from 'unstorage' import { Store } from 'tauri-plugin-store-api' +import { createStorage } from 'unstorage' const store = new Store('.servers.dat') const storage = createStorage() diff --git a/nuxt.config.ts b/nuxt.config.ts index 4c37693b..02730b0d 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -1,9 +1,9 @@ +import type { BuildInfo } from './types' import { createResolver, useNuxt } from '@nuxt/kit' import { isCI, isDevelopment, isWindows } from 'std-env' import { isPreview } from './config/env' -import { pwa } from './config/pwa' -import type { BuildInfo } from './types' import { currentLocales } from './config/i18n' +import { pwa } from './config/pwa' const { resolve } = createResolver(import.meta.url) diff --git a/package.json b/package.json index cd308485..02e442e8 100644 --- a/package.json +++ b/package.json @@ -113,7 +113,7 @@ "ws": "^8.15.1" }, "devDependencies": { - "@antfu/eslint-config": "^2.27.3", + "@antfu/eslint-config": "^3.7.3", "@antfu/ni": "^0.23.0", "@types/chroma-js": "^2.4.4", "@types/file-saver": "^2.0.7", diff --git a/pages/[[server]]/@[account]/[status].vue b/pages/[[server]]/@[account]/[status].vue index 8098412e..280b6f05 100644 --- a/pages/[[server]]/@[account]/[status].vue +++ b/pages/[[server]]/@[account]/[status].vue @@ -1,7 +1,7 @@ <script setup lang="ts"> +import type { ComponentPublicInstance } from 'vue' // @ts-expect-error missing types import { DynamicScroller, DynamicScrollerItem } from 'vue-virtual-scroller' -import type { ComponentPublicInstance } from 'vue' definePageMeta({ name: 'status', diff --git a/plugins/0.setup-users.ts b/plugins/0.setup-users.ts index 8d445b69..24bc9e6a 100644 --- a/plugins/0.setup-users.ts +++ b/plugins/0.setup-users.ts @@ -1,6 +1,6 @@ import { useAsyncIDBKeyval } from '~/composables/idb' -import type { UserLogin } from '~/types' import { STORAGE_KEY_USERS } from '~/constants' +import type { UserLogin } from '~/types' const mock = process.mock diff --git a/plugins/floating-vue.ts b/plugins/floating-vue.ts index 09329701..c46d9fe4 100644 --- a/plugins/floating-vue.ts +++ b/plugins/floating-vue.ts @@ -1,5 +1,5 @@ -import FloatingVue from 'floating-vue' import { defineNuxtPlugin } from '#imports' +import FloatingVue from 'floating-vue' export default defineNuxtPlugin((nuxtApp) => { nuxtApp.vueApp.use(FloatingVue) diff --git a/plugins/setup-global-effects.client.ts b/plugins/setup-global-effects.client.ts index 832dc262..e5eae12d 100644 --- a/plugins/setup-global-effects.client.ts +++ b/plugins/setup-global-effects.client.ts @@ -1,6 +1,6 @@ import type { OldFontSize } from '~/composables/settings' -import { oldFontSizeMap } from '~/constants/options' import { DEFAULT_FONT_SIZE } from '~/constants' +import { oldFontSizeMap } from '~/constants/options' export default defineNuxtPlugin(() => { const userSettings = useUserSettings() diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b37f9a5c..c4bafaf6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -270,8 +270,8 @@ importers: version: 8.18.0 devDependencies: '@antfu/eslint-config': - specifier: ^2.27.3 - version: 2.27.3(@typescript-eslint/utils@8.5.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2))(@unocss/eslint-plugin@0.62.4(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2))(@vue/compiler-sfc@3.5.4)(eslint-plugin-format@0.1.2(eslint@9.11.1(jiti@1.21.6)))(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)(vitest@2.1.1(@types/node@20.8.6)(happy-dom@15.0.0)(terser@5.22.0)) + specifier: ^3.7.3 + version: 3.7.3(@typescript-eslint/utils@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2))(@unocss/eslint-plugin@0.62.4(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2))(@vue/compiler-sfc@3.5.4)(eslint-plugin-format@0.1.2(eslint@9.11.1(jiti@1.21.6)))(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)(vitest@2.1.1(@types/node@20.8.6)(happy-dom@15.0.0)(terser@5.22.0)) '@antfu/ni': specifier: ^0.23.0 version: 0.23.0 @@ -377,20 +377,20 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@antfu/eslint-config@2.27.3': - resolution: {integrity: sha512-Y2Vh/LvPAaYoyLwCiZHJ7p76LEIGg6debeUA4Qs+KOrlGuXLQWRmdZlC6SB33UDNzXqkFeaXAlEcYUqvYoiMKA==} + '@antfu/eslint-config@3.7.3': + resolution: {integrity: sha512-vzhKtzQT+f/xBV8T5U8SFy3D7uAqL2CEcjsJVqtA7F8tdKvGuC/96uWeEKMHk5lRfijgj+xRvb+c4qQn60YlIA==} hasBin: true peerDependencies: '@eslint-react/eslint-plugin': ^1.5.8 '@prettier/plugin-xml': ^3.4.1 '@unocss/eslint-plugin': '>=0.50.0' astro-eslint-parser: ^1.0.2 - eslint: '>=8.40.0' + eslint: ^9.10.0 eslint-plugin-astro: ^1.2.0 eslint-plugin-format: '>=0.1.0' eslint-plugin-react-hooks: ^4.6.0 eslint-plugin-react-refresh: ^0.4.4 - eslint-plugin-solid: ^0.13.2 + eslint-plugin-solid: ^0.14.3 eslint-plugin-svelte: '>=2.35.1' prettier-plugin-astro: ^0.13.0 prettier-plugin-slidev: ^1.0.5 @@ -1101,10 +1101,6 @@ packages: '@emoji-mart/data@1.1.2': resolution: {integrity: sha512-1HP8BxD2azjqWJvxIaWAMyTySeZY0Osr83ukYjltPVkNXeJvTz7yDrPLBtnrD5uqJ3tg4CcLuuBW09wahqL/fg==} - '@es-joy/jsdoccomment@0.43.1': - resolution: {integrity: sha512-I238eDtOolvCuvtxrnqtlBaw0BwdQuYqK7eA6XIonicMdOOOb75mqdIzkGDUbS04+1Di007rgm9snFRNeVrOog==} - engines: {node: '>=16'} - '@es-joy/jsdoccomment@0.48.0': resolution: {integrity: sha512-G6QUWIcC+KvSwXNsJyDTHvqUdNoAVJPPgkc3+Uk4WBKqZvoXhlvazOgm9aL0HwihJLQf0l+tOE2UFzXBqCqgDw==} engines: {node: '>=16'} @@ -1677,6 +1673,10 @@ packages: resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + '@eslint/compat@1.1.1': + resolution: {integrity: sha512-lpHyRyplhGPL5mGEh6M9O5nnKk0Gz4bFI+Zu6tKlPpDUN7XshWvH9C/px4UVm87IAANE0W81CEsNGbS1KlzXpA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/config-array@0.18.0': resolution: {integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1693,6 +1693,10 @@ packages: resolution: {integrity: sha512-/qu+TWz8WwPWc7/HcIJKi+c+MOm46GdVaSlTTQcaqaL53+GsoA6MxWp5PtTx48qbSP7ylM1Kn7nhvkugfJvRSA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/markdown@6.1.1': + resolution: {integrity: sha512-Z+1js5AeqidwhNBbnIPM6Fn4eY9D5i1NleamS0UBW6BG0J4lpvhIVOKVIi22kmH5gvxDmHUp5MHkkkjda0TehA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/object-schema@2.1.4': resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2418,31 +2422,8 @@ packages: '@socket.io/component-emitter@3.1.0': resolution: {integrity: sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==} - '@stylistic/eslint-plugin-js@2.6.4': - resolution: {integrity: sha512-kx1hS3xTvzxZLdr/DCU/dLBE++vcP97sHeEFX2QXhk1Ipa4K1rzPOLw1HCbf4mU3s+7kHP5eYpDe+QteEOFLug==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: '>=8.40.0' - - '@stylistic/eslint-plugin-jsx@2.6.4': - resolution: {integrity: sha512-bIvVhdtjmyu3S10V7QRIuawtCZSq9gRmzAX23ucjCOdSFzEwlq+di0IM0riBAvvQerrJL4SM6G3xgyPs8BSXIA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: '>=8.40.0' - - '@stylistic/eslint-plugin-plus@2.6.4': - resolution: {integrity: sha512-EuRvtxhf7Hv8OoMIePulP/6rBJIgPTu1l5GAm1780WcF1Cl8bOZXIn84Pdac5pNv6lVlzCOFm8MD3VE+2YROuA==} - peerDependencies: - eslint: '*' - - '@stylistic/eslint-plugin-ts@2.6.4': - resolution: {integrity: sha512-yxL8Hj6WkObw1jfiLpBzKy5yfxY6vwlwO4miq34ySErUjUecPV5jxfVbOe4q1QDPKemQGPq93v7sAQS5PzM8lA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: '>=8.40.0' - - '@stylistic/eslint-plugin@2.6.4': - resolution: {integrity: sha512-euUGnjzH8EOqEYTGk9dB2OBINp0FX1nuO7/k4fO82zNRBIKZgJoDwTLM4Ce+Om6W1Qmh1PrZjCr4jh4tMEXGPQ==} + '@stylistic/eslint-plugin@2.8.0': + resolution: {integrity: sha512-Ufvk7hP+bf+pD35R/QfunF793XlSRIC7USr3/EdgduK9j13i2JjmsM0LUz3/foS+jDYp2fzyWZA9N44CPur0Ow==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.40.0' @@ -2617,9 +2598,6 @@ packages: '@types/eslint-scope@3.7.6': resolution: {integrity: sha512-zfM4ipmxVKWdxtDaJ3MP3pBurDXOCoyjvlpE3u6Qzrmw4BPbfm4/ambIeTk/r/J0iq/+2/xp0Fmt+gFvXJY2PQ==} - '@types/eslint@8.56.5': - resolution: {integrity: sha512-u5/YPJHo1tvkSF2CE0USEkxon82Z5DBy2xR+qfyYNszpX9qcs4sT6uq2kBbj4BXY1+DBGDPnrhMZV3pKWGNukw==} - '@types/eslint@9.6.0': resolution: {integrity: sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg==} @@ -2650,18 +2628,12 @@ packages: '@types/js-yaml@4.0.9': resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} - '@types/json-schema@7.0.14': - resolution: {integrity: sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw==} - '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} '@types/jsonfile@6.1.1': resolution: {integrity: sha512-GSgiRCVeapDN+3pqA35IkQwasaCh/0YFH5dEF6S88iDvEn901DjOeH3/QPY+XYP1DFzDZPvIvfeEgk+7br5png==} - '@types/mdast@3.0.11': - resolution: {integrity: sha512-Y/uImid8aAwrEA24/1tcRZwpxX3pIFTSilcNDKSPn+Y2iDywSEachzRuvgAYYLR3wpGXAsMbv5lvKLDZLeYPAw==} - '@types/mdast@4.0.3': resolution: {integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==} @@ -2707,8 +2679,8 @@ packages: '@types/ws@8.5.12': resolution: {integrity: sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==} - '@typescript-eslint/eslint-plugin@8.3.0': - resolution: {integrity: sha512-FLAIn63G5KH+adZosDYiutqkOkYEx0nvcwNNfJAf+c7Ae/H35qWwTYvPZUKFj5AS+WfHG/WJJfWnDnyNUlp8UA==} + '@typescript-eslint/eslint-plugin@8.7.0': + resolution: {integrity: sha512-RIHOoznhA3CCfSTFiB6kBGLQtB/sox+pJ6jeFu6FxJvqL8qRxq/FfGO/UhsGgQM9oGdXkV4xUgli+dt26biB6A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 @@ -2718,8 +2690,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@8.3.0': - resolution: {integrity: sha512-h53RhVyLu6AtpUzVCYLPhZGL5jzTD9fZL+SYf/+hYOx2bDkyQXztXSc4tbvKYHzfMXExMLiL9CWqJmVz6+78IQ==} + '@typescript-eslint/parser@8.7.0': + resolution: {integrity: sha512-lN0btVpj2unxHlNYLI//BQ7nzbMJYBVQX5+pbNXvGYazdlgYonMn4AhhHifQ+J4fGRYA/m1DjaQjx+fDetqBOQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -2728,16 +2700,16 @@ packages: typescript: optional: true - '@typescript-eslint/scope-manager@8.3.0': - resolution: {integrity: sha512-mz2X8WcN2nVu5Hodku+IR8GgCOl4C0G/Z1ruaWN4dgec64kDBabuXyPAr+/RgJtumv8EEkqIzf3X2U5DUKB2eg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/scope-manager@8.5.0': resolution: {integrity: sha512-06JOQ9Qgj33yvBEx6tpC8ecP9o860rsR22hWMEd12WcTRrfaFgHr2RB/CA/B+7BMhHkXT4chg2MyboGdFGawYg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.3.0': - resolution: {integrity: sha512-wrV6qh//nLbfXZQoj32EXKmwHf4b7L+xXLrP3FZ0GOUU72gSvLjeWUl5J5Ue5IwRxIV1TfF73j/eaBapxx99Lg==} + '@typescript-eslint/scope-manager@8.7.0': + resolution: {integrity: sha512-87rC0k3ZlDOuz82zzXRtQ7Akv3GKhHs0ti4YcbAJtaomllXoSO8hi7Ix3ccEvCd824dy9aIX+j3d2UMAfCtVpg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/type-utils@8.7.0': + resolution: {integrity: sha512-tl0N0Mj3hMSkEYhLkjREp54OSb/FI6qyCzfiiclvJvOqre6hsZTGSnHtmFLDU8TIM62G7ygEa1bI08lcuRwEnQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -2745,26 +2717,13 @@ packages: typescript: optional: true - '@typescript-eslint/types@7.5.0': - resolution: {integrity: sha512-tv5B4IHeAdhR7uS4+bf8Ov3k793VEVHd45viRRkehIUZxm0WF82VPiLgHzA/Xl4TGPg1ZD49vfxBKFPecD5/mg==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@typescript-eslint/types@8.3.0': - resolution: {integrity: sha512-y6sSEeK+facMaAyixM36dQ5NVXTnKWunfD1Ft4xraYqxP0lC0POJmIaL/mw72CUMqjY9qfyVfXafMeaUj0noWw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.5.0': resolution: {integrity: sha512-qjkormnQS5wF9pjSi6q60bKUHH44j2APxfh9TQRXK8wbYVeDYYdYJGIROL87LGZZ2gz3Rbmjc736qyL8deVtdw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.3.0': - resolution: {integrity: sha512-Mq7FTHl0R36EmWlCJWojIC1qn/ZWo2YiWYc1XVtasJ7FIgjo0MVv9rZWXEE7IK2CGrtwe1dVOxWwqXUdNgfRCA==} + '@typescript-eslint/types@8.7.0': + resolution: {integrity: sha512-LLt4BLHFwSfASHSF2K29SZ+ZCsbQOM+LuarPjRUuHm+Qd09hSe3GCeaQbcCr+Mik+0QFRmep/FyZBO6fJ64U3w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true '@typescript-eslint/typescript-estree@8.5.0': resolution: {integrity: sha512-vEG2Sf9P8BPQ+d0pxdfndw3xIXaoSjliG0/Ejk7UggByZPKXmJmw3GW5jV2gHNQNawBUyfahoSiCFVov0Ruf7Q==} @@ -2775,11 +2734,14 @@ packages: typescript: optional: true - '@typescript-eslint/utils@8.3.0': - resolution: {integrity: sha512-F77WwqxIi/qGkIGOGXNBLV7nykwfjLsdauRB/DOFPdv6LTF3BHHkBpq81/b5iMPSF055oO2BiivDJV4ChvNtXA==} + '@typescript-eslint/typescript-estree@8.7.0': + resolution: {integrity: sha512-MC8nmcGHsmfAKxwnluTQpNqceniT8SteVwd2voYlmiSWGOtjvGXdPl17dYu2797GVscK30Z04WRM28CrKS9WOg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true '@typescript-eslint/utils@8.5.0': resolution: {integrity: sha512-6yyGYVL0e+VzGYp60wvkBHiqDWOpT63pdMV2CVG4LVDd5uR6q1qQN/7LafBZtAtNIn/mqXjsSeS5ggv/P0iECw==} @@ -2787,14 +2749,20 @@ packages: peerDependencies: eslint: ^8.57.0 || ^9.0.0 - '@typescript-eslint/visitor-keys@8.3.0': - resolution: {integrity: sha512-RmZwrTbQ9QveF15m/Cl28n0LXD6ea2CjkhH5rQ55ewz3H24w+AMCJHPVYaZ8/0HoG8Z3cLLFFycRXxeO2tz9FA==} + '@typescript-eslint/utils@8.7.0': + resolution: {integrity: sha512-ZbdUdwsl2X/s3CiyAu3gOlfQzpbuG3nTWKPoIvAu1pu5r8viiJvv2NPN2AqArL35NCYtw/lrPPfM4gxrMLNLPw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 '@typescript-eslint/visitor-keys@8.5.0': resolution: {integrity: sha512-yTPqMnbAZJNy2Xq2XU8AdtOW9tJIr+UQb64aXB9f3B1498Zx9JorVgFJcZpEc9UBuCCrdzKID2RGAMkYcDtZOw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/visitor-keys@8.7.0': + resolution: {integrity: sha512-b1tx0orFCCh/THWPQa2ZwWzvOeyzzp36vkJYOpVg0u8UVOIsfVrnuC9FqAw9gRKn+rG2VmWQ/zDJZzkxUnj/XQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} @@ -2983,8 +2951,8 @@ packages: vite: ^5.0.0 vue: ^3.5.4 - '@vitest/eslint-plugin@1.0.5': - resolution: {integrity: sha512-F4zlKv5S/aG3kiFyJHbkbInKfGuIs3muDnpNfr62g8tV0ALbP/MYjLKWN92olLCtWUb2cKl0pew0gKkkoHEUqw==} + '@vitest/eslint-plugin@1.1.4': + resolution: {integrity: sha512-kudjgefmJJ7xQ2WfbUU6pZbm7Ou4gLYRaao/8Ynide3G0QhVKHd978sDyWX4KOH0CCMH9cyrGAkFd55eGzJ48Q==} peerDependencies: '@typescript-eslint/utils': '>= 8.0' eslint: '>= 8.57.0' @@ -3816,21 +3784,12 @@ packages: character-entities-html4@2.1.0: resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} - character-entities-legacy@1.1.4: - resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} - character-entities-legacy@3.0.0: resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} - character-entities@1.2.4: - resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} - character-entities@2.0.2: resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} - character-reference-invalid@1.1.4: - resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} - character-reference-invalid@2.0.1: resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} @@ -4449,11 +4408,13 @@ packages: peerDependencies: eslint: '>=6.0.0' - eslint-config-flat-gitignore@0.1.8: - resolution: {integrity: sha512-OEUbS2wzzYtUfshjOqzFo4Bl4lHykXUdM08TCnYNl7ki+niW4Q1R0j0FDFDr0vjVsI5ZFOz5LvluxOP+Ew+dYw==} + eslint-config-flat-gitignore@0.3.0: + resolution: {integrity: sha512-0Ndxo4qGhcewjTzw52TK06Mc00aDtHNTdeeW2JfONgDcLkRO/n/BteMRzNVpLQYxdCC/dFEilfM9fjjpGIJ9Og==} + peerDependencies: + eslint: ^9.5.0 - eslint-flat-config-utils@0.3.1: - resolution: {integrity: sha512-eFT3EaoJN1hlN97xw4FIEX//h0TiFUobgl2l5uLkIwhVN9ahGq95Pbs+i1/B5UACA78LO3rco3JzuvxLdTUOPA==} + eslint-flat-config-utils@0.4.0: + resolution: {integrity: sha512-kfd5kQZC+BMO0YwTol6zxjKX1zAsk8JfSAopbKjKqmENTJcew+yBejuvccAg37cvOrN0Mh+DVbeyznuNWEjt4A==} eslint-formatting-reporter@0.0.0: resolution: {integrity: sha512-k9RdyTqxqN/wNYVaTk/ds5B5rA8lgoAmvceYN7bcZMBwU7TuXx5ntewJv81eF3pIL/CiJE+pJZm36llG8yhyyw==} @@ -4471,13 +4432,13 @@ packages: eslint-parser-plain@0.1.0: resolution: {integrity: sha512-oOeA6FWU0UJT/Rxc3XF5Cq0nbIZbylm7j8+plqq0CZoE6m4u32OXJrR+9iy4srGMmF6v6pmgvP1zPxSRIGh3sg==} - eslint-plugin-antfu@2.3.6: - resolution: {integrity: sha512-31VwbU1Yd4BFNUUPQEazKyP79f3c+ohJtq5iZIuw38JjkRQdQAcF/31Kjr0DOKZXVDkeeNPrttKidrr3xhnhOA==} + eslint-plugin-antfu@2.7.0: + resolution: {integrity: sha512-gZM3jq3ouqaoHmUNszb1Zo2Ux7RckSvkGksjLWz9ipBYGSv1EwwBETN6AdiUXn+RpVHXTbEMPAPlXJazcA6+iA==} peerDependencies: eslint: '*' - eslint-plugin-command@0.2.3: - resolution: {integrity: sha512-1bBYNfjZg60N2ZpLV5ATYSYyueIJ+zl5yKrTs0UFDdnyu07dNSZ7Xplnc+Wb6SXTdc1sIaoIrnuyhvztcltX6A==} + eslint-plugin-command@0.2.6: + resolution: {integrity: sha512-T0bHZ1oblW1xUHUVoBKZJR2osSNNGkfZuK4iqboNwuNS/M7tdp3pmURaJtTi/XDzitxaQ02lvOdFH0mUd5QLvQ==} peerDependencies: eslint: '*' @@ -4492,14 +4453,14 @@ packages: peerDependencies: eslint: ^8.40.0 || ^9.0.0 - eslint-plugin-import-x@4.0.0: - resolution: {integrity: sha512-5bWZ+2p3DKlpLSP830cAUmRUoYEnnvuBmSOSlURffEUuXL68uQUX0v2JpoXxyoDRIQWApzbqhnFeHA0XoQWosA==} + eslint-plugin-import-x@4.3.1: + resolution: {integrity: sha512-5TriWkXulDl486XnYYRgsL+VQoS/7mhN/2ci02iLCuL7gdhbiWxnsuL/NTcaKY9fpMgsMFjWZBtIGW7pb+RX0g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - eslint-plugin-jsdoc@50.2.2: - resolution: {integrity: sha512-i0ZMWA199DG7sjxlzXn5AeYZxpRfMJjDPUl7lL9eJJX8TPRoIaxJU4ys/joP5faM5AXE1eqW/dslCj3uj4Nqpg==} + eslint-plugin-jsdoc@50.3.0: + resolution: {integrity: sha512-P7qDB/RckdKETpBM4CtjHRQ5qXByPmFhRi86sN3E+J+tySchq+RSOGGhI2hDIefmmKFuTi/1ACjqsnDJDDDfzg==} engines: {node: '>=18'} peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 @@ -4510,14 +4471,8 @@ packages: peerDependencies: eslint: '>=6.0.0' - eslint-plugin-markdown@5.1.0: - resolution: {integrity: sha512-SJeyKko1K6GwI0AN6xeCDToXDkfKZfXcexA6B+O2Wr2btUS9GrC+YgwSyVli5DJnctUHjFXcQ2cqTaAmVoLi2A==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: '>=8' - - eslint-plugin-n@17.10.2: - resolution: {integrity: sha512-e+s4eAf5NtJaxPhTNu3qMO0Iz40WANS93w9LQgYcvuljgvDmWi/a3rh+OrNyMHeng6aOWGJO0rCg5lH4zi8yTw==} + eslint-plugin-n@17.10.3: + resolution: {integrity: sha512-ySZBfKe49nQZWR1yFaA0v/GsH6Fgp8ah6XV0WDz6CN8WO0ek4McMzb7A2xnf4DCYV43frjCygvb9f/wx7UUxRw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.23.0' @@ -4526,14 +4481,14 @@ packages: resolution: {integrity: sha512-brcKcxGnISN2CcVhXJ/kEQlNa0MEfGRtwKtWA16SkqXHKitaKIMrfemJKLKX1YqDU5C/5JY3PvZXd5jEW04e0Q==} engines: {node: '>=5.0.0'} - eslint-plugin-perfectionist@3.2.0: - resolution: {integrity: sha512-cX1aztMbSfRWPKJH8CD+gadrbkS+RNH1OGWuNGws8J6rHzYYhawxWTU/yzMYjq2IRJCpBCfhgfa7BHRXQYxLHA==} + eslint-plugin-perfectionist@3.7.0: + resolution: {integrity: sha512-pemhfcR3LDbYVWeveHok9u048yR7GpsnfyPvn6RsDkp/UV7iqBV0y5K0aGb9ZJMsemOyWok7akxGzPLsz+mHKQ==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: astro-eslint-parser: ^1.0.2 eslint: '>=8.0.0' svelte: '>=3.0.0' - svelte-eslint-parser: ^0.41.0 + svelte-eslint-parser: ^0.41.1 vue-eslint-parser: '>=9.0.0' peerDependenciesMeta: astro-eslint-parser: @@ -4563,8 +4518,8 @@ packages: peerDependencies: eslint: '>=8.56.0' - eslint-plugin-unused-imports@4.1.3: - resolution: {integrity: sha512-lqrNZIZjFMUr7P06eoKtQLwyVRibvG7N+LtfKtObYGizAAGrcqLkc3tDx+iAik2z7q0j/XI3ihjupIqxhFabFA==} + eslint-plugin-unused-imports@4.1.4: + resolution: {integrity: sha512-YptD6IzQjDardkl0POxnnRBhU1OEePMV0nd6siHaRBbd+lyh6NAhFEobiznKU7kTsSsDeSD62Pe7kAM1b7dAZQ==} peerDependencies: '@typescript-eslint/eslint-plugin': ^8.0.0-0 || ^7.0.0 || ^6.0.0 || ^5.0.0 eslint: ^9.0.0 || ^8.0.0 @@ -4572,8 +4527,8 @@ packages: '@typescript-eslint/eslint-plugin': optional: true - eslint-plugin-vue@9.27.0: - resolution: {integrity: sha512-5Dw3yxEyuBSXTzT5/Ge1X5kIkRTQ3nvBn/VwPwInNiZBSJOO/timWMUaflONnFBzU6NhB68lxnCda7ULV5N7LA==} + eslint-plugin-vue@9.28.0: + resolution: {integrity: sha512-ShrihdjIhOTxs+MfWun6oJWuk+g/LAhN+CiuOl/jjkG3l0F2AuK5NMTaWqyvBgkFtpYmyks6P4603mLmhNJW8g==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 @@ -5181,15 +5136,9 @@ packages: resolution: {integrity: sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - is-alphabetical@1.0.4: - resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} - is-alphabetical@2.0.1: resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} - is-alphanumerical@1.0.4: - resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} - is-alphanumerical@2.0.1: resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} @@ -5235,9 +5184,6 @@ packages: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} engines: {node: '>= 0.4'} - is-decimal@1.0.4: - resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} - is-decimal@2.0.1: resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} @@ -5279,9 +5225,6 @@ packages: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} - is-hexadecimal@1.0.4: - resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} - is-hexadecimal@2.0.1: resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} @@ -5447,10 +5390,6 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true - jsdoc-type-pratt-parser@4.0.0: - resolution: {integrity: sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==} - engines: {node: '>=12.0.0'} - jsdoc-type-pratt-parser@4.1.0: resolution: {integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==} engines: {node: '>=12.0.0'} @@ -5684,12 +5623,12 @@ packages: mdast-util-find-and-replace@3.0.1: resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} - mdast-util-from-markdown@0.8.5: - resolution: {integrity: sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==} - mdast-util-from-markdown@2.0.0: resolution: {integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==} + mdast-util-from-markdown@2.0.1: + resolution: {integrity: sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==} + mdast-util-gfm-autolink-literal@2.0.0: resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==} @@ -5717,9 +5656,6 @@ packages: mdast-util-to-markdown@2.1.0: resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} - mdast-util-to-string@2.0.0: - resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==} - mdast-util-to-string@4.0.0: resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} @@ -5820,9 +5756,6 @@ packages: micromark-util-types@2.0.0: resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} - micromark@2.11.4: - resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==} - micromark@4.0.0: resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} @@ -5865,10 +5798,6 @@ packages: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} - minimatch@10.0.1: - resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} - engines: {node: 20 || >=22} - minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -6215,9 +6144,6 @@ packages: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} - parse-entities@2.0.0: - resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} - parse-entities@4.0.1: resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} @@ -7605,9 +7531,6 @@ packages: unist-util-position@5.0.0: resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} - unist-util-stringify-position@2.0.3: - resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} - unist-util-stringify-position@4.0.0: resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} @@ -8269,40 +8192,40 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@antfu/eslint-config@2.27.3(@typescript-eslint/utils@8.5.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2))(@unocss/eslint-plugin@0.62.4(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2))(@vue/compiler-sfc@3.5.4)(eslint-plugin-format@0.1.2(eslint@9.11.1(jiti@1.21.6)))(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)(vitest@2.1.1(@types/node@20.8.6)(happy-dom@15.0.0)(terser@5.22.0))': + '@antfu/eslint-config@3.7.3(@typescript-eslint/utils@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2))(@unocss/eslint-plugin@0.62.4(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2))(@vue/compiler-sfc@3.5.4)(eslint-plugin-format@0.1.2(eslint@9.11.1(jiti@1.21.6)))(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)(vitest@2.1.1(@types/node@20.8.6)(happy-dom@15.0.0)(terser@5.22.0))': dependencies: '@antfu/install-pkg': 0.4.1 '@clack/prompts': 0.7.0 '@eslint-community/eslint-plugin-eslint-comments': 4.4.0(eslint@9.11.1(jiti@1.21.6)) - '@stylistic/eslint-plugin': 2.6.4(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) - '@typescript-eslint/eslint-plugin': 8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) - '@typescript-eslint/parser': 8.3.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) - '@vitest/eslint-plugin': 1.0.5(@typescript-eslint/utils@8.5.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)(vitest@2.1.1(@types/node@20.8.6)(happy-dom@15.0.0)(terser@5.22.0)) + '@eslint/markdown': 6.1.1 + '@stylistic/eslint-plugin': 2.8.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/eslint-plugin': 8.7.0(@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/parser': 8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) + '@vitest/eslint-plugin': 1.1.4(@typescript-eslint/utils@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)(vitest@2.1.1(@types/node@20.8.6)(happy-dom@15.0.0)(terser@5.22.0)) eslint: 9.11.1(jiti@1.21.6) - eslint-config-flat-gitignore: 0.1.8 - eslint-flat-config-utils: 0.3.1 + eslint-config-flat-gitignore: 0.3.0(eslint@9.11.1(jiti@1.21.6)) + eslint-flat-config-utils: 0.4.0 eslint-merge-processors: 0.1.0(eslint@9.11.1(jiti@1.21.6)) - eslint-plugin-antfu: 2.3.6(eslint@9.11.1(jiti@1.21.6)) - eslint-plugin-command: 0.2.3(eslint@9.11.1(jiti@1.21.6)) - eslint-plugin-import-x: 4.0.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) - eslint-plugin-jsdoc: 50.2.2(eslint@9.11.1(jiti@1.21.6)) + eslint-plugin-antfu: 2.7.0(eslint@9.11.1(jiti@1.21.6)) + eslint-plugin-command: 0.2.6(eslint@9.11.1(jiti@1.21.6)) + eslint-plugin-import-x: 4.3.1(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) + eslint-plugin-jsdoc: 50.3.0(eslint@9.11.1(jiti@1.21.6)) eslint-plugin-jsonc: 2.16.0(eslint@9.11.1(jiti@1.21.6)) - eslint-plugin-markdown: 5.1.0(eslint@9.11.1(jiti@1.21.6)) - eslint-plugin-n: 17.10.2(eslint@9.11.1(jiti@1.21.6)) + eslint-plugin-n: 17.10.3(eslint@9.11.1(jiti@1.21.6)) eslint-plugin-no-only-tests: 3.3.0 - eslint-plugin-perfectionist: 3.2.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)(vue-eslint-parser@9.4.3(eslint@9.11.1(jiti@1.21.6))) + eslint-plugin-perfectionist: 3.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)(vue-eslint-parser@9.4.3(eslint@9.11.1(jiti@1.21.6))) eslint-plugin-regexp: 2.6.0(eslint@9.11.1(jiti@1.21.6)) eslint-plugin-toml: 0.11.1(eslint@9.11.1(jiti@1.21.6)) eslint-plugin-unicorn: 55.0.0(eslint@9.11.1(jiti@1.21.6)) - eslint-plugin-unused-imports: 4.1.3(@typescript-eslint/eslint-plugin@8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.1(jiti@1.21.6)) - eslint-plugin-vue: 9.27.0(eslint@9.11.1(jiti@1.21.6)) + eslint-plugin-unused-imports: 4.1.4(@typescript-eslint/eslint-plugin@8.7.0(@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.1(jiti@1.21.6)) + eslint-plugin-vue: 9.28.0(eslint@9.11.1(jiti@1.21.6)) eslint-plugin-yml: 1.14.0(eslint@9.11.1(jiti@1.21.6)) eslint-processor-vue-blocks: 0.1.2(@vue/compiler-sfc@3.5.4)(eslint@9.11.1(jiti@1.21.6)) globals: 15.9.0 jsonc-eslint-parser: 2.4.0 local-pkg: 0.5.0 parse-gitignore: 2.0.0 - picocolors: 1.0.1 + picocolors: 1.1.0 toml-eslint-parser: 0.10.0 vue-eslint-parser: 9.4.3(eslint@9.11.1(jiti@1.21.6)) yaml-eslint-parser: 1.2.3 @@ -9143,13 +9066,13 @@ snapshots: '@clack/core@0.3.4': dependencies: - picocolors: 1.0.1 + picocolors: 1.1.0 sisteransi: 1.0.5 '@clack/prompts@0.7.0': dependencies: '@clack/core': 0.3.4 - picocolors: 1.0.1 + picocolors: 1.1.0 sisteransi: 1.0.5 '@cloudflare/kv-asset-handler@0.3.4': @@ -9180,15 +9103,6 @@ snapshots: '@emoji-mart/data@1.1.2': {} - '@es-joy/jsdoccomment@0.43.1': - dependencies: - '@types/eslint': 8.56.5 - '@types/estree': 1.0.5 - '@typescript-eslint/types': 7.5.0 - comment-parser: 1.4.1 - esquery: 1.6.0 - jsdoc-type-pratt-parser: 4.0.0 - '@es-joy/jsdoccomment@0.48.0': dependencies: comment-parser: 1.4.1 @@ -9484,6 +9398,8 @@ snapshots: '@eslint-community/regexpp@4.11.0': {} + '@eslint/compat@1.1.1': {} + '@eslint/config-array@0.18.0': dependencies: '@eslint/object-schema': 2.1.4 @@ -9510,6 +9426,15 @@ snapshots: '@eslint/js@9.11.1': {} + '@eslint/markdown@6.1.1': + dependencies: + '@eslint/plugin-kit': 0.2.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-gfm: 3.0.0 + micromark-extension-gfm: 3.0.0 + transitivePeerDependencies: + - supports-color + '@eslint/object-schema@2.1.4': {} '@eslint/plugin-kit@0.2.0': @@ -11006,47 +10931,14 @@ snapshots: '@socket.io/component-emitter@3.1.0': {} - '@stylistic/eslint-plugin-js@2.6.4(eslint@9.11.1(jiti@1.21.6))': + '@stylistic/eslint-plugin@2.8.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)': dependencies: - '@types/eslint': 9.6.0 - acorn: 8.12.1 - eslint: 9.11.1(jiti@1.21.6) - eslint-visitor-keys: 4.0.0 - espree: 10.1.0 - - '@stylistic/eslint-plugin-jsx@2.6.4(eslint@9.11.1(jiti@1.21.6))': - dependencies: - '@stylistic/eslint-plugin-js': 2.6.4(eslint@9.11.1(jiti@1.21.6)) - '@types/eslint': 9.6.0 + '@typescript-eslint/utils': 8.5.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) eslint: 9.11.1(jiti@1.21.6) eslint-visitor-keys: 4.0.0 espree: 10.1.0 estraverse: 5.3.0 picomatch: 4.0.2 - - '@stylistic/eslint-plugin-plus@2.6.4(eslint@9.11.1(jiti@1.21.6))': - dependencies: - '@types/eslint': 9.6.0 - eslint: 9.11.1(jiti@1.21.6) - - '@stylistic/eslint-plugin-ts@2.6.4(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)': - dependencies: - '@stylistic/eslint-plugin-js': 2.6.4(eslint@9.11.1(jiti@1.21.6)) - '@types/eslint': 9.6.0 - '@typescript-eslint/utils': 8.3.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) - eslint: 9.11.1(jiti@1.21.6) - transitivePeerDependencies: - - supports-color - - typescript - - '@stylistic/eslint-plugin@2.6.4(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)': - dependencies: - '@stylistic/eslint-plugin-js': 2.6.4(eslint@9.11.1(jiti@1.21.6)) - '@stylistic/eslint-plugin-jsx': 2.6.4(eslint@9.11.1(jiti@1.21.6)) - '@stylistic/eslint-plugin-plus': 2.6.4(eslint@9.11.1(jiti@1.21.6)) - '@stylistic/eslint-plugin-ts': 2.6.4(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) - '@types/eslint': 9.6.0 - eslint: 9.11.1(jiti@1.21.6) transitivePeerDependencies: - supports-color - typescript @@ -11238,17 +11130,12 @@ snapshots: '@types/eslint-scope@3.7.6': dependencies: '@types/eslint': 9.6.0 - '@types/estree': 1.0.5 - - '@types/eslint@8.56.5': - dependencies: - '@types/estree': 1.0.5 - '@types/json-schema': 7.0.14 + '@types/estree': 1.0.6 '@types/eslint@9.6.0': dependencies: - '@types/estree': 1.0.5 - '@types/json-schema': 7.0.14 + '@types/estree': 1.0.6 + '@types/json-schema': 7.0.15 '@types/estree@0.0.39': {} @@ -11275,18 +11162,12 @@ snapshots: '@types/js-yaml@4.0.9': {} - '@types/json-schema@7.0.14': {} - '@types/json-schema@7.0.15': {} '@types/jsonfile@6.1.1': dependencies: '@types/node': 20.8.6 - '@types/mdast@3.0.11': - dependencies: - '@types/unist': 3.0.2 - '@types/mdast@4.0.3': dependencies: '@types/unist': 3.0.2 @@ -11323,14 +11204,14 @@ snapshots: dependencies: '@types/node': 20.8.6 - '@typescript-eslint/eslint-plugin@8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)': + '@typescript-eslint/eslint-plugin@8.7.0(@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)': dependencies: '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 8.3.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) - '@typescript-eslint/scope-manager': 8.3.0 - '@typescript-eslint/type-utils': 8.3.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) - '@typescript-eslint/utils': 8.3.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) - '@typescript-eslint/visitor-keys': 8.3.0 + '@typescript-eslint/parser': 8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/scope-manager': 8.7.0 + '@typescript-eslint/type-utils': 8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/utils': 8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/visitor-keys': 8.7.0 eslint: 9.11.1(jiti@1.21.6) graphemer: 1.4.0 ignore: 5.3.2 @@ -11341,12 +11222,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.3.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)': + '@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)': dependencies: - '@typescript-eslint/scope-manager': 8.3.0 - '@typescript-eslint/types': 8.3.0 - '@typescript-eslint/typescript-estree': 8.3.0(typescript@5.6.2) - '@typescript-eslint/visitor-keys': 8.3.0 + '@typescript-eslint/scope-manager': 8.7.0 + '@typescript-eslint/types': 8.7.0 + '@typescript-eslint/typescript-estree': 8.7.0(typescript@5.6.2) + '@typescript-eslint/visitor-keys': 8.7.0 debug: 4.3.6 eslint: 9.11.1(jiti@1.21.6) optionalDependencies: @@ -11354,20 +11235,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.3.0': - dependencies: - '@typescript-eslint/types': 8.3.0 - '@typescript-eslint/visitor-keys': 8.3.0 - '@typescript-eslint/scope-manager@8.5.0': dependencies: '@typescript-eslint/types': 8.5.0 '@typescript-eslint/visitor-keys': 8.5.0 - '@typescript-eslint/type-utils@8.3.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)': + '@typescript-eslint/scope-manager@8.7.0': dependencies: - '@typescript-eslint/typescript-estree': 8.3.0(typescript@5.6.2) - '@typescript-eslint/utils': 8.3.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/types': 8.7.0 + '@typescript-eslint/visitor-keys': 8.7.0 + + '@typescript-eslint/type-utils@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)': + dependencies: + '@typescript-eslint/typescript-estree': 8.7.0(typescript@5.6.2) + '@typescript-eslint/utils': 8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) debug: 4.3.6 ts-api-utils: 1.3.0(typescript@5.6.2) optionalDependencies: @@ -11376,26 +11257,9 @@ snapshots: - eslint - supports-color - '@typescript-eslint/types@7.5.0': {} - - '@typescript-eslint/types@8.3.0': {} - '@typescript-eslint/types@8.5.0': {} - '@typescript-eslint/typescript-estree@8.3.0(typescript@5.6.2)': - dependencies: - '@typescript-eslint/types': 8.3.0 - '@typescript-eslint/visitor-keys': 8.3.0 - debug: 4.3.6 - fast-glob: 3.3.2 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.6.3 - ts-api-utils: 1.3.0(typescript@5.6.2) - optionalDependencies: - typescript: 5.6.2 - transitivePeerDependencies: - - supports-color + '@typescript-eslint/types@8.7.0': {} '@typescript-eslint/typescript-estree@8.5.0(typescript@5.6.2)': dependencies: @@ -11412,16 +11276,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.3.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)': + '@typescript-eslint/typescript-estree@8.7.0(typescript@5.6.2)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.1(jiti@1.21.6)) - '@typescript-eslint/scope-manager': 8.3.0 - '@typescript-eslint/types': 8.3.0 - '@typescript-eslint/typescript-estree': 8.3.0(typescript@5.6.2) - eslint: 9.11.1(jiti@1.21.6) + '@typescript-eslint/types': 8.7.0 + '@typescript-eslint/visitor-keys': 8.7.0 + debug: 4.3.6 + fast-glob: 3.3.2 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.3 + ts-api-utils: 1.3.0(typescript@5.6.2) + optionalDependencies: + typescript: 5.6.2 transitivePeerDependencies: - supports-color - - typescript '@typescript-eslint/utils@8.5.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)': dependencies: @@ -11434,16 +11302,27 @@ snapshots: - supports-color - typescript - '@typescript-eslint/visitor-keys@8.3.0': + '@typescript-eslint/utils@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)': dependencies: - '@typescript-eslint/types': 8.3.0 - eslint-visitor-keys: 3.4.3 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.1(jiti@1.21.6)) + '@typescript-eslint/scope-manager': 8.7.0 + '@typescript-eslint/types': 8.7.0 + '@typescript-eslint/typescript-estree': 8.7.0(typescript@5.6.2) + eslint: 9.11.1(jiti@1.21.6) + transitivePeerDependencies: + - supports-color + - typescript '@typescript-eslint/visitor-keys@8.5.0': dependencies: '@typescript-eslint/types': 8.5.0 eslint-visitor-keys: 3.4.3 + '@typescript-eslint/visitor-keys@8.7.0': + dependencies: + '@typescript-eslint/types': 8.7.0 + eslint-visitor-keys: 3.4.3 + '@ungap/structured-clone@1.2.0': {} '@unhead/dom@1.11.2': @@ -11798,11 +11677,11 @@ snapshots: vite: 5.4.5(@types/node@20.8.6)(terser@5.22.0) vue: 3.5.4(typescript@5.6.2) - '@vitest/eslint-plugin@1.0.5(@typescript-eslint/utils@8.5.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)(vitest@2.1.1(@types/node@20.8.6)(happy-dom@15.0.0)(terser@5.22.0))': + '@vitest/eslint-plugin@1.1.4(@typescript-eslint/utils@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)(vitest@2.1.1(@types/node@20.8.6)(happy-dom@15.0.0)(terser@5.22.0))': dependencies: eslint: 9.11.1(jiti@1.21.6) optionalDependencies: - '@typescript-eslint/utils': 8.5.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/utils': 8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) typescript: 5.6.2 vitest: 2.1.1(@types/node@20.8.6)(happy-dom@15.0.0)(terser@5.22.0) @@ -12964,16 +12843,10 @@ snapshots: character-entities-html4@2.1.0: {} - character-entities-legacy@1.1.4: {} - character-entities-legacy@3.0.0: {} - character-entities@1.2.4: {} - character-entities@2.0.2: {} - character-reference-invalid@1.1.4: {} - character-reference-invalid@2.0.1: {} charenc@0.0.2: {} @@ -13650,14 +13523,14 @@ snapshots: eslint: 9.11.1(jiti@1.21.6) semver: 7.6.3 - eslint-config-flat-gitignore@0.1.8: + eslint-config-flat-gitignore@0.3.0(eslint@9.11.1(jiti@1.21.6)): dependencies: + '@eslint/compat': 1.1.1 + eslint: 9.11.1(jiti@1.21.6) find-up-simple: 1.0.0 - parse-gitignore: 2.0.0 - eslint-flat-config-utils@0.3.1: + eslint-flat-config-utils@0.4.0: dependencies: - '@types/eslint': 9.6.0 pathe: 1.1.2 eslint-formatting-reporter@0.0.0(eslint@9.11.1(jiti@1.21.6)): @@ -13679,14 +13552,14 @@ snapshots: eslint-parser-plain@0.1.0: {} - eslint-plugin-antfu@2.3.6(eslint@9.11.1(jiti@1.21.6)): + eslint-plugin-antfu@2.7.0(eslint@9.11.1(jiti@1.21.6)): dependencies: '@antfu/utils': 0.7.10 eslint: 9.11.1(jiti@1.21.6) - eslint-plugin-command@0.2.3(eslint@9.11.1(jiti@1.21.6)): + eslint-plugin-command@0.2.6(eslint@9.11.1(jiti@1.21.6)): dependencies: - '@es-joy/jsdoccomment': 0.43.1 + '@es-joy/jsdoccomment': 0.48.0 eslint: 9.11.1(jiti@1.21.6) eslint-plugin-es-x@7.5.0(eslint@9.11.1(jiti@1.21.6)): @@ -13707,10 +13580,9 @@ snapshots: prettier: 3.3.3 synckit: 0.9.1 - eslint-plugin-import-x@4.0.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2): + eslint-plugin-import-x@4.3.1(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2): dependencies: - '@typescript-eslint/typescript-estree': 8.3.0(typescript@5.6.2) - '@typescript-eslint/utils': 8.3.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/utils': 8.5.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) debug: 4.3.6 doctrine: 3.0.0 eslint: 9.11.1(jiti@1.21.6) @@ -13725,7 +13597,7 @@ snapshots: - supports-color - typescript - eslint-plugin-jsdoc@50.2.2(eslint@9.11.1(jiti@1.21.6)): + eslint-plugin-jsdoc@50.3.0(eslint@9.11.1(jiti@1.21.6)): dependencies: '@es-joy/jsdoccomment': 0.48.0 are-docs-informative: 0.0.2 @@ -13753,14 +13625,7 @@ snapshots: natural-compare: 1.4.0 synckit: 0.6.2 - eslint-plugin-markdown@5.1.0(eslint@9.11.1(jiti@1.21.6)): - dependencies: - eslint: 9.11.1(jiti@1.21.6) - mdast-util-from-markdown: 0.8.5 - transitivePeerDependencies: - - supports-color - - eslint-plugin-n@17.10.2(eslint@9.11.1(jiti@1.21.6)): + eslint-plugin-n@17.10.3(eslint@9.11.1(jiti@1.21.6)): dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.1(jiti@1.21.6)) enhanced-resolve: 5.17.1 @@ -13774,12 +13639,12 @@ snapshots: eslint-plugin-no-only-tests@3.3.0: {} - eslint-plugin-perfectionist@3.2.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)(vue-eslint-parser@9.4.3(eslint@9.11.1(jiti@1.21.6))): + eslint-plugin-perfectionist@3.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2)(vue-eslint-parser@9.4.3(eslint@9.11.1(jiti@1.21.6))): dependencies: - '@typescript-eslint/types': 8.3.0 - '@typescript-eslint/utils': 8.3.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/types': 8.7.0 + '@typescript-eslint/utils': 8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) eslint: 9.11.1(jiti@1.21.6) - minimatch: 10.0.1 + minimatch: 9.0.5 natural-compare-lite: 1.4.0 optionalDependencies: vue-eslint-parser: 9.4.3(eslint@9.11.1(jiti@1.21.6)) @@ -13828,13 +13693,13 @@ snapshots: semver: 7.6.3 strip-indent: 3.0.0 - eslint-plugin-unused-imports@4.1.3(@typescript-eslint/eslint-plugin@8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.1(jiti@1.21.6)): + eslint-plugin-unused-imports@4.1.4(@typescript-eslint/eslint-plugin@8.7.0(@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.1(jiti@1.21.6)): dependencies: eslint: 9.11.1(jiti@1.21.6) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/eslint-plugin': 8.7.0(@typescript-eslint/parser@8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) - eslint-plugin-vue@9.27.0(eslint@9.11.1(jiti@1.21.6)): + eslint-plugin-vue@9.28.0(eslint@9.11.1(jiti@1.21.6)): dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.1(jiti@1.21.6)) eslint: 9.11.1(jiti@1.21.6) @@ -14562,15 +14427,8 @@ snapshots: is-absolute-url@4.0.1: {} - is-alphabetical@1.0.4: {} - is-alphabetical@2.0.1: {} - is-alphanumerical@1.0.4: - dependencies: - is-alphabetical: 1.0.4 - is-decimal: 1.0.4 - is-alphanumerical@2.0.1: dependencies: is-alphabetical: 2.0.1 @@ -14620,8 +14478,6 @@ snapshots: dependencies: has-tostringtag: 1.0.0 - is-decimal@1.0.4: {} - is-decimal@2.0.1: {} is-docker@2.2.1: {} @@ -14650,8 +14506,6 @@ snapshots: dependencies: is-extglob: 2.1.1 - is-hexadecimal@1.0.4: {} - is-hexadecimal@2.0.1: {} is-https@4.0.0: {} @@ -14799,8 +14653,6 @@ snapshots: dependencies: argparse: 2.0.1 - jsdoc-type-pratt-parser@4.0.0: {} - jsdoc-type-pratt-parser@4.1.0: {} jsesc@0.5.0: {} @@ -15062,17 +14914,24 @@ snapshots: unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 - mdast-util-from-markdown@0.8.5: + mdast-util-from-markdown@2.0.0: dependencies: - '@types/mdast': 3.0.11 - mdast-util-to-string: 2.0.0 - micromark: 2.11.4 - parse-entities: 2.0.0 - unist-util-stringify-position: 2.0.3 + '@types/mdast': 4.0.3 + '@types/unist': 3.0.2 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-decode-string: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + unist-util-stringify-position: 4.0.0 transitivePeerDependencies: - supports-color - mdast-util-from-markdown@2.0.0: + mdast-util-from-markdown@2.0.1: dependencies: '@types/mdast': 4.0.3 '@types/unist': 3.0.2 @@ -15101,7 +14960,7 @@ snapshots: dependencies: '@types/mdast': 4.0.3 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.0 + mdast-util-from-markdown: 2.0.1 mdast-util-to-markdown: 2.1.0 micromark-util-normalize-identifier: 2.0.0 transitivePeerDependencies: @@ -15110,7 +14969,7 @@ snapshots: mdast-util-gfm-strikethrough@2.0.0: dependencies: '@types/mdast': 4.0.3 - mdast-util-from-markdown: 2.0.0 + mdast-util-from-markdown: 2.0.1 mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color @@ -15120,7 +14979,7 @@ snapshots: '@types/mdast': 4.0.3 devlop: 1.1.0 markdown-table: 3.0.3 - mdast-util-from-markdown: 2.0.0 + mdast-util-from-markdown: 2.0.1 mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color @@ -15129,14 +14988,14 @@ snapshots: dependencies: '@types/mdast': 4.0.3 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.0 + mdast-util-from-markdown: 2.0.1 mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color mdast-util-gfm@3.0.0: dependencies: - mdast-util-from-markdown: 2.0.0 + mdast-util-from-markdown: 2.0.1 mdast-util-gfm-autolink-literal: 2.0.0 mdast-util-gfm-footnote: 2.0.0 mdast-util-gfm-strikethrough: 2.0.0 @@ -15174,8 +15033,6 @@ snapshots: unist-util-visit: 5.0.0 zwitch: 2.0.4 - mdast-util-to-string@2.0.0: {} - mdast-util-to-string@4.0.0: dependencies: '@types/mdast': 4.0.3 @@ -15359,13 +15216,6 @@ snapshots: micromark-util-types@2.0.0: {} - micromark@2.11.4: - dependencies: - debug: 4.3.6 - parse-entities: 2.0.0 - transitivePeerDependencies: - - supports-color - micromark@4.0.0: dependencies: '@types/debug': 4.1.8 @@ -15411,10 +15261,6 @@ snapshots: min-indent@1.0.1: {} - minimatch@10.0.1: - dependencies: - brace-expansion: 2.0.1 - minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 @@ -16187,15 +16033,6 @@ snapshots: dependencies: callsites: 3.1.0 - parse-entities@2.0.0: - dependencies: - character-entities: 1.2.4 - character-entities-legacy: 1.1.4 - character-reference-invalid: 1.1.4 - is-alphanumerical: 1.0.4 - is-decimal: 1.0.4 - is-hexadecimal: 1.0.4 - parse-entities@4.0.1: dependencies: '@types/unist': 2.0.6 @@ -17023,7 +16860,7 @@ snapshots: schema-utils@3.3.0: dependencies: - '@types/json-schema': 7.0.14 + '@types/json-schema': 7.0.15 ajv: 6.12.6 ajv-keywords: 3.5.2(ajv@6.12.6) @@ -17847,10 +17684,6 @@ snapshots: dependencies: '@types/unist': 3.0.2 - unist-util-stringify-position@2.0.3: - dependencies: - '@types/unist': 2.0.6 - unist-util-stringify-position@4.0.0: dependencies: '@types/unist': 3.0.2 @@ -18497,7 +18330,7 @@ snapshots: webpack@5.89.0(esbuild@0.23.1): dependencies: '@types/eslint-scope': 3.7.6 - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 '@webassemblyjs/ast': 1.11.6 '@webassemblyjs/wasm-edit': 1.11.6 '@webassemblyjs/wasm-parser': 1.11.6 diff --git a/scripts/avatars.ts b/scripts/avatars.ts index a3dced26..883c609e 100644 --- a/scripts/avatars.ts +++ b/scripts/avatars.ts @@ -1,7 +1,7 @@ import { writeFile } from 'node:fs/promises' -import { join, resolve } from 'pathe' import fs from 'fs-extra' import { ofetch } from 'ofetch' +import { join, resolve } from 'pathe' import { elkTeamMembers } from '../composables/about' const avatarsDir = resolve('./public/avatars/') diff --git a/scripts/cleanup-translations.ts b/scripts/cleanup-translations.ts index cd95caef..d3d518cf 100644 --- a/scripts/cleanup-translations.ts +++ b/scripts/cleanup-translations.ts @@ -1,7 +1,7 @@ import { Buffer } from 'node:buffer' import { readFile, writeFile } from 'node:fs/promises' -import { flatten, unflatten } from 'flat' import { createResolver } from '@nuxt/kit' +import { flatten, unflatten } from 'flat' import { currentLocales } from '../config/i18n' const resolver = createResolver(import.meta.url) diff --git a/scripts/generate-pwa-icons.ts b/scripts/generate-pwa-icons.ts index e9e4cb40..697e4373 100644 --- a/scripts/generate-pwa-icons.ts +++ b/scripts/generate-pwa-icons.ts @@ -1,7 +1,7 @@ +import type { PngOptions, ResizeOptions } from 'sharp' import { rm, writeFile } from 'node:fs/promises' import process from 'node:process' import { resolve } from 'pathe' -import type { PngOptions, ResizeOptions } from 'sharp' import sharp from 'sharp' import ico from 'sharp-ico' @@ -103,7 +103,8 @@ async function generateTransparentIcons(icons: ResolvedIcons, svgLogo: string, f Math.round(size * (1 - padding)), Math.round(size * (1 - padding)), resizeOptions, - ).toBuffer(), + ) + .toBuffer(), }]).toFile(filePath) await optimizePng(filePath, icons.png) })) @@ -126,7 +127,8 @@ async function generateMaskableIcons(type: IconType, icons: ResolvedIcons, svgLo Math.round(size * (1 - padding)), Math.round(size * (1 - padding)), resizeOptions, - ).toBuffer(), + ) + .toBuffer(), }]).toFile(filePath) await optimizePng(filePath, icons.png) })) diff --git a/scripts/prepare-translation-status.ts b/scripts/prepare-translation-status.ts index f5c614e6..2942dede 100644 --- a/scripts/prepare-translation-status.ts +++ b/scripts/prepare-translation-status.ts @@ -1,10 +1,10 @@ +import type { LocaleEntry } from '../docs/types' import { Buffer } from 'node:buffer' import { readFile, writeFile } from 'node:fs/promises' -import { flatten } from 'flat' import { createResolver } from '@nuxt/kit' -import { countryLocaleVariants, currentLocales } from '../config/i18n' -import type { LocaleEntry } from '../docs/types' +import { flatten } from 'flat' import type { ElkTranslationStatus } from '~/types/translation-status' +import { countryLocaleVariants, currentLocales } from '../config/i18n' export const localeData: [code: string, file: string[], title: string][] = currentLocales.map((l: any) => [l.code, l.files ? l.files : [l.file!], l.name ?? l.code]) diff --git a/server/cache-driver.ts b/server/cache-driver.ts index 4881ed9d..8bc14af2 100644 --- a/server/cache-driver.ts +++ b/server/cache-driver.ts @@ -1,6 +1,6 @@ import type { Driver } from 'unstorage' -import memory from 'unstorage/drivers/memory' import { defineDriver } from 'unstorage' +import memory from 'unstorage/drivers/memory' export interface CacheDriverOptions { driver: Driver diff --git a/server/utils/shared.ts b/server/utils/shared.ts index d134f68f..7fa79c5e 100644 --- a/server/utils/shared.ts +++ b/server/utils/shared.ts @@ -1,9 +1,9 @@ +import { $fetch } from 'ofetch' +import kv from 'unstorage/drivers/cloudflare-kv-http' import fs from 'unstorage/drivers/fs' import memory from 'unstorage/drivers/memory' -import kv from 'unstorage/drivers/cloudflare-kv-http' -import vercelKVDriver from 'unstorage/drivers/vercel-kv' -import { $fetch } from 'ofetch' +import vercelKVDriver from 'unstorage/drivers/vercel-kv' import cached from '../cache-driver' @@ -13,8 +13,8 @@ import { env } from '#build-info' // @ts-expect-error virtual import import { driver } from '#storage-config' -import type { AppInfo } from '~/types' import { APP_NAME } from '~/constants' +import type { AppInfo } from '~/types' const storage = useStorage<AppInfo>() diff --git a/service-worker/elk-sw.ts b/service-worker/elk-sw.ts index d6a516b1..9026cb6f 100644 --- a/service-worker/elk-sw.ts +++ b/service-worker/elk-sw.ts @@ -1,13 +1,13 @@ /// <reference lib="WebWorker" /> /// <reference types="vite/client" /> +import { CacheableResponsePlugin } from 'workbox-cacheable-response' +import { ExpirationPlugin } from 'workbox-expiration' import { cleanupOutdatedCaches, createHandlerBoundToURL, precacheAndRoute } from 'workbox-precaching' import { NavigationRoute, registerRoute } from 'workbox-routing' -import { CacheableResponsePlugin } from 'workbox-cacheable-response' import { NetworkFirst, StaleWhileRevalidate } from 'workbox-strategies' -import { ExpirationPlugin } from 'workbox-expiration' -import { onNotificationClick, onPush } from './web-push-notifications' import { onShareTarget } from './share-target' +import { onNotificationClick, onPush } from './web-push-notifications' declare const self: ServiceWorkerGlobalScope diff --git a/service-worker/notification.ts b/service-worker/notification.ts index 8d511006..fa89061c 100644 --- a/service-worker/notification.ts +++ b/service-worker/notification.ts @@ -1,5 +1,5 @@ -import { closeDatabases, get } from '../utils/elk-idb' import type { MastoNotification, NotificationInfo, PushPayload, UserLogin } from './types' +import { closeDatabases, get } from '../utils/elk-idb' export async function findNotification({ access_token, notification_id/* , notification_type */ }: PushPayload): Promise<NotificationInfo | undefined> { const users = await get<UserLogin[]>('elk-users') diff --git a/service-worker/web-push-notifications.ts b/service-worker/web-push-notifications.ts index 7a5bc4ee..f963ea02 100644 --- a/service-worker/web-push-notifications.ts +++ b/service-worker/web-push-notifications.ts @@ -1,12 +1,12 @@ /// <reference lib="WebWorker" /> /// <reference types="vite/client" /> +import type { PushPayload } from '~/service-worker/types' import { ELK_PAGE_LIFECYCLE_FROZEN } from '../constants' import { closeDatabaseConnections, createNotificationOptions, findNotification, } from './notification' -import type { PushPayload } from '~/service-worker/types' declare const self: ServiceWorkerGlobalScope diff --git a/tests/nuxt/content-rich.test.ts b/tests/nuxt/content-rich.test.ts index 22f20d1e..e1eb2d9b 100644 --- a/tests/nuxt/content-rich.test.ts +++ b/tests/nuxt/content-rich.test.ts @@ -1,10 +1,15 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest' -import { renderToString } from 'vue/server-renderer' -import { format } from 'prettier' +/* eslint perfectionist/sort-imports: "off" */ +// to prevent error when importing '@nuxt/test-utils/runtime' before 'vitest' +// ref. #2984 chore(deps): update dependency @antfu/eslint-config to v3 by renovate[bot] +// https://github.com/elk-zone/elk/pull/2984 + import type { mastodon } from 'masto' +import { format } from 'prettier' +import { beforeEach, describe, expect, it, vi } from 'vitest' import { mockComponent } from '@nuxt/test-utils/runtime' -import { contentToVNode } from '~/composables/content-render' +import { renderToString } from 'vue/server-renderer' import type { ContentParseOptions } from '~/composables/content-parse' +import { contentToVNode } from '~/composables/content-render' beforeEach(() => { publicServer.value = useRuntimeConfig().public.defaultServer diff --git a/tests/nuxt/html-parse.test.ts b/tests/nuxt/html-parse.test.ts index 4ef691b4..9552c0e6 100644 --- a/tests/nuxt/html-parse.test.ts +++ b/tests/nuxt/html-parse.test.ts @@ -1,6 +1,6 @@ -import { describe, expect, it } from 'vitest' import { format } from 'prettier' import { render as renderTree } from 'ultrahtml' +import { describe, expect, it } from 'vitest' import type { ContentParseOptions } from '~/composables/content-parse' describe('html-parse', () => { diff --git a/types/index.ts b/types/index.ts index e429a59d..4faa023f 100644 --- a/types/index.ts +++ b/types/index.ts @@ -1,6 +1,6 @@ +import type { RouteLocationRaw } from '#vue-router' import type { mastodon } from 'masto' import type { MarkNonNullable, Mutable } from './utils' -import type { RouteLocationRaw } from '#vue-router' export interface AppInfo { id: string diff --git a/unocss.config.ts b/unocss.config.ts index e4085039..7e916649 100644 --- a/unocss.config.ts +++ b/unocss.config.ts @@ -1,5 +1,7 @@ -import process from 'node:process' import type { Variant } from 'unocss' +import process from 'node:process' +import { variantParentMatcher } from '@unocss/preset-mini/utils' + import { defineConfig, presetAttributify, @@ -11,8 +13,6 @@ import { transformerVariantGroup, } from 'unocss' -import { variantParentMatcher } from '@unocss/preset-mini/utils' - export default defineConfig({ shortcuts: [ { diff --git a/utils/elk-idb.ts b/utils/elk-idb.ts index d7363046..b0d0b956 100644 --- a/utils/elk-idb.ts +++ b/utils/elk-idb.ts @@ -1,10 +1,10 @@ import { - type UseStore, del as delIdb, get as getIdb, promisifyRequest, set as setIdb, update as updateIdb, + type UseStore, } from 'idb-keyval' const databases: IDBOpenDBRequest[] = []