From 8a0efc0ba2b5058388c2e6f19594929e4d6d7377 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 19 Feb 2025 05:10:11 +0800 Subject: [PATCH] chore(deps-dev): bump eslint-plugin-unicorn from 56.0.1 to 57.0.0 (#18392) * chore(deps-dev): bump eslint-plugin-unicorn from 56.0.1 to 57.0.0 Bumps [eslint-plugin-unicorn](https://github.com/sindresorhus/eslint-plugin-unicorn) from 56.0.1 to 57.0.0. - [Release notes](https://github.com/sindresorhus/eslint-plugin-unicorn/releases) - [Commits](https://github.com/sindresorhus/eslint-plugin-unicorn/compare/v56.0.1...v57.0.0) --- updated-dependencies: - dependency-name: eslint-plugin-unicorn dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * chore: remove unicorn plugin * style: fix eslint issues * style: fix more issues * chore: flat config unicorn --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Tony --- eslint.config.mjs | 34 +-- lib/routes/12306/zxdt.ts | 48 ++-- lib/routes/163/news/rank.ts | 2 +- lib/routes/6park/index.ts | 2 +- lib/routes/anthropic/news.ts | 1 + lib/routes/appstore/price.ts | 1 - lib/routes/aqara/post.ts | 2 +- lib/routes/aqicn/aqi.ts | 1 + lib/routes/bilibili/danmaku.ts | 2 +- lib/routes/bnu/fe.ts | 1 + lib/routes/bnu/jwb.ts | 1 + lib/routes/cnblogs/common.ts | 1 - lib/routes/cngal/weekly.ts | 3 +- lib/routes/cuilingmag/index.ts | 1 - lib/routes/dealstreetasia/home.ts | 2 +- lib/routes/dedao/index.ts | 6 +- lib/routes/deepseek/news.ts | 4 +- lib/routes/douyin/types.ts | 6 +- lib/routes/e-hentai/index.ts | 2 +- lib/routes/epicgames/index.ts | 4 +- lib/routes/espn/news.ts | 2 +- lib/routes/fanbox/types.ts | 4 - lib/routes/fantia/search.ts | 2 +- lib/routes/follow/profile.ts | 2 +- lib/routes/followin/news.ts | 2 +- lib/routes/foresightnews/util.ts | 2 +- lib/routes/gameapps/index.ts | 2 +- lib/routes/gov/beijing/bphc/index.ts | 2 +- lib/routes/gov/ccdi/index.ts | 2 +- lib/routes/gov/general/general.ts | 2 +- lib/routes/hafu/utils.ts | 6 +- lib/routes/hellogithub/report.ts | 2 +- lib/routes/hostmonit/cloudflareyes.ts | 2 +- lib/routes/hypergryph/arknights/announce.ts | 2 +- lib/routes/japanpost/utils.ts | 4 +- lib/routes/kemono/index.ts | 2 +- lib/routes/loongarch/post.ts | 1 + lib/routes/meteor/index.ts | 2 +- lib/routes/mittrchina/index.ts | 6 +- lib/routes/oilchem/index.ts | 2 +- lib/routes/oncc/money18.ts | 2 +- lib/routes/patreon/types.ts | 20 +- lib/routes/pixiv/api/get-ranking.ts | 2 +- lib/routes/pixiv/novel-api/content/utils.ts | 1 + lib/routes/questmobile/report.ts | 2 +- lib/routes/seekingalpha/index.ts | 2 +- lib/routes/sketis/isabelle-dev/blog/index.ts | 2 +- lib/routes/telegram/channel.ts | 2 +- lib/routes/telegram/tglib/client.ts | 36 +-- lib/routes/tesla/cx.ts | 2 +- lib/routes/test/index.ts | 2 +- lib/routes/toutiao/a-bogus.ts | 30 +-- lib/routes/twitter/utils.ts | 12 +- lib/routes/whu/swrh.ts | 2 +- lib/routes/xiaoheihe/util.ts | 2 +- lib/routes/xiaoyuzhou/pickup.ts | 2 +- lib/routes/zhihu/timeline.ts | 3 +- lib/utils/timezone.ts | 2 +- package.json | 2 +- pnpm-lock.yaml | 253 +++++++------------ 60 files changed, 222 insertions(+), 334 deletions(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index 1e30261a9d67eb..9ac9359745c37c 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -2,9 +2,10 @@ import prettier from 'eslint-plugin-prettier'; import stylistic from '@stylistic/eslint-plugin'; import unicorn from 'eslint-plugin-unicorn'; import typescriptEslint from '@typescript-eslint/eslint-plugin'; +import n from 'eslint-plugin-n'; import globals from 'globals'; import tsParser from '@typescript-eslint/parser'; -import parser from 'yaml-eslint-parser'; +import yamlParser from 'yaml-eslint-parser'; import path from 'node:path'; import { fileURLToPath } from 'node:url'; import js from '@eslint/js'; @@ -15,7 +16,6 @@ const __dirname = path.dirname(__filename); const compat = new FlatCompat({ baseDirectory: __dirname, recommendedConfig: js.configs.recommended, - allConfig: js.configs.all }); export default [{ @@ -32,17 +32,16 @@ export default [{ ], }, ...compat.extends( 'eslint:recommended', - 'plugin:n/recommended', 'plugin:prettier/recommended', 'plugin:yml/recommended', 'plugin:@typescript-eslint/recommended', ), - unicorn.configs.recommended, +n.configs['flat/recommended-script'], +unicorn.configs.recommended, { plugins: { prettier, '@stylistic': stylistic, - unicorn, '@typescript-eslint': typescriptEslint, }, @@ -71,9 +70,9 @@ export default [{ // suggestions 'arrow-body-style': 'error', 'block-scoped-var': 'error', - curly: 'error', + 'curly': 'error', 'dot-notation': 'error', - eqeqeq: 'error', + 'eqeqeq': 'error', 'default-case': ['warn', { commentPattern: '^no default$', @@ -151,6 +150,7 @@ export default [{ 'unicorn/no-hex-escape': 'warn', 'unicorn/no-null': 'off', 'unicorn/no-object-as-default-parameter': 'warn', + 'unicorn/no-nested-ternary': 'warn', 'unicorn/no-process-exit': 'off', 'unicorn/no-useless-switch-case': 'off', @@ -261,17 +261,17 @@ export default [{ files: ['.puppeteerrc.cjs', 'api/vercel.ts'], rules: { '@typescript-eslint/no-require-imports': 'off', - } + }, }, { - files: ['**/*.yaml', '**/*.yml'], + files: ['**/*.yaml', '**/*.yml'], - languageOptions: { - parser, - }, + languageOptions: { + parser: yamlParser, + }, - rules: { - 'lines-around-comment': ['error', { - beforeBlockComment: false, - }], - }, + rules: { + 'lines-around-comment': ['error', { + beforeBlockComment: false, + }], + }, }]; diff --git a/lib/routes/12306/zxdt.ts b/lib/routes/12306/zxdt.ts index c2e5f199db9192..69b6696bba0974 100644 --- a/lib/routes/12306/zxdt.ts +++ b/lib/routes/12306/zxdt.ts @@ -2,7 +2,7 @@ import { Route } from '@/types'; import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; -import * as url from 'node:url'; +import { parseDate } from '@/utils/parse-date'; export const route: Route = { path: '/zxdt/:id?', @@ -40,41 +40,23 @@ async function handler(ctx) { const name = $('div.nav_center > a:nth-child(4)').text(); const list = $('#newList > ul > li') - .map(function () { - const info = { - title: $(this).find('a').text(), - link: $(this).find('a').attr('href'), - date: $(this).find('span').text().slice(1, -1), - }; - return info; - }) - .get(); + .toArray() + .map((item) => ({ + title: $(item).find('a').text(), + link: new URL($(item).find('a').attr('href'), link).href, + pubDate: parseDate($(item).find('span').text().slice(1, -1)), + })); const out = await Promise.all( - list.map(async (info) => { - const title = info.title; - const date = info.date; - const itemUrl = url.resolve(link, info.link); + list.map((info) => + cache.tryGet(info.link, async () => { + const response = await got.get(info.link); + const $ = load(response.data); + info.description = $('.article-box').html() || $('.content_text').html() || '文章已被删除'; - const cacheIn = await cache.get(itemUrl); - if (cacheIn) { - return JSON.parse(cacheIn); - } - - const response = await got.get(itemUrl); - const $ = load(response.data); - let description = $('.article-box').html(); - description = description ? description.replaceAll('src="', `src="${url.resolve(itemUrl, '.')}`).trim() : $('.content_text').html() || '文章已被删除'; - - const single = { - title, - link: itemUrl, - description, - pubDate: new Date(date).toUTCString(), - }; - cache.set(itemUrl, JSON.stringify(single)); - return single; - }) + return info; + }) + ) ); return { diff --git a/lib/routes/163/news/rank.ts b/lib/routes/163/news/rank.ts index e6210c9ec12690..7c4c95f26b471e 100644 --- a/lib/routes/163/news/rank.ts +++ b/lib/routes/163/news/rank.ts @@ -135,7 +135,7 @@ async function handler(ctx) { const $ = load(iconv.decode(response.data, 'gbk')); const list = $('div.tabContents') - .eq(timeRange[time].index + (category === 'whole' ? (type === 'click' ? -1 : 2) : type === 'click' ? 0 : 2)) + .eq(timeRange[time].index + (category === 'whole' ? (type === 'click' ? -1 : 2) : (type === 'click' ? 0 : 2))) .find('table tbody tr td a') .toArray() .map((item) => { diff --git a/lib/routes/6park/index.ts b/lib/routes/6park/index.ts index f4e2ee2170b198..c71e220d52076c 100644 --- a/lib/routes/6park/index.ts +++ b/lib/routes/6park/index.ts @@ -32,7 +32,7 @@ async function handler(ctx) { const rootUrl = 'https://club.6parkbbs.com'; const indexUrl = `${rootUrl}/${id}/index.php`; - const currentUrl = `${indexUrl}${type === '' || keyword === '' ? '' : type === 'gold' ? '?app=forum&act=gold' : `?action=search&act=threadsearch&app=forum&${type}=${keyword}&submit=${type === 'type' ? '查询' : '栏目搜索'}`}`; + const currentUrl = `${indexUrl}${type === '' || keyword === '' ? '' : (type === 'gold' ? '?app=forum&act=gold' : `?action=search&act=threadsearch&app=forum&${type}=${keyword}&submit=${type === 'type' ? '查询' : '栏目搜索'}`)}`; const response = await got({ method: 'get', diff --git a/lib/routes/anthropic/news.ts b/lib/routes/anthropic/news.ts index 3f95758a7bed51..a39e9458585c8d 100644 --- a/lib/routes/anthropic/news.ts +++ b/lib/routes/anthropic/news.ts @@ -1,6 +1,7 @@ import got from '@/utils/got'; import { load } from 'cheerio'; import cache from '@/utils/cache'; +import { Route } from '@/types'; export const route: Route = { path: '/news', diff --git a/lib/routes/appstore/price.ts b/lib/routes/appstore/price.ts index f18fc5be06a487..996a274315deb7 100644 --- a/lib/routes/appstore/price.ts +++ b/lib/routes/appstore/price.ts @@ -50,7 +50,6 @@ async function handler(ctx) { title: unsupported, item: [{ title: unsupported }], }; - return; } let result = res.data.results.apps; diff --git a/lib/routes/aqara/post.ts b/lib/routes/aqara/post.ts index 8154f97399c2ed..6a803e6803c65c 100644 --- a/lib/routes/aqara/post.ts +++ b/lib/routes/aqara/post.ts @@ -31,7 +31,7 @@ async function handler(ctx) { if (filterMatches) { const filterRegion = filterMatches[1]; - const filterType = filterMatches[2] === 'tag' ? 'tags' : filterMatches[2] === 'category' ? 'categories' : filterMatches[2]; + const filterType = filterMatches[2] === 'tag' ? 'tags' : (filterMatches[2] === 'category' ? 'categories' : filterMatches[2]); const filterKeyword = decodeURI(filterMatches[3].split('/').pop()); const filterApiUrl = new URL(`${filterRegion}/${apiSlug}/${filterType}?search=${filterKeyword}`, rootUrl).href; diff --git a/lib/routes/aqicn/aqi.ts b/lib/routes/aqicn/aqi.ts index 62a5e04040596b..f5f94a129ed8f9 100644 --- a/lib/routes/aqicn/aqi.ts +++ b/lib/routes/aqicn/aqi.ts @@ -1,5 +1,6 @@ import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; +import { Route } from '@/types'; export const route: Route = { path: '/:city/:pollution?', diff --git a/lib/routes/bilibili/danmaku.ts b/lib/routes/bilibili/danmaku.ts index 997e54dafa2aa0..b89be0d48f7fc4 100644 --- a/lib/routes/bilibili/danmaku.ts +++ b/lib/routes/bilibili/danmaku.ts @@ -54,7 +54,7 @@ async function handler(ctx) { let danmakuText = danmakuResponse.body; - danmakuText = await ((danmakuText[0] & 0x0f) === 0x08 ? zlib.inflateSync(danmakuText) : zlib.inflateRawSync(danmakuText)); + danmakuText = await ((danmakuText[0] & 0x0F) === 0x08 ? zlib.inflateSync(danmakuText) : zlib.inflateRawSync(danmakuText)); let danmakuList = []; const $ = load(danmakuText, { xmlMode: true }); diff --git a/lib/routes/bnu/fe.ts b/lib/routes/bnu/fe.ts index af57c96eea3ab2..9f405637c83b7e 100644 --- a/lib/routes/bnu/fe.ts +++ b/lib/routes/bnu/fe.ts @@ -2,6 +2,7 @@ import got from '@/utils/got'; import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; import cache from '@/utils/cache'; +import { Route } from '@/types'; export const route: Route = { path: '/fe/:category', diff --git a/lib/routes/bnu/jwb.ts b/lib/routes/bnu/jwb.ts index 5d190eeacf16a0..0f3fc9465ac038 100644 --- a/lib/routes/bnu/jwb.ts +++ b/lib/routes/bnu/jwb.ts @@ -2,6 +2,7 @@ import got from '@/utils/got'; import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; import cache from '@/utils/cache'; +import { Route } from '@/types'; export const route: Route = { path: '/jwb', diff --git a/lib/routes/cnblogs/common.ts b/lib/routes/cnblogs/common.ts index 9518252198a070..456c8ad6678989 100644 --- a/lib/routes/cnblogs/common.ts +++ b/lib/routes/cnblogs/common.ts @@ -28,7 +28,6 @@ export const route: Route = { handler, url: 'www.cnblogs.com/pick', description: `在博客园主页的分类出可查看所有类型。例如,go 的分类地址为: \`https://www.cnblogs.com/cate/go/\`, 则: [\`/cnblogs/cate/go\`](https://rsshub.app/cnblogs/cate/go)`, - url: 'www.cnblogs.com/aggsite/headline', }; async function handler(ctx) { diff --git a/lib/routes/cngal/weekly.ts b/lib/routes/cngal/weekly.ts index 03f351af45bbba..487e7e8010b386 100644 --- a/lib/routes/cngal/weekly.ts +++ b/lib/routes/cngal/weekly.ts @@ -32,7 +32,7 @@ export const route: Route = { url: 'www.cngal.org/', }; -async function handler(ctx) { +async function handler() { const response = await got('https://www.cngal.org/api/news/GetWeeklyNewsOverview'); return { @@ -45,5 +45,4 @@ async function handler(ctx) { link: `https://www.cngal.org/articles/index/${item.id}`, })), }; - ctx.state.json = response.data; } diff --git a/lib/routes/cuilingmag/index.ts b/lib/routes/cuilingmag/index.ts index 301ad6bb598186..8434b235852cf0 100644 --- a/lib/routes/cuilingmag/index.ts +++ b/lib/routes/cuilingmag/index.ts @@ -153,7 +153,6 @@ export const route: Route = { | [数字治理](https://www.cuilingmag.com/category/digital_governance) | [digital_governance](https://rsshub.app/cuilingmag/digital_governance) | | [Noema精选](https://www.cuilingmag.com/category/selected_noema) | [selected_noema](https://rsshub.app/cuilingmag/selected_noema) | `, - categories: ['new-media'], features: { requireConfig: false, diff --git a/lib/routes/dealstreetasia/home.ts b/lib/routes/dealstreetasia/home.ts index e1e740c9718ab5..f48b56eca0306b 100644 --- a/lib/routes/dealstreetasia/home.ts +++ b/lib/routes/dealstreetasia/home.ts @@ -58,7 +58,7 @@ async function fetchPage() { title: item.post_title || item.title || 'No Title', link: item.post_url || item.link || '', description: item.post_excerpt || item.excerpt || '', - pubDate: item.post_date ? new Date(item.post_date).toUTCString() : item.date ? new Date(item.date).toUTCString() : '', + pubDate: item.post_date ? new Date(item.post_date).toUTCString() : (item.date ? new Date(item.date).toUTCString() : ''), category: item.category_link ? item.category_link.replaceAll(/(<([^>]+)>)/gi, '') : '', // Clean HTML if category_link exists image: item.image_url ? item.image_url.replace(/\?.*$/, '') : '', // Remove query parameters if image_url exists })); diff --git a/lib/routes/dedao/index.ts b/lib/routes/dedao/index.ts index 288c98077be568..f2c573ee75a48e 100644 --- a/lib/routes/dedao/index.ts +++ b/lib/routes/dedao/index.ts @@ -29,10 +29,10 @@ async function handler(ctx) { const data = JSON.parse(response.data.match(/window.__INITIAL_STATE__= (.*);<\/script>/)[1]); - let items = (category === 'news' ? data.news : category === 'figure' ? data.figure : data.videoList).map((item) => ({ + let items = (category === 'news' ? data.news : (category === 'figure' ? data.figure : data.videoList)).map((item) => ({ title: item.title, pubDate: parseDate(item.online_time), - link: `${rootUrl}/${category === 'news' ? 'article/' : category === 'figure' ? 'people/' : ''}${item.online_time.split('T')[0].split('-').join('')}/${item.token}`, + link: `${rootUrl}/${category === 'news' ? 'article/' : (category === 'figure' ? 'people/' : '')}${item.online_time.split('T')[0].split('-').join('')}/${item.token}`, })); items = await Promise.all( @@ -53,7 +53,7 @@ async function handler(ctx) { ); return { - title: `得到${category === 'video' ? '' : '大事件'} - ${category === 'news' ? '新闻' : category === 'figure' ? '人物故事' : '视频'}`, + title: `得到${category === 'video' ? '' : '大事件'} - ${category === 'news' ? '新闻' : (category === 'figure' ? '人物故事' : '视频')}`, link: rootUrl, item: items, description: data.description, diff --git a/lib/routes/deepseek/news.ts b/lib/routes/deepseek/news.ts index 878fb96d5da97b..ebfc9a63ab7a7b 100644 --- a/lib/routes/deepseek/news.ts +++ b/lib/routes/deepseek/news.ts @@ -1,6 +1,6 @@ import { Route, Data, DataItem } from '@/types'; import ofetch from '@/utils/ofetch'; -import { load } from 'cheerio'; +import * as cheerio from 'cheerio'; import cache from '@/utils/cache'; const ROOT_URL = 'https://api-docs.deepseek.com/zh-cn'; @@ -12,7 +12,7 @@ const ARTICLE_TITLE_SELECTOR = ARTICLE_CONTENT_SELECTOR + ' > h1'; // 获取消息列表 / get article list const fetchPageContent = async (url: string) => { const response = await ofetch(url); - return load(response); + return cheerio.load(response); }; // 提取正文内容 / extract article content diff --git a/lib/routes/douyin/types.ts b/lib/routes/douyin/types.ts index 106e0bfe2256dd..645c1b92097f4d 100644 --- a/lib/routes/douyin/types.ts +++ b/lib/routes/douyin/types.ts @@ -14,6 +14,7 @@ interface ShareInfo { share_title_myself: string; share_title_other: string; share_desc_info: string; + share_link_desc: string; } interface Author { @@ -422,11 +423,6 @@ interface TextExtra { search_query_id: string; } -interface ShareInfo { - share_url: string; - share_link_desc: string; -} - interface RiskInfos { vote: boolean; warn: boolean; diff --git a/lib/routes/e-hentai/index.ts b/lib/routes/e-hentai/index.ts index c85075a22eef2a..55a1291bf6cf32 100644 --- a/lib/routes/e-hentai/index.ts +++ b/lib/routes/e-hentai/index.ts @@ -35,7 +35,7 @@ async function handler(ctx) { $('.itd').parent().remove(); let items = $('table.gltc tbody tr') - .slice(1, ctx.req.query('limit') ? Number.parseInt(ctx.req.query('limit')) + 1 : needImages ? 16 : 26) + .slice(1, ctx.req.query('limit') ? Number.parseInt(ctx.req.query('limit')) + 1 : (needImages ? 16 : 26)) .toArray() .map((item) => { item = $(item); diff --git a/lib/routes/epicgames/index.ts b/lib/routes/epicgames/index.ts index 182b6765f5ccfa..f2807f604c3c4f 100644 --- a/lib/routes/epicgames/index.ts +++ b/lib/routes/epicgames/index.ts @@ -80,9 +80,9 @@ async function handler(ctx) { let linkSlug = item.catalogNs.mappings && item.catalogNs.mappings.length > 0 ? item.catalogNs.mappings[0].pageSlug - : item.offerMappings && item.offerMappings.length > 0 + : (item.offerMappings && item.offerMappings.length > 0 ? item.offerMappings[0].pageSlug - : (item.productSlug ?? item.urlSlug); + : (item.productSlug ?? item.urlSlug)); if (item.offerType === 'ADD_ON') { linkSlug = item.offerMappings[0].pageSlug; } diff --git a/lib/routes/espn/news.ts b/lib/routes/espn/news.ts index 0187cd06c37418..0dc8d31db16180 100644 --- a/lib/routes/espn/news.ts +++ b/lib/routes/espn/news.ts @@ -72,7 +72,7 @@ export const route: Route = { author: itemDetail.byline, pubDate: item.date, // for videos and shortstops, no need to extract full text below - description: itemType === 'Media' ? renderMedia(itemDetail.video[0]) : itemType === 'Shortstop' ? itemDetail.headline : '', + description: itemType === 'Media' ? renderMedia(itemDetail.video[0]) : (itemType === 'Shortstop' ? itemDetail.headline : ''), }; }); diff --git a/lib/routes/fanbox/types.ts b/lib/routes/fanbox/types.ts index a4a54785f8a4ce..027a9e1c3337e5 100644 --- a/lib/routes/fanbox/types.ts +++ b/lib/routes/fanbox/types.ts @@ -196,10 +196,6 @@ export interface TextPost extends BasicPost { }; } -export interface PostDetailResponse { - body: PostDetail; -} - interface TextBlock { type: 'p'; text: string; diff --git a/lib/routes/fantia/search.ts b/lib/routes/fantia/search.ts index 70f49e0bc407b8..b6c2d2ab906ec1 100644 --- a/lib/routes/fantia/search.ts +++ b/lib/routes/fantia/search.ts @@ -151,7 +151,7 @@ async function handler(ctx) { const rootUrl = 'https://fantia.jp'; const apiUrl = `${rootUrl}/api/v1/search/${type}?keyword=${keyword}&peroid=${period}&brand_type=0&category=${caty === 'all' ? '' : caty}&order=${order}${ - rating === 'all' ? '' : rating === 'general' ? '&rating=general' : '&adult=1' + rating === 'all' ? '' : (rating === 'general' ? '&rating=general' : '&adult=1') }&per_page=30`; const response = await got({ method: 'get', diff --git a/lib/routes/follow/profile.ts b/lib/routes/follow/profile.ts index c0e422878e24a2..f0c0c3c665bd28 100644 --- a/lib/routes/follow/profile.ts +++ b/lib/routes/follow/profile.ts @@ -36,7 +36,7 @@ async function handler(ctx: Context): Promise { const handleOrId = ctx.req.param('uid'); const host = 'https://api.follow.is'; - const handle = isBizId(handleOrId || '') ? handleOrId : handleOrId.startsWith('@') ? handleOrId.slice(1) : handleOrId; + const handle = isBizId(handleOrId || '') ? handleOrId : (handleOrId.startsWith('@') ? handleOrId.slice(1) : handleOrId); const searchParams = new URLSearchParams({ handle }); diff --git a/lib/routes/followin/news.ts b/lib/routes/followin/news.ts index b2905eedf9a29d..bce9af8c2e8e77 100644 --- a/lib/routes/followin/news.ts +++ b/lib/routes/followin/news.ts @@ -49,7 +49,7 @@ async function handler(ctx) { const items = await Promise.all(list.map((item) => parseItem(item, cache.tryGet))); return { - title: `${lang === 'en' ? 'News' : lang === 'vi' ? 'Bản tin' : '快讯'} - Followin`, + title: `${lang === 'en' ? 'News' : (lang === 'vi' ? 'Bản tin' : '快讯')} - Followin`, link: `${baseUrl}/${lang}/news`, image: favicon, language: lang, diff --git a/lib/routes/foresightnews/util.ts b/lib/routes/foresightnews/util.ts index f26584013ca975..4f22349be14c7f 100644 --- a/lib/routes/foresightnews/util.ts +++ b/lib/routes/foresightnews/util.ts @@ -50,7 +50,7 @@ const processItems = async (apiUrl, limit, ...searchParams) => { let items = JSON.parse(String(zlib.inflateSync(Buffer.from(response.data?.list ?? response.data, 'base64')))); items = (items?.list ?? items).slice(0, limit).map((item) => { - const sourceType = item.source_type ?? (item.source_link ? (item.column?.title ? 'article' : 'news') : item.event_type ? 'event' : constants.defaultType); + const sourceType = item.source_type ?? (item.source_link ? (item.column?.title ? 'article' : 'news') : (item.event_type ? 'event' : constants.defaultType)); item = item.source_type ? item[item.source_type] : item; diff --git a/lib/routes/gameapps/index.ts b/lib/routes/gameapps/index.ts index e8a2522e9ecaa2..d928123107f75d 100644 --- a/lib/routes/gameapps/index.ts +++ b/lib/routes/gameapps/index.ts @@ -59,7 +59,7 @@ async function handler() { if (nextPages.length) { const pages = await Promise.all( nextPages.map(async (url) => { - const { data: response } = await got(url, { + const response = await ofetch(url, { headers: { referer: item.link, }, diff --git a/lib/routes/gov/beijing/bphc/index.ts b/lib/routes/gov/beijing/bphc/index.ts index ca1553cd084e56..dd0181c0621eee 100644 --- a/lib/routes/gov/beijing/bphc/index.ts +++ b/lib/routes/gov/beijing/bphc/index.ts @@ -32,7 +32,7 @@ async function handler(ctx) { const defaultPath = 'announcement'; const pathname = getSubPath(ctx).replaceAll(/(^\/beijing\/bphc|\/$)/g, ''); - const key = pathname === '' ? defaultPath : pathname.endsWith('/') ? pathname.slice(0, -1) : pathname; + const key = pathname === '' ? defaultPath : (pathname.endsWith('/') ? pathname.slice(0, -1) : pathname); const obj = mapping[key]; const currentUrl = `${rootUrl}${obj.list}`; diff --git a/lib/routes/gov/ccdi/index.ts b/lib/routes/gov/ccdi/index.ts index 7f870aa69decc9..3046e4c846058d 100644 --- a/lib/routes/gov/ccdi/index.ts +++ b/lib/routes/gov/ccdi/index.ts @@ -13,7 +13,7 @@ async function handler(ctx) { const defaultPath = '/yaowenn/'; let pathname = getSubPath(ctx).replaceAll(/(^\/ccdi|\/$)/g, ''); - pathname = pathname === '' ? defaultPath : pathname.endsWith('/') ? pathname : pathname + '/'; + pathname = pathname === '' ? defaultPath : (pathname.endsWith('/') ? pathname : pathname + '/'); const currentUrl = `${rootUrl}${pathname}`; const { list, title } = await parseNewsList(currentUrl, '.list_news_dl2 li', ctx); diff --git a/lib/routes/gov/general/general.ts b/lib/routes/gov/general/general.ts index 335563ed7886ea..8df95a3f36b924 100644 --- a/lib/routes/gov/general/general.ts +++ b/lib/routes/gov/general/general.ts @@ -104,7 +104,7 @@ const gdgov = async (info, ctx) => { path.splice(0, 2 + pathstartat); let pathname = path.join('/'); - pathname = pathname === '' ? defaultPath : pathname.endsWith('/') ? pathname : pathname + '/'; + pathname = pathname === '' ? defaultPath : (pathname.endsWith('/') ? pathname : pathname + '/'); const currentUrl = `${rootUrl}/${pathname}`; let $ = ''; diff --git a/lib/routes/hafu/utils.ts b/lib/routes/hafu/utils.ts index c8ee1bedd63251..b1521abe3c8370 100644 --- a/lib/routes/hafu/utils.ts +++ b/lib/routes/hafu/utils.ts @@ -101,7 +101,7 @@ async function ggtzParse(ctx, $) { const { articleData, description } = await tryGetFullText(href, link, 'ggtz'); let author = ''; let pubDate = ''; - if (articleData instanceof Function) { + if (typeof articleData === 'function') { const header = articleData('h1').next().text(); const index = header.indexOf('日期'); @@ -148,7 +148,7 @@ async function jwcParse(ctx, $) { const { articleData, description } = await tryGetFullText(href, link, 'jwc'); let author = ''; - if (articleData instanceof Function) { + if (typeof articleData === 'function') { author = articleData('span[class=authorstyle259690]').text(); } @@ -184,7 +184,7 @@ async function zsjycParse(ctx, $) { const { articleData, description } = await tryGetFullText(href, link, 'zsjyc'); let pubDate = ''; - if (articleData instanceof Function) { + if (typeof articleData === 'function') { const date = articleData('span[class=timestyle127702]').text(); pubDate = parseDate(date, 'YYYY-MM-DD HH:mm'); } else { diff --git a/lib/routes/hellogithub/report.ts b/lib/routes/hellogithub/report.ts index bf71a6d1faff28..d639de80eed1c1 100644 --- a/lib/routes/hellogithub/report.ts +++ b/lib/routes/hellogithub/report.ts @@ -27,7 +27,7 @@ export const route: Route = { async function handler(ctx) { let type = ctx.req.param('type') ?? 'tiobe'; - type = type === 'webserver' ? 'netcraft' : type === 'db' ? 'db-engines' : type; + type = type === 'webserver' ? 'netcraft' : (type === 'db' ? 'db-engines' : type); const rootUrl = 'https://hellogithub.com'; const currentUrl = `${rootUrl}/report/${type}`; diff --git a/lib/routes/hostmonit/cloudflareyes.ts b/lib/routes/hostmonit/cloudflareyes.ts index df157b67d9f2f5..ff1ce007e0d8dc 100644 --- a/lib/routes/hostmonit/cloudflareyes.ts +++ b/lib/routes/hostmonit/cloudflareyes.ts @@ -64,7 +64,7 @@ async function handler(ctx) { const items = response.info.slice(0, limit).map((item) => { const ip = item.ip; const latency = item.latency === undefined ? undefined : `${item.latency}ms`; - const line = item.line === undefined ? undefined : Object.hasOwn(lines, item.line) ? lines[item.line] : item.line; + const line = item.line === undefined ? undefined : (Object.hasOwn(lines, item.line) ? lines[item.line] : item.line); const loss = item.loss === undefined ? undefined : `${item.loss}%`; const node = item.node; const speed = item.speed === undefined ? undefined : `${item.speed} KB/s`; diff --git a/lib/routes/hypergryph/arknights/announce.ts b/lib/routes/hypergryph/arknights/announce.ts index f034de4353ebdd..c45360cbb2b484 100644 --- a/lib/routes/hypergryph/arknights/announce.ts +++ b/lib/routes/hypergryph/arknights/announce.ts @@ -82,7 +82,7 @@ async function handler(ctx) { ); return { - title: `《明日方舟》${group === 'SYSTEM' ? '系统' : group === 'ACTIVITY' ? '活动' : '全部'}公告`, + title: `《明日方舟》${group === 'SYSTEM' ? '系统' : (group === 'ACTIVITY' ? '活动' : '全部')}公告`, link: 'https://ak.hypergryph.com/', item: items, }; diff --git a/lib/routes/japanpost/utils.ts b/lib/routes/japanpost/utils.ts index 53d883be4a656e..92cdd855bf586d 100644 --- a/lib/routes/japanpost/utils.ts +++ b/lib/routes/japanpost/utils.ts @@ -57,10 +57,10 @@ const utils = { switch (l) { case 'ja': - customFormat = dayjs(t, formatJaDate, true).isValid() ? formatJaDate : dayjs(t, formatJaDateTime, true).isValid() ? formatJaDateTime : undefined; + customFormat = dayjs(t, formatJaDate, true).isValid() ? formatJaDate : (dayjs(t, formatJaDateTime, true).isValid() ? formatJaDateTime : undefined); break; case 'en': - customFormat = dayjs(t, formatEnDate, true).isValid() ? formatEnDate : dayjs(t, formatEnDateTime, true).isValid() ? formatEnDateTime : undefined; + customFormat = dayjs(t, formatEnDate, true).isValid() ? formatEnDate : (dayjs(t, formatEnDateTime, true).isValid() ? formatEnDateTime : undefined); break; } diff --git a/lib/routes/kemono/index.ts b/lib/routes/kemono/index.ts index 7f307de79db62e..2d92eb5a1365f0 100644 --- a/lib/routes/kemono/index.ts +++ b/lib/routes/kemono/index.ts @@ -176,7 +176,7 @@ async function handler(ctx) { return { title, image, - link: isPosts ? `${rootUrl}/posts` : source === 'discord' ? `${rootUrl}/${source}/server/${id}` : `${rootUrl}/${source}/user/${id}`, + link: isPosts ? `${rootUrl}/posts` : (source === 'discord' ? `${rootUrl}/${source}/server/${id}` : `${rootUrl}/${source}/user/${id}`), item: items, }; } diff --git a/lib/routes/loongarch/post.ts b/lib/routes/loongarch/post.ts index ae24849e2e664c..a0e1ad32abceef 100644 --- a/lib/routes/loongarch/post.ts +++ b/lib/routes/loongarch/post.ts @@ -1,5 +1,6 @@ import { parseDate } from '@/utils/parse-date'; import got from '@/utils/got'; +import { Route } from '@/types'; export const route: Route = { path: '/post/:type?', diff --git a/lib/routes/meteor/index.ts b/lib/routes/meteor/index.ts index 5d83fdd402ce31..3c0cc20288c1d9 100644 --- a/lib/routes/meteor/index.ts +++ b/lib/routes/meteor/index.ts @@ -58,7 +58,7 @@ async function handler(ctx) { return { title: `${board === 'all' ? '全部看板' : boardInfo.title} | Meteor 學生社群`, description: board === 'all' ? null : boardInfo.feedDescription, - image: board === 'all' ? null : boardInfo.imgUrl === 'not_set' ? null : boardInfo.imgUrl, + image: board === 'all' ? null : (boardInfo.imgUrl === 'not_set' ? null : boardInfo.imgUrl), link: `${board === 'all' ? `${baseUrl}/board/all` : boardInfo.link}/new`, item: items, }; diff --git a/lib/routes/mittrchina/index.ts b/lib/routes/mittrchina/index.ts index 02633e047372b2..9a39fa15ed6941 100644 --- a/lib/routes/mittrchina/index.ts +++ b/lib/routes/mittrchina/index.ts @@ -82,10 +82,10 @@ async function handler(ctx) { type: article.address.split('.').pop(), }, }) - : type === 'breaking' + : (type === 'breaking' ? article.content - : article.summary, - pubDate: article.start_time ? parseDate(article.start_time, 'X') : article.push_time ? parseDate(article.push_time, 'X') : undefined, + : article.summary), + pubDate: article.start_time ? parseDate(article.start_time, 'X') : (article.push_time ? parseDate(article.push_time, 'X') : undefined), id: article.id, link: `https://www.mittrchina.com/news/detail/${article.id}`, })); diff --git a/lib/routes/oilchem/index.ts b/lib/routes/oilchem/index.ts index f0db0e8333c4ae..8ef61e9668f054 100644 --- a/lib/routes/oilchem/index.ts +++ b/lib/routes/oilchem/index.ts @@ -39,7 +39,7 @@ async function handler(ctx) { const route = category === '' ? '' : `/${category}${subCategory === '' ? '' : `/${subCategory}`}`; const rootUrl = `https://${type === '' ? 'www' : 'list'}.oilchem.net`; - const currentUrl = `${rootUrl}${type === '' ? '/1/' : type === 'list' ? route : `/${routes[`/${type}${route}`]}`}`; + const currentUrl = `${rootUrl}${type === '' ? '/1/' : (type === 'list' ? route : `/${routes[`/${type}${route}`]}`)}`; const response = await got({ method: 'get', diff --git a/lib/routes/oncc/money18.ts b/lib/routes/oncc/money18.ts index 27537bf18f1498..aa0a96c88facb6 100644 --- a/lib/routes/oncc/money18.ts +++ b/lib/routes/oncc/money18.ts @@ -56,7 +56,7 @@ async function handler(ctx) { const toApiUrl = (date) => `${rootUrl}/cnt/utf8/content/${date}/articleList/list_${id}_all.js`; - let apiUrl = id === 'ipo' ? ipoApiUrl : id === 'industry' ? industryApiUrl : toApiUrl(dayjs().format('YYYYMMDD')), + let apiUrl = id === 'ipo' ? ipoApiUrl : (id === 'industry' ? industryApiUrl : toApiUrl(dayjs().format('YYYYMMDD'))), hasArticle = false, items = [], i = 0, diff --git a/lib/routes/patreon/types.ts b/lib/routes/patreon/types.ts index bf87cc6231c315..4ad4ea71b96a08 100644 --- a/lib/routes/patreon/types.ts +++ b/lib/routes/patreon/types.ts @@ -83,6 +83,14 @@ interface Image { thumb_square_large_url?: string; thumb_square_url?: string; thumb_url?: string; + thumbnail: string; + default?: string; + default_blurred?: string; + default_blurred_small?: string; + default_small?: string; + original?: string; + thumbnail_large?: string; + thumbnail_small?: string; } interface PostMetadata { @@ -325,18 +333,6 @@ interface VideoIssues { }; } -interface Image { - thumbnail: string; - url: string; - default?: string; - default_blurred?: string; - default_blurred_small?: string; - default_small?: string; - original?: string; - thumbnail_large?: string; - thumbnail_small?: string; -} - interface Metadata { audio_preview_duration?: number; audio_preview_start_time?: number; diff --git a/lib/routes/pixiv/api/get-ranking.ts b/lib/routes/pixiv/api/get-ranking.ts index 4632763659fa5a..5c169df44ec383 100644 --- a/lib/routes/pixiv/api/get-ranking.ts +++ b/lib/routes/pixiv/api/get-ranking.ts @@ -13,7 +13,7 @@ const allowMode = new Set(['day', 'week', 'month', 'day_male', 'day_female', 'da * @returns {Promise>} */ export default function getRanking(mode, date, token) { - assert(allowMode.has(mode), 'Mode not allow.'); + assert.ok(allowMode.has(mode), 'Mode not allow.'); return got('https://app-api.pixiv.net/v1/illust/ranking', { headers: { ...maskHeader, diff --git a/lib/routes/pixiv/novel-api/content/utils.ts b/lib/routes/pixiv/novel-api/content/utils.ts index 8808cf6882d0f0..cbb0d4e0a35dea 100644 --- a/lib/routes/pixiv/novel-api/content/utils.ts +++ b/lib/routes/pixiv/novel-api/content/utils.ts @@ -1,6 +1,7 @@ import { load } from 'cheerio'; import getIllustDetail from '../../api/get-illust-detail'; import pixivUtils from '../../utils'; +import logger from '@/utils/logger'; export function convertPixivProtocolExtended(caption: string): string { const protocolMap = new Map([ diff --git a/lib/routes/questmobile/report.ts b/lib/routes/questmobile/report.ts index 176d36595b268a..7b5ff1e0eb0ac2 100644 --- a/lib/routes/questmobile/report.ts +++ b/lib/routes/questmobile/report.ts @@ -175,7 +175,7 @@ async function handler(ctx) { const labels = parseTree(labelTree); const industryObj = industry ? industries.find((i) => i.key === industry || i.value === industry) : undefined; - const labelObj = label ? labels.find((i) => i.key === label || i.value === label) : industryObj ? undefined : labels.find((i) => i.key === industry || i.value === industry); + const labelObj = label ? labels.find((i) => i.key === label || i.value === label) : (industryObj ? undefined : labels.find((i) => i.key === industry || i.value === industry)); const industryId = industryObj?.key ?? -1; const labelId = labelObj?.key ?? -1; diff --git a/lib/routes/seekingalpha/index.ts b/lib/routes/seekingalpha/index.ts index 51b11d4efa3640..291d3ef3cd0f67 100644 --- a/lib/routes/seekingalpha/index.ts +++ b/lib/routes/seekingalpha/index.ts @@ -66,7 +66,7 @@ async function handler(ctx) { 'filter[until]': 0, id: symbol.toLowerCase(), include: 'author,primaryTickers,secondaryTickers,sentiments', - 'page[size]': ctx.req.query('limit') ? Number.parseInt(ctx.req.query('limit'), 10) : category === 'news' ? 40 : 20, + 'page[size]': ctx.req.query('limit') ? Number.parseInt(ctx.req.query('limit'), 10) : (category === 'news' ? 40 : 20), 'page[number]': 1, }, }); diff --git a/lib/routes/sketis/isabelle-dev/blog/index.ts b/lib/routes/sketis/isabelle-dev/blog/index.ts index f2c39ec19c14aa..f90577f5586ab6 100644 --- a/lib/routes/sketis/isabelle-dev/blog/index.ts +++ b/lib/routes/sketis/isabelle-dev/blog/index.ts @@ -44,7 +44,7 @@ export const route: Route = { handler: async (ctx) => { const baseUrl = 'https://isabelle-dev.sketis.net'; const { blog } = ctx.req.param(); - const blogName = blog === '1' ? 'News' : blog === '2' ? 'Release' : 'UNKNOWN'; + const blogName = blog === '1' ? 'News' : (blog === '2' ? 'Release' : 'UNKNOWN'); const url = `${baseUrl}/phame/blog/view/${blog}/`; const response = await ofetch(url); const $ = load(response); diff --git a/lib/routes/telegram/channel.ts b/lib/routes/telegram/channel.ts index 9896c12fa46ca4..0ae5be27e45d1f 100644 --- a/lib/routes/telegram/channel.ts +++ b/lib/routes/telegram/channel.ts @@ -519,7 +519,7 @@ async function handler(ctx) { const mapBackground = locationObj.find('.tgme_widget_message_location').css('background-image'); const mapBackgroundUrl = mapBackground && mapBackground.match(/url\('(.*)'\)/); const mapBackgroundUrlSrc = mapBackgroundUrl && mapBackgroundUrl[1]; - const mapImgHtml = mapBackgroundUrlSrc ? `` : showMediaTagAsEmoji ? mediaTagDict[LOCATION][1] : mediaTagDict[LOCATION][0]; + const mapImgHtml = mapBackgroundUrlSrc ? `` : (showMediaTagAsEmoji ? mediaTagDict[LOCATION][1] : mediaTagDict[LOCATION][0]); return locationLink ? `${mapImgHtml}` : mapImgHtml; } else { return ''; diff --git a/lib/routes/telegram/tglib/client.ts b/lib/routes/telegram/tglib/client.ts index 00afc8f539faf7..1336f3b075096a 100644 --- a/lib/routes/telegram/tglib/client.ts +++ b/lib/routes/telegram/tglib/client.ts @@ -53,25 +53,25 @@ function ExpandInlineBytes(bytes) { return []; } const header = Buffer.from([ - 0xff, 0xd8, 0xff, 0xe0, 0x00, 0x10, 0x4a, 0x46, 0x49, 0x46, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0xff, 0xdb, 0x00, 0x43, 0x00, 0x28, 0x1c, 0x1e, 0x23, 0x1e, 0x19, 0x28, 0x23, 0x21, 0x23, 0x2d, 0x2b, - 0x28, 0x30, 0x3c, 0x64, 0x41, 0x3c, 0x37, 0x37, 0x3c, 0x7b, 0x58, 0x5d, 0x49, 0x64, 0x91, 0x80, 0x99, 0x96, 0x8f, 0x80, 0x8c, 0x8a, 0xa0, 0xb4, 0xe6, 0xc3, 0xa0, 0xaa, 0xda, 0xad, 0x8a, 0x8c, 0xc8, 0xff, 0xcb, 0xda, 0xee, - 0xf5, 0xff, 0xff, 0xff, 0x9b, 0xc1, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xe6, 0xfd, 0xff, 0xf8, 0xff, 0xdb, 0x00, 0x43, 0x01, 0x2b, 0x2d, 0x2d, 0x3c, 0x35, 0x3c, 0x76, 0x41, 0x41, 0x76, 0xf8, 0xa5, 0x8c, 0xa5, 0xf8, 0xf8, 0xf8, - 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, - 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xff, 0xc0, 0x00, 0x11, 0x08, 0x00, 0x00, 0x00, 0x00, 0x03, 0x01, 0x22, 0x00, 0x02, 0x11, 0x01, 0x03, 0x11, 0x01, 0xff, 0xc4, 0x00, 0x1f, 0x00, 0x00, 0x01, 0x05, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0xff, 0xc4, 0x00, 0xb5, 0x10, 0x00, 0x02, 0x01, 0x03, 0x03, 0x02, 0x04, - 0x03, 0x05, 0x05, 0x04, 0x04, 0x00, 0x00, 0x01, 0x7d, 0x01, 0x02, 0x03, 0x00, 0x04, 0x11, 0x05, 0x12, 0x21, 0x31, 0x41, 0x06, 0x13, 0x51, 0x61, 0x07, 0x22, 0x71, 0x14, 0x32, 0x81, 0x91, 0xa1, 0x08, 0x23, 0x42, 0xb1, 0xc1, - 0x15, 0x52, 0xd1, 0xf0, 0x24, 0x33, 0x62, 0x72, 0x82, 0x09, 0x0a, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x92, 0x93, 0x94, 0x95, 0x96, - 0x97, 0x98, 0x99, 0x9a, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, - 0xd8, 0xd9, 0xda, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xff, 0xc4, 0x00, 0x1f, 0x01, 0x00, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0xff, 0xc4, 0x00, 0xb5, 0x11, 0x00, 0x02, 0x01, 0x02, 0x04, 0x04, 0x03, 0x04, 0x07, 0x05, 0x04, 0x04, 0x00, - 0x01, 0x02, 0x77, 0x00, 0x01, 0x02, 0x03, 0x11, 0x04, 0x05, 0x21, 0x31, 0x06, 0x12, 0x41, 0x51, 0x07, 0x61, 0x71, 0x13, 0x22, 0x32, 0x81, 0x08, 0x14, 0x42, 0x91, 0xa1, 0xb1, 0xc1, 0x09, 0x23, 0x33, 0x52, 0xf0, 0x15, 0x62, - 0x72, 0xd1, 0x0a, 0x16, 0x24, 0x34, 0xe1, 0x25, 0xf1, 0x17, 0x18, 0x19, 0x1a, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x53, 0x54, 0x55, 0x56, 0x57, - 0x58, 0x59, 0x5a, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, - 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xe2, - 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xff, 0xda, 0x00, 0x0c, 0x03, 0x01, 0x00, 0x02, 0x11, 0x03, 0x11, 0x00, 0x3f, 0x00, + 0xFF, 0xD8, 0xFF, 0xE0, 0x00, 0x10, 0x4A, 0x46, 0x49, 0x46, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xDB, 0x00, 0x43, 0x00, 0x28, 0x1C, 0x1E, 0x23, 0x1E, 0x19, 0x28, 0x23, 0x21, 0x23, 0x2D, 0x2B, + 0x28, 0x30, 0x3C, 0x64, 0x41, 0x3C, 0x37, 0x37, 0x3C, 0x7B, 0x58, 0x5D, 0x49, 0x64, 0x91, 0x80, 0x99, 0x96, 0x8F, 0x80, 0x8C, 0x8A, 0xA0, 0xB4, 0xE6, 0xC3, 0xA0, 0xAA, 0xDA, 0xAD, 0x8A, 0x8C, 0xC8, 0xFF, 0xCB, 0xDA, 0xEE, + 0xF5, 0xFF, 0xFF, 0xFF, 0x9B, 0xC1, 0xFF, 0xFF, 0xFF, 0xFA, 0xFF, 0xE6, 0xFD, 0xFF, 0xF8, 0xFF, 0xDB, 0x00, 0x43, 0x01, 0x2B, 0x2D, 0x2D, 0x3C, 0x35, 0x3C, 0x76, 0x41, 0x41, 0x76, 0xF8, 0xA5, 0x8C, 0xA5, 0xF8, 0xF8, 0xF8, + 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, + 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xFF, 0xC0, 0x00, 0x11, 0x08, 0x00, 0x00, 0x00, 0x00, 0x03, 0x01, 0x22, 0x00, 0x02, 0x11, 0x01, 0x03, 0x11, 0x01, 0xFF, 0xC4, 0x00, 0x1F, 0x00, 0x00, 0x01, 0x05, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0xFF, 0xC4, 0x00, 0xB5, 0x10, 0x00, 0x02, 0x01, 0x03, 0x03, 0x02, 0x04, + 0x03, 0x05, 0x05, 0x04, 0x04, 0x00, 0x00, 0x01, 0x7D, 0x01, 0x02, 0x03, 0x00, 0x04, 0x11, 0x05, 0x12, 0x21, 0x31, 0x41, 0x06, 0x13, 0x51, 0x61, 0x07, 0x22, 0x71, 0x14, 0x32, 0x81, 0x91, 0xA1, 0x08, 0x23, 0x42, 0xB1, 0xC1, + 0x15, 0x52, 0xD1, 0xF0, 0x24, 0x33, 0x62, 0x72, 0x82, 0x09, 0x0A, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, + 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x92, 0x93, 0x94, 0x95, 0x96, + 0x97, 0x98, 0x99, 0x9A, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, + 0xD8, 0xD9, 0xDA, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFF, 0xC4, 0x00, 0x1F, 0x01, 0x00, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0xFF, 0xC4, 0x00, 0xB5, 0x11, 0x00, 0x02, 0x01, 0x02, 0x04, 0x04, 0x03, 0x04, 0x07, 0x05, 0x04, 0x04, 0x00, + 0x01, 0x02, 0x77, 0x00, 0x01, 0x02, 0x03, 0x11, 0x04, 0x05, 0x21, 0x31, 0x06, 0x12, 0x41, 0x51, 0x07, 0x61, 0x71, 0x13, 0x22, 0x32, 0x81, 0x08, 0x14, 0x42, 0x91, 0xA1, 0xB1, 0xC1, 0x09, 0x23, 0x33, 0x52, 0xF0, 0x15, 0x62, + 0x72, 0xD1, 0x0A, 0x16, 0x24, 0x34, 0xE1, 0x25, 0xF1, 0x17, 0x18, 0x19, 0x1A, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5A, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, + 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xE2, + 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFF, 0xDA, 0x00, 0x0C, 0x03, 0x01, 0x00, 0x02, 0x11, 0x03, 0x11, 0x00, 0x3F, 0x00, ]); - const footer = Buffer.from([0xff, 0xd9]); + const footer = Buffer.from([0xFF, 0xD9]); const real = Buffer.alloc(header.length + bytes.length + footer.length); header.copy(real); bytes.copy(real, header.length, 3); diff --git a/lib/routes/tesla/cx.ts b/lib/routes/tesla/cx.ts index a82211520a5f2b..e129181f0df3b8 100644 --- a/lib/routes/tesla/cx.ts +++ b/lib/routes/tesla/cx.ts @@ -134,7 +134,7 @@ async function handler(ctx) { pageSize: limit, pageNumber: 0, benefitCategoryId: categoryObject?.id ?? undefined, - category: categoryObject ? undefined : category === '充电免停' ? 2 : undefined, + category: categoryObject ? undefined : (category === '充电免停' ? 2 : undefined), city, }, }); diff --git a/lib/routes/test/index.ts b/lib/routes/test/index.ts index a4a744fe06eefe..1752e2ab9465d4 100644 --- a/lib/routes/test/index.ts +++ b/lib/routes/test/index.ts @@ -416,6 +416,6 @@ async function handler(ctx) { item, allowEmpty: ctx.req.param('id') === 'allow_empty', description: - ctx.req.param('id') === 'complicated' ? '' : ctx.req.param('id') === 'multimedia' ? '' : 'A test route for RSSHub', + ctx.req.param('id') === 'complicated' ? '' : (ctx.req.param('id') === 'multimedia' ? '' : 'A test route for RSSHub'), }; } diff --git a/lib/routes/toutiao/a-bogus.ts b/lib/routes/toutiao/a-bogus.ts index 1522472f3a1b8c..5f13a59d4581b2 100644 --- a/lib/routes/toutiao/a-bogus.ts +++ b/lib/routes/toutiao/a-bogus.ts @@ -43,9 +43,9 @@ function rotateLeft32(e, r) { function T(j) { if (0 <= j && j < 16) { - return 0x79_cc_45_19; + return 0x79_CC_45_19; } else if (16 <= j && j < 64) { - return 0x7a_87_9d_8a; + return 0x7A_87_9D_8A; } else { logger.error('invalid j for constant Tj'); } @@ -74,14 +74,14 @@ function GG(j, x, y, z) { } function reset(this: any) { - this.reg[0] = 0x73_80_16_6f; - this.reg[1] = 0x49_14_b2_b9; - this.reg[2] = 0x17_24_42_d7; - this.reg[3] = 0xda_8a_06_00; - this.reg[4] = 0xa9_6f_30_bc; - this.reg[5] = 0x16_31_38_aa; - this.reg[6] = 0xe3_8d_ee_4d; - this.reg[7] = 0xb0_fb_0e_4e; + this.reg[0] = 0x73_80_16_6F; + this.reg[1] = 0x49_14_B2_B9; + this.reg[2] = 0x17_24_42_D7; + this.reg[3] = 0xDA_8A_06_00; + this.reg[4] = 0xA9_6F_30_BC; + this.reg[5] = 0x16_31_38_AA; + this.reg[6] = 0xE3_8D_EE_4D; + this.reg[7] = 0xB0_FB_0E_4E; this.chunk = []; this.size = 0; } @@ -172,17 +172,17 @@ function _compress(this: any, t) { const i = this.reg.slice(0); for (let c = 0; c < 64; c++) { let o = rotateLeft32(i[0], 12) + i[4] + rotateLeft32(T(c), c); - o = (0xff_ff_ff_ff & o) >>> 0; + o = (0xFF_FF_FF_FF & o) >>> 0; o = rotateLeft32(o, 7); const s = (o ^ rotateLeft32(i[0], 12)) >>> 0; let u = FF(c, i[0], i[1], i[2]); u = u + i[3] + s + f[c + 68]; - u = (0xff_ff_ff_ff & u) >>> 0; + u = (0xFF_FF_FF_FF & u) >>> 0; let b = GG(c, i[4], i[5], i[6]); b = b + i[7] + o + f[c]; - b = (0xff_ff_ff_ff & b) >>> 0; + b = (0xFF_FF_FF_FF & b) >>> 0; i[3] = i[2]; i[2] = rotateLeft32(i[1], 9); i[1] = i[0]; @@ -206,10 +206,10 @@ function _fill(this: any) { } for (let i = 0; i < 4; i++) { const c = Math.floor(a / 0x1_00_00_00_00); - this.chunk.push((c >>> (8 * (3 - i))) & 0xff); + this.chunk.push((c >>> (8 * (3 - i))) & 0xFF); } for (let i = 0; i < 4; i++) { - this.chunk.push((a >>> (8 * (3 - i))) & 0xff); + this.chunk.push((a >>> (8 * (3 - i))) & 0xFF); } } diff --git a/lib/routes/twitter/utils.ts b/lib/routes/twitter/utils.ts index 33fdc91b007f49..7c11c9dc9463ee 100644 --- a/lib/routes/twitter/utils.ts +++ b/lib/routes/twitter/utils.ts @@ -245,7 +245,7 @@ const ProcessFeed = (ctx, { data = [] }, params = {}) => { } quote += formatMedia(quoteData); picsPrefix += generatePicsPrefix(quoteData); - quoteInTitle += showEmojiForRetweetAndReply ? ' 💬 ' : showSymbolForRetweetAndReply ? ' RT ' : ''; + quoteInTitle += showEmojiForRetweetAndReply ? ' 💬 ' : (showSymbolForRetweetAndReply ? ' RT ' : ''); quoteInTitle += `${author.name}: ${formatText(quoteData)}`; if (readable) { @@ -277,15 +277,15 @@ const ProcessFeed = (ctx, { data = [] }, params = {}) => { const isQuote = item.is_quote_status; if (!isRetweet && (!isQuote || showRetweetTextInTitle)) { if (item.in_reply_to_screen_name) { - title += showEmojiForRetweetAndReply ? '↩️ ' : showSymbolForRetweetAndReply ? 'Re ' : ''; + title += showEmojiForRetweetAndReply ? '↩️ ' : (showSymbolForRetweetAndReply ? 'Re ' : ''); } title += replaceBreak(originalItem.full_text); } if (isRetweet) { - title += showEmojiForRetweetAndReply ? '🔁 ' : showSymbolForRetweetAndReply ? 'RT ' : ''; + title += showEmojiForRetweetAndReply ? '🔁 ' : (showSymbolForRetweetAndReply ? 'RT ' : ''); title += item.user.name + ': '; if (item.in_reply_to_screen_name) { - title += showEmojiForRetweetAndReply ? ' ↩️ ' : showSymbolForRetweetAndReply ? ' Re ' : ''; + title += showEmojiForRetweetAndReply ? ' ↩️ ' : (showSymbolForRetweetAndReply ? ' Re ' : ''); } title += replaceBreak(item.full_text); } @@ -321,7 +321,7 @@ const ProcessFeed = (ctx, { data = [] }, params = {}) => { } description += ' '; } - description += showEmojiForRetweetAndReply ? '🔁' : showSymbolForRetweetAndReply ? 'RT' : ''; + description += showEmojiForRetweetAndReply ? '🔁' : (showSymbolForRetweetAndReply ? 'RT' : ''); if (!showAuthorInDesc) { description += ' '; if (readable) { @@ -364,7 +364,7 @@ const ProcessFeed = (ctx, { data = [] }, params = {}) => { description += `: `; } if (item.in_reply_to_screen_name) { - description += showEmojiForRetweetAndReply ? '↩️ ' : showSymbolForRetweetAndReply ? 'Re ' : ''; + description += showEmojiForRetweetAndReply ? '↩️ ' : (showSymbolForRetweetAndReply ? 'Re ' : ''); } description += item.full_text; diff --git a/lib/routes/whu/swrh.ts b/lib/routes/whu/swrh.ts index 7af1dc1db632a0..277714e007467c 100644 --- a/lib/routes/whu/swrh.ts +++ b/lib/routes/whu/swrh.ts @@ -94,7 +94,7 @@ async function handler(ctx) { const response = await got(item.link); const $ = load(response.data); - return $('.v_news_content').length ? $('.v_news_content').html().trim() : $('.prompt').length ? $('.prompt').html() : item.title; + return $('.v_news_content').length ? $('.v_news_content').html().trim() : ($('.prompt').length ? $('.prompt').html() : item.title); } catch { return item.title; } diff --git a/lib/routes/xiaoheihe/util.ts b/lib/routes/xiaoheihe/util.ts index fe131fc1203852..1572ae782ca3bd 100644 --- a/lib/routes/xiaoheihe/util.ts +++ b/lib/routes/xiaoheihe/util.ts @@ -27,7 +27,7 @@ function c3(v) { } function convertByte(v) { - return v & 0x80 ? 0xff & ((v << 1) ^ 0x1b) : v << 1; + return v & 0x80 ? 0xFF & ((v << 1) ^ 0x1B) : v << 1; } /** diff --git a/lib/routes/xiaoyuzhou/pickup.ts b/lib/routes/xiaoyuzhou/pickup.ts index 2c0aef6df5813b..bce0d11650395d 100644 --- a/lib/routes/xiaoyuzhou/pickup.ts +++ b/lib/routes/xiaoyuzhou/pickup.ts @@ -57,7 +57,7 @@ const ProcessFeed = async () => { return playList.map((item) => { const title = item.episode.title + ' - ' + item.episode.podcast.title; const eid = item.episode.eid; - const itunes_item_image = item.episode.image ? item.episode.image.picUrl : item.episode.podcast.image ? item.episode.podcast.image.picUrl : ''; + const itunes_item_image = item.episode.image ? item.episode.image.picUrl : (item.episode.podcast.image ? item.episode.podcast.image.picUrl : ''); const link = `https://www.xiaoyuzhoufm.com/episode/${eid}`; const pubDate = item.pubDate; const itunes_duration = item.episode.duration; diff --git a/lib/routes/zhihu/timeline.ts b/lib/routes/zhihu/timeline.ts index 1e7784993697d9..1c4c6b1cd0028a 100644 --- a/lib/routes/zhihu/timeline.ts +++ b/lib/routes/zhihu/timeline.ts @@ -68,7 +68,6 @@ async function handler(ctx) { default: return; } - return ''; }; /** @@ -95,7 +94,7 @@ async function handler(ctx) { return ( content .map((e) => e.content) - .filter((e) => e instanceof String && !!e) + .filter((e) => !!e && typeof e === 'string') // some content may not be wrapped in tag, it will cause error when parsing .map((e) => `
${e}
`) .join('') diff --git a/lib/utils/timezone.ts b/lib/utils/timezone.ts index 00ae95beb986dd..2e5439fdd1b8db 100644 --- a/lib/utils/timezone.ts +++ b/lib/utils/timezone.ts @@ -8,7 +8,7 @@ export default function timezone(date, timezone = serverTimezone) { date = new Date(date); } - assert(date instanceof Date); + assert.ok(date instanceof Date); return new Date(date.getTime() - millisInAnHour * (timezone - serverTimezone)); } diff --git a/package.json b/package.json index 7c88167919a24c..9fd86bf3fbbc02 100644 --- a/package.json +++ b/package.json @@ -177,7 +177,7 @@ "eslint-nibble": "8.1.0", "eslint-plugin-n": "17.15.1", "eslint-plugin-prettier": "5.2.3", - "eslint-plugin-unicorn": "56.0.1", + "eslint-plugin-unicorn": "57.0.0", "eslint-plugin-yml": "1.17.0", "fs-extra": "11.3.0", "globals": "15.15.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 743f3791ca029d..ad7e77d9ced37c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -394,8 +394,8 @@ importers: specifier: 5.2.3 version: 5.2.3(@types/eslint@9.6.1)(eslint-config-prettier@10.0.1(eslint@9.20.1))(eslint@9.20.1)(prettier@3.5.1) eslint-plugin-unicorn: - specifier: 56.0.1 - version: 56.0.1(eslint@9.20.1) + specifier: 57.0.0 + version: 57.0.0(eslint@9.20.1) eslint-plugin-yml: specifier: 1.17.0 version: 1.17.0(eslint@9.20.1) @@ -2048,10 +2048,6 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/scope-manager@8.24.0': - resolution: {integrity: sha512-HZIX0UByphEtdVBKaQBgTDdn9z16l4aTUz8e8zPQnyxwHBtf5vtl1L+OhH+m1FGV9DrRmoDuYKqzVrvWDcDozw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/scope-manager@8.24.1': resolution: {integrity: sha512-OdQr6BNBzwRjNEXMQyaGyZzgg7wzjYKfX2ZBV3E04hUCBDv3GQCHiz9RpqdUIiVrMgJGkXm3tcEh4vFSHreS2Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2063,20 +2059,10 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/types@8.24.0': - resolution: {integrity: sha512-VacJCBTyje7HGAw7xp11q439A+zeGG0p0/p2zsZwpnMzjPB5WteaWqt4g2iysgGFafrqvyLWqq6ZPZAOCoefCw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.24.1': resolution: {integrity: sha512-9kqJ+2DkUXiuhoiYIUvIYjGcwle8pcPpdlfkemGvTObzgmYfJ5d0Qm6jwb4NBXP9W1I5tss0VIAnWFumz3mC5A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.24.0': - resolution: {integrity: sha512-ITjYcP0+8kbsvT9bysygfIfb+hBj6koDsu37JZG7xrCiy3fPJyNmfVtaGsgTUSEuTzcvME5YI5uyL5LD1EV5ZQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/typescript-estree@8.24.1': resolution: {integrity: sha512-UPyy4MJ/0RE648DSKQe9g0VDSehPINiejjA6ElqnFaFIhI6ZEiZAkUI0D5MCk0bQcTf/LVqZStvQ6K4lPn/BRg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2090,10 +2076,6 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/visitor-keys@8.24.0': - resolution: {integrity: sha512-kArLq83QxGLbuHrTMoOEWO+l2MwsNS2TGISEdx8xgqpkbytB07XmlQyQdNDrCc1ecSqx0cnmhGvpX+VBwqqSkg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/visitor-keys@8.24.1': resolution: {integrity: sha512-EwVHlp5l+2vp8CoqJm9KikPZgi3gbdZAtabKT9KPShGeOcJhsv4Zdo3oc8T8I0uKEmYoU4ItyxbptjF08enaxg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2388,9 +2370,9 @@ packages: resolution: {integrity: sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw==} engines: {node: '>=6.14.2'} - builtin-modules@3.3.0: - resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} - engines: {node: '>=6'} + builtin-modules@4.0.0: + resolution: {integrity: sha512-p1n8zyCkt1BVrKNFymOHjcDSAl7oq/gUvfgULv2EblgpPVQlQr9yHnWjg9IJ2MhfwPqiYqMMrr01OY7yQoK2yA==} + engines: {node: '>=18.20'} cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} @@ -2877,8 +2859,8 @@ packages: engines: {node: '>=14'} hasBin: true - electron-to-chromium@1.5.101: - resolution: {integrity: sha512-L0ISiQrP/56Acgu4/i/kfPwWSgrzYZUnQrC0+QPFuhqlLP1Ir7qzPPDVS9BcKIyWTRU8+o6CC8dKw38tSWhYIA==} + electron-to-chromium@1.5.102: + resolution: {integrity: sha512-eHhqaja8tE/FNpIiBrvBjFV/SSKpyWHLvxuR9dPTdo+3V9ppdLmFB7ZZQ98qNovcngPLYIz0oOBF9P0FfZef5Q==} ellipsize@0.1.0: resolution: {integrity: sha512-5gxbEjcb/Z2n6TTmXZx9wVi3N/DOzE7RXY3Xg9dakDuhX/izwumB9rGjeWUV6dTA0D0+juvo+JonZgNR9sgA5A==} @@ -3057,11 +3039,11 @@ packages: eslint-config-prettier: optional: true - eslint-plugin-unicorn@56.0.1: - resolution: {integrity: sha512-FwVV0Uwf8XPfVnKSGpMg7NtlZh0G0gBarCaFcMUOoqPxXryxdYxTRRv4kH6B9TFCVIrjRXG+emcxIk2ayZilog==} + eslint-plugin-unicorn@57.0.0: + resolution: {integrity: sha512-zUYYa6zfNdTeG9BISWDlcLmz16c+2Ck2o5ZDHh0UzXJz3DEP7xjmlVDTzbyV0W+XksgZ0q37WEWzN2D2Ze+g9Q==} engines: {node: '>=18.18'} peerDependencies: - eslint: '>=8.56.0' + eslint: '>=9.20.0' eslint-plugin-yml@1.17.0: resolution: {integrity: sha512-Q3LXFRnNpGYAK/PM0BY1Xs0IY1xTLfM0kC986nNQkx1l8tOGz+YS50N6wXkAJkrBpeUN9OxEMB7QJ+9MTDAqIQ==} @@ -3251,9 +3233,9 @@ packages: resolution: {integrity: sha512-qWeTREPoT7I0bifpPUXtxkZJ1XJzxWtfoWWkdVGqa+eCr3SHW/Ocp89o8vLvbUuQnadybJpjOKu4V+RwO6sGng==} engines: {node: '>=14.16'} - find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} + find-up-simple@1.0.0: + resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==} + engines: {node: '>=18'} find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} @@ -3522,8 +3504,9 @@ packages: hookable@5.5.3: resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} - hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + hosted-git-info@7.0.2: + resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} + engines: {node: ^16.14.0 || >=18.0.0} html-encoding-sniffer@4.0.0: resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} @@ -3633,9 +3616,13 @@ packages: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} - indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} + indent-string@5.0.0: + resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} + engines: {node: '>=12'} + + index-to-position@0.1.2: + resolution: {integrity: sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==} + engines: {node: '>=18'} inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} @@ -3685,9 +3672,9 @@ packages: is-buffer@1.1.6: resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} - is-builtin-module@3.2.1: - resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} - engines: {node: '>=6'} + is-builtin-module@4.0.0: + resolution: {integrity: sha512-rWP3AMAalQSesXO8gleROyL2iKU73SX5Er66losQn9rWOWL4Gef0a/xOEOVqjWGMuR2vHG3FJ8UUmT700O8oFg==} + engines: {node: '>=18.20'} is-docker@2.2.1: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} @@ -3860,10 +3847,6 @@ packages: canvas: optional: true - jsesc@0.5.0: - resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} - hasBin: true - jsesc@3.0.2: resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} engines: {node: '>=6'} @@ -3987,10 +3970,6 @@ packages: localforage@1.10.0: resolution: {integrity: sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==} - locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} - locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} @@ -4394,8 +4373,9 @@ packages: engines: {node: ^18.17.0 || >=20.5.0} hasBin: true - normalize-package-data@2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + normalize-package-data@6.0.2: + resolution: {integrity: sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==} + engines: {node: ^16.14.0 || >=18.0.0} normalize-url@8.0.1: resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==} @@ -4492,26 +4472,14 @@ packages: resolution: {integrity: sha512-wBowNApzd45EIKdO1LaU+LrMBwAcjfPaYtVzV3lmfM3gf8Z4CHZsiIqlM8TZZ8okYvh5A1cP6gTfCRQtwUpaUg==} engines: {node: '>=14.16'} - p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} - p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - p-locate@5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} - p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - pac-proxy-agent@7.1.0: resolution: {integrity: sha512-Z5FnLVVZSnX7WjBg0mhDtydeRZ1xMcATZThjySQUHqr+0ksP8kqaw23fNKkaaN/Z8gwLUs/W7xdl0I75eP2Xyw==} engines: {node: '>= 14'} @@ -4537,6 +4505,10 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} + parse-json@8.1.0: + resolution: {integrity: sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==} + engines: {node: '>=18'} + parse-srcset@1.0.2: resolution: {integrity: sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==} @@ -4799,13 +4771,13 @@ packages: re2js@1.0.1: resolution: {integrity: sha512-6ulyLR52++PZF6gO8Fdmy1brOo3NZ1YmkpFfo4wkPA0NfoMTBaUL2iCDPGSk5qTvf8oH7yYfDgTPnFnKOEX9qA==} - read-pkg-up@7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} - engines: {node: '>=8'} + read-package-up@11.0.0: + resolution: {integrity: sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==} + engines: {node: '>=18'} - read-pkg@5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} - engines: {node: '>=8'} + read-pkg@9.0.1: + resolution: {integrity: sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==} + engines: {node: '>=18'} readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} @@ -4853,10 +4825,6 @@ packages: regjsgen@0.8.0: resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} - regjsparser@0.10.0: - resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} - hasBin: true - regjsparser@0.12.0: resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==} hasBin: true @@ -4989,10 +4957,6 @@ packages: selderee@0.11.0: resolution: {integrity: sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==} - semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} - hasBin: true - semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -5195,9 +5159,9 @@ packages: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} - strip-indent@3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} + strip-indent@4.0.0: + resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} + engines: {node: '>=12'} strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} @@ -5431,14 +5395,6 @@ packages: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} - type-fest@0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} - engines: {node: '>=8'} - - type-fest@0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} - engines: {node: '>=8'} - type-fest@1.4.0: resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} engines: {node: '>=10'} @@ -5495,6 +5451,10 @@ packages: resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} engines: {node: '>=4'} + unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} + unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} @@ -7528,11 +7488,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.24.0': - dependencies: - '@typescript-eslint/types': 8.24.0 - '@typescript-eslint/visitor-keys': 8.24.0 - '@typescript-eslint/scope-manager@8.24.1': dependencies: '@typescript-eslint/types': 8.24.1 @@ -7549,24 +7504,8 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.24.0': {} - '@typescript-eslint/types@8.24.1': {} - '@typescript-eslint/typescript-estree@8.24.0(typescript@5.7.3)': - dependencies: - '@typescript-eslint/types': 8.24.0 - '@typescript-eslint/visitor-keys': 8.24.0 - debug: 4.4.0 - fast-glob: 3.3.3 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.7.1 - ts-api-utils: 2.0.1(typescript@5.7.3) - typescript: 5.7.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/typescript-estree@8.24.1(typescript@5.7.3)': dependencies: '@typescript-eslint/types': 8.24.1 @@ -7592,11 +7531,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.24.0': - dependencies: - '@typescript-eslint/types': 8.24.0 - eslint-visitor-keys: 4.2.0 - '@typescript-eslint/visitor-keys@8.24.1': dependencies: '@typescript-eslint/types': 8.24.1 @@ -7892,7 +7826,7 @@ snapshots: browserslist@4.24.4: dependencies: caniuse-lite: 1.0.30001700 - electron-to-chromium: 1.5.101 + electron-to-chromium: 1.5.102 node-releases: 2.0.19 update-browserslist-db: 1.1.2(browserslist@4.24.4) @@ -7914,7 +7848,7 @@ snapshots: dependencies: node-gyp-build: 4.8.4 - builtin-modules@3.3.0: {} + builtin-modules@4.0.0: {} cac@6.7.14: {} @@ -8418,7 +8352,7 @@ snapshots: minimatch: 9.0.1 semver: 7.7.1 - electron-to-chromium@1.5.101: {} + electron-to-chromium@1.5.102: {} ellipsize@0.1.0: {} @@ -8640,7 +8574,7 @@ snapshots: '@types/eslint': 9.6.1 eslint-config-prettier: 10.0.1(eslint@9.20.1) - eslint-plugin-unicorn@56.0.1(eslint@9.20.1): + eslint-plugin-unicorn@57.0.0(eslint@9.20.1): dependencies: '@babel/helper-validator-identifier': 7.25.9 '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.1) @@ -8650,15 +8584,15 @@ snapshots: eslint: 9.20.1 esquery: 1.6.0 globals: 15.15.0 - indent-string: 4.0.0 - is-builtin-module: 3.2.1 + indent-string: 5.0.0 + is-builtin-module: 4.0.0 jsesc: 3.1.0 pluralize: 8.0.0 - read-pkg-up: 7.0.1 + read-package-up: 11.0.0 regexp-tree: 0.1.27 - regjsparser: 0.10.0 + regjsparser: 0.12.0 semver: 7.7.1 - strip-indent: 3.0.0 + strip-indent: 4.0.0 eslint-plugin-yml@1.17.0(eslint@9.20.1): dependencies: @@ -8925,10 +8859,7 @@ snapshots: filter-obj@5.1.0: {} - find-up@4.1.0: - dependencies: - locate-path: 5.0.0 - path-exists: 4.0.0 + find-up-simple@1.0.0: {} find-up@5.0.0: dependencies: @@ -9243,7 +9174,9 @@ snapshots: hookable@5.5.3: {} - hosted-git-info@2.8.9: {} + hosted-git-info@7.0.2: + dependencies: + lru-cache: 10.4.3 html-encoding-sniffer@4.0.0: dependencies: @@ -9382,7 +9315,9 @@ snapshots: imurmurhash@0.1.4: {} - indent-string@4.0.0: {} + indent-string@5.0.0: {} + + index-to-position@0.1.2: {} inflight@1.0.6: dependencies: @@ -9466,9 +9401,9 @@ snapshots: is-buffer@1.1.6: {} - is-builtin-module@3.2.1: + is-builtin-module@4.0.0: dependencies: - builtin-modules: 3.3.0 + builtin-modules: 4.0.0 is-docker@2.2.1: {} @@ -9621,8 +9556,6 @@ snapshots: - supports-color - utf-8-validate - jsesc@0.5.0: {} - jsesc@3.0.2: {} jsesc@3.1.0: {} @@ -9759,10 +9692,6 @@ snapshots: dependencies: lie: 3.1.1 - locate-path@5.0.0: - dependencies: - p-locate: 4.1.0 - locate-path@6.0.0: dependencies: p-locate: 5.0.0 @@ -10212,11 +10141,10 @@ snapshots: dependencies: abbrev: 3.0.0 - normalize-package-data@2.5.0: + normalize-package-data@6.0.2: dependencies: - hosted-git-info: 2.8.9 - resolve: 1.22.10 - semver: 5.7.2 + hosted-git-info: 7.0.2 + semver: 7.7.1 validate-npm-package-license: 3.0.4 normalize-url@8.0.1: {} @@ -10334,24 +10262,14 @@ snapshots: p-cancelable@4.0.1: {} - p-limit@2.3.0: - dependencies: - p-try: 2.2.0 - p-limit@3.1.0: dependencies: yocto-queue: 0.1.0 - p-locate@4.1.0: - dependencies: - p-limit: 2.3.0 - p-locate@5.0.0: dependencies: p-limit: 3.1.0 - p-try@2.2.0: {} - pac-proxy-agent@7.1.0: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 @@ -10389,6 +10307,12 @@ snapshots: json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 + parse-json@8.1.0: + dependencies: + '@babel/code-frame': 7.26.2 + index-to-position: 0.1.2 + type-fest: 4.35.0 + parse-srcset@1.0.2: {} parse5-htmlparser2-tree-adapter@7.1.0: @@ -10676,18 +10600,19 @@ snapshots: re2js@1.0.1: {} - read-pkg-up@7.0.1: + read-package-up@11.0.0: dependencies: - find-up: 4.1.0 - read-pkg: 5.2.0 - type-fest: 0.8.1 + find-up-simple: 1.0.0 + read-pkg: 9.0.1 + type-fest: 4.35.0 - read-pkg@5.2.0: + read-pkg@9.0.1: dependencies: '@types/normalize-package-data': 2.4.4 - normalize-package-data: 2.5.0 - parse-json: 5.2.0 - type-fest: 0.6.0 + normalize-package-data: 6.0.2 + parse-json: 8.1.0 + type-fest: 4.35.0 + unicorn-magic: 0.1.0 readable-stream@3.6.2: dependencies: @@ -10732,10 +10657,6 @@ snapshots: regjsgen@0.8.0: {} - regjsparser@0.10.0: - dependencies: - jsesc: 0.5.0 - regjsparser@0.12.0: dependencies: jsesc: 3.0.2 @@ -10902,8 +10823,6 @@ snapshots: dependencies: parseley: 0.12.1 - semver@5.7.2: {} - semver@6.3.1: {} semver@7.6.0: @@ -11093,7 +11012,7 @@ snapshots: strip-final-newline@3.0.0: {} - strip-indent@3.0.0: + strip-indent@4.0.0: dependencies: min-indent: 1.0.1 @@ -11335,10 +11254,6 @@ snapshots: type-fest@0.21.3: {} - type-fest@0.6.0: {} - - type-fest@0.8.1: {} - type-fest@1.4.0: {} type-fest@4.35.0: {} @@ -11377,6 +11292,8 @@ snapshots: unicode-property-aliases-ecmascript@2.1.0: {} + unicorn-magic@0.1.0: {} + unified@11.0.5: dependencies: '@types/unist': 3.0.3