diff --git a/lib/routes/18comic/search.ts b/lib/routes/18comic/search.ts index e0388b31f7..e7b40eed46 100644 --- a/lib/routes/18comic/search.ts +++ b/lib/routes/18comic/search.ts @@ -54,7 +54,7 @@ async function handler(ctx) { let apiUrl = getApiUrl(); order = time === 'a' ? order : `${order}_${time}`; apiUrl = `${apiUrl}/search?search_query=${keyword}&o=${order}`; - let apiResult = await processApiItems(apiUrl); + const apiResult = await processApiItems(apiUrl); let filteredItemsByCategory = apiResult.content; // Filter items by category if not 'all' if (category !== 'all') { @@ -64,13 +64,9 @@ async function handler(ctx) { const results = await Promise.all( filteredItemsByCategory.map((item) => cache.tryGet(`18comic:search:${item.id}`, async () => { - const result = {}; - result.title = item.name; - result.link = `${rootUrl}/album/${item.id}`; - result.guid = `18comic:/album/${item.id}`; - result.updated = parseDate(item.update_at); - apiUrl = `${getApiUrl()}/album?id=${item.id}`; - apiResult = await processApiItems(apiUrl); + const result = { title: item.name, link: `${rootUrl}/album/${item.id}`, guid: `18comic:/album/${item.id}`, updated: parseDate(item.update_at) }; + const apiUrl = `${getApiUrl()}/album?id=${item.id}`; + const apiResult = await processApiItems(apiUrl); result.pubDate = new Date(apiResult.addtime * 1000); result.category = apiResult.tags.map((tag) => tag); result.author = apiResult.author.map((a) => a).join(', '); diff --git a/lib/routes/amazon/kindle-software-updates.ts b/lib/routes/amazon/kindle-software-updates.ts index a770834155..ce6ebd76e5 100644 --- a/lib/routes/amazon/kindle-software-updates.ts +++ b/lib/routes/amazon/kindle-software-updates.ts @@ -39,15 +39,16 @@ async function handler() { const list = $('.a-row.cs-help-landing-section.help-display-cond') .toArray() .map((item) => { - const data = {}; - data.title = $(item).find('.sectiontitle').text(); - data.link = $(item).find('a').eq(0).attr('href'); - data.version = $(item).find('li').first().text(); - data.website = `${url}?nodeId=${nodeIdValue}`; - data.description = $(item) - .find('.a-column.a-span8') - .html() - .replaceAll(/[\t\n]/g, ''); + const data = { + title: $(item).find('.sectiontitle').text(), + link: $(item).find('a').eq(0).attr('href'), + version: $(item).find('li').first().text(), + website: `${url}?nodeId=${nodeIdValue}`, + description: $(item) + .find('.a-column.a-span8') + .html() + .replaceAll(/[\t\n]/g, ''), + }; return data; }); return { diff --git a/lib/routes/arcteryx/regear-new-arrivals.ts b/lib/routes/arcteryx/regear-new-arrivals.ts index bdc1dc7a2f..8c89e55ed7 100644 --- a/lib/routes/arcteryx/regear-new-arrivals.ts +++ b/lib/routes/arcteryx/regear-new-arrivals.ts @@ -48,14 +48,16 @@ async function handler() { items = items.filter((item) => item.availableSizes.length !== 0); const list = items.map((item) => { - const data = {}; - data.title = item.displayTitle; - data.link = item.pdpLink.url; - data.imgUrl = JSON.parse(item.imageUrls).front; - data.availableSizes = item.availableSizes; - data.color = item.color; - data.originalPrice = getUSDPrice(item.originalPrice); - data.regearPrice = item.priceRange[0] === item.priceRange[1] ? getUSDPrice(item.priceRange[0]) : `${getUSDPrice(item.priceRange[0])} - ${getUSDPrice(item.priceRange[1])}`; + const data = { + title: item.displayTitle, + link: item.pdpLink.url, + imgUrl: JSON.parse(item.imageUrls).front, + availableSizes: item.availableSizes, + color: item.color, + originalPrice: getUSDPrice(item.originalPrice), + regearPrice: item.priceRange[0] === item.priceRange[1] ? getUSDPrice(item.priceRange[0]) : `${getUSDPrice(item.priceRange[0])} - ${getUSDPrice(item.priceRange[1])}`, + description: '', + }; data.description = art(path.join(__dirname, 'templates/regear-product-description.art'), { data, }); diff --git a/lib/routes/cls/subject.ts b/lib/routes/cls/subject.ts index d0eb1f4f30..858135e449 100644 --- a/lib/routes/cls/subject.ts +++ b/lib/routes/cls/subject.ts @@ -76,7 +76,7 @@ export const handler = async (ctx) => { item.title = title; item.description = description; item.pubDate = parseDate(data.ctime, 'X'); - item.category = [...new Set(data.subject?.flatMap((s) => [s.name, ...(s.subjectCategory?.flatMap((c) => [c.columnName || [], c.name || []]) ?? [])]) ?? [])].filter(Boolean); + item.category = [...new Set(data.subject?.flatMap((s) => [s.name, ...(s.subjectCategory?.flatMap((c) => [c.columnName || [], c.name || []]) ?? [])]))].filter(Boolean); item.author = data.author?.name ?? item.author; item.guid = guid; item.id = guid; diff --git a/lib/routes/dlsite/utils.ts b/lib/routes/dlsite/utils.ts index ecba7731a8..8b63c01f27 100644 --- a/lib/routes/dlsite/utils.ts +++ b/lib/routes/dlsite/utils.ts @@ -20,7 +20,7 @@ const formatDate = (date, format) => dayjs(date).format(format); const addFilters = (url, filters) => { const keys = Object.keys(filters); const filterStr = keys.map((k) => `/${k}/${filters[k]}`).join(''); - const newUrl = url.replaceAll(new RegExp(`(/${keys.join(String.raw`/\w+|/`)}/\\w+)`, 'g'), ''); + const newUrl = url.replaceAll(new RegExp(String.raw`(/${keys.join(String.raw`/\w+|/`)}/\w+)`, 'g'), ''); return `${newUrl}${/=/.test(newUrl) ? '' : '/='}${filterStr}`; }; diff --git a/lib/routes/gov/mem/sgcc.ts b/lib/routes/gov/mem/sgcc.ts index 6dfcc9a9d2..2ddce6a9d3 100644 --- a/lib/routes/gov/mem/sgcc.ts +++ b/lib/routes/gov/mem/sgcc.ts @@ -49,7 +49,7 @@ async function handler(ctx) { .map((item) => { item = $(item); - const regExp = new RegExp(`\\/sgcc\\/${category}\\/\\.\\.\\.`); + const regExp = new RegExp(String.raw`\/sgcc\/${category}\/\.\.\.`); const link = new URL(`${category}/${item.prop('href').replace(/\.\//, '')}`, currentUrl).href.replace(regExp, ''); return { diff --git a/lib/routes/hackernews/index.ts b/lib/routes/hackernews/index.ts index 8923bb83d3..9616011da5 100644 --- a/lib/routes/hackernews/index.ts +++ b/lib/routes/hackernews/index.ts @@ -63,24 +63,26 @@ async function handler(ctx) { .map((thing) => { thing = $(thing); - const item = {}; + const item = { + guid: thing.attr('id'), + title: thing.find('.titleline').children('a').text(), + category: thing.find('.sitestr').text(), + author: thing.next().find('.hnuser').text(), + pubDate: parseDate(thing.find('.age').attr('title') ?? thing.next().find('.age').attr('title')), - item.guid = thing.attr('id'); - item.title = thing.find('.titleline').children('a').text(); - item.category = thing.find('.sitestr').text(); - item.author = thing.next().find('.hnuser').text(); - item.pubDate = parseDate(thing.find('.age').attr('title') ?? thing.next().find('.age').attr('title')); + link: '', + origin: thing.find('.titleline').children('a').attr('href'), + onStory: thing.find('.onstory').text().slice(2), + + comments: thing.next().find('a').last().text().split(' comment')[0], + upvotes: thing.next().find('.score').text().split(' point')[0], + + currentComment: thing.find('.comment').text(), + description: '', + }; item.link = `${rootUrl}/item?id=${item.guid}`; - item.origin = thing.find('.titleline').children('a').attr('href'); - item.onStory = thing.find('.onstory').text().slice(2); - - item.comments = thing.next().find('a').last().text().split(' comment')[0]; - item.upvotes = thing.next().find('.score').text().split(' point')[0]; - - item.currentComment = thing.find('.comment').text(); item.guid = type === 'sources' ? item.guid : `${item.guid}${item.comments === 'discuss' ? '' : `-${item.comments}`}`; - item.description = `Comments on Hacker News | Source`; return item; diff --git a/lib/routes/hkushop/vinyl-or-picture-lp.ts b/lib/routes/hkushop/vinyl-or-picture-lp.ts index c692965412..5f2a1d0cf8 100644 --- a/lib/routes/hkushop/vinyl-or-picture-lp.ts +++ b/lib/routes/hkushop/vinyl-or-picture-lp.ts @@ -76,7 +76,7 @@ async function handler(ctx) { }; }); - const title = cat ? `黑胶\\彩胶系列 - ${$('.page-title').text().trim()}` : String.raw`黑胶\\彩胶系列 - HKU Shop 环球唱片网店`; + const title = cat ? `黑胶彩胶系列 - ${$('.page-title').text().trim()}` : '黑胶彩胶系列 - HKU Shop 环球唱片网店'; return { title, diff --git a/lib/routes/jbma/report.ts b/lib/routes/jbma/report.ts index dfc9a5a45b..d5a06a84de 100644 --- a/lib/routes/jbma/report.ts +++ b/lib/routes/jbma/report.ts @@ -53,7 +53,7 @@ export const handler = async (ctx: Context): Promise => { const language = $('html').attr('lang') ?? 'ja'; const postIds: number[] = []; - const regExp = new RegExp(`^${baseUrl.replaceAll(/[.*+?^${}()|[\]\\]/g, String.raw`\$&`)}/?(?:[a-zA-Z0-9-]+/)*\\?p=\\d+$`); + const regExp = new RegExp(String.raw`^${baseUrl.replaceAll(/[.*+?^${}()|[\]\\]/g, String.raw`\$&`)}/?(?:[a-zA-Z0-9-]+/)*\?p=\d+$`); for (const item of response.slice(0, limit)) { const linkUrl: string | undefined = item.link; diff --git a/lib/routes/konachan/post.ts b/lib/routes/konachan/post.ts index 3f4a2bf227..b9db016473 100644 --- a/lib/routes/konachan/post.ts +++ b/lib/routes/konachan/post.ts @@ -81,13 +81,12 @@ async function handler(ctx) { author: post.author, pubDate: new Date(post.created_at * 1e3).toUTCString(), description: (() => { - const result: string[] = []; - result.push( + const result: string[] = [ ``, `

Rating: ${post.rating}

Score: ${post.score}

`, ...(post.source ? [`Source`] : []), - ...(post.parent_id ? [`Parent`] : []) - ); + ...(post.parent_id ? [`Parent`] : []), + ]; return result.join(''); })(), media: { diff --git a/lib/routes/lemmy/index.ts b/lib/routes/lemmy/index.ts index 56e8742960..b83b17f521 100644 --- a/lib/routes/lemmy/index.ts +++ b/lib/routes/lemmy/index.ts @@ -92,11 +92,16 @@ async function handler(ctx) { const post = e.post; const creator = e.creator; const counts = e.counts; - const item = {}; - item.title = post.name; - item.author = creator.name; - item.pubDate = parseDate(post.published); - item.link = post.ap_id; + const item = { + title: post.name, + author: creator.name, + pubDate: parseDate(post.published), + link: post.ap_id, + description: '', + comments: 0, + upvotes: 0, + downvotes: 0, + }; const url = post.url; const urlContent = url ? `

${url}

` : ''; const body = post.body ? md.render(post.body) : ''; diff --git a/lib/routes/linkresearcher/index.ts b/lib/routes/linkresearcher/index.ts index 159cfa04ef..a08136c346 100644 --- a/lib/routes/linkresearcher/index.ts +++ b/lib/routes/linkresearcher/index.ts @@ -104,16 +104,15 @@ async function handler(ctx: Context): Promise { pubDate: parseDate(response.onlineTime), link, image: response.cover, + description: + 'zhTextList' in response && 'enTextList' in response + ? art(templatePath, { + zh: response.zhTextList, + en: response.enTextList, + }) + : response.content, }; - dataItem.description = - 'zhTextList' in response && 'enTextList' in response - ? art(templatePath, { - zh: response.zhTextList, - en: response.enTextList, - }) - : response.content; - if ('paperList' in response) { const { doi, authors } = response.paperList[0]; dataItem.doi = doi; diff --git a/lib/routes/magazinelib/latest-magazine.ts b/lib/routes/magazinelib/latest-magazine.ts index 6f25d157bf..7f50e5e84b 100644 --- a/lib/routes/magazinelib/latest-magazine.ts +++ b/lib/routes/magazinelib/latest-magazine.ts @@ -46,11 +46,12 @@ async function handler(ctx) { } const items = response.data.map((obj) => { - const data = {}; - data.date = obj.date_gmt; - data.link = obj.link; - data.featuredMediaLink = obj._links['wp:featuredmedia'][0].href; - data.title = obj.title.rendered; + const data = { + date: obj.date_gmt, + link: obj.link, + featuredMediaLink: obj._links['wp:featuredmedia'][0].href, + title: obj.title.rendered, + }; const $ = load(obj.content.rendered); const content = $('.vk-att'); content.find('img[src="https://magazinelib.com/wp-includes/images/media/default.png"]').remove(); diff --git a/lib/routes/oreno3d/main.ts b/lib/routes/oreno3d/main.ts index f23f5ad640..1ddb10000b 100644 --- a/lib/routes/oreno3d/main.ts +++ b/lib/routes/oreno3d/main.ts @@ -138,9 +138,8 @@ async function handler(ctx) { pagelimit = 1; } // 构造网页数据的对应数组 - const responseList = []; + const responseList = [response]; // 将第一页的数据加入数组 - responseList.push(response); // 创建不含第一页链接的数组 const Links = []; for (let i = 1; i < pagelimit; i++) { diff --git a/lib/routes/oschina/column.ts b/lib/routes/oschina/column.ts index 3e871e2503..124b2aff10 100644 --- a/lib/routes/oschina/column.ts +++ b/lib/routes/oschina/column.ts @@ -95,7 +95,7 @@ export const handler = async (ctx: Context): Promise => { const categories: string[] = [...new Set(categoryEls.map((el) => $$(el).text()).filter(Boolean))]; const authorEls: Element[] = $$('div.article-box__meta div.item-list div.item a') .toArray() - .filter((i) => ($$(i).attr('href') ? new RegExp(`^${userHostRegex}/u/\\d+$`).test($$(i).attr('href') as string) : false)); + .filter((i) => ($$(i).attr('href') ? new RegExp(String.raw`^${userHostRegex}/u/\d+$`).test($$(i).attr('href') as string) : false)); const authors: DataItem['author'] = authorEls.map((authorEl) => { const $authorEl: Cheerio = $$(authorEl); diff --git a/lib/routes/patagonia/new-arrivals.ts b/lib/routes/patagonia/new-arrivals.ts index a2819b8e4f..406d8e0cd5 100644 --- a/lib/routes/patagonia/new-arrivals.ts +++ b/lib/routes/patagonia/new-arrivals.ts @@ -55,19 +55,21 @@ async function handler(ctx) { const list = $('.product') .toArray() .map((element) => { - const data = {}; - data.title = $(element).find('.product-tile').data('tealium').product_name[0]; + const data = { + title: $(element).find('.product-tile').data('tealium').product_name[0], + link: host + '/' + $(element).find('[itemprop="url"]').attr('href'), + description: '', + category: $(element).find('[itemprop="category"]').attr('content'), + }; let imgUrl = new URL($(element).find('[itemprop="image"]').attr('content')); imgUrl = extractSfrmUrl(imgUrl); const price = $(element).find('[itemprop="price"]').eq(0).text(); - data.link = host + '/' + $(element).find('[itemprop="url"]').attr('href'); data.description = price + art(path.join(__dirname, 'templates/product-description.art'), { imgUrl, }); - data.category = $(element).find('[itemprop="category"]').attr('content'); return data; }); return { diff --git a/lib/routes/rfa/index.ts b/lib/routes/rfa/index.ts index f18cbbd7ee..4afa1ebba0 100644 --- a/lib/routes/rfa/index.ts +++ b/lib/routes/rfa/index.ts @@ -46,9 +46,10 @@ async function handler(ctx) { const list = []; for (const selector of selectors) { $(selector).each((_, e) => { - const item = {}; - item.title = $(e).find('h2 a span').first().text(); - item.link = $(e).find('h2 a').first().attr('href'); + const item = { + title: $(e).find('h2 a span').first().text(), + link: $(e).find('h2 a').first().attr('href'), + }; list.push(item); }); } diff --git a/lib/routes/sony/downloads.ts b/lib/routes/sony/downloads.ts index ea889c7e4a..2bfb5b3657 100644 --- a/lib/routes/sony/downloads.ts +++ b/lib/routes/sony/downloads.ts @@ -48,9 +48,7 @@ async function handler(ctx) { results = JSON.parse(match[1]).searchResults.results; } const list = results.map((item) => { - const data = {}; - data.title = item.title; - data.pubDate = item.publicationDate; + const data = { title: item.title, pubDate: item.publicationDate }; const url = item.url; if (url.startsWith('http')) { data.url = url; diff --git a/lib/routes/syosetu/search.ts b/lib/routes/syosetu/search.ts index 194f506c92..09403b957b 100644 --- a/lib/routes/syosetu/search.ts +++ b/lib/routes/syosetu/search.ts @@ -50,38 +50,38 @@ function mapToSearchParams(query: string, limit: number): SearchParams { const searchParams: SearchParams = { gzip: 5, lim: limit, + + word: setIfExists(params.word), + notword: setIfExists(params.notword), + + title: setIfExists(params.title), + ex: setIfExists(params.ex), + keyword: setIfExists(params.keyword), + wname: setIfExists(params.wname), + + sasie: setIfExists(params.sasie), + iszankoku: setIfExists(params.iszankoku), + isbl: setIfExists(params.isbl), + isgl: setIfExists(params.isgl), + istensei: setIfExists(params.istensei), + istenni: setIfExists(params.istenni), + + stop: setIfExists(params.stop), + notzankoku: setIfExists(params.notzankoku), + notbl: setIfExists(params.notbl), + notgl: setIfExists(params.notgl), + nottensei: setIfExists(params.nottensei), + nottenni: setIfExists(params.nottenni), + + minlen: setIfExists(params.minlen), + maxlen: setIfExists(params.maxlen), + + type: setIfExists(params.type as NovelTypeParam), + order: setIfExists(params.order as Order), + genre: setIfExists(params.genre as Join | Genre), + nocgenre: setIfExists(params.nocgenre as Join | R18Site), }; - searchParams.word = setIfExists(params.word); - searchParams.notword = setIfExists(params.notword); - - searchParams.title = setIfExists(params.title); - searchParams.ex = setIfExists(params.ex); - searchParams.keyword = setIfExists(params.keyword); - searchParams.wname = setIfExists(params.wname); - - searchParams.sasie = setIfExists(params.sasie); - searchParams.iszankoku = setIfExists(params.iszankoku); - searchParams.isbl = setIfExists(params.isbl); - searchParams.isgl = setIfExists(params.isgl); - searchParams.istensei = setIfExists(params.istensei); - searchParams.istenni = setIfExists(params.istenni); - - searchParams.stop = setIfExists(params.stop); - searchParams.notzankoku = setIfExists(params.notzankoku); - searchParams.notbl = setIfExists(params.notbl); - searchParams.notgl = setIfExists(params.notgl); - searchParams.nottensei = setIfExists(params.nottensei); - searchParams.nottenni = setIfExists(params.nottenni); - - searchParams.minlen = setIfExists(params.minlen); - searchParams.maxlen = setIfExists(params.maxlen); - - searchParams.type = setIfExists(params.type as NovelTypeParam); - searchParams.order = setIfExists(params.order as Order); - searchParams.genre = setIfExists(params.genre as Join | Genre); - searchParams.nocgenre = setIfExists(params.nocgenre as Join | R18Site); - if (params.mintime || params.maxtime) { searchParams.time = `${params.mintime || ''}-${params.maxtime || ''}`; } diff --git a/lib/routes/theatlantic/news.ts b/lib/routes/theatlantic/news.ts index 8052363a5c..6cc2bd3452 100644 --- a/lib/routes/theatlantic/news.ts +++ b/lib/routes/theatlantic/news.ts @@ -42,9 +42,7 @@ async function handler(ctx) { let list = Object.values(data)[0].river.edges; list = list.filter((item) => !item.node.url.startsWith('https://www.theatlantic.com/photo')); list = list.map((item) => { - const data = {}; - data.link = item.node.url; - data.pubDate = item.node.datePublished; + const data = { link: item.node.url, pubDate: item.node.datePublished }; return data; }); const items = await getArticleDetails(list); diff --git a/lib/routes/wsj/news.ts b/lib/routes/wsj/news.ts index 01b7998c9c..e64dc2001e 100644 --- a/lib/routes/wsj/news.ts +++ b/lib/routes/wsj/news.ts @@ -67,10 +67,7 @@ async function handler(ctx) { }) .map(([key]) => key); const list = filteredKeys.map((key) => { - const item = {}; - item.title = data[key].data.data.headline; - item.link = data[key].data.data.url; - item.test = key; + const item = { title: data[key].data.data.headline, link: data[key].data.data.url, test: key }; return item; }); const items = await pMap(list, (item) => parseArticle(item), { concurrency: 10 }); diff --git a/lib/routes/yande/post.ts b/lib/routes/yande/post.ts index 5c7a383f25..8cd089d9dd 100644 --- a/lib/routes/yande/post.ts +++ b/lib/routes/yande/post.ts @@ -72,8 +72,7 @@ async function handler(ctx) { author: post.author, pubDate: new Date(post.created_at * 1e3).toUTCString(), description: (() => { - const result = [``]; - result.push(`

Rating:${post.rating}

Score:${post.score}

`); + const result = [``, `

Rating:${post.rating}

Score:${post.score}

`]; if (post.source) { result.push(`Source`); } diff --git a/lib/utils/wechat-mp.ts b/lib/utils/wechat-mp.ts index a8ab609ad0..1b3d0e303e 100644 --- a/lib/utils/wechat-mp.ts +++ b/lib/utils/wechat-mp.ts @@ -128,7 +128,7 @@ const showTypeMap = { const showTypeMapReverse = Object.fromEntries(Object.entries(showTypeMap).map(([k, v]) => [v, k])); class ExtractMetadata { - private static genAssignmentRegExp = (varName: string, valuePattern: string, assignPattern: string) => new RegExp(`\\b${varName}\\s*${assignPattern}\\s*(?["'])(?${valuePattern})\\k`, 'mg'); + private static genAssignmentRegExp = (varName: string, valuePattern: string, assignPattern: string) => new RegExp(String.raw`\b${varName}\s*${assignPattern}\s*(?["'])(?${valuePattern})\k`, 'mg'); private static genExtractFunc = ( varName: string, diff --git a/package.json b/package.json index 9d52824b7a..ffe3c2454b 100644 --- a/package.json +++ b/package.json @@ -174,7 +174,7 @@ "eslint-nibble": "9.1.1", "eslint-plugin-n": "17.23.1", "eslint-plugin-prettier": "5.5.4", - "eslint-plugin-unicorn": "61.0.2", + "eslint-plugin-unicorn": "62.0.0", "eslint-plugin-yml": "1.19.0", "fs-extra": "11.3.2", "globals": "16.4.0", @@ -196,7 +196,7 @@ "vitest": "2.1.9", "yaml-eslint-parser": "1.3.0" }, - "packageManager": "pnpm@10.17.1+sha512.17c560fca4867ae9473a3899ad84a88334914f379be46d455cbf92e5cf4b39d34985d452d2583baf19967fa76cb5c17bc9e245529d0b98745721aa7200ecaf7a", + "packageManager": "pnpm@10.19.0+sha512.c9fc7236e92adf5c8af42fd5bf1612df99c2ceb62f27047032f4720b33f8eacdde311865e91c411f2774f618d82f320808ecb51718bfa82c060c4ba7c76a32b8", "engines": { "node": ">=22" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2ee0ec4fd1..614f8e7aa7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -383,8 +383,8 @@ importers: specifier: 5.5.4 version: 5.5.4(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@9.38.0(jiti@2.6.1)))(eslint@9.38.0(jiti@2.6.1))(prettier@3.6.2) eslint-plugin-unicorn: - specifier: 61.0.2 - version: 61.0.2(eslint@9.38.0(jiti@2.6.1)) + specifier: 62.0.0 + version: 62.0.0(eslint@9.38.0(jiti@2.6.1)) eslint-plugin-yml: specifier: 1.19.0 version: 1.19.0(eslint@9.38.0(jiti@2.6.1)) @@ -559,10 +559,6 @@ packages: resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.27.1': - resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} - engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.28.5': resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} engines: {node: '>=6.9.0'} @@ -1412,10 +1408,6 @@ packages: resolution: {integrity: sha512-csZAzkNhsgwb0I/UAV6/RGFTbiakPCf0ZrGmrIxQpYvGZ00PhTkSnyKNolphgIvmnJeGw6rcGVEXfTzUnFuEvw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.15.2': - resolution: {integrity: sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.16.0': resolution: {integrity: sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1440,10 +1432,6 @@ packages: resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.3.5': - resolution: {integrity: sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.4.0': resolution: {integrity: sha512-sB5uyeq+dwCWyPi31B2gQlVlo+j5brPlWx4yZBrEaRo/nhdDE8Xke1gsGgtiBdaBTxuTkceLVuVt/pclrasb0A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2794,11 +2782,6 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.25.4: - resolution: {integrity: sha512-4jYpcjabC606xJ3kw2QwGEZKX0Aw7sgQdZCvIK9dhVSPh76BKo+C+btT1RRofH7B+8iNpEbgGNVWiLki5q93yg==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - browserslist@4.27.0: resolution: {integrity: sha512-AXVQwdhot1eqLihwasPElhX2tAZiBjWdJ9i/Zcj2S6QYIjkx62OKSfnobkriB81C3l4w0rVy3Nt4jaTBltYEpw==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -2855,9 +2838,6 @@ packages: resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} engines: {node: '>=16'} - caniuse-lite@1.0.30001741: - resolution: {integrity: sha512-QGUGitqsc8ARjLdgAfxETDhRbJ0REsP6O3I96TAth/mVjh2cYzN2u+3AzPP3aVSm2FehEItaJw1xd+IGBXWeSw==} - caniuse-lite@1.0.30001751: resolution: {integrity: sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw==} @@ -2913,8 +2893,8 @@ packages: peerDependencies: devtools-protocol: '*' - ci-info@4.3.0: - resolution: {integrity: sha512-l+2bNRMiQgcfILUi33labAZYIWlH1kWDp+ecNo5iisRKrbm0xcRyCww71/YU0Fkw0mAFpz9bJayXPjey6vkmaQ==} + ci-info@4.3.1: + resolution: {integrity: sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==} engines: {node: '>=8'} city-timezones@1.3.2: @@ -3022,9 +3002,6 @@ packages: cookiejar@2.1.4: resolution: {integrity: sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==} - core-js-compat@3.45.1: - resolution: {integrity: sha512-tqTt5T4PzsMIZ430XGviK4vzYSoeNJ6CXODi6c/voxOT6IZqBht5/EKaSNnYiEjjRYxjVz7DQIsOsY0XNi8PIA==} - core-js-compat@3.46.0: resolution: {integrity: sha512-p9hObIIEENxSV8xIu+V68JjSeARg6UVMG5mR+JEUguG3sI6MsiS1njz2jHmyJDvA+8jX/sytkBHup6kxhM9law==} @@ -3301,9 +3278,6 @@ packages: engines: {node: '>=14'} hasBin: true - electron-to-chromium@1.5.214: - resolution: {integrity: sha512-TpvUNdha+X3ybfU78NoQatKvQEm1oq3lf2QbnmCEdw+Bd9RuIAY+hJTvq1avzHM0f7EJfnH3vbCnbzKzisc/9Q==} - electron-to-chromium@1.5.240: resolution: {integrity: sha512-OBwbZjWgrCOH+g6uJsA2/7Twpas2OlepS9uvByJjR2datRDuKGYeD+nP8lBBks2qnB7bGJNHDUx7c/YLaT3QMQ==} @@ -3475,11 +3449,11 @@ packages: eslint-config-prettier: optional: true - eslint-plugin-unicorn@61.0.2: - resolution: {integrity: sha512-zLihukvneYT7f74GNbVJXfWIiNQmkc/a9vYBTE4qPkQZswolWNdu+Wsp9sIXno1JOzdn6OUwLPd19ekXVkahRA==} + eslint-plugin-unicorn@62.0.0: + resolution: {integrity: sha512-HIlIkGLkvf29YEiS/ImuDZQbP12gWyx5i3C6XrRxMvVdqMroCI9qoVYCoIl17ChN+U89pn9sVwLxhIWj5nEc7g==} engines: {node: ^20.10.0 || >=21.0.0} peerDependencies: - eslint: '>=9.29.0' + eslint: '>=9.38.0' eslint-plugin-yml@1.19.0: resolution: {integrity: sha512-S+4GbcCWksFKAvFJtf0vpdiCkZZvDJCV4Zsi9ahmYkYOYcf+LRqqzvzkb/ST7vTYV6sFwXOvawzYyL/jFT2nQA==} @@ -4190,11 +4164,6 @@ packages: resolution: {integrity: sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==} engines: {node: '>= 10.16.0'} - jsesc@3.0.2: - resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} - engines: {node: '>=6'} - hasBin: true - jsesc@3.1.0: resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} engines: {node: '>=6'} @@ -4546,10 +4515,6 @@ packages: resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} - minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -4682,9 +4647,6 @@ packages: peerDependencies: undici: ^6 - node-releases@2.0.20: - resolution: {integrity: sha512-7gK6zSXEH6neM212JgfYFXe+GmZQM+fia5SsusuBIUgnPheLFBmIPhtFoAQRj8/7wASYQnbDlHPVwY0BefoFgA==} - node-releases@2.0.26: resolution: {integrity: sha512-S2M9YimhSjBSvYnlr5/+umAnPHE++ODwt5e2Ij6FoX45HA/s4vHdkDx1eax2pAPeAOqu4s9b7ppahsyEFdVqQA==} @@ -5105,10 +5067,6 @@ packages: regjsgen@0.8.0: resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} - regjsparser@0.12.0: - resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==} - hasBin: true - regjsparser@0.13.0: resolution: {integrity: sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==} hasBin: true @@ -5422,8 +5380,8 @@ packages: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} - strip-indent@4.0.0: - resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} + strip-indent@4.1.1: + resolution: {integrity: sha512-SlyRoSkdh1dYP0PzclLE7r0M9sgbFKKMFXpFRUMNuKhQSbC6VQIGzq3E0qsfvGJaUFJPGv6Ws1NZ/haTAjfbMA==} engines: {node: '>=12'} strip-json-comments@3.1.1: @@ -5788,12 +5746,6 @@ packages: engines: {node: '>=20.19.0'} hasBin: true - update-browserslist-db@1.1.3: - resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - update-browserslist-db@1.1.4: resolution: {integrity: sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==} hasBin: true @@ -6157,7 +6109,7 @@ snapshots: '@babel/code-frame@7.27.1': dependencies: - '@babel/helper-validator-identifier': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 js-tokens: 4.0.0 picocolors: 1.1.1 @@ -6292,8 +6244,6 @@ snapshots: '@babel/helper-string-parser@7.27.1': {} - '@babel/helper-validator-identifier@7.27.1': {} - '@babel/helper-validator-identifier@7.28.5': {} '@babel/helper-validator-option@7.27.1': {} @@ -7140,10 +7090,6 @@ snapshots: dependencies: '@eslint/core': 0.16.0 - '@eslint/core@0.15.2': - dependencies: - '@types/json-schema': 7.0.15 - '@eslint/core@0.16.0': dependencies: '@types/json-schema': 7.0.15 @@ -7182,11 +7128,6 @@ snapshots: '@eslint/object-schema@2.1.7': {} - '@eslint/plugin-kit@0.3.5': - dependencies: - '@eslint/core': 0.15.2 - levn: 0.4.1 - '@eslint/plugin-kit@0.4.0': dependencies: '@eslint/core': 0.16.0 @@ -8660,13 +8601,6 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.25.4: - dependencies: - caniuse-lite: 1.0.30001741 - electron-to-chromium: 1.5.214 - node-releases: 2.0.20 - update-browserslist-db: 1.1.3(browserslist@4.25.4) - browserslist@4.27.0: dependencies: baseline-browser-mapping: 2.8.20 @@ -8728,8 +8662,6 @@ snapshots: camelcase@8.0.0: {} - caniuse-lite@1.0.30001741: {} - caniuse-lite@1.0.30001751: {} caseless@0.12.0: {} @@ -8811,7 +8743,7 @@ snapshots: mitt: 3.0.1 zod: 3.25.76 - ci-info@4.3.0: {} + ci-info@4.3.1: {} city-timezones@1.3.2: dependencies: @@ -8904,10 +8836,6 @@ snapshots: cookiejar@2.1.4: {} - core-js-compat@3.45.1: - dependencies: - browserslist: 4.25.4 - core-js-compat@3.46.0: dependencies: browserslist: 4.27.0 @@ -9161,8 +9089,6 @@ snapshots: minimatch: 9.0.1 semver: 7.7.3 - electron-to-chromium@1.5.214: {} - electron-to-chromium@1.5.240: {} ellipsize@0.1.0: {} @@ -9378,15 +9304,15 @@ snapshots: '@types/eslint': 9.6.1 eslint-config-prettier: 10.1.8(eslint@9.38.0(jiti@2.6.1)) - eslint-plugin-unicorn@61.0.2(eslint@9.38.0(jiti@2.6.1)): + eslint-plugin-unicorn@62.0.0(eslint@9.38.0(jiti@2.6.1)): dependencies: - '@babel/helper-validator-identifier': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 '@eslint-community/eslint-utils': 4.9.0(eslint@9.38.0(jiti@2.6.1)) - '@eslint/plugin-kit': 0.3.5 + '@eslint/plugin-kit': 0.4.0 change-case: 5.4.4 - ci-info: 4.3.0 + ci-info: 4.3.1 clean-regexp: 1.0.0 - core-js-compat: 3.45.1 + core-js-compat: 3.46.0 eslint: 9.38.0(jiti@2.6.1) esquery: 1.6.0 find-up-simple: 1.0.1 @@ -9396,9 +9322,9 @@ snapshots: jsesc: 3.1.0 pluralize: 8.0.0 regexp-tree: 0.1.27 - regjsparser: 0.12.0 - semver: 7.7.2 - strip-indent: 4.0.0 + regjsparser: 0.13.0 + semver: 7.7.3 + strip-indent: 4.1.1 eslint-plugin-yml@1.19.0(eslint@9.38.0(jiti@2.6.1)): dependencies: @@ -10257,8 +10183,6 @@ snapshots: jsep@1.4.0: {} - jsesc@3.0.2: {} - jsesc@3.1.0: {} json-bigint@1.0.0: @@ -10690,8 +10614,6 @@ snapshots: mimic-response@4.0.0: {} - min-indent@1.0.1: {} - minimatch@3.1.2: dependencies: brace-expansion: 1.1.12 @@ -10808,8 +10730,6 @@ snapshots: transitivePeerDependencies: - utf-8-validate - node-releases@2.0.20: {} - node-releases@2.0.26: {} nodemailer@7.0.10: {} @@ -11282,10 +11202,6 @@ snapshots: regjsgen@0.8.0: {} - regjsparser@0.12.0: - dependencies: - jsesc: 3.0.2 - regjsparser@0.13.0: dependencies: jsesc: 3.1.0 @@ -11633,9 +11549,7 @@ snapshots: strip-final-newline@3.0.0: {} - strip-indent@4.0.0: - dependencies: - min-indent: 1.0.1 + strip-indent@4.1.1: {} strip-json-comments@3.1.1: {} @@ -11989,12 +11903,6 @@ snapshots: rolldown: 1.0.0-beta.44 synckit: 0.11.11 - update-browserslist-db@1.1.3(browserslist@4.25.4): - dependencies: - browserslist: 4.25.4 - escalade: 3.2.0 - picocolors: 1.1.1 - update-browserslist-db@1.1.4(browserslist@4.27.0): dependencies: browserslist: 4.27.0 diff --git a/scripts/workflow/test-issue/call-maintainer.mjs b/scripts/workflow/test-issue/call-maintainer.mjs index a9273ef751..858b4bf9ac 100644 --- a/scripts/workflow/test-issue/call-maintainer.mjs +++ b/scripts/workflow/test-issue/call-maintainer.mjs @@ -11,6 +11,7 @@ const deprecatedRoute = 'route: deprecated'; const route = 'route'; // DnD (do-not-disturb) usernames, add yours here to avoid being notified +// eslint-disable-next-line unicorn/no-useless-collection-argument const dndUsernames = new Set([]); async function parseBodyRoutes(body, core) {