From 16d80122c651e138849e9fb78b266462a2bfccbc Mon Sep 17 00:00:00 2001 From: pseudoyu Date: Sat, 28 Mar 2026 19:25:30 +0800 Subject: [PATCH 001/439] fix(route/joneslanglasalle): migrate to new website --- lib/routes/joneslanglasalle/index.ts | 266 ++++-------------- .../templates/description.tsx | 27 -- 2 files changed, 54 insertions(+), 239 deletions(-) delete mode 100644 lib/routes/joneslanglasalle/templates/description.tsx diff --git a/lib/routes/joneslanglasalle/index.ts b/lib/routes/joneslanglasalle/index.ts index 1d9ca7c9c95a..da603c33e435 100644 --- a/lib/routes/joneslanglasalle/index.ts +++ b/lib/routes/joneslanglasalle/index.ts @@ -1,188 +1,70 @@ -import type { Cheerio, CheerioAPI } from 'cheerio'; -import { load } from 'cheerio'; -import type { Element } from 'domhandler'; import type { Context } from 'hono'; import type { Data, DataItem, Route } from '@/types'; import { ViewType } from '@/types'; -import cache from '@/utils/cache'; import ofetch from '@/utils/ofetch'; import { parseDate } from '@/utils/parse-date'; -import { renderDescription } from './templates/description'; +const searchApiUrl = 'https://www.jll.com/api/search/template'; +const subscriptionKey = '8f6a4de5b0144673acaa89b03aac035e'; +const rootUrl = 'https://www.joneslanglasalle.com.cn'; -const cleanHtml = (html: string, preservedTags: string[]): string => { - const $ = load(html); - - $('div.informationbox').remove(); - $('div.contributors').remove(); - - $('*') - .not(preservedTags.join(', ')) - .contents() - .filter((_, el) => el.type === 'text') - .remove(); - - $('*') - .not(preservedTags.join(', ')) - .filter((_, el) => $(el).children().length === 0) - .remove(); - - return $.html() || ''; +// Reason: map old route language params to the API language code +const langMap: Record = { + zh: 'zh-cn', + en: 'en-GB', }; export const handler = async (ctx: Context): Promise => { - const { language: lang = 'zh', category = 'trends-and-insights' } = ctx.req.param(); - // default limit is 12 + const { language: lang = 'zh' } = ctx.req.param(); const limit: number = Number.parseInt(ctx.req.query('limit') ?? '12', 10); - const rootUrl = 'https://www.joneslanglasalle.com.cn'; - const targetUrl: string = new URL(`${lang}/${category}`, rootUrl).href; - - const response = await ofetch(targetUrl); - const $: CheerioAPI = load(response); - const language: string = $('html').prop('lang') ?? 'en'; - - let items: DataItem[] = $('div.ti-title') - .slice(0, limit) - .toArray() - .map((item): DataItem => { - const $item: Cheerio = $(item); - const aEl = $item.closest('a'); - - const title: string = $item.text(); - const link: string | undefined = aEl.prop('href'); - - const description: string = renderDescription({ - intro: aEl.find('p.ti-teaser').text(), - }); - - const image: string | undefined = aEl.find('div.ti-image-container img').prop('src') ? new URL(aEl.find('div.ti-image-container img').prop('src') as string, rootUrl).href : undefined; - - return { - title, - description, - pubDate: parseDate(aEl.find('span.ti-date').text(), ['MM月DD日', 'MMMM DD']), - link: link ? new URL(link, rootUrl).href : undefined, - category: [aEl.find('span.ti-type').text()].filter(Boolean), - content: { - html: description, - text: aEl.find('p.ti-teaser').text(), - }, - image, - banner: image, - language, - }; - }); - - items = ( - await Promise.all( - items.map((item) => { - if (!item.link && typeof item.link !== 'string') { - return item; - } - - return cache.tryGet(item.link, async (): Promise => { - try { - const detailResponse = await ofetch(item.link); - const $$: CheerioAPI = load(detailResponse); - - const title: string = $$('meta[property="og:title"]').prop('content'); - const guid: string = $$('meta[property="og:url"]').prop('content'); - const image: string | undefined = $$('meta[property="og:image"]').prop('content'); - - const pubDate: Date = parseDate($$('div.publicationdate').text().trim(), ['YYYY 年MM 月DD 日', 'MMMM DD, YYYY']); - - const author: DataItem['author'] = $$('div.contributors ul li') - .toArray() - .map((el) => ({ - name: $$(el).text(), - })); - - const media: Record> = {}; - - $$('picture').each((_, el) => { - const $$el = $$(el); - - const src = $$el.find('source').last().prop('srcset') ? new URL($$el.find('source').last().prop('srcset') as string, rootUrl).href : undefined; - - if (src) { - $$el.replaceWith( - renderDescription({ - images: [ - { - src, - }, - ], - }) - ); - - const mediaType: string | undefined = src.split(/\./).pop(); - - if (mediaType) { - media[mediaType] = { url: src }; - } - } - }); - - const extraLinks = $$('div.related-content a.content-card') - .toArray() - .map((el) => { - const $$el: Cheerio = $$(el); + const apiLang = langMap[lang] || lang; - return { - url: new URL($$el.prop('href') as string, rootUrl).href, - type: 'related', - content_html: $$el.find('div.content-card__body').html(), - }; - }) - .filter((_link): _link is { url: string; type: string; content_html: string } => true); - - const description: string = renderDescription({ - description: cleanHtml($$('div.page-section').eq(1).html() ?? $$('div.copy-block').html() ?? '', ['div.richtext p', 'h3', 'h4', 'h5', 'h6', 'figure', 'img', 'ul', 'li', 'span', 'b']), - }); - - return { - title, - description, - pubDate, - category: $$('meta[property="article:tag"]').prop('content').split(/,\s/), - author, - guid, - id: guid, - content: { - html: description, - text: description, - }, - image, - banner: image, - language, - media: Object.keys(media).length > 0 ? media : undefined, - _extra: { - links: extraLinks.length > 0 ? extraLinks : undefined, - }, - }; - } catch { - return item; - } - }); - }) - ) - ).filter((_): _ is DataItem => true); - - const title = $('title').text(); - const feedImage = $('img.logo').prop('src') ? new URL($('img.logo').prop('src') as string, rootUrl).href : undefined; + // Reason: site rebuilt with search API; old HTML scraping no longer works. + // Using the public search API (Elasticsearch-backed) with subscription key from page JS. + const response = await ofetch(searchApiUrl, { + method: 'POST', + headers: { + 'Subscription-Key': subscriptionKey, + 'Content-Type': 'application/json', + }, + body: { + id: 'jll_dynamic_list_search_template_v2', + params: { + size: limit, + from: 0, + countries: ['China Mainland'], + language: apiLang, + sort_by_relevance: false, + includeGlobalPeople: false, + boostCountry: '', + }, + }, + }); + + const items: DataItem[] = (response.hits?.hits || []).map((hit) => { + const source = hit._source; + return { + title: source.title, + description: source.description || source.subTitle || '', + link: source.pageUrl, + pubDate: source.datePublished ? parseDate(source.datePublished) : undefined, + category: [...(source.topics || []), ...(source.industries || [])], + image: source.imageUrl, + banner: source.imageUrl, + language: source.language, + }; + }); + + const targetUrl = lang === 'en' ? `${rootUrl}/en-cn/insights` : `${rootUrl}/zh-cn/insights`; return { - title, - description: $('meta[property="og:description"]').prop('content'), + title: lang === 'en' ? 'Insights - JLL' : '洞察 - 仲量联行JLL', link: targetUrl, item: items, allowEmpty: true, - image: feedImage, - author: title.split(/\|/).pop(), - language, - id: $('meta[property="og:url"]').prop('content'), + language: apiLang, }; }; @@ -198,7 +80,7 @@ export const route: Route = { category: 'Category, `trends-and-insights` by default', }, description: `::: tip -If you subscribe to [Trends & Insights](https://www.joneslanglasalle.com.cn/en/trends-and-insights),where the URL is \`https://www.joneslanglasalle.com.cn/en/trends-and-insights\`, extract the part \`https://joneslanglasalle.com.cn/\` to the end. Use \`zh\` and \`trends-and-insights\` as the parameters to fill in. Therefore, the route will be [\`/joneslanglasalle/en/trends-and-insights\`](https://rsshub.app/joneslanglasalle/en/trends-and-insights). +If you subscribe to [Trends & Insights](https://www.joneslanglasalle.com.cn/en-cn/insights),where the URL is \`https://www.joneslanglasalle.com.cn/en-cn/insights\`, extract the part \`https://joneslanglasalle.com.cn/\` to the end. Use \`en\` and \`trends-and-insights\` as the parameters to fill in. Therefore, the route will be [\`/joneslanglasalle/en/trends-and-insights\`](https://rsshub.app/joneslanglasalle/en/trends-and-insights). ::: | Category | ID | @@ -213,7 +95,7 @@ If you subscribe to [Trends & Insights](https://www.joneslanglasalle.com.cn/en/t features: { requireConfig: false, requirePuppeteer: false, - antiCrawler: false, + antiCrawler: true, supportRadar: true, supportBT: false, supportPodcast: false, @@ -231,54 +113,14 @@ If you subscribe to [Trends & Insights](https://www.joneslanglasalle.com.cn/en/t }, { title: 'Latest', - source: ['joneslanglasalle.com.cn/en/trends-and-insights'], + source: ['joneslanglasalle.com.cn/en/trends-and-insights', 'joneslanglasalle.com.cn/en-cn/insights'], target: '/en/trends-and-insights', }, - { - title: 'Workplace', - source: ['joneslanglasalle.com.cn/en/trends-and-insights/workplace'], - target: '/en/trends-and-insights/workplace', - }, - { - title: 'Investor', - source: ['joneslanglasalle.com.cn/en/trends-and-insights/investor'], - target: '/en/trends-and-insights/investor', - }, - { - title: 'Cities', - source: ['joneslanglasalle.com.cn/en/trends-and-insights/cities'], - target: '/en/trends-and-insights/cities', - }, - { - title: 'Research', - source: ['joneslanglasalle.com.cn/en/trends-and-insights/research'], - target: '/en/trends-and-insights/research', - }, { title: '房地产趋势与洞察', - source: ['joneslanglasalle.com.cn/zh/trends-and-insights'], + source: ['joneslanglasalle.com.cn/zh/trends-and-insights', 'joneslanglasalle.com.cn/zh-cn/insights'], target: '/zh/trends-and-insights', }, - { - title: '办公空间', - source: ['joneslanglasalle.com.cn/zh/trends-and-insights/workplace'], - target: '/zh/trends-and-insights/workplace', - }, - { - title: '投资者', - source: ['joneslanglasalle.com.cn/zh/trends-and-insights/investor'], - target: '/zh/trends-and-insights/investor', - }, - { - title: '城市', - source: ['joneslanglasalle.com.cn/zh/trends-and-insights/cities'], - target: '/zh/trends-and-insights/cities', - }, - { - title: '研究报告', - source: ['joneslanglasalle.com.cn/zh/trends-and-insights/research'], - target: '/zh/trends-and-insights/research', - }, ], view: ViewType.Articles, @@ -286,7 +128,7 @@ If you subscribe to [Trends & Insights](https://www.joneslanglasalle.com.cn/en/t path: '/:language?/:category{.+}?', name: '房地产趋势与洞察', url: 'joneslanglasalle.com.cn', - maintainers: ['nczitzk'], + maintainers: ['nczitzk', 'pseudoyu'], handler, example: '/joneslanglasalle/zh/trends-and-insights', parameters: { @@ -294,7 +136,7 @@ If you subscribe to [Trends & Insights](https://www.joneslanglasalle.com.cn/en/t category: '分类,默认为 `trends-and-insights`,可在对应分类页 URL 中找到', }, description: `::: tip -若订阅 [房地产趋势与洞察](https://www.joneslanglasalle.com.cn/zh/trends-and-insights),网址为 \`https://www.joneslanglasalle.com.cn/zh/trends-and-insights\`,请截取 \`https://joneslanglasalle.com.cn/\` 到末尾的部分 \`zh\` 和 \`trends-and-insights\` 作为 \`language\` 和 \`category\` 参数填入,此时目标路由为 [\`/joneslanglasalle/zh/trends-and-insights\`](https://rsshub.app/joneslanglasalle/zh/trends-and-insights)。 +若订阅 [房地产趋势与洞察](https://www.joneslanglasalle.com.cn/zh-cn/insights),网址为 \`https://www.joneslanglasalle.com.cn/zh-cn/insights\`,请截取 \`https://joneslanglasalle.com.cn/\` 到末尾的部分 \`zh\` 和 \`trends-and-insights\` 作为 \`language\` 和 \`category\` 参数填入,此时目标路由为 [\`/joneslanglasalle/zh/trends-and-insights\`](https://rsshub.app/joneslanglasalle/zh/trends-and-insights)。 ::: | 分类名称 | 分类 ID | diff --git a/lib/routes/joneslanglasalle/templates/description.tsx b/lib/routes/joneslanglasalle/templates/description.tsx deleted file mode 100644 index 7a40f8331d6c..000000000000 --- a/lib/routes/joneslanglasalle/templates/description.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { raw } from 'hono/html'; -import { renderToString } from 'hono/jsx/dom/server'; - -type DescriptionImage = { - src?: string; - alt?: string; -}; - -type DescriptionVideo = { - src?: string; -}; - -type DescriptionData = { - images?: DescriptionImage[]; - videos?: DescriptionVideo[]; - intro?: string; - description?: string; -}; - -export const renderDescription = ({ images, videos, intro, description }: DescriptionData) => - renderToString( - <> - {images?.length ? images.map((image) => (!videos?.[0]?.src && image?.src ?
{image.alt ? {image.alt} : }
: null)) : null} - {intro ?
{intro}
: null} - {description ? raw(description) : null} - - ); From 898dcc1d181ec7457b6a9ae040ee6efc862c715d Mon Sep 17 00:00:00 2001 From: pseudoyu Date: Sat, 28 Mar 2026 19:25:45 +0800 Subject: [PATCH 002/439] chore: add missing maintainers --- lib/routes/18comic/album.ts | 2 +- lib/routes/18comic/blogs.ts | 2 +- lib/routes/18comic/index.ts | 2 +- lib/routes/18comic/search.ts | 2 +- lib/routes/caus/index.ts | 2 +- lib/routes/digitalpolicyalert/activity-tracker.ts | 2 +- lib/routes/discuz/discuz.ts | 2 +- lib/routes/fanbox/index.ts | 2 +- lib/routes/jiemian/account.ts | 2 +- lib/routes/jiemian/lists.ts | 2 +- lib/routes/jiemian/special.ts | 2 +- lib/routes/jiemian/video.ts | 2 +- lib/routes/jiemian/vip.ts | 2 +- lib/routes/jinse/catalogue.ts | 2 +- lib/routes/jinse/lives.ts | 2 +- lib/routes/jinse/timeline.ts | 2 +- lib/routes/qiche365/recall.ts | 2 +- lib/routes/qidian/author.tsx | 2 +- lib/routes/qidian/chapter.ts | 2 +- lib/routes/qidian/forum.ts | 2 +- lib/routes/qidian/free-next.ts | 2 +- lib/routes/qidian/free.ts | 2 +- lib/routes/rfi/news.ts | 2 +- lib/routes/the/index.ts | 2 +- lib/routes/theinitium/app.ts | 2 +- lib/routes/theinitium/author.ts | 2 +- lib/routes/theinitium/channel.ts | 2 +- lib/routes/theinitium/follow.ts | 2 +- lib/routes/theinitium/tags.ts | 2 +- lib/routes/udn/breaking-news.tsx | 2 +- lib/routes/udn/global/index.ts | 2 +- lib/routes/udn/global/tag.ts | 2 +- 32 files changed, 32 insertions(+), 32 deletions(-) diff --git a/lib/routes/18comic/album.ts b/lib/routes/18comic/album.ts index 575c71d72548..e7d423b7db85 100644 --- a/lib/routes/18comic/album.ts +++ b/lib/routes/18comic/album.ts @@ -24,7 +24,7 @@ export const route: Route = { }, ], name: '专辑', - maintainers: ['nczitzk'], + maintainers: ['nczitzk', 'pseudoyu'], handler, url: 'jmcomic.group/', description: `::: tip diff --git a/lib/routes/18comic/blogs.ts b/lib/routes/18comic/blogs.ts index fff7f43756c1..0f127d966982 100644 --- a/lib/routes/18comic/blogs.ts +++ b/lib/routes/18comic/blogs.ts @@ -27,7 +27,7 @@ export const route: Route = { }, ], name: '文庫', - maintainers: ['nczitzk'], + maintainers: ['nczitzk', 'pseudoyu'], handler, url: 'jmcomic.group/', description: `分类 diff --git a/lib/routes/18comic/index.ts b/lib/routes/18comic/index.ts index d33f21dd680e..433be226d3c8 100644 --- a/lib/routes/18comic/index.ts +++ b/lib/routes/18comic/index.ts @@ -22,7 +22,7 @@ export const route: Route = { }, ], name: '成人 A 漫', - maintainers: ['nczitzk'], + maintainers: ['nczitzk', 'pseudoyu'], handler, url: 'jmcomic.group/', description: `分类 diff --git a/lib/routes/18comic/search.ts b/lib/routes/18comic/search.ts index 3ada20123e9b..09ff46b5a1c5 100644 --- a/lib/routes/18comic/search.ts +++ b/lib/routes/18comic/search.ts @@ -32,7 +32,7 @@ export const route: Route = { }, ], name: '搜索', - maintainers: ['nczitzk'], + maintainers: ['nczitzk', 'pseudoyu'], handler, url: 'jmcomic.group/', description: `::: tip diff --git a/lib/routes/caus/index.ts b/lib/routes/caus/index.ts index 181824e6278a..46d055d4bc53 100644 --- a/lib/routes/caus/index.ts +++ b/lib/routes/caus/index.ts @@ -29,7 +29,7 @@ export const route: Route = { supportScihub: false, }, name: '分类', - maintainers: ['nczitzk'], + maintainers: ['nczitzk', 'pseudoyu'], handler, description: `| 全部 | 要闻 | 商业 | 快讯 | 财富 | 生活 | | ---- | ---- | ---- | ---- | ---- | ---- | diff --git a/lib/routes/digitalpolicyalert/activity-tracker.ts b/lib/routes/digitalpolicyalert/activity-tracker.ts index 3adb4a9c7db6..0d4529925321 100644 --- a/lib/routes/digitalpolicyalert/activity-tracker.ts +++ b/lib/routes/digitalpolicyalert/activity-tracker.ts @@ -103,7 +103,7 @@ export const route: Route = { path: '/activity-tracker/:filters?', name: 'Activity Tracker', url: 'digitalpolicyalert.org', - maintainers: ['nczitzk'], + maintainers: ['nczitzk', 'pseudoyu'], handler, example: '/digitalpolicyalert/activity-tracker', parameters: { diff --git a/lib/routes/discuz/discuz.ts b/lib/routes/discuz/discuz.ts index c5a341fe414f..e39d4f063eed 100644 --- a/lib/routes/discuz/discuz.ts +++ b/lib/routes/discuz/discuz.ts @@ -80,7 +80,7 @@ async function loadContent(itemLink, charset, header) { export const route: Route = { path: ['/:ver{[7x]}/:cid{[0-9]{2}}/:link{.+}', '/:ver{[7x]}/:link{.+}', '/:link{.+}'], name: 'Unknown', - maintainers: [], + maintainers: ['pseudoyu'], handler, }; diff --git a/lib/routes/fanbox/index.ts b/lib/routes/fanbox/index.ts index 58782586eed5..487b5bc98e41 100644 --- a/lib/routes/fanbox/index.ts +++ b/lib/routes/fanbox/index.ts @@ -13,7 +13,7 @@ export const route: Route = { categories: ['social-media'], example: '/fanbox/official', parameters: { creator: 'fanbox user name' }, - maintainers: ['KarasuShin'], + maintainers: ['KarasuShin', 'pseudoyu'], name: 'Creator', handler, features: { diff --git a/lib/routes/jiemian/account.ts b/lib/routes/jiemian/account.ts index fc12165f60dd..2b1ae3c830b1 100644 --- a/lib/routes/jiemian/account.ts +++ b/lib/routes/jiemian/account.ts @@ -7,7 +7,7 @@ export const route: Route = { parameters: { id: '分类 id,见下表,可在对应分类页 URL 中找到' }, name: '界面号', example: '/jiemian/account/main/1', - maintainers: ['nczitzk'], + maintainers: ['nczitzk', 'pseudoyu'], handler, description: `| [财经号](https://www.jiemian.com/account/main/1.html) | [城市号](https://www.jiemian.com/account/main/2.html) | [媒体号](https://www.jiemian.com/account/main/3.html) | | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | diff --git a/lib/routes/jiemian/lists.ts b/lib/routes/jiemian/lists.ts index 60c2d5c67a08..b1205f6c5fda 100644 --- a/lib/routes/jiemian/lists.ts +++ b/lib/routes/jiemian/lists.ts @@ -7,7 +7,7 @@ export const route: Route = { parameters: { id: '分类 id,见下表,可在对应分类页 URL 中找到' }, name: '栏目', example: '/jiemian/lists/65', - maintainers: ['WenhuWee', 'nczitzk'], + maintainers: ['WenhuWee', 'nczitzk', 'pseudoyu'], handler, description: `| [首页](https://www.jiemian.com) | [商业](https://www.jiemian.com/lists/2.html) | [财经](https://www.jiemian.com/lists/800.html) | [新闻](https://www.jiemian.com/lists/801.html) | [文化生活](https://www.jiemian.com/lists/130.html) | [快报](https://www.jiemian.com/lists/4.html) | | ------------------------------- | -------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- | -------------------------------------------------- | -------------------------------------------- | diff --git a/lib/routes/jiemian/special.ts b/lib/routes/jiemian/special.ts index 44aca401eb7c..782221141cab 100644 --- a/lib/routes/jiemian/special.ts +++ b/lib/routes/jiemian/special.ts @@ -7,6 +7,6 @@ export const route: Route = { parameters: { id: '分类 id,见下表,可在对应分类页 URL 中找到' }, name: '专题', example: '/jiemian/special/1192', - maintainers: ['nczitzk'], + maintainers: ['nczitzk', 'pseudoyu'], handler, }; diff --git a/lib/routes/jiemian/video.ts b/lib/routes/jiemian/video.ts index 24e000f40fad..b853b0379464 100644 --- a/lib/routes/jiemian/video.ts +++ b/lib/routes/jiemian/video.ts @@ -7,7 +7,7 @@ export const route: Route = { parameters: { id: '分类 id,见下表,可在对应分类页 URL 中找到' }, name: '视频', example: '/jiemian/video/lists/258_1', - maintainers: ['nczitzk'], + maintainers: ['nczitzk', 'pseudoyu'], handler, description: `| [界面 Vnews](https://www.jiemian.com/video/lists/258_1.html) | [直播](https://www.jiemian.com/videoLive/lists_1.html) | [箭厂](https://www.jiemian.com/video/lists/195_1.html) | [面谈](https://www.jiemian.com/video/lists/111_1.html) | [品牌创酷](https://www.jiemian.com/video/lists/226_1.html) | [番 茄社](https://www.jiemian.com/video/lists/567_1.html) | | ------------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ---------------------------------------------------------- | --------------------------------------------------------- | diff --git a/lib/routes/jiemian/vip.ts b/lib/routes/jiemian/vip.ts index a044a9ca5d1e..a3c7307f304b 100644 --- a/lib/routes/jiemian/vip.ts +++ b/lib/routes/jiemian/vip.ts @@ -7,7 +7,7 @@ export const route: Route = { parameters: { id: '分类 id,见下表,可在对应分类页 URL 中找到' }, name: 'VIP', example: '/jiemian/pro/lists/12', - maintainers: ['nczitzk'], + maintainers: ['nczitzk', 'pseudoyu'], handler, description: `| [投资早晚报](https://www.jiemian.com/pro/lists/12.html) | [宏观晚 6 点](https://www.jiemian.com/pro/lists/20.html) | [打新早报](https://www.jiemian.com/pro/lists/21.html) | [盘前机会前瞻](https://www.jiemian.com/pro/lists/13.html) | [公告快评](https://www.jiemian.com/pro/lists/14.html) | [盘中必读](https://www.jiemian.com/pro/lists/15.html) | | ------------------------------------------------------- | -------------------------------------------------------- | ----------------------------------------------------- | --------------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | diff --git a/lib/routes/jinse/catalogue.ts b/lib/routes/jinse/catalogue.ts index 9f532467bc37..87349171eb16 100644 --- a/lib/routes/jinse/catalogue.ts +++ b/lib/routes/jinse/catalogue.ts @@ -34,7 +34,7 @@ export const route: Route = { supportScihub: false, }, name: '分类', - maintainers: ['nczitzk'], + maintainers: ['nczitzk', 'pseudoyu'], handler, description: `| 政策 | 行情 | DeFi | 矿业 | 以太坊 2.0 | | ------- | ------------ | ---- | ----- | ---------- | diff --git a/lib/routes/jinse/lives.ts b/lib/routes/jinse/lives.ts index 12c2070e9f8d..78ea8421835b 100644 --- a/lib/routes/jinse/lives.ts +++ b/lib/routes/jinse/lives.ts @@ -37,7 +37,7 @@ export const route: Route = { supportScihub: false, }, name: '快讯', - maintainers: ['nczitzk'], + maintainers: ['nczitzk', 'pseudoyu'], handler, description: `| 全部 | 精选 | 政策 | 数据 | NFT | 项目 | | ---- | ---- | ---- | ---- | --- | ---- | diff --git a/lib/routes/jinse/timeline.ts b/lib/routes/jinse/timeline.ts index 52271274fcee..237fd86a60d5 100644 --- a/lib/routes/jinse/timeline.ts +++ b/lib/routes/jinse/timeline.ts @@ -44,7 +44,7 @@ export const route: Route = { supportScihub: false, }, name: '首页', - maintainers: ['nczitzk'], + maintainers: ['nczitzk', 'pseudoyu'], handler, description: `| 头条 | 独家 | 铭文 | 产业 | 项目 | | ------ | ---- | ------- | ---------- | ---- | diff --git a/lib/routes/qiche365/recall.ts b/lib/routes/qiche365/recall.ts index d3f06ce8839e..f1f557650e9e 100644 --- a/lib/routes/qiche365/recall.ts +++ b/lib/routes/qiche365/recall.ts @@ -21,7 +21,7 @@ export const route: Route = { features: { antiCrawler: true, }, - maintainers: ['huanfe1'], + maintainers: ['huanfe1', 'pseudoyu'], handler, url: 'qiche365.org.cn/index/recall/index.html', }; diff --git a/lib/routes/qidian/author.tsx b/lib/routes/qidian/author.tsx index db22264f3f61..aa4b0e3cdd84 100644 --- a/lib/routes/qidian/author.tsx +++ b/lib/routes/qidian/author.tsx @@ -26,7 +26,7 @@ export const route: Route = { }, ], name: '作者', - maintainers: ['miles170'], + maintainers: ['miles170', 'pseudoyu'], handler, }; diff --git a/lib/routes/qidian/chapter.ts b/lib/routes/qidian/chapter.ts index 539fdbcf9120..87f33b11eea5 100644 --- a/lib/routes/qidian/chapter.ts +++ b/lib/routes/qidian/chapter.ts @@ -25,7 +25,7 @@ export const route: Route = { }, ], name: '作品章节', - maintainers: ['fuzy112'], + maintainers: ['fuzy112', 'pseudoyu'], handler, }; diff --git a/lib/routes/qidian/forum.ts b/lib/routes/qidian/forum.ts index 2e7a115ce2cf..03e1932d5f8b 100644 --- a/lib/routes/qidian/forum.ts +++ b/lib/routes/qidian/forum.ts @@ -26,7 +26,7 @@ export const route: Route = { }, ], name: '讨论区', - maintainers: ['fuzy112'], + maintainers: ['fuzy112', 'pseudoyu'], handler, }; diff --git a/lib/routes/qidian/free-next.ts b/lib/routes/qidian/free-next.ts index ce6e32777f3f..412caacf41df 100644 --- a/lib/routes/qidian/free-next.ts +++ b/lib/routes/qidian/free-next.ts @@ -27,7 +27,7 @@ export const route: Route = { }, ], name: '限时免费下期预告', - maintainers: ['LogicJake'], + maintainers: ['LogicJake', 'pseudoyu'], handler, url: 'www.qidian.com/free', }; diff --git a/lib/routes/qidian/free.ts b/lib/routes/qidian/free.ts index 6c729f46c0e3..a0d46f3c2b44 100644 --- a/lib/routes/qidian/free.ts +++ b/lib/routes/qidian/free.ts @@ -27,7 +27,7 @@ export const route: Route = { }, ], name: '限时免费', - maintainers: ['LogicJake'], + maintainers: ['LogicJake', 'pseudoyu'], handler, url: 'www.qidian.com/free', }; diff --git a/lib/routes/rfi/news.ts b/lib/routes/rfi/news.ts index 163ffd9fa181..cdc00ef35bfe 100644 --- a/lib/routes/rfi/news.ts +++ b/lib/routes/rfi/news.ts @@ -14,7 +14,7 @@ export const route: Route = { }, ], name: 'Generic News', - maintainers: ['nczitzk'], + maintainers: ['nczitzk', 'pseudoyu'], handler, url: 'rfi.fr', example: '/rfi', diff --git a/lib/routes/the/index.ts b/lib/routes/the/index.ts index c31a9feaa34b..cdc93f993690 100644 --- a/lib/routes/the/index.ts +++ b/lib/routes/the/index.ts @@ -249,7 +249,7 @@ export const route: Route = { path: '/:filter{.+}?', name: '分类', url: 'river.to', - maintainers: ['nczitzk'], + maintainers: ['nczitzk', 'pseudoyu'], handler, example: '/the', parameters: { filter: '过滤器,见下方描述' }, diff --git a/lib/routes/theinitium/app.ts b/lib/routes/theinitium/app.ts index 5aa27897358f..955e24a8e8da 100644 --- a/lib/routes/theinitium/app.ts +++ b/lib/routes/theinitium/app.ts @@ -69,7 +69,7 @@ export const route: Route = { supportScihub: false, }, name: 'App', - maintainers: ['quiniapiezoelectricity'], + maintainers: ['quiniapiezoelectricity', 'pseudoyu'], radar: [ { source: ['theinitium.com/latest/'], diff --git a/lib/routes/theinitium/author.ts b/lib/routes/theinitium/author.ts index d4e43d8a2162..3b8a5b1955c2 100644 --- a/lib/routes/theinitium/author.ts +++ b/lib/routes/theinitium/author.ts @@ -8,7 +8,7 @@ export const route: Route = { path: '/author/:type/:language?', name: '作者', url: 'theinitium.com', - maintainers: ['AgFlore'], + maintainers: ['AgFlore', 'pseudoyu'], parameters: { type: '作者 slug,可从作者主页 URL 中获取,如 `https://theinitium.com/author/initium-newsroom/`', language: '语言,简体`zh-hans`,繁体`zh-hant`,缺省为不限', diff --git a/lib/routes/theinitium/channel.ts b/lib/routes/theinitium/channel.ts index df91102c153e..1f1ab3bda9ae 100644 --- a/lib/routes/theinitium/channel.ts +++ b/lib/routes/theinitium/channel.ts @@ -8,7 +8,7 @@ export const route: Route = { path: '/channel/:type?/:language?', name: '栏目', url: 'theinitium.com', - maintainers: ['prnake', 'mintyfrankie'], + maintainers: ['prnake', 'mintyfrankie', 'pseudoyu'], parameters: { type: '栏目,缺省为最新(latest)', language: '语言,简体`zh-hans`,繁体`zh-hant`,缺省为不限', diff --git a/lib/routes/theinitium/follow.ts b/lib/routes/theinitium/follow.ts index ef56fef97c61..7f6245c848f4 100644 --- a/lib/routes/theinitium/follow.ts +++ b/lib/routes/theinitium/follow.ts @@ -3,7 +3,7 @@ import type { Route } from '@/types'; export const route: Route = { path: '/follow/articles/:language?', name: '个人订阅追踪动态(已停用)', - maintainers: ['AgFlore'], + maintainers: ['AgFlore', 'pseudoyu'], parameters: { language: '语言', }, diff --git a/lib/routes/theinitium/tags.ts b/lib/routes/theinitium/tags.ts index 37155f1983c7..e90cda35f248 100644 --- a/lib/routes/theinitium/tags.ts +++ b/lib/routes/theinitium/tags.ts @@ -8,7 +8,7 @@ export const route: Route = { path: '/tags/:type/:language?', name: '话题・标签', url: 'theinitium.com', - maintainers: ['AgFlore'], + maintainers: ['AgFlore', 'pseudoyu'], parameters: { type: '标签 slug,可从标签页 URL 中获取,如 `https://theinitium.com/tag/south-korea/` 则为 `south-korea`', language: '语言,简体`zh-hans`,繁体`zh-hant`,缺省为不限', diff --git a/lib/routes/udn/breaking-news.tsx b/lib/routes/udn/breaking-news.tsx index 871602aafced..4fa9fe943a1e 100644 --- a/lib/routes/udn/breaking-news.tsx +++ b/lib/routes/udn/breaking-news.tsx @@ -26,7 +26,7 @@ export const route: Route = { }, ], name: '即時新聞', - maintainers: ['miles170'], + maintainers: ['miles170', 'pseudoyu'], handler, description: `| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 11 | 12 | 13 | 99 | | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ------ | diff --git a/lib/routes/udn/global/index.ts b/lib/routes/udn/global/index.ts index 0c4a4a8845ca..8c346aee96da 100644 --- a/lib/routes/udn/global/index.ts +++ b/lib/routes/udn/global/index.ts @@ -25,7 +25,7 @@ export const route: Route = { }, ], name: '轉角國際 - 首頁', - maintainers: ['nczitzk'], + maintainers: ['nczitzk', 'pseudoyu'], handler, description: `| 首頁 | 編輯精選 | 熱門文章 | | ---- | -------- | -------- | diff --git a/lib/routes/udn/global/tag.ts b/lib/routes/udn/global/tag.ts index d5288f982975..a15b2f8fd601 100644 --- a/lib/routes/udn/global/tag.ts +++ b/lib/routes/udn/global/tag.ts @@ -25,7 +25,7 @@ export const route: Route = { }, ], name: '轉角國際 - 標籤', - maintainers: ['emdoe', 'nczitzk'], + maintainers: ['emdoe', 'nczitzk', 'pseudoyu'], handler, description: `| 過去 24 小時 | 鏡頭背後 | 深度專欄 | 重磅廣播 | | ------------ | -------- | -------- | -------- |`, From 0ef804c931f2bd43e95c8f91fb436bf7620828e9 Mon Sep 17 00:00:00 2001 From: pseudoyu Date: Sat, 28 Mar 2026 19:46:34 +0800 Subject: [PATCH 003/439] fix(route/nhentai): fetch failed issue --- lib/routes/nhentai/index.ts | 3 ++- lib/routes/nhentai/search.ts | 3 ++- lib/routes/nhentai/util.tsx | 39 +++++++++++++++++++++++++++--------- 3 files changed, 33 insertions(+), 12 deletions(-) diff --git a/lib/routes/nhentai/index.ts b/lib/routes/nhentai/index.ts index 043f0fe1078a..63f87caf56f3 100644 --- a/lib/routes/nhentai/index.ts +++ b/lib/routes/nhentai/index.ts @@ -15,6 +15,7 @@ export const route: Route = { mode: 'mode, `simple` to only show cover, `detail` to show all pages, `torrent` to include Magnet URI, need login, refer to [Route-specific Configurations](https://docs.rsshub.app/deploy/config#route-specific-configurations), default to `simple`', }, features: { + requirePuppeteer: false, antiCrawler: true, supportBT: true, nsfw: true, @@ -26,7 +27,7 @@ export const route: Route = { }, ], name: 'Filter', - maintainers: ['MegrezZhu', 'hoilc'], + maintainers: ['MegrezZhu', 'hoilc', 'pseudoyu'], handler, }; diff --git a/lib/routes/nhentai/search.ts b/lib/routes/nhentai/search.ts index 9d354e225ae1..a550356735ec 100644 --- a/lib/routes/nhentai/search.ts +++ b/lib/routes/nhentai/search.ts @@ -11,6 +11,7 @@ export const route: Route = { mode: 'mode, `simple` to only show cover, `detail` to show all pages, `torrent` to include Magnet URI, need login, refer to [Route-specific Configurations](https://docs.rsshub.app/deploy/config#route-specific-configurations), default to `simple`', }, features: { + requirePuppeteer: false, antiCrawler: true, supportBT: true, nsfw: true, @@ -22,7 +23,7 @@ export const route: Route = { }, ], name: 'Advanced Search', - maintainers: ['MegrezZhu', 'hoilc'], + maintainers: ['MegrezZhu', 'hoilc', 'pseudoyu'], handler, }; diff --git a/lib/routes/nhentai/util.tsx b/lib/routes/nhentai/util.tsx index 3201a4158eb1..16f84cd23507 100644 --- a/lib/routes/nhentai/util.tsx +++ b/lib/routes/nhentai/util.tsx @@ -6,6 +6,7 @@ import ConfigNotFoundError from '@/errors/types/config-not-found'; import got from '@/utils/got'; import ofetch from '@/utils/ofetch'; import { parseDate } from '@/utils/parse-date'; +import { getPuppeteerPage } from '@/utils/puppeteer'; const baseUrl = 'https://nhentai.net'; @@ -65,16 +66,32 @@ const getCookie = async (username, password, cache) => { return userTokenCookie; }; -const oFetch = (url, ...options) => - ofetch(url, { - ...options, - headers: { - host: 'nhentai.net', - }, - }); +// Reason: try ofetch first for speed, fall back to puppeteer on 403 (anti-bot protection) +const fetchPage = async (url: string): Promise => { + try { + return await ofetch(url); + } catch (error: unknown) { + const status = (error as { status?: number; statusCode?: number }).status ?? (error as { status?: number; statusCode?: number }).statusCode; + if (status === 403) { + const { page, destory } = await getPuppeteerPage(url, { + onBeforeLoad: async (page) => { + const allowedTypes = new Set(['document', 'script', 'xhr', 'fetch']); + await page.setRequestInterception(true); + page.on('request', (request) => { + allowedTypes.has(request.resourceType()) ? request.continue() : request.abort(); + }); + }, + }); + const content = await page.content(); + await destory(); + return content; + } + throw error; + } +}; const getSimple = async (url) => { - const data = await oFetch(url); + const data = await fetchPage(url); const $ = load(data); return $('.gallery a.cover') @@ -113,7 +130,9 @@ const parseSimpleDetail = ($ele) => { const getTorrent = async (simple, cookie) => { const { link } = simple; - const response = await oFetch(link + 'download', { followRedirect: false, responseType: 'buffer', headers: { Cookie: cookie } }); + const response = await ofetch(link + 'download', { + headers: { Cookie: cookie }, + }); return { ...simple, enclosure_url: response, @@ -123,7 +142,7 @@ const getTorrent = async (simple, cookie) => { const getDetail = async (simple) => { const { link } = simple; - const data = await oFetch(link); + const data = await fetchPage(link); const $ = load(data); const galleryImgs = $('.gallerythumb img') From cacb6e46c6d0ad09e065e6d768136895ff44f13e Mon Sep 17 00:00:00 2001 From: pseudoyu Date: Sat, 28 Mar 2026 20:30:40 +0800 Subject: [PATCH 004/439] feat(route/joneslanglasalle): add hk support --- lib/routes/joneslanglasalle/index.ts | 100 ++++++++++++++++++--------- 1 file changed, 66 insertions(+), 34 deletions(-) diff --git a/lib/routes/joneslanglasalle/index.ts b/lib/routes/joneslanglasalle/index.ts index da603c33e435..fb33b7003c08 100644 --- a/lib/routes/joneslanglasalle/index.ts +++ b/lib/routes/joneslanglasalle/index.ts @@ -7,19 +7,47 @@ import { parseDate } from '@/utils/parse-date'; const searchApiUrl = 'https://www.jll.com/api/search/template'; const subscriptionKey = '8f6a4de5b0144673acaa89b03aac035e'; -const rootUrl = 'https://www.joneslanglasalle.com.cn'; -// Reason: map old route language params to the API language code -const langMap: Record = { - zh: 'zh-cn', - en: 'en-GB', +interface LocaleConfig { + apiLang: string; + countries: string[]; + insightsUrl: string; + title: string; +} + +// Reason: each locale maps to a different country filter, API language code, and site URL +const localeMap: Record = { + zh: { + apiLang: 'zh-CN', + countries: ['China Mainland'], + insightsUrl: 'https://www.joneslanglasalle.com.cn/zh-cn/insights', + title: '洞察 - 仲量联行JLL', + }, + en: { + apiLang: 'en-GB', + countries: ['China Mainland'], + insightsUrl: 'https://www.joneslanglasalle.com.cn/en-cn/insights', + title: 'Insights - JLL China', + }, + 'zh-hk': { + apiLang: 'zh-HK', + countries: ['Hong Kong'], + insightsUrl: 'https://www.jll.com/zh-hk/insights', + title: '洞察 - 仲量聯行JLL 香港', + }, + 'en-hk': { + apiLang: 'en-GB', + countries: ['Hong Kong'], + insightsUrl: 'https://www.jll.com/en-hk/insights', + title: 'Insights - JLL Hong Kong', + }, }; export const handler = async (ctx: Context): Promise => { const { language: lang = 'zh' } = ctx.req.param(); const limit: number = Number.parseInt(ctx.req.query('limit') ?? '12', 10); - const apiLang = langMap[lang] || lang; + const locale = localeMap[lang] || localeMap.zh; // Reason: site rebuilt with search API; old HTML scraping no longer works. // Using the public search API (Elasticsearch-backed) with subscription key from page JS. @@ -34,8 +62,8 @@ export const handler = async (ctx: Context): Promise => { params: { size: limit, from: 0, - countries: ['China Mainland'], - language: apiLang, + countries: locale.countries, + language: locale.apiLang, sort_by_relevance: false, includeGlobalPeople: false, boostCountry: '', @@ -57,14 +85,12 @@ export const handler = async (ctx: Context): Promise => { }; }); - const targetUrl = lang === 'en' ? `${rootUrl}/en-cn/insights` : `${rootUrl}/zh-cn/insights`; - return { - title: lang === 'en' ? 'Insights - JLL' : '洞察 - 仲量联行JLL', - link: targetUrl, + title: locale.title, + link: locale.insightsUrl, item: items, allowEmpty: true, - language: apiLang, + language: locale.apiLang, }; }; @@ -76,20 +102,19 @@ export const route: Route = { handler, example: '/joneslanglasalle/en/trends-and-insights', parameters: { - language: 'Language, `zh` by default', + language: 'Language, `zh` for China Mainland Chinese, `en` for China Mainland English, `zh-hk` for Hong Kong Chinese, `en-hk` for Hong Kong English, `zh` by default', category: 'Category, `trends-and-insights` by default', }, description: `::: tip -If you subscribe to [Trends & Insights](https://www.joneslanglasalle.com.cn/en-cn/insights),where the URL is \`https://www.joneslanglasalle.com.cn/en-cn/insights\`, extract the part \`https://joneslanglasalle.com.cn/\` to the end. Use \`en\` and \`trends-and-insights\` as the parameters to fill in. Therefore, the route will be [\`/joneslanglasalle/en/trends-and-insights\`](https://rsshub.app/joneslanglasalle/en/trends-and-insights). +If you subscribe to [Trends & Insights (China)](https://www.joneslanglasalle.com.cn/en-cn/insights), use \`en\` as the language. For [Hong Kong Insights](https://www.jll.com/zh-hk/insights), use \`zh-hk\` as the language. ::: -| Category | ID | -| --------- | ----------------------------- | -| Latest | trends-and-insights | -| Workplace | trends-and-insights/workplace | -| Investor | trends-and-insights/investor | -| Cities | trends-and-insights/cities | -| Research | trends-and-insights/research | +| Region | Language | Parameter | +| -------------- | -------- | --------- | +| China Mainland | 中文 | zh | +| China Mainland | English | en | +| Hong Kong | 中文 | zh-hk | +| Hong Kong | English | en-hk | `, categories: ['new-media'], features: { @@ -113,14 +138,22 @@ If you subscribe to [Trends & Insights](https://www.joneslanglasalle.com.cn/en-c }, { title: 'Latest', - source: ['joneslanglasalle.com.cn/en/trends-and-insights', 'joneslanglasalle.com.cn/en-cn/insights'], + source: ['joneslanglasalle.com.cn/en-cn/insights'], target: '/en/trends-and-insights', }, { title: '房地产趋势与洞察', - source: ['joneslanglasalle.com.cn/zh/trends-and-insights', 'joneslanglasalle.com.cn/zh-cn/insights'], + source: ['joneslanglasalle.com.cn/zh-cn/insights'], target: '/zh/trends-and-insights', }, + { + source: ['jll.com/zh-hk/insights'], + target: '/zh-hk/trends-and-insights', + }, + { + source: ['jll.com/en-hk/insights'], + target: '/en-hk/trends-and-insights', + }, ], view: ViewType.Articles, @@ -132,20 +165,19 @@ If you subscribe to [Trends & Insights](https://www.joneslanglasalle.com.cn/en-c handler, example: '/joneslanglasalle/zh/trends-and-insights', parameters: { - language: '语言,默认为 `zh`,可在对应分类页 URL 中找到', - category: '分类,默认为 `trends-and-insights`,可在对应分类页 URL 中找到', + language: '语言,`zh` 为中国大陆中文,`en` 为中国大陆英文,`zh-hk` 为香港中文,`en-hk` 为香港英文,默认为 `zh`', + category: '分类,默认为 `trends-and-insights`', }, description: `::: tip -若订阅 [房地产趋势与洞察](https://www.joneslanglasalle.com.cn/zh-cn/insights),网址为 \`https://www.joneslanglasalle.com.cn/zh-cn/insights\`,请截取 \`https://joneslanglasalle.com.cn/\` 到末尾的部分 \`zh\` 和 \`trends-and-insights\` 作为 \`language\` 和 \`category\` 参数填入,此时目标路由为 [\`/joneslanglasalle/zh/trends-and-insights\`](https://rsshub.app/joneslanglasalle/zh/trends-and-insights)。 +若订阅 [中国大陆洞察](https://www.joneslanglasalle.com.cn/zh-cn/insights),语言参数为 \`zh\`。若订阅 [香港洞察](https://www.jll.com/zh-hk/insights),语言参数为 \`zh-hk\`。 ::: -| 分类名称 | 分类 ID | -| ---------- | ----------------------------- | -| 趋势及洞察 | trends-and-insights | -| 办公空间 | trends-and-insights/workplace | -| 投资者 | trends-and-insights/investor | -| 城市 | trends-and-insights/cities | -| 研究报告 | trends-and-insights/research | +| 地区 | 语言 | 参数 | +| ------ | ------- | ----- | +| 中国大陆 | 中文 | zh | +| 中国大陆 | English | en | +| 香港 | 中文 | zh-hk | +| 香港 | English | en-hk | `, }, }; From 7ab0d1eff48c6ec5d2eadf67415257901e4301c2 Mon Sep 17 00:00:00 2001 From: Tony Date: Sun, 29 Mar 2026 22:47:56 +0800 Subject: [PATCH 005/439] fix(ua): ensure header-generator and custom ua are effective with each other (#21546) * fix(ua): ensure header-generator and custom ua are effective with each other * fix(ua): review comment --- lib/app.test.ts | 4 +--- lib/config.test.ts | 6 ++++-- lib/config.ts | 4 +++- lib/utils/request-rewriter.test.ts | 6 +++--- lib/utils/request-rewriter/fetch.ts | 20 +++++++++++-------- lib/utils/request-rewriter/fetch.worker.ts | 23 +++++++++++++--------- lib/utils/request-rewriter/get.ts | 20 +++++++++++-------- 7 files changed, 49 insertions(+), 34 deletions(-) diff --git a/lib/app.test.ts b/lib/app.test.ts index 185cc6f620f1..88ba65138338 100644 --- a/lib/app.test.ts +++ b/lib/app.test.ts @@ -3,8 +3,6 @@ import { describe, expect, it, vi } from 'vitest'; import app from '@/app'; -const { config } = await import('@/config'); - describe('index', () => { it('serve index', async () => { const res = await app.request('/'); @@ -20,6 +18,6 @@ describe('request-rewriter', () => { // headers const headers: Headers = fetchSpy.mock.lastCall?.[0].headers; - expect(headers.get('user-agent')).toBe(config.ua); + expect(headers.get('user-agent')).toMatch(/Chrome/); }); }); diff --git a/lib/config.test.ts b/lib/config.test.ts index c5f79d68d1ea..02010cb5d417 100644 --- a/lib/config.test.ts +++ b/lib/config.test.ts @@ -84,9 +84,11 @@ describe('config', () => { delete process.env.NO_RANDOM_UA; }); - it('random ua', async () => { + it('default ua from preset', async () => { const { config } = await import('./config'); - expect(config.ua).not.toBe('RSSHub/1.0 (+http://github.com/DIYgod/RSSHub; like FeedFetcher-Google)'); + expect(config.ua).toContain('Chrome'); + expect(config.ua).toContain('Macintosh'); + expect(config.isDefaultUA).toBe(true); }); it('remote config', async () => { diff --git a/lib/config.ts b/lib/config.ts index 61e5204f8872..e03faac7b399 100644 --- a/lib/config.ts +++ b/lib/config.ts @@ -263,6 +263,7 @@ export type Config = { requestRetry: number; requestTimeout: number; ua: string; + isDefaultUA: boolean; trueUA: string; allowOrigin?: string; // cache @@ -744,7 +745,8 @@ const calculateValue = () => { listenInaddrAny: toBoolean(envs.LISTEN_INADDR_ANY, true), // 是否允许公网连接,取值 0 1 requestRetry: toInt(envs.REQUEST_RETRY, 2), // 请求失败重试次数 requestTimeout: toInt(envs.REQUEST_TIMEOUT, 30000), // Milliseconds to wait for the server to end the response before aborting the request - ua: envs.UA ?? (toBoolean(envs.NO_RANDOM_UA, false) ? TRUE_UA : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 15_6_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36'), + ua: envs.UA || (toBoolean(envs.NO_RANDOM_UA, false) ? TRUE_UA : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 15_6_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36'), + isDefaultUA: !envs.UA && !toBoolean(envs.NO_RANDOM_UA, false), trueUA: TRUE_UA, allowOrigin: envs.ALLOW_ORIGIN, // cache diff --git a/lib/utils/request-rewriter.test.ts b/lib/utils/request-rewriter.test.ts index 0407fbfef8e9..794868e9697e 100644 --- a/lib/utils/request-rewriter.test.ts +++ b/lib/utils/request-rewriter.test.ts @@ -91,7 +91,7 @@ describe('request-rewriter', () => { // headers const headers: Headers = fetchSpy.mock.lastCall?.[0].headers; - expect(headers.get('user-agent')).toBe(config.ua); + expect(headers.get('user-agent')).toMatch(/Chrome/); expect(headers.get('accept')).toBeDefined(); expect(headers.get('referer')).toBe('http://rsshub.test'); expect(headers.get('sec-ch-ua')).toBeDefined(); @@ -138,7 +138,7 @@ describe('request-rewriter', () => { // headers const headers: Headers = fetchSpy.mock.lastCall?.[0].headers; - expect(headers.get('user-agent')).toBe(config.ua); + expect(headers.get('user-agent')).toMatch(/Chrome/); expect(headers.get('accept')).toBeDefined(); expect(headers.get('referer')).toBe('http://rsshub.test'); expect(headers.get('sec-ch-ua')).toBeDefined(); @@ -237,7 +237,7 @@ describe('request-rewriter', () => { // headers const options = httpSpy.mock.lastCall?.[1]; const headers = options?.headers; - expect(headers?.['user-agent']).toBe(config.ua); + expect(headers?.['user-agent']).toMatch(/Chrome/); expect(headers?.accept).toBeDefined(); expect(headers?.referer).toBe('http://rsshub.test'); diff --git a/lib/utils/request-rewriter/fetch.ts b/lib/utils/request-rewriter/fetch.ts index 8acfe06e58fe..5d36e56f5700 100644 --- a/lib/utils/request-rewriter/fetch.ts +++ b/lib/utils/request-rewriter/fetch.ts @@ -35,17 +35,21 @@ const wrappedFetch: typeof undici.fetch = async (input: RequestInfo, init?: Requ logger.debug(`Outgoing request: ${request.method} ${request.url}`); - const generatedHeaders = generateHeaders(init?.headerGeneratorOptions); - // ua - if (!request.headers.has('user-agent')) { - request.headers.set('user-agent', config.ua); - } + if (config.isDefaultUA || init?.headerGeneratorOptions) { + const generatedHeaders = generateHeaders(init?.headerGeneratorOptions); - for (const header of HEADER_LIST) { - if (!request.headers.has(header) && generatedHeaders[header]) { - request.headers.set(header, generatedHeaders[header]); + if (!request.headers.get('user-agent')) { + request.headers.set('user-agent', generatedHeaders['user-agent']); } + + for (const header of HEADER_LIST) { + if (!request.headers.has(header) && generatedHeaders[header]) { + request.headers.set(header, generatedHeaders[header]); + } + } + } else if (!request.headers.get('user-agent')) { + request.headers.set('user-agent', config.ua); } // referer diff --git a/lib/utils/request-rewriter/fetch.worker.ts b/lib/utils/request-rewriter/fetch.worker.ts index 022e507e73ea..62c3846d2ba4 100644 --- a/lib/utils/request-rewriter/fetch.worker.ts +++ b/lib/utils/request-rewriter/fetch.worker.ts @@ -4,12 +4,13 @@ import { config } from '@/config'; import logger from '@/utils/logger'; // Static browser headers (Chrome-like fingerprint) +const STATIC_BROWSER_UA = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 15_6_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36'; const STATIC_BROWSER_HEADERS: Record = { accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8', 'accept-language': 'en-US,en;q=0.9', - 'sec-ch-ua': '"Chromium";v="122", "Not(A:Brand";v="24", "Google Chrome";v="122"', + 'sec-ch-ua': '"Google Chrome";v="139", "Chromium";v="139", "Not_A Brand";v="24"', 'sec-ch-ua-mobile': '?0', - 'sec-ch-ua-platform': '"Windows"', + 'sec-ch-ua-platform': '"macOS"', 'sec-fetch-dest': 'document', 'sec-fetch-mode': 'navigate', 'sec-fetch-site': 'none', @@ -25,15 +26,19 @@ const wrappedFetch = (input: RequestInfo | URL, init?: RequestInit): Promise(origin: T) => T = (origin) => options.headers = options.headers || {}; const headersLowerCaseKeys = new Set(Object.keys(options.headers).map((key) => key.toLowerCase())); - const generatedHeaders = generateHeaders(options.headerGeneratorOptions); - // ua - if (!headersLowerCaseKeys.has('user-agent')) { - options.headers['user-agent'] = config.ua; - } + if (config.isDefaultUA || options.headerGeneratorOptions) { + const generatedHeaders = generateHeaders(options.headerGeneratorOptions); - for (const header of HEADER_LIST) { - if (!headersLowerCaseKeys.has(header) && generatedHeaders[header]) { - options.headers[header] = generatedHeaders[header]; + if (!headersLowerCaseKeys.has('user-agent')) { + options.headers['user-agent'] = generatedHeaders['user-agent']; } + + for (const header of HEADER_LIST) { + if (!headersLowerCaseKeys.has(header) && generatedHeaders[header]) { + options.headers[header] = generatedHeaders[header]; + } + } + } else if (!headersLowerCaseKeys.has('user-agent')) { + options.headers['user-agent'] = config.ua; } // referer From 63633560d1a5f8c37cbbed551da80d497b3ab442 Mon Sep 17 00:00:00 2001 From: Tony Date: Sun, 29 Mar 2026 23:38:38 +0800 Subject: [PATCH 006/439] fix(route/typst): fix typst (#21547) --- lib/routes/typst/universe.ts | 117 ++++++++++++----------------------- 1 file changed, 41 insertions(+), 76 deletions(-) diff --git a/lib/routes/typst/universe.ts b/lib/routes/typst/universe.ts index bf432f71dcfd..7d34a8d0c30e 100644 --- a/lib/routes/typst/universe.ts +++ b/lib/routes/typst/universe.ts @@ -1,50 +1,42 @@ -import vm from 'node:vm'; - import { load } from 'cheerio'; -import markdownit from 'markdown-it'; import type { Route } from '@/types'; import ofetch from '@/utils/ofetch'; import { parseDate } from '@/utils/parse-date'; +function deserializeAstroProps(val: unknown): unknown { + if (Array.isArray(val)) { + const tag = val[0]; + if (tag === 0) { + return val.length > 1 ? deserializeAstroProps(val[1]) : undefined; + } + if (tag === 1) { + return val[1].map((item) => deserializeAstroProps(item)); + } + return val.map((item) => deserializeAstroProps(item)); + } + if (val && typeof val === 'object') { + const result = {}; + for (const [key, v] of Object.entries(val)) { + result[key] = deserializeAstroProps(v); + } + return result; + } + return val; +} + interface Package { name: string; version: string; - entrypoint: string; authors: string[]; license: string; description: string; - repository: string; keywords: string[]; - compiler: string; - exclude: string[]; - size: number; - readme: string; updatedAt: number; releasedAt: number; -} - -interface Context { - an: { exports: Package[] }; -} - -const GITHUBRAW_BASE = 'https://raw.githubusercontent.com'; -const PKG_GITHUB_BASE = `${GITHUBRAW_BASE}/typst/packages/main/packages/preview`; - -function fixImageSrc(src: string, env: Package) { - if (src.includes('://')) { - if (src.startsWith('https://typst.app/universe/package')) { - src = src.replaceAll('https://typst.app/universe/package', `${PKG_GITHUB_BASE}/${env.name}/${env.version}`); - } else if (src.startsWith('https://github.com/') && src.match(/\.(jpeg|jpg|gif|png|bmp|webp)$/gi)?.length) { - src = src.replace('https://github.com/', `${GITHUBRAW_BASE}/`); - } - } else { - const suffix = src.startsWith('/') ? '' : '/'; - const package_base = `${PKG_GITHUB_BASE}/${env.name}/${env.version}${suffix}`; - const url = new URL(src, package_base); - src = url.toString(); - } - return src; + hasRepo: boolean; + categories: string[]; + template: string | undefined; } export const route: Route = { @@ -60,51 +52,24 @@ export const route: Route = { name: 'Universe', maintainers: ['HPDell'], handler: async () => { - const targetUrl = 'https://typst.app/universe/search?kind=packages%2Ctemplates&packages=last-updated'; + const targetUrl = 'https://typst.app/universe/search'; const page = await ofetch(targetUrl); const $ = load(page); - const script = $('script') - .toArray() - .map((item) => item.attribs.src) - .find((item) => item && item.startsWith('/scripts/universe-search')); - const data: string = await ofetch(`https://typst.app${script}`, { - parseResponse: (txt) => txt, - }); - let packages = data.match(/(an.exports=[\S\s]+);var ([$A-Z_a-z][\w$]*)=new Intl.Collator/)?.[1]; - if (packages) { - packages = packages.slice(0, -2); - const context: Context = { an: { exports: [] } }; - vm.createContext(context); - vm.runInContext(packages, context, { - displayErrors: true, - }); - const md = markdownit('commonmark'); - const items = context.an.exports.toSorted((a, b) => a.updatedAt - b.updatedAt); - const groups = new Map(items.map((it) => [it.name, it])); - const pkgs = [...groups.values()].map((item) => { - const $ = load(md.render(item.readme)); - $('img').each((i, el) => { - const src = el.attribs.src; - el.attribs.src = fixImageSrc(src, item); - }); - return { - title: `${item.name} (${item.version}) | ${item.description}`, - link: `https://typst.app/universe/package/${item.name}`, - description: $.html(), - pubDate: parseDate(item.updatedAt, 'X'), - }; - }); - return { - title: 'Typst universe', - link: targetUrl, - item: pkgs, - }; - } else { - return { - title: 'Typst universe', - link: targetUrl, - item: [], - }; - } + const props = $('astro-island[component-export="SearchResults"]').attr('props'); + const searchResults = deserializeAstroProps(JSON.parse(props!)) as { packages: Package[] }; + const pkgs = searchResults.packages.map((item) => ({ + title: `${item.name} (${item.version}) | ${item.description}`, + link: `https://typst.app/universe/package/${item.name}`, + description: item.description, + pubDate: parseDate(item.updatedAt, 'X'), + category: item.keywords, + author: item.authors.join(', '), + })); + + return { + title: 'Typst Universe', + link: targetUrl, + item: pkgs, + }; }, }; From 80270d613bdeb8fedcf983db6807fc8c3bdd0c47 Mon Sep 17 00:00:00 2001 From: Tony Date: Mon, 30 Mar 2026 03:37:57 +0800 Subject: [PATCH 007/439] fix(workflow): clarify repository reference in duplicate issue lookup message --- .github/workflows/similar-issues.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/similar-issues.yml b/.github/workflows/similar-issues.yml index 5af8b404b1d1..95372a91e63f 100644 --- a/.github/workflows/similar-issues.yml +++ b/.github/workflows/similar-issues.yml @@ -50,7 +50,7 @@ jobs: Issue number: $ISSUE_NUMBER - Lookup this issue and search through existing issues (excluding #$ISSUE_NUMBER) in this repository to find any potential duplicates of this new issue. + Lookup this issue and search through existing issues (excluding #$ISSUE_NUMBER) in this repository (DIYgod/RSSHub) to find any potential duplicates of this new issue. Consider: 1. Similar titles or descriptions 2. Same error messages or symptoms From 6ae3f644bf82014856227e3b6fb1cb4ef681004b Mon Sep 17 00:00:00 2001 From: Tony Date: Mon, 30 Mar 2026 03:57:29 +0800 Subject: [PATCH 008/439] fix(route/kyodonews): update page selectors (#21549) * fix(route/kyodonews): update page selectors * Apply suggestion from @TonyRL * Update lib/routes/kyodonews/index.tsx --- lib/routes/kyodonews/index.tsx | 44 ++++++++++------------------------ 1 file changed, 13 insertions(+), 31 deletions(-) diff --git a/lib/routes/kyodonews/index.tsx b/lib/routes/kyodonews/index.tsx index 070d9d80b38f..71ca66a8847b 100644 --- a/lib/routes/kyodonews/index.tsx +++ b/lib/routes/kyodonews/index.tsx @@ -2,7 +2,6 @@ import { load } from 'cheerio'; import { raw } from 'hono/html'; import { renderToString } from 'hono/jsx/dom/server'; -import ConfigNotFoundError from '@/errors/types/config-not-found'; import InvalidParameterError from '@/errors/types/invalid-parameter'; import type { Route } from '@/types'; import cache from '@/utils/cache'; @@ -37,7 +36,7 @@ async function handler(ctx) { // raise error for invalid languages if (!['china', 'tchina'].includes(language)) { - throw new ConfigNotFoundError('Invalid language'); + throw new InvalidParameterError('Invalid language'); } const rootUrl = `https://${language}.kyodonews.net`; @@ -73,11 +72,11 @@ async function handler(ctx) { title = $('head > title').text(); description = $('meta[name="description"]').attr('content'); image = resolveRelativeLink($('head > link[rel="apple-touch-icon"]').attr('href'), rootUrl) || image; - items = $('div.sec-latest > ul > li') + items = $('.m-article-wrap:first-of-type .m-article-item__link') .toArray() .map((item) => { item = $(item); - const link = item.find('a').attr('href'); + const link = item.attr('href'); return { link: resolveRelativeLink(link, rootUrl), }; @@ -94,18 +93,7 @@ async function handler(ctx) { item.author = $('meta[name="author"]').attr('content'); // add main pic - const mainPicArea = $('div.mainpic'); - mainPicArea.find('div').each((_, elem) => { - elem = $(elem); - elem.css('text-align', 'center'); - }); - // moving `data-src` to `src` - mainPicArea.find('img').each((_, img) => { - img = $(img); - img.attr('src', img.attr('data-src')); - img.removeAttr('data-src'); - img.wrap('
'); - }); + const mainPicArea = $('.article-header-img'); let mainPic = mainPicArea.html(); mainPic = mainPic ? mainPic.trim() : ''; @@ -116,28 +104,22 @@ async function handler(ctx) { // render description item.description = renderToString( <> - {mainPic ? ( - <> - {raw(mainPic)} -
-
- - ) : null} + {mainPic ? raw(mainPic) : null} {articleBody ? raw(articleBody) : null} ); - const ldJson = $('script[type="application/ld+json"]').html(); - const pubDate_match = ldJson && ldJson.match(/"datePublished":"([\d\s-:]*?)"/); - const updated_match = ldJson && ldJson.match(/"dateModified":"([\d\s-:]*?)"/); - if (pubDate_match) { - item.pubDate = timezone(parseDate(pubDate_match[1]), 9); + const ldJson = JSON.parse($('script[type="application/ld+json"]').text() || '[]').find((obj) => obj['@type'] === 'NewsArticle'); + const pubDateMatch = ldJson && ldJson.datePublished; + const updatedMatch = ldJson && ldJson.dateModified; + if (pubDateMatch) { + item.pubDate = timezone(parseDate(pubDateMatch), 9); } - if (updated_match) { - item.updated = timezone(parseDate(updated_match[1]), 9); + if (updatedMatch) { + item.updated = timezone(parseDate(updatedMatch), 9); } - item.category = $('p.credit > a') + item.category = $('.article-header-cate__link') .toArray() .map((a) => $(a).text()); return item; From 482ad1cb803b97cfcc139c6a2578146d0b47f63b Mon Sep 17 00:00:00 2001 From: Luke D Williams Date: Sun, 29 Mar 2026 16:44:45 -0500 Subject: [PATCH 009/439] feat(route/locals): add content feed (#21542) * feat(route/locals): add authenticated feed route Add a Locals route with auth_token-based feed fetching, classic-to-beta URL fallback, and support for community, home, content, and content_plus feed views. Parse feed pages into RSS items using shared post selectors while surfacing clear errors when access is unavailable. * feat(route/locals): add content feed Add a Locals content route that uses the authenticated session-backed server functions instead of brittle page scraping. Support tier filters and media-type filters so paid and content-library posts can be subscribed to reliably. * fix(route/locals): include content thumbnails Use Locals preview and audio image fields so content and podcast entries expose thumbnails consistently. Render the image into item descriptions and standard image fields for better feed reader compatibility. * fix(route/locals): include regular content posts Keep Locals content feeds from dropping regular text and photo posts that arrive as no_content entries with real body content. Preserve image handling while leaving plus feeds unchanged when the source only returns five content-plus items. * fix(route/locals): prefer content poster images Prefer Locals poster-style preview images over raw first-frame captures when both are available. Keep the raw frame fallback for posts where the API does not expose a styled poster image. * fix(route/locals): resolve runtime action ids Derive the Locals feed action id from the current runtime assets instead of hardcoding build-specific server function ids. Tighten option validation with own-key checks and align the radar source with supported matching rules. * fix(config): sort locals session settings Move the Locals session env key and config blocks into alphabetical order so the route-specific configuration matches the repository's config layout rules. * fix(config): reorder locals session settings * fix(route/locals): simplify route and request handling * fix(config): restore locals config ordering * fix(config): sort security key entry * fix(route/locals): adjust message clarity of path parameter necessity --- lib/config.ts | 9 +- lib/routes/locals/feed.ts | 436 +++++++++++++++++++++++++++++++++ lib/routes/locals/namespace.ts | 7 + 3 files changed, 451 insertions(+), 1 deletion(-) create mode 100644 lib/routes/locals/feed.ts create mode 100644 lib/routes/locals/namespace.ts diff --git a/lib/config.ts b/lib/config.ts index e03faac7b399..bd1e430bf7d2 100644 --- a/lib/config.ts +++ b/lib/config.ts @@ -131,7 +131,7 @@ type ConfigEnvKeys = | 'JUMEILI_COOKIE' | 'KEYLOL_COOKIE' | 'LASTFM_API_KEY' - | 'SECURITY_KEY' + | 'LOCALS_SESSION' | 'LOFTER_COOKIE' | 'LORIENTLEJOUR_TOKEN' | 'LORIENTLEJOUR_USERNAME' @@ -182,6 +182,7 @@ type ConfigEnvKeys = | 'SCIHUB_HOST' | 'SDO_FF14RISINGSTONES' | 'SDO_UA' + | 'SECURITY_KEY' | 'SIS001_BASE_URL' | 'SKEB_BEARER_TOKEN' | 'SORRYCC_COOKIES' @@ -470,6 +471,9 @@ export type Config = { lightnovel: { cookie?: string; }; + locals: { + session?: string; + }; lofter: { cookies?: string; }; @@ -959,6 +963,9 @@ const calculateValue = () => { lightnovel: { cookie: envs.SECURITY_KEY, }, + locals: { + session: envs.LOCALS_SESSION, + }, lofter: { cookies: envs.LOFTER_COOKIE, }, diff --git a/lib/routes/locals/feed.ts b/lib/routes/locals/feed.ts new file mode 100644 index 000000000000..c0e428c90be4 --- /dev/null +++ b/lib/routes/locals/feed.ts @@ -0,0 +1,436 @@ +import vm from 'node:vm'; + +import { config } from '@/config'; +import ConfigNotFoundError from '@/errors/types/config-not-found'; +import type { DataItem, Route } from '@/types'; +import cache from '@/utils/cache'; +import ofetch from '@/utils/ofetch'; +import { parseDate } from '@/utils/parse-date'; + +const contentFilterMap = { + nonplus: 'regular_content', + plus: 'content_plus', +} as const; + +const contentTypeMap = { + article: 'article', + audio: 'audio', + document: 'document', + live: 'live_stream', + live_stream: 'live_stream', + pdf: 'document', + podcast: 'audio', + podcasts: 'audio', + video: 'video', +} as const; + +const rootUrl = 'https://locals.com'; + +type ContentFilter = keyof typeof contentFilterMap; +type ContentType = keyof typeof contentTypeMap; + +type LocalsPost = { + audios?: Array<{ + preview?: string; + }>; + author_name?: string; + author_username?: string; + content_plus?: { + enabled?: boolean; + }; + content_type?: string; + photos?: Array<{ + sizes?: { + full?: { + url?: string; + }; + thumb?: { + url?: string; + }; + }; + }>; + post_date?: string; + published?: string; + previews?: Array<{ + first_frame_url?: string; + url?: string; + }>; + share_url?: string; + subtitle?: string; + text?: string; + title?: string; + is_content?: boolean; + videos?: Array<{ + preview?: string; + source?: string; + }>; +}; + +type LocalsResponse = { + code: string; + data: LocalsPost[]; +}; + +type LocalsCommunityInfo = { + description?: string; + design?: { + image?: { + big?: string; + thumb?: string; + }; + }; + hashtag: string; + id: number; + title: string; +}; + +export const route: Route = { + path: '/content/:community/:option1?/:option2?', + categories: ['social-media'], + example: '/locals/content/mattfradd/video', + parameters: { + community: 'Community slug from `locals.com/:community/feed?mode=content`', + option1: 'Filter or content type. Filters: `plus`, `nonplus`. Content types: `video`, `live`, `audio`, `podcast`, `article`, `document`, `pdf`', + option2: 'Content type when `option1` is a filter', + }, + description: 'Fetches the Locals content library with an authenticated session cookie. By default it merges regular content and content+ posts, and it can be filtered by access tier and media type.', + features: { + requireConfig: [ + { + name: 'LOCALS_SESSION', + description: 'The value of the `locals2.v3.session` cookie after logging in to Locals', + }, + ], + requirePuppeteer: false, + antiCrawler: true, + supportBT: false, + supportPodcast: false, + supportScihub: false, + }, + radar: [ + { + source: ['locals.com/:community/feed'], + target: '/content/:community', + }, + ], + name: 'Content Feed', + maintainers: ['luckycold'], + handler, +}; + +function getCookieHeader(session: string) { + return [`locals2.v3.session=${session}`, 'locals.preferLocals2=false', 'locals2.v3.locale.actual=en-us%2Cen', 'locals2.v3.locale.inferred=en'].join('; '); +} + +function getRequestHeaders(session: string) { + return { + Cookie: getCookieHeader(session), + }; +} + +function extractAssetUrls(html: string) { + return [...new Set([...html.matchAll(/\/_build\/assets\/[^"'\s>]+\.js/g)].map((match) => match[0]))]; +} + +function extractFeedActionId(asset: string) { + const symbol = asset.match(/getFeedPosts:([A-Za-z_$][\w$]*)/)?.[1]; + if (!symbol) { + return; + } + + const match = asset.match(new RegExp(`${symbol}=s\\(\\(\\)=>\\{\\},"([^"]+)","([^"]+)"\\)`)); + if (!match) { + return; + } + + return `${match[1]}#${match[2]}`; +} + +function createRequestBody(value: unknown) { + let nextIndex = 0; + + const encode = (input: unknown): object => { + if (typeof input === 'number') { + return { t: 0, s: input }; + } + + if (typeof input === 'string') { + return { t: 1, s: input }; + } + + if (Array.isArray(input)) { + const i = nextIndex++; + return { + a: input.map((item) => encode(item)), + i, + l: input.length, + o: 0, + t: 9, + }; + } + + if (input && typeof input === 'object') { + const i = nextIndex++; + const entries = Object.entries(input).filter(([, item]) => item !== undefined); + + return { + i, + o: 0, + p: { + k: entries.map(([key]) => key), + s: entries.length, + v: entries.map(([, item]) => encode(item)), + }, + t: 10, + }; + } + + throw new Error('Unsupported Locals request payload.'); + }; + + return JSON.stringify({ + f: 31, + m: [], + t: encode(value), + }); +} + +function parseUnknownResponse(body: string, instanceId: string): T { + const sandbox = { + $R: {}, + self: {}, + } as { + $R: Record; + self: { + $R?: Record; + }; + }; + + sandbox.self.$R = sandbox.$R; + + vm.createContext(sandbox); + vm.runInContext(body, sandbox, { timeout: 5000 }); + + const value = sandbox.self.$R?.[instanceId]?.[0] as T | undefined; + if (!value) { + throw new Error('Unable to decode the Locals server response.'); + } + + return value; +} + +function extractCommunityInfo(html: string, community: string) { + const markerIndex = html.indexOf(`hashtag:"${community}"`); + if (markerIndex === -1) { + throw new Error('Unable to resolve the Locals community metadata.'); + } + + const context = html.slice(Math.max(0, markerIndex - 200), markerIndex + 1200); + const idMatch = context.match(/id:(\d+)/); + const titleMatch = context.match(/title:"([^"]+)"/); + const descriptionMatch = context.match(/description:"([^"]*)"/); + const imageMatch = context.match(/image:\$R\[\d+\]=\{big:"([^"]*)",thumb:"([^"]*)"/); + + if (!idMatch || !titleMatch) { + throw new Error('Unable to resolve the Locals community metadata.'); + } + + return { + description: descriptionMatch?.[1], + design: { + image: { + big: imageMatch?.[1] || undefined, + thumb: imageMatch?.[2] || undefined, + }, + }, + hashtag: community, + id: Number(idMatch[1]), + title: titleMatch[1], + } satisfies LocalsCommunityInfo; +} + +function fetchContentPage(community: string, session: string) { + return cache.tryGet(`locals:content-page:${community}`, () => ofetch(`${rootUrl}/${community}/feed?mode=content`, { headers: getRequestHeaders(session) })); +} + +function resolveActionIds(community: string, session: string) { + return cache.tryGet(`locals:action-ids:${community}`, async () => { + const html = await fetchContentPage(community, session); + const serverApiAsset = extractAssetUrls(html).find((assetUrl) => assetUrl.includes('/serverApi-')); + if (!serverApiAsset) { + throw new Error('Unable to locate the current Locals serverApi asset.'); + } + + const assetContent = await ofetch(new URL(serverApiAsset, rootUrl).href, { + headers: getRequestHeaders(session), + }); + const serverId = extractFeedActionId(assetContent); + + if (!serverId) { + throw new Error('Unable to discover the current Locals feed action id.'); + } + + return serverId; + }); +} + +function getImage(post: LocalsPost) { + return post.photos?.[0]?.sizes?.full?.url || post.photos?.[0]?.sizes?.thumb?.url || post.previews?.[0]?.url || post.previews?.[0]?.first_frame_url || post.videos?.[0]?.preview || post.audios?.[0]?.preview; +} + +function getTitle(post: LocalsPost) { + const textFallback = post.text + ?.replaceAll(/<[^>]+>/g, '\n') + .split('\n') + .map((line) => line.trim()) + .find(Boolean); + return post.title || post.subtitle || textFallback || post.share_url || 'Locals post'; +} + +function renderDescription(image: string | undefined, description: string | undefined) { + if (image && description) { + return `

${description}`; + } + + if (image) { + return `

`; + } + + return description; +} + +function mapPostToItem(post: LocalsPost): DataItem | null { + const image = getImage(post); + const hasBodyContent = Boolean(post.text || image || post.photos?.length || post.videos?.length || post.audios?.length); + + if (!post.share_url || (!post.is_content && post.content_type === 'no_content' && !hasBodyContent)) { + return null; + } + + const contentType = post.content_type && post.content_type !== 'no_content' ? [post.content_type] : []; + const accessType = post.content_plus?.enabled ? ['content_plus'] : ['content']; + + return { + author: post.author_name || post.author_username, + category: [...accessType, ...contentType], + description: renderDescription(image, post.text), + image, + itunes_item_image: image, + link: post.share_url, + pubDate: post.published ? parseDate(post.published) : post.post_date ? parseDate(post.post_date) : undefined, + title: getTitle(post), + }; +} + +function parseOptions(option1: string | undefined, option2: string | undefined) { + const values = [option1, option2].filter(Boolean) as string[]; + const hasFilter = (value: string): value is ContentFilter => Object.hasOwn(contentFilterMap, value); + const hasContentType = (value: string): value is ContentType => Object.hasOwn(contentTypeMap, value); + const filter = values.find((value) => hasFilter(value)); + const contentType = values.find((value) => hasContentType(value)); + const unknown = values.find((value) => !hasFilter(value) && !hasContentType(value)); + + if (unknown) { + throw new Error('Invalid Locals content route option. Supported filters are `plus` and `nonplus`, and supported content types are `video`, `live`, `audio`, `podcast`, `article`, `document`, and `pdf`.'); + } + + return { + contentType: contentType ? contentTypeMap[contentType] : undefined, + filter, + }; +} + +async function requestServerFunction(session: string, id: string, key: string, args: unknown[]) { + const response = await ofetch.raw(`${rootUrl}/_server`, { + body: createRequestBody(args), + headers: { + 'Content-Type': 'application/json', + ...getRequestHeaders(session), + 'X-Server-Id': id, + 'X-Server-Instance': key, + }, + method: 'POST', + responseType: 'text', + }); + + if (!response.ok) { + throw new Error(`Unable to access the Locals server function (${response.status}).`); + } + + return parseUnknownResponse(response._data, key); +} + +function fetchCommunityInfo(community: string, session: string) { + return cache.tryGet(`locals:community:${community}`, async () => { + const html = await fetchContentPage(community, session); + return extractCommunityInfo(html, community); + }); +} + +async function fetchFeedData(communityId: number, community: string, session: string, serverId: string, filter: ContentFilter | undefined, contentType: string | undefined) { + const requestFilter = filter ? contentFilterMap[filter] : undefined; + const filters = requestFilter ? [requestFilter] : Object.values(contentFilterMap); + + const responses = await Promise.all( + filters.map((currentFilter) => + cache.tryGet(`locals:data:${communityId}:${community}:${currentFilter}:${contentType ?? 'all'}`, () => + requestServerFunction(session, serverId, `server-fn:rsshub-${community}-${currentFilter}-${contentType ?? 'all'}`, [ + { + communityId, + contentType, + filter: currentFilter, + order: 'recent', + page: 1, + pageSize: 20, + }, + ]) + ) + ) + ); + + const items = new Map(); + + for (const response of responses) { + for (const post of response.data) { + const item = mapPostToItem(post); + if (!item?.link) { + continue; + } + + if (!items.has(item.link)) { + items.set(item.link, item); + continue; + } + + const existing = items.get(item.link); + if (existing) { + existing.category = [...new Set([...(existing.category ?? []), ...(item.category ?? [])])]; + existing.description = existing.description || item.description; + existing.itunes_item_image = existing.itunes_item_image || item.itunes_item_image; + } + } + } + + return [...items.values()]; +} + +async function handler(ctx) { + const { community, option1, option2 } = ctx.req.param(); + + if (!config.locals?.session) { + throw new ConfigNotFoundError('Locals RSS is disabled due to the lack of relevant config'); + } + + const { contentType, filter } = parseOptions(option1, option2); + const serverId = await resolveActionIds(community, config.locals.session); + const communityInfo = await fetchCommunityInfo(community, config.locals.session); + const items = await fetchFeedData(communityInfo.id, community, config.locals.session, serverId, filter, contentType); + + return { + description: `Locals content feed for ${communityInfo.title}${filter ? ` (${filter})` : ''}${contentType ? ` (${contentType})` : ''}`, + image: communityInfo.design?.image?.big || communityInfo.design?.image?.thumb, + item: items, + link: `https://locals.com/${community}/feed?mode=content${contentType ? `&content=${contentType}` : ''}`, + title: `Locals - ${communityInfo.title}`, + }; +} diff --git a/lib/routes/locals/namespace.ts b/lib/routes/locals/namespace.ts new file mode 100644 index 000000000000..d40c25890ed5 --- /dev/null +++ b/lib/routes/locals/namespace.ts @@ -0,0 +1,7 @@ +import type { Namespace } from '@/types'; + +export const namespace: Namespace = { + name: 'Locals', + url: 'locals.com', + lang: 'en', +}; From bfe04d8a4b72c215b2218f3e5b4bee3b6cb8e45a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Mar 2026 08:20:20 +0000 Subject: [PATCH 010/439] chore(deps-dev): bump tsdown from 0.21.5 to 0.21.7 (#21553) Bumps [tsdown](https://github.com/rolldown/tsdown) from 0.21.5 to 0.21.7. - [Release notes](https://github.com/rolldown/tsdown/releases) - [Commits](https://github.com/rolldown/tsdown/compare/v0.21.5...v0.21.7) --- updated-dependencies: - dependency-name: tsdown dependency-version: 0.21.7 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 282 +++++++++++-------------------------------------- 2 files changed, 63 insertions(+), 221 deletions(-) diff --git a/package.json b/package.json index d09907cfcaeb..e7ef2a3fb4ab 100644 --- a/package.json +++ b/package.json @@ -196,7 +196,7 @@ "oxlint": "1.57.0", "oxlint-tsgolint": "0.17.4", "remark-parse": "11.0.0", - "tsdown": "0.21.5", + "tsdown": "0.21.7", "typescript": "5.9.3", "unified": "11.0.5", "vite-tsconfig-paths": "6.1.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 42c7f6e470b2..30c49cf4ea82 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -447,8 +447,8 @@ importers: specifier: 11.0.0 version: 11.0.0 tsdown: - specifier: 0.21.5 - version: 0.21.5(synckit@0.11.12)(typescript@5.9.3) + specifier: 0.21.7 + version: 0.21.7(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(synckit@0.11.12)(typescript@5.9.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -508,8 +508,8 @@ packages: resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} engines: {node: '>=6.9.0'} - '@babel/generator@8.0.0-rc.2': - resolution: {integrity: sha512-oCQ1IKPwkzCeJzAPb7Fv8rQ9k5+1sG8mf2uoHiMInPYvkRfrDJxbTIbH51U+jstlkghus0vAi3EBvkfvEsYNLQ==} + '@babel/generator@8.0.0-rc.3': + resolution: {integrity: sha512-em37/13/nR320G4jab/nIIHZgc2Wz2y/D39lxnTyxB4/D/omPQncl/lSdlnJY1OhQcRGugTSIF2l/69o31C9dA==} engines: {node: ^20.19.0 || >=22.12.0} '@babel/helper-string-parser@7.27.1': @@ -524,8 +524,8 @@ packages: resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@8.0.0-rc.2': - resolution: {integrity: sha512-xExUBkuXWJjVuIbO7z6q7/BA9bgfJDEhVL0ggrggLMbg0IzCUWGT1hZGE8qUH7Il7/RD/a6cZ3AAFrrlp1LF/A==} + '@babel/helper-validator-identifier@8.0.0-rc.3': + resolution: {integrity: sha512-8AWCJ2VJJyDFlGBep5GpaaQ9AAaE/FjAcrqI7jyssYhtL7WGV0DOKpJsQqM037xDbpRLHXsY8TwU7zDma7coOw==} engines: {node: ^20.19.0 || >=22.12.0} '@babel/parser@7.29.2': @@ -533,8 +533,8 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - '@babel/parser@8.0.0-rc.2': - resolution: {integrity: sha512-29AhEtcq4x8Dp3T72qvUMZHx0OMXCj4Jy/TEReQa+KWLln524Cj1fWb3QFi0l/xSpptQBR6y9RNEXuxpFvwiUQ==} + '@babel/parser@8.0.0-rc.3': + resolution: {integrity: sha512-B20dvP3MfNc/XS5KKCHy/oyWl5IA6Cn9YjXRdDlCjNmUFrjvLXMNUfQq/QUy9fnG2gYkKKcrto2YaF9B32ToOQ==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true @@ -546,8 +546,8 @@ packages: resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} engines: {node: '>=6.9.0'} - '@babel/types@8.0.0-rc.2': - resolution: {integrity: sha512-91gAaWRznDwSX4E2tZ1YjBuIfnQVOFDCQ2r0Toby0gu4XEbyF623kXLMA8d4ZbCu+fINcrudkmEcwSUHgDDkNw==} + '@babel/types@8.0.0-rc.3': + resolution: {integrity: sha512-mOm5ZrYmphGfqVWoH5YYMTITb3cDXsFgmvFlvkvWDMsR9X8RFnt7a0Wb6yNIdoFsiMO9WjYLq+U/FMtqIYAF8Q==} engines: {node: ^20.19.0 || >=22.12.0} '@bbob/core@4.3.1': @@ -1382,8 +1382,11 @@ packages: '@napi-rs/wasm-runtime@0.2.12': resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} - '@napi-rs/wasm-runtime@1.1.1': - resolution: {integrity: sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A==} + '@napi-rs/wasm-runtime@1.1.2': + resolution: {integrity: sha512-sNXv5oLJ7ob93xkZ1XnxisYhGYXfaG9f65/ZgYuAu3qt7b3NadcOEhLvx28hv31PgX8SZJRYrAIPQilQmFpLVw==} + peerDependencies: + '@emnapi/core': ^1.7.1 + '@emnapi/runtime': ^1.7.1 '@noble/hashes@2.0.1': resolution: {integrity: sha512-XlOlEbQcE9fmuXxrVTXCTlG2nlRXa9Rj3rr5Ue/+tX+nmkgbX720YHh0VR3hBF9xDvwnb8D2shVGOwNx+ulArw==} @@ -2111,73 +2114,36 @@ packages: '@quansync/fs@1.0.0': resolution: {integrity: sha512-4TJ3DFtlf1L5LDMaM6CanJ/0lckGNtJcMjQ1NAV6zDmA0tEHKZtxNKin8EgPaVX1YzljbxckyT2tJrpQKAtngQ==} - '@rolldown/binding-android-arm64@1.0.0-rc.11': - resolution: {integrity: sha512-SJ+/g+xNnOh6NqYxD0V3uVN4W3VfnrGsC9/hoglicgTNfABFG9JjISvkkU0dNY84MNHLWyOgxP9v9Y9pX4S7+A==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [android] - '@rolldown/binding-android-arm64@1.0.0-rc.12': resolution: {integrity: sha512-pv1y2Fv0JybcykuiiD3qBOBdz6RteYojRFY1d+b95WVuzx211CRh+ytI/+9iVyWQ6koTh5dawe4S/yRfOFjgaA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@rolldown/binding-darwin-arm64@1.0.0-rc.11': - resolution: {integrity: sha512-7WQgR8SfOPwmDZGFkThUvsmd/nwAWv91oCO4I5LS7RKrssPZmOt7jONN0cW17ydGC1n/+puol1IpoieKqQidmg==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [darwin] - '@rolldown/binding-darwin-arm64@1.0.0-rc.12': resolution: {integrity: sha512-cFYr6zTG/3PXXF3pUO+umXxt1wkRK/0AYT8lDwuqvRC+LuKYWSAQAQZjCWDQpAH172ZV6ieYrNnFzVVcnSflAg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.0-rc.11': - resolution: {integrity: sha512-39Ks6UvIHq4rEogIfQBoBRusj0Q0nPVWIvqmwBLaT6aqQGIakHdESBVOPRRLacy4WwUPIx4ZKzfZ9PMW+IeyUQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [darwin] - '@rolldown/binding-darwin-x64@1.0.0-rc.12': resolution: {integrity: sha512-ZCsYknnHzeXYps0lGBz8JrF37GpE9bFVefrlmDrAQhOEi4IOIlcoU1+FwHEtyXGx2VkYAvhu7dyBf75EJQffBw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.0.0-rc.11': - resolution: {integrity: sha512-jfsm0ZHfhiqrvWjJAmzsqiIFPz5e7mAoCOPBNTcNgkiid/LaFKiq92+0ojH+nmJmKYkre4t71BWXUZDNp7vsag==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [freebsd] - '@rolldown/binding-freebsd-x64@1.0.0-rc.12': resolution: {integrity: sha512-dMLeprcVsyJsKolRXyoTH3NL6qtsT0Y2xeuEA8WQJquWFXkEC4bcu1rLZZSnZRMtAqwtrF/Ib9Ddtpa/Gkge9Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.11': - resolution: {integrity: sha512-zjQaUtSyq1nVe3nxmlSCuR96T1LPlpvmJ0SZy0WJFEsV4kFbXcq2u68L4E6O0XeFj4aex9bEauqjW8UQBeAvfQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm] - os: [linux] - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.12': resolution: {integrity: sha512-YqWjAgGC/9M1lz3GR1r1rP79nMgo3mQiiA+Hfo+pvKFK1fAJ1bCi0ZQVh8noOqNacuY1qIcfyVfP6HoyBRZ85Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.11': - resolution: {integrity: sha512-WMW1yE6IOnehTcFE9eipFkm3XN63zypWlrJQ2iF7NrQ9b2LDRjumFoOGJE8RJJTJCTBAdmLMnJ8uVitACUUo1Q==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [linux] - libc: [glibc] - '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.12': resolution: {integrity: sha512-/I5AS4cIroLpslsmzXfwbe5OmWvSsrFuEw3mwvbQ1kDxJ822hFHIx+vsN/TAzNVyepI/j/GSzrtCIwQPeKCLIg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2185,13 +2151,6 @@ packages: os: [linux] libc: [glibc] - '@rolldown/binding-linux-arm64-musl@1.0.0-rc.11': - resolution: {integrity: sha512-jfndI9tsfm4APzjNt6QdBkYwre5lRPUgHeDHoI7ydKUuJvz3lZeCfMsI56BZj+7BYqiKsJm7cfd/6KYV7ubrBg==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [linux] - libc: [musl] - '@rolldown/binding-linux-arm64-musl@1.0.0-rc.12': resolution: {integrity: sha512-V6/wZztnBqlx5hJQqNWwFdxIKN0m38p8Jas+VoSfgH54HSj9tKTt1dZvG6JRHcjh6D7TvrJPWFGaY9UBVOaWPw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2199,13 +2158,6 @@ packages: os: [linux] libc: [musl] - '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.11': - resolution: {integrity: sha512-ZlFgw46NOAGMgcdvdYwAGu2Q+SLFA9LzbJLW+iyMOJyhj5wk6P3KEE9Gct4xWwSzFoPI7JCdYmYMzVtlgQ+zfw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [ppc64] - os: [linux] - libc: [glibc] - '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.12': resolution: {integrity: sha512-AP3E9BpcUYliZCxa3w5Kwj9OtEVDYK6sVoUzy4vTOJsjPOgdaJZKFmN4oOlX0Wp0RPV2ETfmIra9x1xuayFB7g==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2213,13 +2165,6 @@ packages: os: [linux] libc: [glibc] - '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.11': - resolution: {integrity: sha512-hIOYmuT6ofM4K04XAZd3OzMySEO4K0/nc9+jmNcxNAxRi6c5UWpqfw3KMFV4MVFWL+jQsSh+bGw2VqmaPMTLyw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [s390x] - os: [linux] - libc: [glibc] - '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.12': resolution: {integrity: sha512-nWwpvUSPkoFmZo0kQazZYOrT7J5DGOJ/+QHHzjvNlooDZED8oH82Yg67HvehPPLAg5fUff7TfWFHQS8IV1n3og==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2227,13 +2172,6 @@ packages: os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-gnu@1.0.0-rc.11': - resolution: {integrity: sha512-qXBQQO9OvkjjQPLdUVr7Nr2t3QTZI7s4KZtfw7HzBgjbmAPSFwSv4rmET9lLSgq3rH/ndA3ngv3Qb8l2njoPNA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [linux] - libc: [glibc] - '@rolldown/binding-linux-x64-gnu@1.0.0-rc.12': resolution: {integrity: sha512-RNrafz5bcwRy+O9e6P8Z/OCAJW/A+qtBczIqVYwTs14pf4iV1/+eKEjdOUta93q2TsT/FI0XYDP3TCky38LMAg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2241,13 +2179,6 @@ packages: os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-musl@1.0.0-rc.11': - resolution: {integrity: sha512-/tpFfoSTzUkH9LPY+cYbqZBDyyX62w5fICq9qzsHLL8uTI6BHip3Q9Uzft0wylk/i8OOwKik8OxW+QAhDmzwmg==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [linux] - libc: [musl] - '@rolldown/binding-linux-x64-musl@1.0.0-rc.12': resolution: {integrity: sha512-Jpw/0iwoKWx3LJ2rc1yjFrj+T7iHZn2JDg1Yny1ma0luviFS4mhAIcd1LFNxK3EYu3DHWCps0ydXQ5i/rrJ2ig==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2255,55 +2186,29 @@ packages: os: [linux] libc: [musl] - '@rolldown/binding-openharmony-arm64@1.0.0-rc.11': - resolution: {integrity: sha512-mcp3Rio2w72IvdZG0oQ4bM2c2oumtwHfUfKncUM6zGgz0KgPz4YmDPQfnXEiY5t3+KD/i8HG2rOB/LxdmieK2g==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [openharmony] - '@rolldown/binding-openharmony-arm64@1.0.0-rc.12': resolution: {integrity: sha512-vRugONE4yMfVn0+7lUKdKvN4D5YusEiPilaoO2sgUWpCvrncvWgPMzK00ZFFJuiPgLwgFNP5eSiUlv2tfc+lpA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@rolldown/binding-wasm32-wasi@1.0.0-rc.11': - resolution: {integrity: sha512-LXk5Hii1Ph9asuGRjBuz8TUxdc1lWzB7nyfdoRgI0WGPZKmCxvlKk8KfYysqtr4MfGElu/f/pEQRh8fcEgkrWw==} - engines: {node: '>=14.0.0'} - cpu: [wasm32] - '@rolldown/binding-wasm32-wasi@1.0.0-rc.12': resolution: {integrity: sha512-ykGiLr/6kkiHc0XnBfmFJuCjr5ZYKKofkx+chJWDjitX+KsJuAmrzWhwyOMSHzPhzOHOy7u9HlFoa5MoAOJ/Zg==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.11': - resolution: {integrity: sha512-dDwf5otnx0XgRY1yqxOC4ITizcdzS/8cQ3goOWv3jFAo4F+xQYni+hnMuO6+LssHHdJW7+OCVL3CoU4ycnh35Q==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [win32] - '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.12': resolution: {integrity: sha512-5eOND4duWkwx1AzCxadcOrNeighiLwMInEADT0YM7xeEOOFcovWZCq8dadXgcRHSf3Ulh1kFo/qvzoFiCLOL1Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.0-rc.11': - resolution: {integrity: sha512-LN4/skhSggybX71ews7dAj6r2geaMJfm3kMbK2KhFMg9B10AZXnKoLCVVgzhMHL0S+aKtr4p8QbAW8k+w95bAA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.0-rc.12': resolution: {integrity: sha512-PyqoipaswDLAZtot351MLhrlrh6lcZPo2LSYE+VDxbVk24LVKAGOuE4hb8xZQmrPAuEtTZW8E6D2zc5EUZX4Lw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] - '@rolldown/pluginutils@1.0.0-rc.11': - resolution: {integrity: sha512-xQO9vbwBecJRv9EUcQ/y0dzSTJgA7Q6UVN7xp6B81+tBGSLVAK03yJ9NkJaUA7JFD91kbjxRSC/mDnmvXzbHoQ==} - '@rolldown/pluginutils@1.0.0-rc.12': resolution: {integrity: sha512-HHMwmarRKvoFsJorqYlFeFRzXZqCt2ETQlEDOb9aqssrnVBB1/+xgTGtuTrIk5vzLNX1MjMtTf7W9z3tsSbrxw==} @@ -5360,14 +5265,14 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - rolldown-plugin-dts@0.22.5: - resolution: {integrity: sha512-M/HXfM4cboo+jONx9Z0X+CUf3B5tCi7ni+kR5fUW50Fp9AlZk0oVLesibGWgCXDKFp5lpgQ9yhKoImUFjl3VZw==} + rolldown-plugin-dts@0.23.2: + resolution: {integrity: sha512-PbSqLawLgZBGcOGT3yqWBGn4cX+wh2nt5FuBGdcMHyOhoukmjbhYAl8NT9sE4U38Cm9tqLOIQeOrvzeayM0DLQ==} engines: {node: '>=20.19.0'} peerDependencies: '@ts-macro/tsc': ^0.3.6 - '@typescript/native-preview': '>=7.0.0-dev.20250601.1' - rolldown: ^1.0.0-rc.3 - typescript: ^5.0.0 || ^6.0.0-beta + '@typescript/native-preview': '>=7.0.0-dev.20260325.1' + rolldown: ^1.0.0-rc.12 + typescript: ^5.0.0 || ^6.0.0 vue-tsc: ~3.2.0 peerDependenciesMeta: '@ts-macro/tsc': @@ -5379,11 +5284,6 @@ packages: vue-tsc: optional: true - rolldown@1.0.0-rc.11: - resolution: {integrity: sha512-NRjoKMusSjfRbSYiH3VSumlkgFe7kYAa3pzVOsVYVFY3zb5d7nS+a3KGQ7hJKXuYWbzJKPVQ9Wxq2UvyK+ENpw==} - engines: {node: ^20.19.0 || >=22.12.0} - hasBin: true - rolldown@1.0.0-rc.12: resolution: {integrity: sha512-yP4USLIMYrwpPHEFB5JGH1uxhcslv6/hL0OyvTuY+3qlOSJvZ7ntYnoWpehBxufkgN0cvXxppuTu5hHa/zPh+A==} engines: {node: ^20.19.0 || >=22.12.0} @@ -5773,14 +5673,14 @@ packages: typescript: optional: true - tsdown@0.21.5: - resolution: {integrity: sha512-TlgNhfPioAD6ECCUnZsxcUsXXuPPR4Rrxz3az741kL/M3oGIET4a9GajSNRNRx+jIva73TYUKQybrEPkDYN+fQ==} + tsdown@0.21.7: + resolution: {integrity: sha512-ukKIxKQzngkWvOYJAyptudclkm4VQqbjq+9HF5K5qDO8GJsYtMh8gIRwicbnZEnvFPr6mquFwYAVZ8JKt3rY2g==} engines: {node: '>=20.19.0'} hasBin: true peerDependencies: '@arethetypeswrong/core': ^0.18.1 - '@tsdown/css': 0.21.5 - '@tsdown/exe': 0.21.5 + '@tsdown/css': 0.21.7 + '@tsdown/exe': 0.21.7 '@vitejs/devtools': '*' publint: ^0.3.0 typescript: ^5.0.0 || ^6.0.0 @@ -6360,10 +6260,10 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/generator@8.0.0-rc.2': + '@babel/generator@8.0.0-rc.3': dependencies: - '@babel/parser': 8.0.0-rc.2 - '@babel/types': 8.0.0-rc.2 + '@babel/parser': 8.0.0-rc.3 + '@babel/types': 8.0.0-rc.3 '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 '@types/jsesc': 2.5.1 @@ -6375,15 +6275,15 @@ snapshots: '@babel/helper-validator-identifier@7.28.5': {} - '@babel/helper-validator-identifier@8.0.0-rc.2': {} + '@babel/helper-validator-identifier@8.0.0-rc.3': {} '@babel/parser@7.29.2': dependencies: '@babel/types': 7.29.0 - '@babel/parser@8.0.0-rc.2': + '@babel/parser@8.0.0-rc.3': dependencies: - '@babel/types': 8.0.0-rc.2 + '@babel/types': 8.0.0-rc.3 '@babel/runtime-corejs2@7.29.2': dependencies: @@ -6394,10 +6294,10 @@ snapshots: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.28.5 - '@babel/types@8.0.0-rc.2': + '@babel/types@8.0.0-rc.3': dependencies: '@babel/helper-string-parser': 8.0.0-rc.3 - '@babel/helper-validator-identifier': 8.0.0-rc.2 + '@babel/helper-validator-identifier': 8.0.0-rc.3 '@bbob/core@4.3.1': dependencies: @@ -7029,7 +6929,7 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true - '@napi-rs/wasm-runtime@1.1.1': + '@napi-rs/wasm-runtime@1.1.2(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)': dependencies: '@emnapi/core': 1.9.1 '@emnapi/runtime': 1.9.1 @@ -7721,102 +7621,56 @@ snapshots: dependencies: quansync: 1.0.0 - '@rolldown/binding-android-arm64@1.0.0-rc.11': - optional: true - '@rolldown/binding-android-arm64@1.0.0-rc.12': optional: true - '@rolldown/binding-darwin-arm64@1.0.0-rc.11': - optional: true - '@rolldown/binding-darwin-arm64@1.0.0-rc.12': optional: true - '@rolldown/binding-darwin-x64@1.0.0-rc.11': - optional: true - '@rolldown/binding-darwin-x64@1.0.0-rc.12': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-rc.11': - optional: true - '@rolldown/binding-freebsd-x64@1.0.0-rc.12': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.11': - optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.12': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.11': - optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.12': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-rc.11': - optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-rc.12': optional: true - '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.11': - optional: true - '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.12': optional: true - '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.11': - optional: true - '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.12': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-rc.11': - optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-rc.12': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-rc.11': - optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-rc.12': optional: true - '@rolldown/binding-openharmony-arm64@1.0.0-rc.11': - optional: true - '@rolldown/binding-openharmony-arm64@1.0.0-rc.12': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-rc.11': - dependencies: - '@napi-rs/wasm-runtime': 1.1.1 - optional: true - - '@rolldown/binding-wasm32-wasi@1.0.0-rc.12': + '@rolldown/binding-wasm32-wasi@1.0.0-rc.12(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)': dependencies: - '@napi-rs/wasm-runtime': 1.1.1 - optional: true - - '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.11': + '@napi-rs/wasm-runtime': 1.1.2(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' optional: true '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.12': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-rc.11': - optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-rc.12': optional: true - '@rolldown/pluginutils@1.0.0-rc.11': {} - '@rolldown/pluginutils@1.0.0-rc.12': {} '@rollup/pluginutils@5.3.0(rollup@4.60.0)': @@ -8475,7 +8329,7 @@ snapshots: ast-kit@3.0.0-beta.1: dependencies: - '@babel/parser': 8.0.0-rc.2 + '@babel/parser': 8.0.0-rc.3 estree-walker: 3.0.3 pathe: 2.0.3 @@ -11222,45 +11076,25 @@ snapshots: rfdc@1.4.1: {} - rolldown-plugin-dts@0.22.5(rolldown@1.0.0-rc.11)(typescript@5.9.3): + rolldown-plugin-dts@0.23.2(rolldown@1.0.0-rc.12(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1))(typescript@5.9.3): dependencies: - '@babel/generator': 8.0.0-rc.2 - '@babel/helper-validator-identifier': 8.0.0-rc.2 - '@babel/parser': 8.0.0-rc.2 - '@babel/types': 8.0.0-rc.2 + '@babel/generator': 8.0.0-rc.3 + '@babel/helper-validator-identifier': 8.0.0-rc.3 + '@babel/parser': 8.0.0-rc.3 + '@babel/types': 8.0.0-rc.3 ast-kit: 3.0.0-beta.1 birpc: 4.0.0 dts-resolver: 2.1.3 get-tsconfig: 4.13.7 obug: 2.1.1 - rolldown: 1.0.0-rc.11 + picomatch: 4.0.4 + rolldown: 1.0.0-rc.12(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: - oxc-resolver - rolldown@1.0.0-rc.11: - dependencies: - '@oxc-project/types': 0.122.0 - '@rolldown/pluginutils': 1.0.0-rc.11 - optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.0-rc.11 - '@rolldown/binding-darwin-arm64': 1.0.0-rc.11 - '@rolldown/binding-darwin-x64': 1.0.0-rc.11 - '@rolldown/binding-freebsd-x64': 1.0.0-rc.11 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-rc.11 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-rc.11 - '@rolldown/binding-linux-arm64-musl': 1.0.0-rc.11 - '@rolldown/binding-linux-ppc64-gnu': 1.0.0-rc.11 - '@rolldown/binding-linux-s390x-gnu': 1.0.0-rc.11 - '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.11 - '@rolldown/binding-linux-x64-musl': 1.0.0-rc.11 - '@rolldown/binding-openharmony-arm64': 1.0.0-rc.11 - '@rolldown/binding-wasm32-wasi': 1.0.0-rc.11 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.11 - '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.11 - - rolldown@1.0.0-rc.12: + rolldown@1.0.0-rc.12(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1): dependencies: '@oxc-project/types': 0.122.0 '@rolldown/pluginutils': 1.0.0-rc.12 @@ -11277,9 +11111,12 @@ snapshots: '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.12 '@rolldown/binding-linux-x64-musl': 1.0.0-rc.12 '@rolldown/binding-openharmony-arm64': 1.0.0-rc.12 - '@rolldown/binding-wasm32-wasi': 1.0.0-rc.12 + '@rolldown/binding-wasm32-wasi': 1.0.0-rc.12(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.12 '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.12 + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' rollup@4.60.0: dependencies: @@ -11723,7 +11560,7 @@ snapshots: optionalDependencies: typescript: 5.9.3 - tsdown@0.21.5(synckit@0.11.12)(typescript@5.9.3): + tsdown@0.21.7(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(synckit@0.11.12)(typescript@5.9.3): dependencies: ansis: 4.2.0 cac: 7.0.0 @@ -11733,17 +11570,19 @@ snapshots: import-without-cache: 0.2.5 obug: 2.1.1 picomatch: 4.0.4 - rolldown: 1.0.0-rc.11 - rolldown-plugin-dts: 0.22.5(rolldown@1.0.0-rc.11)(typescript@5.9.3) + rolldown: 1.0.0-rc.12(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) + rolldown-plugin-dts: 0.23.2(rolldown@1.0.0-rc.12(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1))(typescript@5.9.3) semver: 7.7.4 tinyexec: 1.0.4 tinyglobby: 0.2.15 tree-kill: 1.2.2 unconfig-core: 7.5.0 - unrun: 0.2.34(synckit@0.11.12) + unrun: 0.2.34(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(synckit@0.11.12) optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' - '@ts-macro/tsc' - '@typescript/native-preview' - oxc-resolver @@ -11871,11 +11710,14 @@ snapshots: '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 - unrun@0.2.34(synckit@0.11.12): + unrun@0.2.34(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(synckit@0.11.12): dependencies: - rolldown: 1.0.0-rc.12 + rolldown: 1.0.0-rc.12(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) optionalDependencies: synckit: 0.11.12 + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' until-async@3.0.2: {} From b8379980a70b1a0b4b3c9826335c958aba7ebdce Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Mar 2026 08:21:30 +0000 Subject: [PATCH 011/439] chore(deps): bump @hono/zod-openapi from 1.2.3 to 1.2.4 (#21554) Bumps [@hono/zod-openapi](https://github.com/honojs/middleware/tree/HEAD/packages/zod-openapi) from 1.2.3 to 1.2.4. - [Release notes](https://github.com/honojs/middleware/releases) - [Changelog](https://github.com/honojs/middleware/blob/main/packages/zod-openapi/CHANGELOG.md) - [Commits](https://github.com/honojs/middleware/commits/@hono/zod-openapi@1.2.4/packages/zod-openapi) --- updated-dependencies: - dependency-name: "@hono/zod-openapi" dependency-version: 1.2.4 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index e7ef2a3fb4ab..6a6763da5718 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,7 @@ "@bbob/plugin-helper": "4.3.1", "@bbob/preset-html5": "4.3.1", "@hono/node-server": "1.19.11", - "@hono/zod-openapi": "1.2.3", + "@hono/zod-openapi": "1.2.4", "@jocmp/mercury-parser": "3.0.7", "@notionhq/client": "5.15.0", "@opentelemetry/api": "1.9.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 30c49cf4ea82..325fe401ac10 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -44,8 +44,8 @@ importers: specifier: 1.19.11 version: 1.19.11(hono@4.12.8) '@hono/zod-openapi': - specifier: 1.2.3 - version: 1.2.3(hono@4.12.8)(zod@4.3.6) + specifier: 1.2.4 + version: 1.2.4(hono@4.12.8)(zod@4.3.6) '@jocmp/mercury-parser': specifier: 3.0.7 version: 3.0.7 @@ -1080,8 +1080,8 @@ packages: peerDependencies: hono: ^4 - '@hono/zod-openapi@1.2.3': - resolution: {integrity: sha512-zAviC3ApRAYGUiGWZiW/mrK/UBqkTi9BKQxn1IvwYyp2kS+k1tlnwut59DfEInpcsq1347zAYOqYI+obMy4vzQ==} + '@hono/zod-openapi@1.2.4': + resolution: {integrity: sha512-cZu71bpODTbtIDoUsIIYPrs58wJ565Tbg6FE+JshU0irBAd6KxrP+k62Amm/mjA7tTOQ3+ingODHKGFOnv+Ibw==} engines: {node: '>=16.0.0'} peerDependencies: hono: '>=4.3.6' @@ -6668,7 +6668,7 @@ snapshots: dependencies: hono: 4.12.8 - '@hono/zod-openapi@1.2.3(hono@4.12.8)(zod@4.3.6)': + '@hono/zod-openapi@1.2.4(hono@4.12.8)(zod@4.3.6)': dependencies: '@asteasolutions/zod-to-openapi': 8.5.0(zod@4.3.6) '@hono/zod-validator': 0.7.6(hono@4.12.8)(zod@4.3.6) From a8417ee65e7f84dd3c3886c2fe0a5c22df036f2e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Mar 2026 08:22:50 +0000 Subject: [PATCH 012/439] chore(deps-dev): bump discord-api-types from 0.38.42 to 0.38.43 (#21556) Bumps [discord-api-types](https://github.com/discordjs/discord-api-types) from 0.38.42 to 0.38.43. - [Release notes](https://github.com/discordjs/discord-api-types/releases) - [Changelog](https://github.com/discordjs/discord-api-types/blob/main/CHANGELOG.md) - [Commits](https://github.com/discordjs/discord-api-types/commits/0.38.43) --- updated-dependencies: - dependency-name: discord-api-types dependency-version: 0.38.43 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 6a6763da5718..bf8e9e386f07 100644 --- a/package.json +++ b/package.json @@ -173,7 +173,7 @@ "@typescript-eslint/parser": "8.57.2", "@vercel/nft": "1.5.0", "@vitest/coverage-v8": "4.0.9", - "discord-api-types": "0.38.42", + "discord-api-types": "0.38.43", "domhandler": "6.0.1", "eslint": "10.1.0", "eslint-nibble": "9.1.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 325fe401ac10..22e8f74cde7c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -378,8 +378,8 @@ importers: specifier: 4.0.9 version: 4.0.9(vitest@4.0.9(@edge-runtime/vm@3.2.0)(@types/debug@4.1.13)(@types/node@25.5.0)(jiti@2.6.1)(jsdom@29.0.1(@noble/hashes@2.0.1))(msw@2.12.14(@types/node@25.5.0)(typescript@5.9.3))(tsx@4.21.0)(yaml@2.8.3)) discord-api-types: - specifier: 0.38.42 - version: 0.38.42 + specifier: 0.38.43 + version: 0.38.43 domhandler: specifier: 6.0.1 version: 6.0.1 @@ -3432,8 +3432,8 @@ packages: resolution: {tarball: https://codeload.github.com/postlight/difflib.js/tar.gz/32e8e38c7fcd935241b9baab71bb432fd9b166ed} version: 0.2.6 - discord-api-types@0.38.42: - resolution: {integrity: sha512-qs1kya7S84r5RR8m9kgttywGrmmoHaRifU1askAoi+wkoSefLpZP6aGXusjNw5b0jD3zOg3LTwUa3Tf2iHIceQ==} + discord-api-types@0.38.43: + resolution: {integrity: sha512-sSoBf/nK6m7BGtw65mi+QBuvEWaHE8MMziFLqWL+gT6ME/BLg34dRSVKS3Husx40uU06bvxUc3/X+D9Y6/zAbw==} dom-serializer@1.4.1: resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} @@ -8805,7 +8805,7 @@ snapshots: dependencies: heap: 0.2.7 - discord-api-types@0.38.42: {} + discord-api-types@0.38.43: {} dom-serializer@1.4.1: dependencies: From 17b3329cc700941704fa6025238515407410e7d6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Mar 2026 17:18:05 +0800 Subject: [PATCH 013/439] chore(deps-dev): bump the cloudflare group with 2 updates (#21551) Bumps the cloudflare group with 2 updates: [@cloudflare/workers-types](https://github.com/cloudflare/workerd) and [wrangler](https://github.com/cloudflare/workers-sdk/tree/HEAD/packages/wrangler). Updates `@cloudflare/workers-types` from 4.20260317.1 to 4.20260329.1 - [Release notes](https://github.com/cloudflare/workerd/releases) - [Changelog](https://github.com/cloudflare/workerd/blob/main/RELEASE.md) - [Commits](https://github.com/cloudflare/workerd/commits) Updates `wrangler` from 4.77.0 to 4.78.0 - [Release notes](https://github.com/cloudflare/workers-sdk/releases) - [Commits](https://github.com/cloudflare/workers-sdk/commits/wrangler@4.78.0/packages/wrangler) --- updated-dependencies: - dependency-name: "@cloudflare/workers-types" dependency-version: 4.20260329.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: cloudflare - dependency-name: wrangler dependency-version: 4.78.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: cloudflare ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 4 ++-- pnpm-lock.yaml | 30 +++++++++++++++--------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/package.json b/package.json index bf8e9e386f07..7346eec4fefe 100644 --- a/package.json +++ b/package.json @@ -148,7 +148,7 @@ "@bbob/types": "4.3.1", "@cloudflare/containers": "0.2.0", "@cloudflare/puppeteer": "1.0.6", - "@cloudflare/workers-types": "4.20260317.1", + "@cloudflare/workers-types": "4.20260329.1", "@eslint/eslintrc": "3.3.5", "@eslint/js": "10.0.1", "@oxlint/plugins": "1.57.0", @@ -201,7 +201,7 @@ "unified": "11.0.5", "vite-tsconfig-paths": "6.1.1", "vitest": "4.0.9", - "wrangler": "4.77.0", + "wrangler": "4.78.0", "yaml-eslint-parser": "2.0.0" }, "lint-staged": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 22e8f74cde7c..1a97a4521fec 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -303,8 +303,8 @@ importers: specifier: 1.0.6 version: 1.0.6(bufferutil@4.1.0)(utf-8-validate@5.0.10) '@cloudflare/workers-types': - specifier: 4.20260317.1 - version: 4.20260317.1 + specifier: 4.20260329.1 + version: 4.20260329.1 '@eslint/eslintrc': specifier: 3.3.5 version: 3.3.5 @@ -462,8 +462,8 @@ importers: specifier: 4.0.9 version: 4.0.9(@edge-runtime/vm@3.2.0)(@types/debug@4.1.13)(@types/node@25.5.0)(jiti@2.6.1)(jsdom@29.0.1(@noble/hashes@2.0.1))(msw@2.12.14(@types/node@25.5.0)(typescript@5.9.3))(tsx@4.21.0)(yaml@2.8.3) wrangler: - specifier: 4.77.0 - version: 4.77.0(@cloudflare/workers-types@4.20260317.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10) + specifier: 4.78.0 + version: 4.78.0(@cloudflare/workers-types@4.20260329.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10) yaml-eslint-parser: specifier: 2.0.0 version: 2.0.0 @@ -632,8 +632,8 @@ packages: cpu: [x64] os: [win32] - '@cloudflare/workers-types@4.20260317.1': - resolution: {integrity: sha512-+G4eVwyCpm8Au1ex8vQBCuA9wnwqetz4tPNRoB/53qvktERWBRMQnrtvC1k584yRE3emMThtuY0gWshvSJ++PQ==} + '@cloudflare/workers-types@4.20260329.1': + resolution: {integrity: sha512-LxBHrYYI/AZ6OCbUzRqRgg6Rt1qev2KxN2NNd3saye41AO2g52cYvHV+ohts5oPnrIUD7YRjbgN/J3NU7e7m5A==} '@colors/colors@1.6.0': resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} @@ -4640,8 +4640,8 @@ packages: resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - miniflare@4.20260317.2: - resolution: {integrity: sha512-qNL+yWAFMX6fr0pWU6Lx1vNpPobpnDSF1V8eunIckWvoIQl8y1oBjL2RJFEGY3un+l3f9gwW9dirDPP26usYJQ==} + miniflare@4.20260317.3: + resolution: {integrity: sha512-tK78D3X4q30/SXqVwMhWrUfH+ffRou9dJLC+jkhNy5zh1I7i7T4JH6xihOvYxdCSBavJ5fQXaaxDJz6orh09BA==} engines: {node: '>=18.0.0'} hasBin: true @@ -6040,8 +6040,8 @@ packages: engines: {node: '>=16'} hasBin: true - wrangler@4.77.0: - resolution: {integrity: sha512-E2Gm69+K++BFd3QvoWjC290RPQj1vDOUotA++sNHmtKPb7EP6C8Qv+1D5Ii73tfZtyNgakpqHlh8lBBbVWTKAQ==} + wrangler@4.78.0: + resolution: {integrity: sha512-He/vUhk4ih0D0eFmtNnlbT6Od8j+BEokaSR+oYjbVsH0SWIrIch+eHqfLRSBjBQaOoh6HCNxcafcIkBm2u0Hag==} engines: {node: '>=20.3.0'} hasBin: true peerDependencies: @@ -6380,7 +6380,7 @@ snapshots: '@cloudflare/workerd-windows-64@1.20260317.1': optional: true - '@cloudflare/workers-types@4.20260317.1': {} + '@cloudflare/workers-types@4.20260329.1': {} '@colors/colors@1.6.0': {} @@ -10312,7 +10312,7 @@ snapshots: mimic-response@4.0.0: {} - miniflare@4.20260317.2(bufferutil@4.1.0)(utf-8-validate@5.0.10): + miniflare@4.20260317.3(bufferutil@4.1.0)(utf-8-validate@5.0.10): dependencies: '@cspotcode/source-map-support': 0.8.1 sharp: 0.34.5 @@ -11930,18 +11930,18 @@ snapshots: '@cloudflare/workerd-linux-arm64': 1.20260317.1 '@cloudflare/workerd-windows-64': 1.20260317.1 - wrangler@4.77.0(@cloudflare/workers-types@4.20260317.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10): + wrangler@4.78.0(@cloudflare/workers-types@4.20260329.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10): dependencies: '@cloudflare/kv-asset-handler': 0.4.2 '@cloudflare/unenv-preset': 2.16.0(unenv@2.0.0-rc.24)(workerd@1.20260317.1) blake3-wasm: 2.1.5 esbuild: 0.27.3 - miniflare: 4.20260317.2(bufferutil@4.1.0)(utf-8-validate@5.0.10) + miniflare: 4.20260317.3(bufferutil@4.1.0)(utf-8-validate@5.0.10) path-to-regexp: 6.3.0 unenv: 2.0.0-rc.24 workerd: 1.20260317.1 optionalDependencies: - '@cloudflare/workers-types': 4.20260317.1 + '@cloudflare/workers-types': 4.20260329.1 fsevents: 2.3.3 transitivePeerDependencies: - bufferutil From 795028ca097818a12def340c9992e9fe1e7b855a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Mar 2026 17:24:35 +0800 Subject: [PATCH 014/439] chore(deps-dev): bump oxlint-tsgolint in the oxc group (#21552) Bumps the oxc group with 1 update: [oxlint-tsgolint](https://github.com/oxc-project/tsgolint). Updates `oxlint-tsgolint` from 0.17.4 to 0.18.1 - [Release notes](https://github.com/oxc-project/tsgolint/releases) - [Commits](https://github.com/oxc-project/tsgolint/compare/v0.17.4...v0.18.1) --- updated-dependencies: - dependency-name: oxlint-tsgolint dependency-version: 0.18.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: oxc ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 66 +++++++++++++++++++++++++------------------------- 2 files changed, 34 insertions(+), 34 deletions(-) diff --git a/package.json b/package.json index 7346eec4fefe..3af3a0b92ff7 100644 --- a/package.json +++ b/package.json @@ -194,7 +194,7 @@ "node-network-devtools": "1.0.29", "oxfmt": "0.42.0", "oxlint": "1.57.0", - "oxlint-tsgolint": "0.17.4", + "oxlint-tsgolint": "0.18.1", "remark-parse": "11.0.0", "tsdown": "0.21.7", "typescript": "5.9.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1a97a4521fec..46efaad8d430 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -439,10 +439,10 @@ importers: version: 0.42.0 oxlint: specifier: 1.57.0 - version: 1.57.0(oxlint-tsgolint@0.17.4) + version: 1.57.0(oxlint-tsgolint@0.18.1) oxlint-tsgolint: - specifier: 0.17.4 - version: 0.17.4 + specifier: 0.18.1 + version: 0.18.1 remark-parse: specifier: 11.0.0 version: 11.0.0 @@ -1871,33 +1871,33 @@ packages: cpu: [x64] os: [win32] - '@oxlint-tsgolint/darwin-arm64@0.17.4': - resolution: {integrity: sha512-XEA7vl/T1+wiVnMq2MR6u5OYr2pwKHiAPgklxpK8tPrjQ1ci/amNmwI8ECn6TPXSCsC8SJsSN5xvzXm5H3dTfw==} + '@oxlint-tsgolint/darwin-arm64@0.18.1': + resolution: {integrity: sha512-CxSd15ZwHn70UJFTXVvy76bZ9zwI097cVyjvUFmYRJwvkQF3VnrTf2oe1gomUacErksvtqLgn9OKvZhLMYwvog==} cpu: [arm64] os: [darwin] - '@oxlint-tsgolint/darwin-x64@0.17.4': - resolution: {integrity: sha512-EY2wmHWqkz72B0/ddMiAM564ZXpEuN1i7JqJJhLmDUQfiHX0/X0EqK3xlSScMCFcVicitOxbKO9oqbde3658yg==} + '@oxlint-tsgolint/darwin-x64@0.18.1': + resolution: {integrity: sha512-LE7VW/T/VcKhl3Z1ev5BusrxdlQ3DWweSeOB+qpBeur2h8+vCWq+M7tCO29C7lveBDfx1+rNwj4aiUVlA+Qs+g==} cpu: [x64] os: [darwin] - '@oxlint-tsgolint/linux-arm64@0.17.4': - resolution: {integrity: sha512-XL2X8hgp3/TZWeHFLUnWrveTCBPxy1kNtpzfvVkLtBgyoaRyopPYL0Mnm+ypXKgGvUdcjDaiJhnRjFHWmqZkew==} + '@oxlint-tsgolint/linux-arm64@0.18.1': + resolution: {integrity: sha512-2AG8YIXVJJbnM0rcsJmzzWOjZXBu5REwowgUpbHZueF7OYM3wR7Xu8pXEpAojEHAtYYZ3X4rpPoetomkJx7kCw==} cpu: [arm64] os: [linux] - '@oxlint-tsgolint/linux-x64@0.17.4': - resolution: {integrity: sha512-jT+aWtQuU8jefwfBLAZu16p4t8xUDjxL6KKlOeuwX3cS6NO60ITJ4Glm8eQYq5cGsOmYIKXNIe4ckPpL5LC+5g==} + '@oxlint-tsgolint/linux-x64@0.18.1': + resolution: {integrity: sha512-f8vDYPEdiwpA2JaDEkadTXfuqIgweQ8zcL4SX75EN2kkW2oAynjN7cd8m86uXDgB0JrcyOywbRtwnXdiIzXn2A==} cpu: [x64] os: [linux] - '@oxlint-tsgolint/win32-arm64@0.17.4': - resolution: {integrity: sha512-pnnkBaI5tHBFhx+EhmpUHccBT3VOAXTgWK2eQBVLE4a/ywhpHN+8D6/QQN+ZTaA4LTkKowvlGD6vDOVP5KRPvw==} + '@oxlint-tsgolint/win32-arm64@0.18.1': + resolution: {integrity: sha512-fBdML05KMDAL9ebWeoHIzkyI86Eq6r9YH5UDRuXJ9vAIo1EnKo0ti7hLUxNdc2dy2FF/T4k98p5wkkXvLyXqfA==} cpu: [arm64] os: [win32] - '@oxlint-tsgolint/win32-x64@0.17.4': - resolution: {integrity: sha512-JxT81aEUBNA/s01Ql2OQ2DLAsuM0M+mK9iLHunukOdPMhjA6NvFE/GtTablBYJKScK21d/xTvnoSLgQU3l22Cw==} + '@oxlint-tsgolint/win32-x64@0.18.1': + resolution: {integrity: sha512-cYZMhNrsq9ZZ3OUWHyawqiS+c8HfieYG0zuZP2LbEuWWPfdZM/22iAlo608J+27G1s9RXQhvgX6VekwWbXbD7A==} cpu: [x64] os: [win32] @@ -4863,8 +4863,8 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} hasBin: true - oxlint-tsgolint@0.17.4: - resolution: {integrity: sha512-4F/NXJiK2KnK4LQiULUPXRzVq0LOfextGvwCVRW1VKQbF5epI3MDMEGVAl5XjAGL6IFc7xBc/eVA95wczPeEQg==} + oxlint-tsgolint@0.18.1: + resolution: {integrity: sha512-Hgb0wMfuXBYL0ddY+1hAG8IIfC40ADwPnBuUaC6ENAuCtTF4dHwsy7mCYtQ2e7LoGvfoSJRY0+kqQRiembJ/jQ==} hasBin: true oxlint@1.57.0: @@ -7424,22 +7424,22 @@ snapshots: '@oxfmt/binding-win32-x64-msvc@0.42.0': optional: true - '@oxlint-tsgolint/darwin-arm64@0.17.4': + '@oxlint-tsgolint/darwin-arm64@0.18.1': optional: true - '@oxlint-tsgolint/darwin-x64@0.17.4': + '@oxlint-tsgolint/darwin-x64@0.18.1': optional: true - '@oxlint-tsgolint/linux-arm64@0.17.4': + '@oxlint-tsgolint/linux-arm64@0.18.1': optional: true - '@oxlint-tsgolint/linux-x64@0.17.4': + '@oxlint-tsgolint/linux-x64@0.18.1': optional: true - '@oxlint-tsgolint/win32-arm64@0.17.4': + '@oxlint-tsgolint/win32-arm64@0.18.1': optional: true - '@oxlint-tsgolint/win32-x64@0.17.4': + '@oxlint-tsgolint/win32-x64@0.18.1': optional: true '@oxlint/binding-android-arm-eabi@1.57.0': @@ -10563,16 +10563,16 @@ snapshots: '@oxfmt/binding-win32-ia32-msvc': 0.42.0 '@oxfmt/binding-win32-x64-msvc': 0.42.0 - oxlint-tsgolint@0.17.4: + oxlint-tsgolint@0.18.1: optionalDependencies: - '@oxlint-tsgolint/darwin-arm64': 0.17.4 - '@oxlint-tsgolint/darwin-x64': 0.17.4 - '@oxlint-tsgolint/linux-arm64': 0.17.4 - '@oxlint-tsgolint/linux-x64': 0.17.4 - '@oxlint-tsgolint/win32-arm64': 0.17.4 - '@oxlint-tsgolint/win32-x64': 0.17.4 - - oxlint@1.57.0(oxlint-tsgolint@0.17.4): + '@oxlint-tsgolint/darwin-arm64': 0.18.1 + '@oxlint-tsgolint/darwin-x64': 0.18.1 + '@oxlint-tsgolint/linux-arm64': 0.18.1 + '@oxlint-tsgolint/linux-x64': 0.18.1 + '@oxlint-tsgolint/win32-arm64': 0.18.1 + '@oxlint-tsgolint/win32-x64': 0.18.1 + + oxlint@1.57.0(oxlint-tsgolint@0.18.1): optionalDependencies: '@oxlint/binding-android-arm-eabi': 1.57.0 '@oxlint/binding-android-arm64': 1.57.0 @@ -10593,7 +10593,7 @@ snapshots: '@oxlint/binding-win32-arm64-msvc': 1.57.0 '@oxlint/binding-win32-ia32-msvc': 1.57.0 '@oxlint/binding-win32-x64-msvc': 1.57.0 - oxlint-tsgolint: 0.17.4 + oxlint-tsgolint: 0.18.1 p-cancelable@4.0.1: {} From 7d2baa89e5e7ebe910d6e001aa0b5f83b760714f Mon Sep 17 00:00:00 2001 From: Tony Date: Tue, 31 Mar 2026 00:40:26 +0800 Subject: [PATCH 015/439] fix(routes): remove hard-coded UA and use header presets (#21559) --- lib/routes/changba/user.tsx | 7 +++---- lib/routes/ddosi/category.ts | 7 +++---- lib/routes/ddosi/index.ts | 8 ++++---- lib/routes/dianping/user.ts | 5 +++-- lib/routes/hyperdash/utils.ts | 1 - lib/routes/jandan/utils.ts | 7 ------- lib/routes/kuaidi100/utils.ts | 1 - lib/routes/qiche365/recall.ts | 4 ---- lib/routes/qidian/author.tsx | 7 ++----- lib/routes/qidian/chapter.ts | 10 +++------- lib/routes/qidian/forum.ts | 7 ++----- lib/routes/qidian/free-next.ts | 7 ++----- lib/routes/qidian/free.ts | 7 ++----- lib/routes/sciencedirect/call-for-paper.tsx | 6 +----- lib/routes/the/index.ts | 6 +----- lib/routes/vimeo/channel.ts | 3 ++- lib/routes/youmemark/index.ts | 6 +----- 17 files changed, 29 insertions(+), 70 deletions(-) diff --git a/lib/routes/changba/user.tsx b/lib/routes/changba/user.tsx index c601b2d9e972..26e6210ebec0 100644 --- a/lib/routes/changba/user.tsx +++ b/lib/routes/changba/user.tsx @@ -5,8 +5,7 @@ import type { Route } from '@/types'; import { ViewType } from '@/types'; import cache from '@/utils/cache'; import got from '@/utils/got'; - -const headers = { 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1' }; +import { PRESETS } from '@/utils/header-generator'; export const route: Route = { path: '/:userid', @@ -38,7 +37,7 @@ async function handler(ctx) { const response = await got({ method: 'get', url, - headers, + headerGeneratorOptions: PRESETS.MODERN_IOS, }); const data = response.data; const $ = load(data); @@ -54,7 +53,7 @@ async function handler(ctx) { const result = await got({ method: 'get', url: link, - headers, + headerGeneratorOptions: PRESETS.MODERN_IOS, }); const re = /workid: '\d+'/; diff --git a/lib/routes/ddosi/category.ts b/lib/routes/ddosi/category.ts index 5c8ee1a93c6e..9e1015e0e924 100644 --- a/lib/routes/ddosi/category.ts +++ b/lib/routes/ddosi/category.ts @@ -1,8 +1,8 @@ import { load } from 'cheerio'; -import { config } from '@/config'; import type { Route } from '@/types'; import got from '@/utils/got'; +import { PRESETS } from '@/utils/header-generator'; import { parseDate } from '@/utils/parse-date'; export const route: Route = { @@ -25,22 +25,21 @@ export const route: Route = { }, ], name: '分类', - maintainers: [], + maintainers: ['XinRoom'], handler, url: 'ddosi.org/', }; async function handler(ctx) { const url = 'https://www.ddosi.org/category'; - const userAgent = config.ua || 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1'; const category = ctx.req.param('category'); const response = await got({ method: 'get', url: `${url}/${category}/`, headers: { - 'User-Agent': userAgent, Referer: url, }, + headerGeneratorOptions: PRESETS.MODERN_IOS, }); const $ = load(response.data); const list = $('main>article').toArray(); diff --git a/lib/routes/ddosi/index.ts b/lib/routes/ddosi/index.ts index c93a8db9fbfa..5e7ec5b9f7af 100644 --- a/lib/routes/ddosi/index.ts +++ b/lib/routes/ddosi/index.ts @@ -1,19 +1,20 @@ import { load } from 'cheerio'; -import { config } from '@/config'; import type { Route } from '@/types'; import got from '@/utils/got'; +import { PRESETS } from '@/utils/header-generator'; import { parseDate } from '@/utils/parse-date'; export const route: Route = { path: '/', + example: '/ddosi', radar: [ { source: ['ddosi.org/'], target: '', }, ], - name: 'Unknown', + name: '首页', maintainers: ['XinRoom'], handler, url: 'ddosi.org/', @@ -21,14 +22,13 @@ export const route: Route = { async function handler() { const url = 'https://www.ddosi.org/'; - const userAgent = config.ua || 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1'; const response = await got({ method: 'get', url: String(url), headers: { - 'User-Agent': userAgent, Referer: url, }, + headerGeneratorOptions: PRESETS.MODERN_IOS, }); const $ = load(response.data); const list = $('main>article').toArray(); diff --git a/lib/routes/dianping/user.ts b/lib/routes/dianping/user.ts index 3503b66027e1..6698f1aaeb0c 100644 --- a/lib/routes/dianping/user.ts +++ b/lib/routes/dianping/user.ts @@ -1,5 +1,6 @@ import { config } from '@/config'; import type { Route } from '@/types'; +import { PRESETS } from '@/utils/header-generator'; import ofetch from '@/utils/ofetch'; export const route: Route = { @@ -58,12 +59,10 @@ const starMap: Record = { async function handler(ctx) { const id = ctx.req.param('id'); - const userAgent = 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1'; const userPage = `https://m.dianping.com/userprofile/${id}`; const cookie = config.dianping.cookie; const headers: Record = { - 'User-Agent': userAgent, Referer: userPage, }; @@ -73,6 +72,7 @@ async function handler(ctx) { const pageResponse = await ofetch(userPage, { headers, + headerGeneratorOptions: PRESETS.MODERN_IOS, }); const nickNameReg = /window\.nickName = "(.*?)"/g; @@ -80,6 +80,7 @@ async function handler(ctx) { const response = await ofetch(`https://m.dianping.com/member/ajax/NobleUserFeeds?userId=${id}`, { headers, + headerGeneratorOptions: PRESETS.MODERN_IOS, }); const data = response.data; diff --git a/lib/routes/hyperdash/utils.ts b/lib/routes/hyperdash/utils.ts index f36f29798010..b3e9c0fecb6b 100644 --- a/lib/routes/hyperdash/utils.ts +++ b/lib/routes/hyperdash/utils.ts @@ -21,7 +21,6 @@ export async function fetchTopTraders(): Promise { const traders: TraderData[] = await ofetch(apiUrl, { headers: { 'x-api-key': 'hyperdash_public_7vN3mK8pQ4wX2cL9hF5tR1bY6gS0jD', - 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36', }, }); diff --git a/lib/routes/jandan/utils.ts b/lib/routes/jandan/utils.ts index 1b37789c0208..c2b702c5bc0c 100644 --- a/lib/routes/jandan/utils.ts +++ b/lib/routes/jandan/utils.ts @@ -4,15 +4,12 @@ import type { DataItem } from '@/types'; import ofetch from '@/utils/ofetch'; import { parseDate } from '@/utils/parse-date'; -export const USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36'; - /** * Extract page ID from script tags in HTML */ export const extractPageId = async (url: string, referer: string): Promise => { const response = await ofetch(url, { headers: { - 'User-Agent': USER_AGENT, Referer: referer, Accept: 'application/json, text/plain, */*', }, @@ -39,7 +36,6 @@ export const handleTopSection = async (rootUrl: string, type: string): Promise<{ const apiUrl = `${rootUrl}/api/top/${type}`; const response = await ofetch(apiUrl, { headers: { - 'User-Agent': USER_AGENT, Referer: rootUrl, Accept: 'application/json, text/plain, */*', }, @@ -114,7 +110,6 @@ export const handleForumSection = async (rootUrl: string): Promise<{ title: stri const apiUrl = `${rootUrl}/api/forum/posts/${forumId}?page=1`; const forumData = await ofetch(apiUrl, { headers: { - 'User-Agent': USER_AGENT, Referer: currentUrl, Accept: 'application/json, text/plain, */*', }, @@ -174,7 +169,6 @@ export const handleCommentSection = async (rootUrl: string, category: string): P const response = await ofetch(currentUrl, { headers: { - 'User-Agent': USER_AGENT, Referer: rootUrl, Accept: 'application/json, text/plain, */*', }, @@ -200,7 +194,6 @@ export const handleCommentSection = async (rootUrl: string, category: string): P const apiUrl = `${rootUrl}/api/comment/post/${pageId}?order=desc&page=1`; const commentsData = await ofetch(apiUrl, { headers: { - 'User-Agent': USER_AGENT, Referer: currentUrl, Accept: 'application/json, text/plain, */*', }, diff --git a/lib/routes/kuaidi100/utils.ts b/lib/routes/kuaidi100/utils.ts index 7d6bd38ac830..9fa3132798dd 100644 --- a/lib/routes/kuaidi100/utils.ts +++ b/lib/routes/kuaidi100/utils.ts @@ -230,7 +230,6 @@ export default { headers: { Referer: 'https://www.kuaidi100.com/', 'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,ja;q=0.7', - 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36', Cookie: `${cookie.globacsrftoken}; ${cookie.csrf}; ${cookie.wwwid}; ${cookie.dasddocHref}; ${cookie.dasddocReferrer}; ${ cookie.dasddocTitl }; addcom=${number}; addnu=${id}; snt_query_meta=${queryMeta}; sortStatus=0; Hm_lpvt_22ea01af58ba2be0fec7c11b25e88e6c=${timestamp}; Hm_lvt_22ea01af58ba2be0fec7c11b25e88e6c=${timestamp - 1642}`, diff --git a/lib/routes/qiche365/recall.ts b/lib/routes/qiche365/recall.ts index f1f557650e9e..c1a49d266903 100644 --- a/lib/routes/qiche365/recall.ts +++ b/lib/routes/qiche365/recall.ts @@ -7,8 +7,6 @@ import timezone from '@/utils/timezone'; const baseUrl = 'https://www.qiche365.org.cn'; -const userAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'; - export const route: Route = { path: '/recall/:channel', name: '汽车召回', @@ -34,7 +32,6 @@ async function handler(ctx): Promise { // second request with those cookies returns the actual JSON data. const initResponse = await ofetch.raw(targetUrl, { headers: { - 'User-Agent': userAgent, 'Accept-Language': 'zh-CN,zh;q=0.9', }, ignoreResponseError: true, @@ -44,7 +41,6 @@ async function handler(ctx): Promise { const { html } = await ofetch(targetUrl, { headers: { - 'User-Agent': userAgent, 'Accept-Language': 'zh-CN,zh;q=0.9', Cookie: cookies, }, diff --git a/lib/routes/qidian/author.tsx b/lib/routes/qidian/author.tsx index aa4b0e3cdd84..8dee269a19a3 100644 --- a/lib/routes/qidian/author.tsx +++ b/lib/routes/qidian/author.tsx @@ -2,10 +2,7 @@ import { load } from 'cheerio'; import type { Route } from '@/types'; import got from '@/utils/got'; - -const headers = { - 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Mobile/15E148 Safari/604.1', -}; +import { PRESETS } from '@/utils/header-generator'; export const route: Route = { path: '/author/:id', @@ -35,7 +32,7 @@ async function handler(ctx) { const currentUrl = `https://my.qidian.com/author/${id}/`; // Reason: PC site (my.qidian.com) returns anti-bot JS challenge; mobile site has SSR data - const response = await got(`https://m.qidian.com/author/${id}/`, { headers }); + const response = await got(`https://m.qidian.com/author/${id}/`, { headerGeneratorOptions: PRESETS.MODERN_IOS }); const $ = load(response.data); const { pageContext } = JSON.parse($('#vite-plugin-ssr_pageContext').text()); const pageData = pageContext.pageProps.pageData; diff --git a/lib/routes/qidian/chapter.ts b/lib/routes/qidian/chapter.ts index 87f33b11eea5..9389c799cf9b 100644 --- a/lib/routes/qidian/chapter.ts +++ b/lib/routes/qidian/chapter.ts @@ -3,6 +3,7 @@ import { load } from 'cheerio'; import type { Route } from '@/types'; import { ViewType } from '@/types'; import got from '@/utils/got'; +import { PRESETS } from '@/utils/header-generator'; import { parseDate } from '@/utils/parse-date'; export const route: Route = { @@ -32,18 +33,13 @@ export const route: Route = { async function handler(ctx) { const id = ctx.req.param('id'); - const userAgent = 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Mobile/15E148 Safari/604.1'; - const headers = { - 'User-Agent': userAgent, - }; - - const response = await got(`https://m.qidian.com/book/${id}.html`, { headers }); + const response = await got(`https://m.qidian.com/book/${id}.html`, { headerGeneratorOptions: PRESETS.MODERN_IOS }); const $ = load(response.data); const name = $('meta[property="og:title"]').attr('content'); const coverUrl = `https:${$('.detail__header-cover__img').attr('src')}`; - const { data: catalog } = await got(`https://m.qidian.com/book/${id}/catalog/`, { headers }); + const { data: catalog } = await got(`https://m.qidian.com/book/${id}/catalog/`, { headerGeneratorOptions: PRESETS.MODERN_IOS }); const $c = load(catalog); const { pageContext } = JSON.parse($c('#vite-plugin-ssr_pageContext').text()); diff --git a/lib/routes/qidian/forum.ts b/lib/routes/qidian/forum.ts index 03e1932d5f8b..3c7bdb686c5b 100644 --- a/lib/routes/qidian/forum.ts +++ b/lib/routes/qidian/forum.ts @@ -2,10 +2,7 @@ import { load } from 'cheerio'; import type { Route } from '@/types'; import got from '@/utils/got'; - -const headers = { - 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Mobile/15E148 Safari/604.1', -}; +import { PRESETS } from '@/utils/header-generator'; export const route: Route = { path: '/forum/:id', @@ -35,7 +32,7 @@ async function handler(ctx) { // Reason: forum.qidian.com redirects and PC site has anti-bot JS challenge; // mobile book page embeds forum posts via seoBookCirclePost - const response = await got(`https://m.qidian.com/book/${id}.html`, { headers }); + const response = await got(`https://m.qidian.com/book/${id}.html`, { headerGeneratorOptions: PRESETS.MODERN_IOS }); const $ = load(response.data); const { pageContext } = JSON.parse($('#vite-plugin-ssr_pageContext').text()); const pageData = pageContext.pageProps.pageData; diff --git a/lib/routes/qidian/free-next.ts b/lib/routes/qidian/free-next.ts index 412caacf41df..05722cd15661 100644 --- a/lib/routes/qidian/free-next.ts +++ b/lib/routes/qidian/free-next.ts @@ -2,10 +2,7 @@ import { load } from 'cheerio'; import type { Route } from '@/types'; import got from '@/utils/got'; - -const headers = { - 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Mobile/15E148 Safari/604.1', -}; +import { PRESETS } from '@/utils/header-generator'; export const route: Route = { path: '/free-next/:type?', @@ -40,7 +37,7 @@ async function handler(ctx) { const title = isMM ? '起点女生网' : '起点中文网'; // Reason: PC site (www.qidian.com) returns anti-bot JS challenge; mobile site has SSR data - const response = await got('https://m.qidian.com/free', { headers }); + const response = await got('https://m.qidian.com/free', { headerGeneratorOptions: PRESETS.MODERN_IOS }); const $ = load(response.data); const { pageContext } = JSON.parse($('#vite-plugin-ssr_pageContext').text()); const pageData = pageContext.pageProps.pageData; diff --git a/lib/routes/qidian/free.ts b/lib/routes/qidian/free.ts index a0d46f3c2b44..10a19f0f6bba 100644 --- a/lib/routes/qidian/free.ts +++ b/lib/routes/qidian/free.ts @@ -2,10 +2,7 @@ import { load } from 'cheerio'; import type { Route } from '@/types'; import got from '@/utils/got'; - -const headers = { - 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Mobile/15E148 Safari/604.1', -}; +import { PRESETS } from '@/utils/header-generator'; export const route: Route = { path: '/free/:type?', @@ -40,7 +37,7 @@ async function handler(ctx) { const title = isMM ? '起点女生网' : '起点中文网'; // Reason: PC site (www.qidian.com) returns anti-bot JS challenge; mobile site has SSR data - const response = await got('https://m.qidian.com/free', { headers }); + const response = await got('https://m.qidian.com/free', { headerGeneratorOptions: PRESETS.MODERN_IOS }); const $ = load(response.data); const { pageContext } = JSON.parse($('#vite-plugin-ssr_pageContext').text()); const pageData = pageContext.pageProps.pageData; diff --git a/lib/routes/sciencedirect/call-for-paper.tsx b/lib/routes/sciencedirect/call-for-paper.tsx index f1903b0b46bb..4729c5132428 100644 --- a/lib/routes/sciencedirect/call-for-paper.tsx +++ b/lib/routes/sciencedirect/call-for-paper.tsx @@ -26,11 +26,7 @@ export const route: Route = { async function handler(ctx) { const { subject = '' } = ctx.req.param(); const apiUrl = `https://www.sciencedirect.com/browse/calls-for-papers?subject=${subject}`; - const headers = { - accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7', - 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36', // need this to avoid 403, 503 error - }; - const response = await got(apiUrl, { headers }); + const response = await got(apiUrl); const $ = load(response.body); const scriptJSON = $('script[data-iso-key="_0"]').text(); diff --git a/lib/routes/the/index.ts b/lib/routes/the/index.ts index cdc93f993690..94f7c9295afc 100644 --- a/lib/routes/the/index.ts +++ b/lib/routes/the/index.ts @@ -21,11 +21,7 @@ export const handler = async (ctx): Promise => { const slug = parseSlug(filter); const targetUrl = slug ? `${baseUrl}/${slug}` : `${baseUrl}/${defaultFeedPath}`; - const { data: response } = await got(targetUrl, { - headers: { - 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', - }, - }); + const { data: response } = await got(targetUrl); const $ = load(response); diff --git a/lib/routes/vimeo/channel.ts b/lib/routes/vimeo/channel.ts index 8d6d169f52ff..eb34fd65bbd1 100644 --- a/lib/routes/vimeo/channel.ts +++ b/lib/routes/vimeo/channel.ts @@ -3,6 +3,7 @@ import { load } from 'cheerio'; import type { Route } from '@/types'; import cache from '@/utils/cache'; import got from '@/utils/got'; +import { PRESETS } from '@/utils/header-generator'; import { parseDate } from '@/utils/parse-date'; import { renderDescription } from './templates/description'; @@ -64,8 +65,8 @@ async function handler(ctx) { url: `https://vimeo.com${link}/description?breeze=1`, headers: { 'X-Requested-With': 'XMLHttpRequest', - 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 12_0 like Mac OS X) ', }, + headerGeneratorOptions: PRESETS.MODERN_IOS, }); const articledata = response2.data; const $2 = load(articledata); diff --git a/lib/routes/youmemark/index.ts b/lib/routes/youmemark/index.ts index 90236327da80..1d272abbd004 100644 --- a/lib/routes/youmemark/index.ts +++ b/lib/routes/youmemark/index.ts @@ -36,11 +36,7 @@ async function handler(ctx): Promise { const userid = ctx.req.param('userid'); const limit = ctx.req.query('limit') ? Number.parseInt(ctx.req.query('limit')) : 10; - const response = await ofetch(`https://youmemark.com/user/${userid}`, { - headers: { - 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', - }, - }); + const response = await ofetch(`https://youmemark.com/user/${userid}`); const $ = load(response); From a2861cdd4f26aee20e79bba3087daac92375c456 Mon Sep 17 00:00:00 2001 From: Tony Date: Tue, 31 Mar 2026 06:22:24 +0800 Subject: [PATCH 016/439] fix: update rss-parser patch to support other compressions (#21561) --- lib/utils/rss-parser.test.ts | 79 +++++++++ patches/rss-parser@3.13.0.patch | 32 +++- pnpm-lock.yaml | 292 ++++++++++++++++---------------- 3 files changed, 252 insertions(+), 151 deletions(-) diff --git a/lib/utils/rss-parser.test.ts b/lib/utils/rss-parser.test.ts index 880b454d1b4a..1c5edad9893a 100644 --- a/lib/utils/rss-parser.test.ts +++ b/lib/utils/rss-parser.test.ts @@ -1,10 +1,89 @@ +import zlib from 'node:zlib'; + +import { http, HttpResponse } from 'msw'; import { describe, expect, it } from 'vitest'; import parser from '@/utils/rss-parser'; +const rssXml = 'TestItem'; + describe('rss-parser', () => { it('rss', async () => { const result = await parser.parseURL('http://rsshub.test/rss'); expect(result).toBeTruthy(); }); + + it('gzip', async () => { + const { default: server } = await import('@/setup.test'); + const compressed = zlib.gzipSync(Buffer.from(rssXml)); + server.use( + http.get('http://rsshub.test/rss-gzip', () => + HttpResponse.arrayBuffer(compressed.buffer as ArrayBuffer, { + headers: { + 'content-type': 'application/xml', + 'content-encoding': 'gzip', + }, + }) + ) + ); + const result = await parser.parseURL('http://rsshub.test/rss-gzip'); + expect(result.title).toBe('Test'); + expect(result.items).toHaveLength(1); + }); + + it('deflate', async () => { + const { default: server } = await import('@/setup.test'); + const compressed = zlib.deflateSync(Buffer.from(rssXml)); + server.use( + http.get('http://rsshub.test/rss-deflate', () => + HttpResponse.arrayBuffer(compressed.buffer as ArrayBuffer, { + headers: { + 'content-type': 'application/xml', + 'content-encoding': 'deflate', + }, + }) + ) + ); + const result = await parser.parseURL('http://rsshub.test/rss-deflate'); + expect(result.title).toBe('Test'); + expect(result.items).toHaveLength(1); + }); + + it('brotli', async () => { + const { default: server } = await import('@/setup.test'); + const compressed = zlib.brotliCompressSync(Buffer.from(rssXml)); + server.use( + http.get('http://rsshub.test/rss-br', () => + HttpResponse.arrayBuffer(compressed.buffer as ArrayBuffer, { + headers: { + 'content-type': 'application/xml', + 'content-encoding': 'br', + }, + }) + ) + ); + const result = await parser.parseURL('http://rsshub.test/rss-br'); + expect(result.title).toBe('Test'); + expect(result.items).toHaveLength(1); + }); + + if (zlib.zstdCompressSync) { + it('zstd', async () => { + const { default: server } = await import('@/setup.test'); + const compressed = zlib.zstdCompressSync(Buffer.from(rssXml)); + server.use( + http.get('http://rsshub.test/rss-zstd', () => + HttpResponse.arrayBuffer(compressed.buffer as ArrayBuffer, { + headers: { + 'content-type': 'application/xml', + 'content-encoding': 'zstd', + }, + }) + ) + ); + const result = await parser.parseURL('http://rsshub.test/rss-zstd'); + expect(result.title).toBe('Test'); + expect(result.items).toHaveLength(1); + }); + } }); diff --git a/patches/rss-parser@3.13.0.patch b/patches/rss-parser@3.13.0.patch index c5ff3d6d4d44..88d97ebf2e01 100644 --- a/patches/rss-parser@3.13.0.patch +++ b/patches/rss-parser@3.13.0.patch @@ -1,5 +1,5 @@ diff --git a/lib/parser.js b/lib/parser.js -index 2852b5f9249a59adf8f51f3451181ac2c994bc54..50e16ca0a97c98d7048122d5427fe467058485fb 100644 +index 2852b5f9249a59adf8f51f3451181ac2c994bc54..e56d2c932b92424a0f43a77b57e575d90a634cc2 100644 --- a/lib/parser.js +++ b/lib/parser.js @@ -3,6 +3,7 @@ const http = require('http'); @@ -10,7 +10,7 @@ index 2852b5f9249a59adf8f51f3451181ac2c994bc54..50e16ca0a97c98d7048122d5427fe467 const fields = require('./fields'); const utils = require('./utils'); -@@ -88,14 +89,27 @@ class Parser { +@@ -88,14 +89,43 @@ class Parser { return reject(new Error("Status code " + res.statusCode)) } let encoding = utils.getEncodingFromContentType(res.headers['content-type']); @@ -23,16 +23,32 @@ index 2852b5f9249a59adf8f51f3451181ac2c994bc54..50e16ca0a97c98d7048122d5427fe467 - }); - }) + const contentEncoding = (res.headers['content-encoding'] || '').toLowerCase(); -+ if (contentEncoding === 'gzip') { -+ const gunzip = zlib.createGunzip(); ++ let decompressStream; ++ switch (contentEncoding) { ++ case 'gzip': ++ decompressStream = zlib.createGunzip(); ++ break; ++ case 'deflate': ++ decompressStream = zlib.createInflate(); ++ break; ++ case 'br': ++ decompressStream = zlib.createBrotliDecompress(); ++ break; ++ case 'zstd': ++ if (zlib.createZstdDecompress) { ++ decompressStream = zlib.createZstdDecompress(); ++ } ++ break; ++ } ++ if (decompressStream) { + const chunks = []; -+ gunzip.on('data', (chunk) => chunks.push(chunk)); -+ gunzip.on('end', () => { ++ decompressStream.on('data', (chunk) => chunks.push(chunk)); ++ decompressStream.on('end', () => { + const decompressed = Buffer.concat(chunks).toString(encoding); + return this.parseString(decompressed).then(resolve, reject); + }); -+ gunzip.on('error', reject); -+ res.pipe(gunzip); ++ decompressStream.on('error', reject); ++ res.pipe(decompressStream); + } else { + res.setEncoding(encoding); + res.on('data', (chunk) => { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 46efaad8d430..2e16b14e32b2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -24,7 +24,7 @@ patchedDependencies: hash: 5027fcc424409c41c41147fc6c90b36166061522e0b03e73b45f9a973fcd2a28 path: patches/@mswjs__interceptors@0.41.3.patch rss-parser@3.13.0: - hash: e1697dd9dde771024b5d0669a3eff6237e75fbac78381a6127012b67593bb2b7 + hash: afac79a31a3db94c953d49680bc5528468f051957d461e913d2e2dbf5cd22a8d path: patches/rss-parser@3.13.0.patch importers: @@ -228,7 +228,7 @@ importers: version: 1.5.4 rss-parser: specifier: 3.13.0 - version: 3.13.0(patch_hash=e1697dd9dde771024b5d0669a3eff6237e75fbac78381a6127012b67593bb2b7) + version: 3.13.0(patch_hash=afac79a31a3db94c953d49680bc5528468f051957d461e913d2e2dbf5cd22a8d) sanitize-html: specifier: 2.17.2 version: 2.17.2 @@ -373,7 +373,7 @@ importers: version: 8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) '@vercel/nft': specifier: 1.5.0 - version: 1.5.0(rollup@4.60.0) + version: 1.5.0(rollup@4.60.1) '@vitest/coverage-v8': specifier: 4.0.9 version: 4.0.9(vitest@4.0.9(@edge-runtime/vm@3.2.0)(@types/debug@4.1.13)(@types/node@25.5.0)(jiti@2.6.1)(jsdom@29.0.1(@noble/hashes@2.0.1))(msw@2.12.14(@types/node@25.5.0)(typescript@5.9.3))(tsx@4.21.0)(yaml@2.8.3)) @@ -488,8 +488,8 @@ packages: '@actions/io@3.0.2': resolution: {integrity: sha512-nRBchcMM+QK1pdjO7/idu86rbJI5YHUKCvKs0KxnSYbVe3F51UfGxuZX4Qy/fWlp6l7gWFwIkrOzN+oUK03kfw==} - '@asamuzakjp/css-color@5.0.1': - resolution: {integrity: sha512-2SZFvqMyvboVV1d15lMf7XiI3m7SDqXUuKaTymJYLN6dSGadqp+fVojqJlVoMlbZnlTmu3S0TLwLTJpvBMO1Aw==} + '@asamuzakjp/css-color@5.1.1': + resolution: {integrity: sha512-iGWN8E45Ws0XWx3D44Q1t6vX2LqhCKcwfmwBYCDsFrYFS6m4q/Ks61L2veETaLv+ckDC6+dTETJoaAAb7VjLiw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} '@asamuzakjp/dom-selector@7.0.4': @@ -2221,141 +2221,141 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.60.0': - resolution: {integrity: sha512-WOhNW9K8bR3kf4zLxbfg6Pxu2ybOUbB2AjMDHSQx86LIF4rH4Ft7vmMwNt0loO0eonglSNy4cpD3MKXXKQu0/A==} + '@rollup/rollup-android-arm-eabi@4.60.1': + resolution: {integrity: sha512-d6FinEBLdIiK+1uACUttJKfgZREXrF0Qc2SmLII7W2AD8FfiZ9Wjd+rD/iRuf5s5dWrr1GgwXCvPqOuDquOowA==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.60.0': - resolution: {integrity: sha512-u6JHLll5QKRvjciE78bQXDmqRqNs5M/3GVqZeMwvmjaNODJih/WIrJlFVEihvV0MiYFmd+ZyPr9wxOVbPAG2Iw==} + '@rollup/rollup-android-arm64@4.60.1': + resolution: {integrity: sha512-YjG/EwIDvvYI1YvYbHvDz/BYHtkY4ygUIXHnTdLhG+hKIQFBiosfWiACWortsKPKU/+dUwQQCKQM3qrDe8c9BA==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.60.0': - resolution: {integrity: sha512-qEF7CsKKzSRc20Ciu2Zw1wRrBz4g56F7r/vRwY430UPp/nt1x21Q/fpJ9N5l47WWvJlkNCPJz3QRVw008fi7yA==} + '@rollup/rollup-darwin-arm64@4.60.1': + resolution: {integrity: sha512-mjCpF7GmkRtSJwon+Rq1N8+pI+8l7w5g9Z3vWj4T7abguC4Czwi3Yu/pFaLvA3TTeMVjnu3ctigusqWUfjZzvw==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.60.0': - resolution: {integrity: sha512-WADYozJ4QCnXCH4wPB+3FuGmDPoFseVCUrANmA5LWwGmC6FL14BWC7pcq+FstOZv3baGX65tZ378uT6WG8ynTw==} + '@rollup/rollup-darwin-x64@4.60.1': + resolution: {integrity: sha512-haZ7hJ1JT4e9hqkoT9R/19XW2QKqjfJVv+i5AGg57S+nLk9lQnJ1F/eZloRO3o9Scy9CM3wQ9l+dkXtcBgN5Ew==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.60.0': - resolution: {integrity: sha512-6b8wGHJlDrGeSE3aH5mGNHBjA0TTkxdoNHik5EkvPHCt351XnigA4pS7Wsj/Eo9Y8RBU6f35cjN9SYmCFBtzxw==} + '@rollup/rollup-freebsd-arm64@4.60.1': + resolution: {integrity: sha512-czw90wpQq3ZsAVBlinZjAYTKduOjTywlG7fEeWKUA7oCmpA8xdTkxZZlwNJKWqILlq0wehoZcJYfBvOyhPTQ6w==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.60.0': - resolution: {integrity: sha512-h25Ga0t4jaylMB8M/JKAyrvvfxGRjnPQIR8lnCayyzEjEOx2EJIlIiMbhpWxDRKGKF8jbNH01NnN663dH638mA==} + '@rollup/rollup-freebsd-x64@4.60.1': + resolution: {integrity: sha512-KVB2rqsxTHuBtfOeySEyzEOB7ltlB/ux38iu2rBQzkjbwRVlkhAGIEDiiYnO2kFOkJp+Z7pUXKyrRRFuFUKt+g==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.60.0': - resolution: {integrity: sha512-RzeBwv0B3qtVBWtcuABtSuCzToo2IEAIQrcyB/b2zMvBWVbjo8bZDjACUpnaafaxhTw2W+imQbP2BD1usasK4g==} + '@rollup/rollup-linux-arm-gnueabihf@4.60.1': + resolution: {integrity: sha512-L+34Qqil+v5uC0zEubW7uByo78WOCIrBvci69E7sFASRl0X7b/MB6Cqd1lky/CtcSVTydWa2WZwFuWexjS5o6g==} cpu: [arm] os: [linux] libc: [glibc] - '@rollup/rollup-linux-arm-musleabihf@4.60.0': - resolution: {integrity: sha512-Sf7zusNI2CIU1HLzuu9Tc5YGAHEZs5Lu7N1ssJG4Tkw6e0MEsN7NdjUDDfGNHy2IU+ENyWT+L2obgWiguWibWQ==} + '@rollup/rollup-linux-arm-musleabihf@4.60.1': + resolution: {integrity: sha512-n83O8rt4v34hgFzlkb1ycniJh7IR5RCIqt6mz1VRJD6pmhRi0CXdmfnLu9dIUS6buzh60IvACM842Ffb3xd6Gg==} cpu: [arm] os: [linux] libc: [musl] - '@rollup/rollup-linux-arm64-gnu@4.60.0': - resolution: {integrity: sha512-DX2x7CMcrJzsE91q7/O02IJQ5/aLkVtYFryqCjduJhUfGKG6yJV8hxaw8pZa93lLEpPTP/ohdN4wFz7yp/ry9A==} + '@rollup/rollup-linux-arm64-gnu@4.60.1': + resolution: {integrity: sha512-Nql7sTeAzhTAja3QXeAI48+/+GjBJ+QmAH13snn0AJSNL50JsDqotyudHyMbO2RbJkskbMbFJfIJKWA6R1LCJQ==} cpu: [arm64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-arm64-musl@4.60.0': - resolution: {integrity: sha512-09EL+yFVbJZlhcQfShpswwRZ0Rg+z/CsSELFCnPt3iK+iqwGsI4zht3secj5vLEs957QvFFXnzAT0FFPIxSrkQ==} + '@rollup/rollup-linux-arm64-musl@4.60.1': + resolution: {integrity: sha512-+pUymDhd0ys9GcKZPPWlFiZ67sTWV5UU6zOJat02M1+PiuSGDziyRuI/pPue3hoUwm2uGfxdL+trT6Z9rxnlMA==} cpu: [arm64] os: [linux] libc: [musl] - '@rollup/rollup-linux-loong64-gnu@4.60.0': - resolution: {integrity: sha512-i9IcCMPr3EXm8EQg5jnja0Zyc1iFxJjZWlb4wr7U2Wx/GrddOuEafxRdMPRYVaXjgbhvqalp6np07hN1w9kAKw==} + '@rollup/rollup-linux-loong64-gnu@4.60.1': + resolution: {integrity: sha512-VSvgvQeIcsEvY4bKDHEDWcpW4Yw7BtlKG1GUT4FzBUlEKQK0rWHYBqQt6Fm2taXS+1bXvJT6kICu5ZwqKCnvlQ==} cpu: [loong64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-loong64-musl@4.60.0': - resolution: {integrity: sha512-DGzdJK9kyJ+B78MCkWeGnpXJ91tK/iKA6HwHxF4TAlPIY7GXEvMe8hBFRgdrR9Ly4qebR/7gfUs9y2IoaVEyog==} + '@rollup/rollup-linux-loong64-musl@4.60.1': + resolution: {integrity: sha512-4LqhUomJqwe641gsPp6xLfhqWMbQV04KtPp7/dIp0nzPxAkNY1AbwL5W0MQpcalLYk07vaW9Kp1PBhdpZYYcEw==} cpu: [loong64] os: [linux] libc: [musl] - '@rollup/rollup-linux-ppc64-gnu@4.60.0': - resolution: {integrity: sha512-RwpnLsqC8qbS8z1H1AxBA1H6qknR4YpPR9w2XX0vo2Sz10miu57PkNcnHVaZkbqyw/kUWfKMI73jhmfi9BRMUQ==} + '@rollup/rollup-linux-ppc64-gnu@4.60.1': + resolution: {integrity: sha512-tLQQ9aPvkBxOc/EUT6j3pyeMD6Hb8QF2BTBnCQWP/uu1lhc9AIrIjKnLYMEroIz/JvtGYgI9dF3AxHZNaEH0rw==} cpu: [ppc64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-ppc64-musl@4.60.0': - resolution: {integrity: sha512-Z8pPf54Ly3aqtdWC3G4rFigZgNvd+qJlOE52fmko3KST9SoGfAdSRCwyoyG05q1HrrAblLbk1/PSIV+80/pxLg==} + '@rollup/rollup-linux-ppc64-musl@4.60.1': + resolution: {integrity: sha512-RMxFhJwc9fSXP6PqmAz4cbv3kAyvD1etJFjTx4ONqFP9DkTkXsAMU4v3Vyc5BgzC+anz7nS/9tp4obsKfqkDHg==} cpu: [ppc64] os: [linux] libc: [musl] - '@rollup/rollup-linux-riscv64-gnu@4.60.0': - resolution: {integrity: sha512-3a3qQustp3COCGvnP4SvrMHnPQ9d1vzCakQVRTliaz8cIp/wULGjiGpbcqrkv0WrHTEp8bQD/B3HBjzujVWLOA==} + '@rollup/rollup-linux-riscv64-gnu@4.60.1': + resolution: {integrity: sha512-QKgFl+Yc1eEk6MmOBfRHYF6lTxiiiV3/z/BRrbSiW2I7AFTXoBFvdMEyglohPj//2mZS4hDOqeB0H1ACh3sBbg==} cpu: [riscv64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-riscv64-musl@4.60.0': - resolution: {integrity: sha512-pjZDsVH/1VsghMJ2/kAaxt6dL0psT6ZexQVrijczOf+PeP2BUqTHYejk3l6TlPRydggINOeNRhvpLa0AYpCWSQ==} + '@rollup/rollup-linux-riscv64-musl@4.60.1': + resolution: {integrity: sha512-RAjXjP/8c6ZtzatZcA1RaQr6O1TRhzC+adn8YZDnChliZHviqIjmvFwHcxi4JKPSDAt6Uhf/7vqcBzQJy0PDJg==} cpu: [riscv64] os: [linux] libc: [musl] - '@rollup/rollup-linux-s390x-gnu@4.60.0': - resolution: {integrity: sha512-3ObQs0BhvPgiUVZrN7gqCSvmFuMWvWvsjG5ayJ3Lraqv+2KhOsp+pUbigqbeWqueGIsnn+09HBw27rJ+gYK4VQ==} + '@rollup/rollup-linux-s390x-gnu@4.60.1': + resolution: {integrity: sha512-wcuocpaOlaL1COBYiA89O6yfjlp3RwKDeTIA0hM7OpmhR1Bjo9j31G1uQVpDlTvwxGn2nQs65fBFL5UFd76FcQ==} cpu: [s390x] os: [linux] libc: [glibc] - '@rollup/rollup-linux-x64-gnu@4.60.0': - resolution: {integrity: sha512-EtylprDtQPdS5rXvAayrNDYoJhIz1/vzN2fEubo3yLE7tfAw+948dO0g4M0vkTVFhKojnF+n6C8bDNe+gDRdTg==} + '@rollup/rollup-linux-x64-gnu@4.60.1': + resolution: {integrity: sha512-77PpsFQUCOiZR9+LQEFg9GClyfkNXj1MP6wRnzYs0EeWbPcHs02AXu4xuUbM1zhwn3wqaizle3AEYg5aeoohhg==} cpu: [x64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-x64-musl@4.60.0': - resolution: {integrity: sha512-k09oiRCi/bHU9UVFqD17r3eJR9bn03TyKraCrlz5ULFJGdJGi7VOmm9jl44vOJvRJ6P7WuBi/s2A97LxxHGIdw==} + '@rollup/rollup-linux-x64-musl@4.60.1': + resolution: {integrity: sha512-5cIATbk5vynAjqqmyBjlciMJl1+R/CwX9oLk/EyiFXDWd95KpHdrOJT//rnUl4cUcskrd0jCCw3wpZnhIHdD9w==} cpu: [x64] os: [linux] libc: [musl] - '@rollup/rollup-openbsd-x64@4.60.0': - resolution: {integrity: sha512-1o/0/pIhozoSaDJoDcec+IVLbnRtQmHwPV730+AOD29lHEEo4F5BEUB24H0OBdhbBBDwIOSuf7vgg0Ywxdfiiw==} + '@rollup/rollup-openbsd-x64@4.60.1': + resolution: {integrity: sha512-cl0w09WsCi17mcmWqqglez9Gk8isgeWvoUZ3WiJFYSR3zjBQc2J5/ihSjpl+VLjPqjQ/1hJRcqBfLjssREQILw==} cpu: [x64] os: [openbsd] - '@rollup/rollup-openharmony-arm64@4.60.0': - resolution: {integrity: sha512-pESDkos/PDzYwtyzB5p/UoNU/8fJo68vcXM9ZW2V0kjYayj1KaaUfi1NmTUTUpMn4UhU4gTuK8gIaFO4UGuMbA==} + '@rollup/rollup-openharmony-arm64@4.60.1': + resolution: {integrity: sha512-4Cv23ZrONRbNtbZa37mLSueXUCtN7MXccChtKpUnQNgF010rjrjfHx3QxkS2PI7LqGT5xXyYs1a7LbzAwT0iCA==} cpu: [arm64] os: [openharmony] - '@rollup/rollup-win32-arm64-msvc@4.60.0': - resolution: {integrity: sha512-hj1wFStD7B1YBeYmvY+lWXZ7ey73YGPcViMShYikqKT1GtstIKQAtfUI6yrzPjAy/O7pO0VLXGmUVWXQMaYgTQ==} + '@rollup/rollup-win32-arm64-msvc@4.60.1': + resolution: {integrity: sha512-i1okWYkA4FJICtr7KpYzFpRTHgy5jdDbZiWfvny21iIKky5YExiDXP+zbXzm3dUcFpkEeYNHgQ5fuG236JPq0g==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.60.0': - resolution: {integrity: sha512-SyaIPFoxmUPlNDq5EHkTbiKzmSEmq/gOYFI/3HHJ8iS/v1mbugVa7dXUzcJGQfoytp9DJFLhHH4U3/eTy2Bq4w==} + '@rollup/rollup-win32-ia32-msvc@4.60.1': + resolution: {integrity: sha512-u09m3CuwLzShA0EYKMNiFgcjjzwqtUMLmuCJLeZWjjOYA3IT2Di09KaxGBTP9xVztWyIWjVdsB2E9goMjZvTQg==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-gnu@4.60.0': - resolution: {integrity: sha512-RdcryEfzZr+lAr5kRm2ucN9aVlCCa2QNq4hXelZxb8GG0NJSazq44Z3PCCc8wISRuCVnGs0lQJVX5Vp6fKA+IA==} + '@rollup/rollup-win32-x64-gnu@4.60.1': + resolution: {integrity: sha512-k+600V9Zl1CM7eZxJgMyTUzmrmhB/0XZnF4pRypKAlAgxmedUA+1v9R+XOFv56W4SlHEzfeMtzujLJD22Uz5zg==} cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.60.0': - resolution: {integrity: sha512-PrsWNQ8BuE00O3Xsx3ALh2Df8fAj9+cvvX9AIA6o4KpATR98c9mud4XtDWVvsEuyia5U4tVSTKygawyJkjm60w==} + '@rollup/rollup-win32-x64-msvc@4.60.1': + resolution: {integrity: sha512-lWMnixq/QzxyhTV6NjQJ4SFo1J6PvOX8vUx5Wb4bBPsEb+8xZ89Bz6kOXpfXj9ak9AHTQVQzlgzBEc1SyM27xQ==} cpu: [x64] os: [win32] @@ -2646,6 +2646,10 @@ packages: resolution: {integrity: sha512-/iZM6FnM4tnx9csuTxspMW4BOSegshwX5oBDznJ7S4WggL7Vczz5d2W11ecc4vRrQMQHXRSxzrCsyG5EsPPTbA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/types@8.58.0': + resolution: {integrity: sha512-O9CjxypDT89fbHxRfETNoAnHj/i6IpRK0CvbVN3qibxlLdo5p5hcLmUuCCrHMpxiWSwKyI8mCP7qRNYuOJ0Uww==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/typescript-estree@8.57.2': resolution: {integrity: sha512-2MKM+I6g8tJxfSmFKOnHv2t8Sk3T6rF20A1Puk0svLK+uVapDZB/4pfAeB7nE83uAZrU6OxW+HmOd5wHVdXwXA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2962,8 +2966,8 @@ packages: bare-buffer: optional: true - bare-os@3.8.0: - resolution: {integrity: sha512-Dc9/SlwfxkXIGYhvMQNUtKaXCaGkZYGcd1vuNUUADVqzu4/vQfvnMkYYOUnt2VwQ2AqKr/8qAVFRtwETljgeFg==} + bare-os@3.8.6: + resolution: {integrity: sha512-l8xaNWWb/bXuzgsrlF5jaa5QYDJ9S0ddd54cP6CH+081+5iPrbJiCfBWQqrWYzmUhCbsH+WR6qxo9MeHVCr0MQ==} engines: {bare: '>=1.14.0'} bare-path@3.0.0: @@ -2989,8 +2993,8 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - baseline-browser-mapping@2.10.11: - resolution: {integrity: sha512-DAKrHphkJyiGuau/cFieRYhcTFeK/lBuD++C7cZ6KZHbMhBrisoi+EvhQ5RZrIfV5qwsW8kgQ07JIC+MDJRAhg==} + baseline-browser-mapping@2.10.12: + resolution: {integrity: sha512-qyq26DxfY4awP2gIRXhhLWfwzwI+N5Nxk6iQi8EFizIaWIjqicQTE4sLnZZVdeKPRcVNoJOkkpfzoIYuvCKaIQ==} engines: {node: '>=6.0.0'} hasBin: true @@ -3104,8 +3108,8 @@ packages: resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} engines: {node: '>=16'} - caniuse-lite@1.0.30001781: - resolution: {integrity: sha512-RdwNCyMsNBftLjW6w01z8bKEvT6e/5tpPVEgtn22TiLGlstHOVecsX2KHFkD5e/vRnIE4EGzpuIODb3mtswtkw==} + caniuse-lite@1.0.30001782: + resolution: {integrity: sha512-dZcaJLJeDMh4rELYFw1tvSn1bhZWYFOt468FcbHHxx/Z/dFidd1I6ciyFdi3iwfQCyOjqo9upF6lGQYtMiJWxw==} caseless@0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} @@ -3232,8 +3236,8 @@ packages: resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==} engines: {node: '>=20'} - comment-parser@1.4.5: - resolution: {integrity: sha512-aRDkn3uyIlCFfk5NUA+VdwMmMsh8JGhc4hapfV4yxymHGQ3BVskMQfoXGpCo5IoBuQ9tS5iiVKhCpTcB4pW4qw==} + comment-parser@1.4.6: + resolution: {integrity: sha512-ObxuY6vnbWTN6Od72xfwN9DbzC7Y2vv8u1Soi9ahRKL37gb6y1qk6/dgjs+3JWuXJHWvsg3BXIwzd/rkmAwavg==} engines: {node: '>= 12.0.0'} concat-map@0.0.1: @@ -4645,8 +4649,8 @@ packages: engines: {node: '>=18.0.0'} hasBin: true - minimatch@10.2.4: - resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} + minimatch@10.2.5: + resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} engines: {node: 18 || 20 || >=22} minimatch@3.1.5: @@ -5289,8 +5293,8 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} hasBin: true - rollup@4.60.0: - resolution: {integrity: sha512-yqjxruMGBQJ2gG4HtjZtAfXArHomazDHoFwFFmZZl0r7Pdo7qCIXKqKHZc8yeoMgzJJ+pO6pEEHa+V7uzWlrAQ==} + rollup@4.60.1: + resolution: {integrity: sha512-VmtB2rFU/GroZ4oL8+ZqXgSA38O6GR8KSIvWmEFv63pQ0G6KaBH9s07PO8XTXP4vI+3UJUEypOfjkGfmSBBR0w==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -6231,7 +6235,7 @@ snapshots: '@actions/io@3.0.2': {} - '@asamuzakjp/css-color@5.0.1': + '@asamuzakjp/css-color@5.1.1': dependencies: '@csstools/css-calc': 3.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) '@csstools/css-color-parser': 4.0.2(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) @@ -6613,7 +6617,7 @@ snapshots: dependencies: '@eslint/object-schema': 3.0.3 debug: 4.4.3 - minimatch: 10.2.4 + minimatch: 10.2.5 transitivePeerDependencies: - supports-color @@ -6660,7 +6664,7 @@ snapshots: '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation': 0.212.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 - minimatch: 10.2.4 + minimatch: 10.2.5 transitivePeerDependencies: - supports-color @@ -7673,87 +7677,87 @@ snapshots: '@rolldown/pluginutils@1.0.0-rc.12': {} - '@rollup/pluginutils@5.3.0(rollup@4.60.0)': + '@rollup/pluginutils@5.3.0(rollup@4.60.1)': dependencies: '@types/estree': 1.0.8 estree-walker: 2.0.2 picomatch: 4.0.4 optionalDependencies: - rollup: 4.60.0 + rollup: 4.60.1 - '@rollup/rollup-android-arm-eabi@4.60.0': + '@rollup/rollup-android-arm-eabi@4.60.1': optional: true - '@rollup/rollup-android-arm64@4.60.0': + '@rollup/rollup-android-arm64@4.60.1': optional: true - '@rollup/rollup-darwin-arm64@4.60.0': + '@rollup/rollup-darwin-arm64@4.60.1': optional: true - '@rollup/rollup-darwin-x64@4.60.0': + '@rollup/rollup-darwin-x64@4.60.1': optional: true - '@rollup/rollup-freebsd-arm64@4.60.0': + '@rollup/rollup-freebsd-arm64@4.60.1': optional: true - '@rollup/rollup-freebsd-x64@4.60.0': + '@rollup/rollup-freebsd-x64@4.60.1': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.60.0': + '@rollup/rollup-linux-arm-gnueabihf@4.60.1': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.60.0': + '@rollup/rollup-linux-arm-musleabihf@4.60.1': optional: true - '@rollup/rollup-linux-arm64-gnu@4.60.0': + '@rollup/rollup-linux-arm64-gnu@4.60.1': optional: true - '@rollup/rollup-linux-arm64-musl@4.60.0': + '@rollup/rollup-linux-arm64-musl@4.60.1': optional: true - '@rollup/rollup-linux-loong64-gnu@4.60.0': + '@rollup/rollup-linux-loong64-gnu@4.60.1': optional: true - '@rollup/rollup-linux-loong64-musl@4.60.0': + '@rollup/rollup-linux-loong64-musl@4.60.1': optional: true - '@rollup/rollup-linux-ppc64-gnu@4.60.0': + '@rollup/rollup-linux-ppc64-gnu@4.60.1': optional: true - '@rollup/rollup-linux-ppc64-musl@4.60.0': + '@rollup/rollup-linux-ppc64-musl@4.60.1': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.60.0': + '@rollup/rollup-linux-riscv64-gnu@4.60.1': optional: true - '@rollup/rollup-linux-riscv64-musl@4.60.0': + '@rollup/rollup-linux-riscv64-musl@4.60.1': optional: true - '@rollup/rollup-linux-s390x-gnu@4.60.0': + '@rollup/rollup-linux-s390x-gnu@4.60.1': optional: true - '@rollup/rollup-linux-x64-gnu@4.60.0': + '@rollup/rollup-linux-x64-gnu@4.60.1': optional: true - '@rollup/rollup-linux-x64-musl@4.60.0': + '@rollup/rollup-linux-x64-musl@4.60.1': optional: true - '@rollup/rollup-openbsd-x64@4.60.0': + '@rollup/rollup-openbsd-x64@4.60.1': optional: true - '@rollup/rollup-openharmony-arm64@4.60.0': + '@rollup/rollup-openharmony-arm64@4.60.1': optional: true - '@rollup/rollup-win32-arm64-msvc@4.60.0': + '@rollup/rollup-win32-arm64-msvc@4.60.1': optional: true - '@rollup/rollup-win32-ia32-msvc@4.60.0': + '@rollup/rollup-win32-ia32-msvc@4.60.1': optional: true - '@rollup/rollup-win32-x64-gnu@4.60.0': + '@rollup/rollup-win32-x64-gnu@4.60.1': optional: true - '@rollup/rollup-win32-x64-msvc@4.60.0': + '@rollup/rollup-win32-x64-msvc@4.60.1': optional: true '@rss3/api-core@0.0.25': @@ -7879,7 +7883,7 @@ snapshots: '@stylistic/eslint-plugin@5.10.0(eslint@10.1.0(jiti@2.6.1))': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@10.1.0(jiti@2.6.1)) - '@typescript-eslint/types': 8.57.2 + '@typescript-eslint/types': 8.58.0 eslint: 10.1.0(jiti@2.6.1) eslint-visitor-keys: 4.2.1 espree: 10.4.0 @@ -8098,6 +8102,8 @@ snapshots: '@typescript-eslint/types@8.57.2': {} + '@typescript-eslint/types@8.58.0': {} + '@typescript-eslint/typescript-estree@8.57.2(typescript@5.9.3)': dependencies: '@typescript-eslint/project-service': 8.57.2(typescript@5.9.3) @@ -8105,7 +8111,7 @@ snapshots: '@typescript-eslint/types': 8.57.2 '@typescript-eslint/visitor-keys': 8.57.2 debug: 4.4.3 - minimatch: 10.2.4 + minimatch: 10.2.5 semver: 7.7.4 tinyglobby: 0.2.15 ts-api-utils: 2.5.0(typescript@5.9.3) @@ -8188,10 +8194,10 @@ snapshots: '@unrs/resolver-binding-win32-x64-msvc@1.11.1': optional: true - '@vercel/nft@1.5.0(rollup@4.60.0)': + '@vercel/nft@1.5.0(rollup@4.60.1)': dependencies: '@mapbox/node-pre-gyp': 2.0.3 - '@rollup/pluginutils': 5.3.0(rollup@4.60.0) + '@rollup/pluginutils': 5.3.0(rollup@4.60.1) acorn: 8.16.0 acorn-import-attributes: 1.9.5(acorn@8.16.0) async-sema: 3.1.1 @@ -8380,11 +8386,11 @@ snapshots: - bare-abort-controller - react-native-b4a - bare-os@3.8.0: {} + bare-os@3.8.6: {} bare-path@3.0.0: dependencies: - bare-os: 3.8.0 + bare-os: 3.8.6 bare-stream@2.11.0(bare-events@2.8.2): dependencies: @@ -8401,7 +8407,7 @@ snapshots: base64-js@1.5.1: {} - baseline-browser-mapping@2.10.11: {} + baseline-browser-mapping@2.10.12: {} basic-ftp@5.2.0: {} @@ -8453,8 +8459,8 @@ snapshots: browserslist@4.28.1: dependencies: - baseline-browser-mapping: 2.10.11 - caniuse-lite: 1.0.30001781 + baseline-browser-mapping: 2.10.12 + caniuse-lite: 1.0.30001782 electron-to-chromium: 1.5.328 node-releases: 2.0.36 update-browserslist-db: 1.2.3(browserslist@4.28.1) @@ -8512,7 +8518,7 @@ snapshots: camelcase@8.0.0: {} - caniuse-lite@1.0.30001781: {} + caniuse-lite@1.0.30001782: {} caseless@0.12.0: {} @@ -8641,7 +8647,7 @@ snapshots: commander@14.0.3: {} - comment-parser@1.4.5: {} + comment-parser@1.4.6: {} concat-map@0.0.1: {} @@ -9078,13 +9084,13 @@ snapshots: eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.1.0(jiti@2.6.1)): dependencies: '@package-json/types': 0.0.12 - '@typescript-eslint/types': 8.57.2 - comment-parser: 1.4.5 + '@typescript-eslint/types': 8.58.0 + comment-parser: 1.4.6 debug: 4.4.3 eslint: 10.1.0(jiti@2.6.1) eslint-import-context: 0.1.9(unrs-resolver@1.11.1) is-glob: 4.0.3 - minimatch: 10.2.4 + minimatch: 10.2.5 semver: 7.7.4 stable-hash-x: 0.2.0 unrs-resolver: 1.11.1 @@ -9189,7 +9195,7 @@ snapshots: imurmurhash: 0.1.4 is-glob: 4.0.3 json-stable-stringify-without-jsonify: 1.0.1 - minimatch: 10.2.4 + minimatch: 10.2.5 natural-compare: 1.4.0 optionator: 0.9.4 optionalDependencies: @@ -9467,7 +9473,7 @@ snapshots: glob@13.0.6: dependencies: - minimatch: 10.2.4 + minimatch: 10.2.5 minipass: 7.1.3 path-scurry: 2.0.2 @@ -9886,7 +9892,7 @@ snapshots: jsdom@29.0.1(@noble/hashes@2.0.1): dependencies: - '@asamuzakjp/css-color': 5.0.1 + '@asamuzakjp/css-color': 5.1.1 '@asamuzakjp/dom-selector': 7.0.4 '@bramus/specificity': 2.4.2 '@csstools/css-syntax-patches-for-csstree': 1.1.2(css-tree@3.2.1) @@ -10324,7 +10330,7 @@ snapshots: - bufferutil - utf-8-validate - minimatch@10.2.4: + minimatch@10.2.5: dependencies: brace-expansion: 5.0.5 @@ -11118,38 +11124,38 @@ snapshots: - '@emnapi/core' - '@emnapi/runtime' - rollup@4.60.0: + rollup@4.60.1: dependencies: '@types/estree': 1.0.8 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.60.0 - '@rollup/rollup-android-arm64': 4.60.0 - '@rollup/rollup-darwin-arm64': 4.60.0 - '@rollup/rollup-darwin-x64': 4.60.0 - '@rollup/rollup-freebsd-arm64': 4.60.0 - '@rollup/rollup-freebsd-x64': 4.60.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.60.0 - '@rollup/rollup-linux-arm-musleabihf': 4.60.0 - '@rollup/rollup-linux-arm64-gnu': 4.60.0 - '@rollup/rollup-linux-arm64-musl': 4.60.0 - '@rollup/rollup-linux-loong64-gnu': 4.60.0 - '@rollup/rollup-linux-loong64-musl': 4.60.0 - '@rollup/rollup-linux-ppc64-gnu': 4.60.0 - '@rollup/rollup-linux-ppc64-musl': 4.60.0 - '@rollup/rollup-linux-riscv64-gnu': 4.60.0 - '@rollup/rollup-linux-riscv64-musl': 4.60.0 - '@rollup/rollup-linux-s390x-gnu': 4.60.0 - '@rollup/rollup-linux-x64-gnu': 4.60.0 - '@rollup/rollup-linux-x64-musl': 4.60.0 - '@rollup/rollup-openbsd-x64': 4.60.0 - '@rollup/rollup-openharmony-arm64': 4.60.0 - '@rollup/rollup-win32-arm64-msvc': 4.60.0 - '@rollup/rollup-win32-ia32-msvc': 4.60.0 - '@rollup/rollup-win32-x64-gnu': 4.60.0 - '@rollup/rollup-win32-x64-msvc': 4.60.0 + '@rollup/rollup-android-arm-eabi': 4.60.1 + '@rollup/rollup-android-arm64': 4.60.1 + '@rollup/rollup-darwin-arm64': 4.60.1 + '@rollup/rollup-darwin-x64': 4.60.1 + '@rollup/rollup-freebsd-arm64': 4.60.1 + '@rollup/rollup-freebsd-x64': 4.60.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.60.1 + '@rollup/rollup-linux-arm-musleabihf': 4.60.1 + '@rollup/rollup-linux-arm64-gnu': 4.60.1 + '@rollup/rollup-linux-arm64-musl': 4.60.1 + '@rollup/rollup-linux-loong64-gnu': 4.60.1 + '@rollup/rollup-linux-loong64-musl': 4.60.1 + '@rollup/rollup-linux-ppc64-gnu': 4.60.1 + '@rollup/rollup-linux-ppc64-musl': 4.60.1 + '@rollup/rollup-linux-riscv64-gnu': 4.60.1 + '@rollup/rollup-linux-riscv64-musl': 4.60.1 + '@rollup/rollup-linux-s390x-gnu': 4.60.1 + '@rollup/rollup-linux-x64-gnu': 4.60.1 + '@rollup/rollup-linux-x64-musl': 4.60.1 + '@rollup/rollup-openbsd-x64': 4.60.1 + '@rollup/rollup-openharmony-arm64': 4.60.1 + '@rollup/rollup-win32-arm64-msvc': 4.60.1 + '@rollup/rollup-win32-ia32-msvc': 4.60.1 + '@rollup/rollup-win32-x64-gnu': 4.60.1 + '@rollup/rollup-win32-x64-msvc': 4.60.1 fsevents: 2.3.3 - rss-parser@3.13.0(patch_hash=e1697dd9dde771024b5d0669a3eff6237e75fbac78381a6127012b67593bb2b7): + rss-parser@3.13.0(patch_hash=afac79a31a3db94c953d49680bc5528468f051957d461e913d2e2dbf5cd22a8d): dependencies: entities: 7.0.1 xml2js: 0.6.2 @@ -11799,7 +11805,7 @@ snapshots: fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 postcss: 8.5.8 - rollup: 4.60.0 + rollup: 4.60.1 tinyglobby: 0.2.15 optionalDependencies: '@types/node': 25.5.0 From 92b8da23a95f1b082e5fa3ec1e9749a2b2209246 Mon Sep 17 00:00:00 2001 From: HaZy-Gaming <4704801@qq.com> Date: Tue, 31 Mar 2026 12:31:39 +0800 Subject: [PATCH 017/439] fix(github): update topics route selector to fix empty route (#21560) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 解决GitHub Topics路由"Error: this route is empty"问题。 --- lib/routes/github/topic.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/routes/github/topic.ts b/lib/routes/github/topic.ts index 74d1b96160aa..3be582428c1f 100644 --- a/lib/routes/github/topic.ts +++ b/lib/routes/github/topic.ts @@ -46,7 +46,7 @@ async function handler(ctx) { title: $('title').text(), description: $('.markdown-body').text().trim(), link: url, - item: $('article.my-4') + item: $('article.border') .toArray() .map((item) => { item = $(item); From f19465a499c4ea557114a74351a1a9741fa116ea Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 31 Mar 2026 08:08:50 +0000 Subject: [PATCH 018/439] chore(deps-dev): bump @cloudflare/containers in the cloudflare group (#21567) Bumps the cloudflare group with 1 update: [@cloudflare/containers](https://github.com/cloudflare/containers). Updates `@cloudflare/containers` from 0.2.0 to 0.2.1 - [Release notes](https://github.com/cloudflare/containers/releases) - [Changelog](https://github.com/cloudflare/containers/blob/main/CHANGELOG.md) - [Commits](https://github.com/cloudflare/containers/compare/v0.2.0...v0.2.1) --- updated-dependencies: - dependency-name: "@cloudflare/containers" dependency-version: 0.2.1 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: cloudflare ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 3af3a0b92ff7..d4247a31e0d3 100644 --- a/package.json +++ b/package.json @@ -146,7 +146,7 @@ "@actions/core": "3.0.0", "@actions/github": "9.0.0", "@bbob/types": "4.3.1", - "@cloudflare/containers": "0.2.0", + "@cloudflare/containers": "0.2.1", "@cloudflare/puppeteer": "1.0.6", "@cloudflare/workers-types": "4.20260329.1", "@eslint/eslintrc": "3.3.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2e16b14e32b2..75b2d4b73e5e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -297,8 +297,8 @@ importers: specifier: 4.3.1 version: 4.3.1 '@cloudflare/containers': - specifier: 0.2.0 - version: 0.2.0 + specifier: 0.2.1 + version: 0.2.1 '@cloudflare/puppeteer': specifier: 1.0.6 version: 1.0.6(bufferutil@4.1.0)(utf-8-validate@5.0.10) @@ -582,8 +582,8 @@ packages: '@bufbuild/protobuf@2.11.0': resolution: {integrity: sha512-sBXGT13cpmPR5BMgHE6UEEfEaShh5Ror6rfN3yEK5si7QVrtZg8LEPQb0VVhiLRUslD2yLnXtnRzG035J/mZXQ==} - '@cloudflare/containers@0.2.0': - resolution: {integrity: sha512-npxGQCHKx5grXnzAHHVAlg6FbyrH07v3COHxXniq7qWfqqIxD64Vrp7Jy9iCPkZamTRfXr0E4Pi0tRIY10Dq9w==} + '@cloudflare/containers@0.2.1': + resolution: {integrity: sha512-8Cfy1p3hc3WgUeofodfsRcqjrfwUuzKb8yNyM/NoTFfy3aEHKbuia32n2lwSc1vOODTDZ1ooD8nRjvAYEPzVBg==} '@cloudflare/kv-asset-handler@0.4.2': resolution: {integrity: sha512-SIOD2DxrRRwQ+jgzlXCqoEFiKOFqaPjhnNTGKXSRLvp1HiOvapLaFG2kEr9dYQTYe8rKrd9uvDUzmAITeNyaHQ==} @@ -6345,7 +6345,7 @@ snapshots: '@bufbuild/protobuf@2.11.0': {} - '@cloudflare/containers@0.2.0': {} + '@cloudflare/containers@0.2.1': {} '@cloudflare/kv-asset-handler@0.4.2': {} From a09008a172e03569b5454b4c2b6ceef2f19727ac Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 31 Mar 2026 16:26:40 +0800 Subject: [PATCH 019/439] chore(deps): bump @hono/node-server from 1.19.11 to 1.19.12 (#21570) Bumps [@hono/node-server](https://github.com/honojs/node-server) from 1.19.11 to 1.19.12. - [Release notes](https://github.com/honojs/node-server/releases) - [Commits](https://github.com/honojs/node-server/compare/v1.19.11...v1.19.12) --- updated-dependencies: - dependency-name: "@hono/node-server" dependency-version: 1.19.12 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index d4247a31e0d3..2bd78c0a59ad 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ "@bbob/html": "4.3.1", "@bbob/plugin-helper": "4.3.1", "@bbob/preset-html5": "4.3.1", - "@hono/node-server": "1.19.11", + "@hono/node-server": "1.19.12", "@hono/zod-openapi": "1.2.4", "@jocmp/mercury-parser": "3.0.7", "@notionhq/client": "5.15.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 75b2d4b73e5e..d37e8013650f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -41,8 +41,8 @@ importers: specifier: 4.3.1 version: 4.3.1 '@hono/node-server': - specifier: 1.19.11 - version: 1.19.11(hono@4.12.8) + specifier: 1.19.12 + version: 1.19.12(hono@4.12.8) '@hono/zod-openapi': specifier: 1.2.4 version: 1.2.4(hono@4.12.8)(zod@4.3.6) @@ -1074,8 +1074,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.9.0 - '@hono/node-server@1.19.11': - resolution: {integrity: sha512-dr8/3zEaB+p0D2n/IUrlPF1HZm586qgJNXK1a9fhg/PzdtkK7Ksd5l312tJX2yBuALqDYBlG20QEbayqPyxn+g==} + '@hono/node-server@1.19.12': + resolution: {integrity: sha512-txsUW4SQ1iilgE0l9/e9VQWmELXifEFvmdA1j6WFh/aFPj99hIntrSsq/if0UWyGVkmrRPKA1wCeP+UCr1B9Uw==} engines: {node: '>=18.14.1'} peerDependencies: hono: ^4 @@ -6668,7 +6668,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@hono/node-server@1.19.11(hono@4.12.8)': + '@hono/node-server@1.19.12(hono@4.12.8)': dependencies: hono: 4.12.8 From cf7bbbc7a1e283f9a882360fc7feba3248a36479 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 31 Mar 2026 16:31:47 +0800 Subject: [PATCH 020/439] chore(deps-dev): bump the typescript-eslint group with 2 updates (#21568) Bumps the typescript-eslint group with 2 updates: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) and [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser). Updates `@typescript-eslint/eslint-plugin` from 8.57.2 to 8.58.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.58.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.57.2 to 8.58.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.58.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-version: 8.58.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: typescript-eslint - dependency-name: "@typescript-eslint/parser" dependency-version: 8.58.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: typescript-eslint ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 4 +- pnpm-lock.yaml | 138 +++++++++++++++++++++++-------------------------- 2 files changed, 68 insertions(+), 74 deletions(-) diff --git a/package.json b/package.json index 2bd78c0a59ad..f5cebf073ebe 100644 --- a/package.json +++ b/package.json @@ -169,8 +169,8 @@ "@types/module-alias": "2.0.4", "@types/node": "25.5.0", "@types/sanitize-html": "2.16.1", - "@typescript-eslint/eslint-plugin": "8.57.2", - "@typescript-eslint/parser": "8.57.2", + "@typescript-eslint/eslint-plugin": "8.58.0", + "@typescript-eslint/parser": "8.58.0", "@vercel/nft": "1.5.0", "@vitest/coverage-v8": "4.0.9", "discord-api-types": "0.38.43", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d37e8013650f..a43fa8c86aae 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -366,11 +366,11 @@ importers: specifier: 2.16.1 version: 2.16.1 '@typescript-eslint/eslint-plugin': - specifier: 8.57.2 - version: 8.57.2(@typescript-eslint/parser@8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) + specifier: 8.58.0 + version: 8.58.0(@typescript-eslint/parser@8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: 8.57.2 - version: 8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) + specifier: 8.58.0 + version: 8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) '@vercel/nft': specifier: 1.5.0 version: 1.5.0(rollup@4.60.1) @@ -391,7 +391,7 @@ importers: version: 9.1.1(@types/node@25.5.0)(eslint@10.1.0(jiti@2.6.1)) eslint-plugin-import-x: specifier: 4.16.2 - version: 4.16.2(@typescript-eslint/utils@8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.1.0(jiti@2.6.1)) + version: 4.16.2(@typescript-eslint/utils@8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.1.0(jiti@2.6.1)) eslint-plugin-n: specifier: 17.24.0 version: 17.24.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) @@ -2604,67 +2604,63 @@ packages: '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - '@typescript-eslint/eslint-plugin@8.57.2': - resolution: {integrity: sha512-NZZgp0Fm2IkD+La5PR81sd+g+8oS6JwJje+aRWsDocxHkjyRw0J5L5ZTlN3LI1LlOcGL7ph3eaIUmTXMIjLk0w==} + '@typescript-eslint/eslint-plugin@8.58.0': + resolution: {integrity: sha512-RLkVSiNuUP1C2ROIWfqX+YcUfLaSnxGE/8M+Y57lopVwg9VTYYfhuz15Yf1IzCKgZj6/rIbYTmJCUSqr76r0Wg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.57.2 + '@typescript-eslint/parser': ^8.58.0 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/parser@8.57.2': - resolution: {integrity: sha512-30ScMRHIAD33JJQkgfGW1t8CURZtjc2JpTrq5n2HFhOefbAhb7ucc7xJwdWcrEtqUIYJ73Nybpsggii6GtAHjA==} + '@typescript-eslint/parser@8.58.0': + resolution: {integrity: sha512-rLoGZIf9afaRBYsPUMtvkDWykwXwUPL60HebR4JgTI8mxfFe2cQTu3AGitANp4b9B2QlVru6WzjgB2IzJKiCSA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/project-service@8.57.2': - resolution: {integrity: sha512-FuH0wipFywXRTHf+bTTjNyuNQQsQC3qh/dYzaM4I4W0jrCqjCVuUh99+xd9KamUfmCGPvbO8NDngo/vsnNVqgw==} + '@typescript-eslint/project-service@8.58.0': + resolution: {integrity: sha512-8Q/wBPWLQP1j16NxoPNIKpDZFMaxl7yWIoqXWYeWO+Bbd2mjgvoF0dxP2jKZg5+x49rgKdf7Ck473M8PC3V9lg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/scope-manager@8.57.2': - resolution: {integrity: sha512-snZKH+W4WbWkrBqj4gUNRIGb/jipDW3qMqVJ4C9rzdFc+wLwruxk+2a5D+uoFcKPAqyqEnSb4l2ULuZf95eSkw==} + '@typescript-eslint/scope-manager@8.58.0': + resolution: {integrity: sha512-W1Lur1oF50FxSnNdGp3Vs6P+yBRSmZiw4IIjEeYxd8UQJwhUF0gDgDD/W/Tgmh73mxgEU3qX0Bzdl/NGuSPEpQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.57.2': - resolution: {integrity: sha512-3Lm5DSM+DCowsUOJC+YqHHnKEfFh5CoGkj5Z31NQSNF4l5wdOwqGn99wmwN/LImhfY3KJnmordBq/4+VDe2eKw==} + '@typescript-eslint/tsconfig-utils@8.58.0': + resolution: {integrity: sha512-doNSZEVJsWEu4htiVC+PR6NpM+pa+a4ClH9INRWOWCUzMst/VA9c4gXq92F8GUD1rwhNvRLkgjfYtFXegXQF7A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/type-utils@8.57.2': - resolution: {integrity: sha512-Co6ZCShm6kIbAM/s+oYVpKFfW7LBc6FXoPXjTRQ449PPNBY8U0KZXuevz5IFuuUj2H9ss40atTaf9dlGLzbWZg==} + '@typescript-eslint/type-utils@8.58.0': + resolution: {integrity: sha512-aGsCQImkDIqMyx1u4PrVlbi/krmDsQUs4zAcCV6M7yPcPev+RqVlndsJy9kJ8TLihW9TZ0kbDAzctpLn5o+lOg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' - - '@typescript-eslint/types@8.57.2': - resolution: {integrity: sha512-/iZM6FnM4tnx9csuTxspMW4BOSegshwX5oBDznJ7S4WggL7Vczz5d2W11ecc4vRrQMQHXRSxzrCsyG5EsPPTbA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + typescript: '>=4.8.4 <6.1.0' '@typescript-eslint/types@8.58.0': resolution: {integrity: sha512-O9CjxypDT89fbHxRfETNoAnHj/i6IpRK0CvbVN3qibxlLdo5p5hcLmUuCCrHMpxiWSwKyI8mCP7qRNYuOJ0Uww==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.57.2': - resolution: {integrity: sha512-2MKM+I6g8tJxfSmFKOnHv2t8Sk3T6rF20A1Puk0svLK+uVapDZB/4pfAeB7nE83uAZrU6OxW+HmOd5wHVdXwXA==} + '@typescript-eslint/typescript-estree@8.58.0': + resolution: {integrity: sha512-7vv5UWbHqew/dvs+D3e1RvLv1v2eeZ9txRHPnEEBUgSNLx5ghdzjHa0sgLWYVKssH+lYmV0JaWdoubo0ncGYLA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/utils@8.57.2': - resolution: {integrity: sha512-krRIbvPK1ju1WBKIefiX+bngPs+odIQUtR7kymzPfo1POVw3jlF+nLkmexdSSd4UCbDcQn+wMBATOOmpBbqgKg==} + '@typescript-eslint/utils@8.58.0': + resolution: {integrity: sha512-RfeSqcFeHMHlAWzt4TBjWOAtoW9lnsAGiP3GbaX9uVgTYYrMbVnGONEfUCiSss+xMHFl+eHZiipmA8WkQ7FuNA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/visitor-keys@8.57.2': - resolution: {integrity: sha512-zhahknjobV2FiD6Ee9iLbS7OV9zi10rG26odsQdfBO/hjSzUQbkIYgda+iNKK1zNiW2ey+Lf8MU5btN17V3dUw==} + '@typescript-eslint/visitor-keys@8.58.0': + resolution: {integrity: sha512-XJ9UD9+bbDo4a4epraTwG3TsNPeiB9aShrUneAVXy8q4LuwowN+qu89/6ByLMINqvIMeI9H9hOHQtg/ijrYXzQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@unrs/resolver-binding-android-arm-eabi@1.11.1': @@ -8042,14 +8038,14 @@ snapshots: '@types/node': 25.5.0 optional: true - '@typescript-eslint/eslint-plugin@8.57.2(@typescript-eslint/parser@8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.58.0(@typescript-eslint/parser@8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.57.2 - '@typescript-eslint/type-utils': 8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/utils': 8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.57.2 + '@typescript-eslint/parser': 8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.58.0 + '@typescript-eslint/type-utils': 8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.58.0 eslint: 10.1.0(jiti@2.6.1) ignore: 7.0.5 natural-compare: 1.4.0 @@ -8058,41 +8054,41 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/parser@8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 8.57.2 - '@typescript-eslint/types': 8.57.2 - '@typescript-eslint/typescript-estree': 8.57.2(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.57.2 + '@typescript-eslint/scope-manager': 8.58.0 + '@typescript-eslint/types': 8.58.0 + '@typescript-eslint/typescript-estree': 8.58.0(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.58.0 debug: 4.4.3 eslint: 10.1.0(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.57.2(typescript@5.9.3)': + '@typescript-eslint/project-service@8.58.0(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.57.2(typescript@5.9.3) - '@typescript-eslint/types': 8.57.2 + '@typescript-eslint/tsconfig-utils': 8.58.0(typescript@5.9.3) + '@typescript-eslint/types': 8.58.0 debug: 4.4.3 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.57.2': + '@typescript-eslint/scope-manager@8.58.0': dependencies: - '@typescript-eslint/types': 8.57.2 - '@typescript-eslint/visitor-keys': 8.57.2 + '@typescript-eslint/types': 8.58.0 + '@typescript-eslint/visitor-keys': 8.58.0 - '@typescript-eslint/tsconfig-utils@8.57.2(typescript@5.9.3)': + '@typescript-eslint/tsconfig-utils@8.58.0(typescript@5.9.3)': dependencies: typescript: 5.9.3 - '@typescript-eslint/type-utils@8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.57.2 - '@typescript-eslint/typescript-estree': 8.57.2(typescript@5.9.3) - '@typescript-eslint/utils': 8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/types': 8.58.0 + '@typescript-eslint/typescript-estree': 8.58.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) debug: 4.4.3 eslint: 10.1.0(jiti@2.6.1) ts-api-utils: 2.5.0(typescript@5.9.3) @@ -8100,16 +8096,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.57.2': {} - '@typescript-eslint/types@8.58.0': {} - '@typescript-eslint/typescript-estree@8.57.2(typescript@5.9.3)': + '@typescript-eslint/typescript-estree@8.58.0(typescript@5.9.3)': dependencies: - '@typescript-eslint/project-service': 8.57.2(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.57.2(typescript@5.9.3) - '@typescript-eslint/types': 8.57.2 - '@typescript-eslint/visitor-keys': 8.57.2 + '@typescript-eslint/project-service': 8.58.0(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.58.0(typescript@5.9.3) + '@typescript-eslint/types': 8.58.0 + '@typescript-eslint/visitor-keys': 8.58.0 debug: 4.4.3 minimatch: 10.2.5 semver: 7.7.4 @@ -8119,20 +8113,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/utils@8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@10.1.0(jiti@2.6.1)) - '@typescript-eslint/scope-manager': 8.57.2 - '@typescript-eslint/types': 8.57.2 - '@typescript-eslint/typescript-estree': 8.57.2(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.58.0 + '@typescript-eslint/types': 8.58.0 + '@typescript-eslint/typescript-estree': 8.58.0(typescript@5.9.3) eslint: 10.1.0(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.57.2': + '@typescript-eslint/visitor-keys@8.58.0': dependencies: - '@typescript-eslint/types': 8.57.2 + '@typescript-eslint/types': 8.58.0 eslint-visitor-keys: 5.0.1 '@unrs/resolver-binding-android-arm-eabi@1.11.1': @@ -9081,7 +9075,7 @@ snapshots: eslint: 10.1.0(jiti@2.6.1) eslint-compat-utils: 0.5.1(eslint@10.1.0(jiti@2.6.1)) - eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.1.0(jiti@2.6.1)): + eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.1.0(jiti@2.6.1)): dependencies: '@package-json/types': 0.0.12 '@typescript-eslint/types': 8.58.0 @@ -9095,7 +9089,7 @@ snapshots: stable-hash-x: 0.2.0 unrs-resolver: 1.11.1 optionalDependencies: - '@typescript-eslint/utils': 8.57.2(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color From 72c632595c24d387520d1c5e502e4f6dc7df83d3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 31 Mar 2026 17:04:24 +0800 Subject: [PATCH 021/439] chore(deps): bump @notionhq/client from 5.15.0 to 5.16.0 (#21569) Bumps [@notionhq/client](https://github.com/makenotion/notion-sdk-js) from 5.15.0 to 5.16.0. - [Release notes](https://github.com/makenotion/notion-sdk-js/releases) - [Commits](https://github.com/makenotion/notion-sdk-js/compare/v5.15.0...v5.16.0) --- updated-dependencies: - dependency-name: "@notionhq/client" dependency-version: 5.16.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index f5cebf073ebe..b3a98d6683fa 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "@hono/node-server": "1.19.12", "@hono/zod-openapi": "1.2.4", "@jocmp/mercury-parser": "3.0.7", - "@notionhq/client": "5.15.0", + "@notionhq/client": "5.16.0", "@opentelemetry/api": "1.9.1", "@opentelemetry/exporter-prometheus": "0.214.0", "@opentelemetry/exporter-trace-otlp-http": "0.214.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a43fa8c86aae..9bbc46d9a31a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -50,8 +50,8 @@ importers: specifier: 3.0.7 version: 3.0.7 '@notionhq/client': - specifier: 5.15.0 - version: 5.15.0 + specifier: 5.16.0 + version: 5.16.0 '@opentelemetry/api': specifier: 1.9.1 version: 1.9.1 @@ -1416,8 +1416,8 @@ packages: resolution: {integrity: sha512-y3SvzjuY1ygnzWA4Krwx/WaJAsTMP11DN+e21A8Fa8PW1oDtVB5NSRW7LWurAiS2oKRkuCgcjTYMkBuBkcPCRg==} engines: {node: '>=12.4.0'} - '@notionhq/client@5.15.0': - resolution: {integrity: sha512-boQ+zMmTu/HRfPajynYjlXkytkmn0rUgD0FJrbMaz6n1WC6HPxe2Lgn/Ay/VEA2j2dMzB1Hpnhtrtkz4Q1I/rw==} + '@notionhq/client@5.16.0': + resolution: {integrity: sha512-0mxHJNQBLbcG2Y4+oM+XNySr/3zKtK7FKjWhrUo8TB3WCdwtUMhvuooNmEjOo8NLL9qmKm7cCR4GtEsuTD+SNg==} engines: {node: '>=18'} '@octokit/auth-token@6.0.0': @@ -6951,7 +6951,7 @@ snapshots: '@nolyfill/side-channel@1.0.44': {} - '@notionhq/client@5.15.0': {} + '@notionhq/client@5.16.0': {} '@octokit/auth-token@6.0.0': {} From 2dbf56997cf88fea44a9e01eb51e87306f0b91d4 Mon Sep 17 00:00:00 2001 From: Tony Date: Tue, 31 Mar 2026 22:18:35 +0800 Subject: [PATCH 022/439] fix(route/gameapps): update selectors (#21572) --- lib/routes/gameapps/index.tsx | 27 +-------------------------- 1 file changed, 1 insertion(+), 26 deletions(-) diff --git a/lib/routes/gameapps/index.tsx b/lib/routes/gameapps/index.tsx index f8268e1a676e..24a4b29ff60e 100644 --- a/lib/routes/gameapps/index.tsx +++ b/lib/routes/gameapps/index.tsx @@ -38,40 +38,15 @@ async function handler() { item.title = $('meta[property="og:title"]').attr('content') ?? $('.news-title h1').text(); - const nextPages = $('.pagination li') - .not('.disabled') - .not('.active') - .find('a') - .toArray() - .map((a) => `${baseUrl}${a.attribs.href}`); - $('.pages').remove(); - const content = $('.news-content'); - // remove unwanted key value delete item.content; delete item.contentSnippet; delete item.isoDate; - if (nextPages.length) { - const pages = await Promise.all( - nextPages.map(async (url) => { - const response = await ofetch(url, { - headers: { - referer: item.link, - }, - }); - const $ = load(response); - $('.pages').remove(); - return $('.news-content').html(); - }) - ); - content.append(pages); - } - const intro = $('div.introduction.media.news-intro div.media-body').html()?.trim(); - const desc = content.html()?.trim(); + const desc = $('.article-content').html()?.trim(); item.description = renderToString( <> {intro ? raw(intro) : null} From 222322befc12f233d74a08e2baa1803a45f21c33 Mon Sep 17 00:00:00 2001 From: Tony Date: Tue, 31 Mar 2026 22:44:27 +0800 Subject: [PATCH 023/439] fix(routes): fix feed images (#21573) --- lib/routes/jiemian/common.tsx | 7 +++---- lib/routes/kyodonews/index.tsx | 14 ++++++++++++-- lib/routes/sohu/mp.tsx | 2 +- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/lib/routes/jiemian/common.tsx b/lib/routes/jiemian/common.tsx index 586760366324..c81333161fd3 100644 --- a/lib/routes/jiemian/common.tsx +++ b/lib/routes/jiemian/common.tsx @@ -92,8 +92,7 @@ export const handler = async (ctx): Promise => { const title = $('title').text(); const titleSplits = title.split(/_/); - const image = $('div.logo img').prop('src'); - const icon = new URL($('link[rel="icon"]').prop('href'), rootUrl).href; + const image = new URL($('link[rel="icon"]').prop('href'), rootUrl).href; return { item: items, @@ -102,8 +101,8 @@ export const handler = async (ctx): Promise => { description: $('meta[name="description"]').prop('content'), language: $('html').prop('lang'), image, - icon, - logo: icon, + icon: image, + logo: image, subtitle: titleSplits[0], author: titleSplits.pop(), }; diff --git a/lib/routes/kyodonews/index.tsx b/lib/routes/kyodonews/index.tsx index 71ca66a8847b..1918bfc68ccb 100644 --- a/lib/routes/kyodonews/index.tsx +++ b/lib/routes/kyodonews/index.tsx @@ -24,6 +24,16 @@ export const route: Route = { supportPodcast: false, supportScihub: false, }, + radar: [ + { + source: ['china.kyodonews.net/news/:keyword', 'china.kyodonews.net/'], + target: '/china/:keyword?', + }, + { + source: ['tchina.kyodonews.net/news/:keyword', 'tchina.kyodonews.net/'], + target: '/tchina/:keyword?', + }, + ], name: '最新报道', maintainers: ['Rongronggg9'], handler, @@ -40,7 +50,7 @@ async function handler(ctx) { } const rootUrl = `https://${language}.kyodonews.net`; - const currentUrl = `${rootUrl}/${keyword ? (keyword === 'rss' ? 'rss/news.xml' : `news/${keyword}`) : ''}`; + const currentUrl = `${rootUrl}/${keyword ? (keyword === 'rss' ? 'list/feed/rss4news' : `news/${keyword}`) : ''}`; let response; try { @@ -52,7 +62,7 @@ async function handler(ctx) { const $ = load(response.data, { xmlMode: keyword === 'rss' }); let title, description, image, items; - image = `${rootUrl}/apple-touch-icon-180x180.png`; + image = `https://${language}-kyodo.ismcdn.jp/common/images/apple-touch-icon-180x180.png`; if (keyword === 'rss') { title = $('channel > title').text(); diff --git a/lib/routes/sohu/mp.tsx b/lib/routes/sohu/mp.tsx index a99761c50e67..45a4ae41e935 100644 --- a/lib/routes/sohu/mp.tsx +++ b/lib/routes/sohu/mp.tsx @@ -218,7 +218,7 @@ async function handler(ctx) { title: `搜狐号 - ${globalConst.title}`, description: briefIntroductionCard.column_9_text, link: originalRequest.url, - image: `https:${briefIntroductionCard.column_2_image}`, + image: briefIntroductionCard.column_2_image.startsWith('http') ? briefIntroductionCard.column_2_image.replace('http:', 'https:') : `https:${briefIntroductionCard.column_2_image}`, item: items, }; } From 1fe4e8a4ae13da90fc8a21936a6238e72df052e3 Mon Sep 17 00:00:00 2001 From: Tony Date: Wed, 1 Apr 2026 01:10:12 +0800 Subject: [PATCH 024/439] feat(core): add honeybadger support (#21574) * feat(core): add honeybadger support * feat(honeybadger): configure Honeybadger to disable uncaught error tracking * feat(tests): add info logger mock to app-bootstrap tests * test: fix mock value * test: mock honeybadger as well --- lib/app-bootstrap.test.tsx | 8 +++ lib/app-bootstrap.tsx | 2 + lib/app.worker.tsx | 1 + lib/config.ts | 12 +++- lib/errors/honeybadger.test.ts | 79 ++++++++++++++++++++++ lib/errors/index.tsx | 7 ++ lib/middleware/honeybadger.test.ts | 69 +++++++++++++++++++ lib/middleware/honeybadger.ts | 28 ++++++++ lib/middleware/sentry.test.ts | 2 +- lib/middleware/sentry.ts | 2 +- lib/shims/honeybadger.ts | 6 ++ package.json | 1 + pnpm-lock.yaml | 104 +++++++++++++++++++++++++++++ tsdown-worker.config.ts | 1 + 14 files changed, 318 insertions(+), 4 deletions(-) create mode 100644 lib/errors/honeybadger.test.ts create mode 100644 lib/middleware/honeybadger.test.ts create mode 100644 lib/middleware/honeybadger.ts create mode 100644 lib/shims/honeybadger.ts diff --git a/lib/app-bootstrap.test.tsx b/lib/app-bootstrap.test.tsx index 69facc57e574..980c9355ec50 100644 --- a/lib/app-bootstrap.test.tsx +++ b/lib/app-bootstrap.test.tsx @@ -8,6 +8,14 @@ vi.mock('@/utils/logger', () => ({ }, })); +vi.mock('@honeybadger-io/js', () => ({ + default: { + configure: vi.fn(), + notify: vi.fn(), + setContext: vi.fn(), + }, +})); + describe('app-bootstrap', () => { it('logs uncaught exceptions', async () => { const before = new Set(process.listeners('uncaughtException')); diff --git a/lib/app-bootstrap.tsx b/lib/app-bootstrap.tsx index c1bd50bc1811..25468be6864f 100644 --- a/lib/app-bootstrap.tsx +++ b/lib/app-bootstrap.tsx @@ -10,6 +10,7 @@ import antiHotlink from '@/middleware/anti-hotlink'; import cache from '@/middleware/cache'; import debug from '@/middleware/debug'; import header from '@/middleware/header'; +import honeybadger from '@/middleware/honeybadger'; import mLogger from '@/middleware/logger'; import parameter from '@/middleware/parameter'; import sentry from '@/middleware/sentry'; @@ -35,6 +36,7 @@ app.use( ); app.use(mLogger); app.use(trace); +app.use(honeybadger); app.use(sentry); app.use(accessControl); app.use(debug); diff --git a/lib/app.worker.tsx b/lib/app.worker.tsx index d8c96848d56f..cd704587579c 100644 --- a/lib/app.worker.tsx +++ b/lib/app.worker.tsx @@ -52,6 +52,7 @@ app.use(mLogger); app.use(trace); // Heavy middleware excluded in Worker build: +// - honeybadger: @honeybadger-io/js // - sentry: @sentry/node // - antiHotlink: cheerio // - parameter: cheerio, sanitize-html, @jocmp/mercury-parser diff --git a/lib/config.ts b/lib/config.ts index bd1e430bf7d2..9ba567508c9e 100644 --- a/lib/config.ts +++ b/lib/config.ts @@ -48,6 +48,8 @@ type ConfigEnvKeys = | 'OTEL_SECONDS_BUCKET' | 'OTEL_MILLISECONDS_BUCKET' | 'SHOW_LOGGER_TIMESTAMP' + | 'HONEYBADGER_API_KEY' + | 'ERROR_TRACKING_ROUTE_TIMEOUT' | 'SENTRY' | 'SENTRY_ROUTE_TIMEOUT' | 'ENABLE_REMOTE_DEBUGGING' @@ -306,10 +308,13 @@ export type Config = { milliseconds_bucket?: string; }; showLoggerTimestamp?: boolean; + honeybadger: { + apiKey?: string; + }; sentry: { dsn?: string; - routeTimeout: number; }; + errorTrackingRouteTimeout: number; enableRemoteDebugging?: boolean; // feed config hotlink: { @@ -798,10 +803,13 @@ const calculateValue = () => { milliseconds_bucket: envs.OTEL_MILLISECONDS_BUCKET || '10,20,50,100,250,500,1000,5000,15000', }, showLoggerTimestamp: toBoolean(envs.SHOW_LOGGER_TIMESTAMP, false), + honeybadger: { + apiKey: envs.HONEYBADGER_API_KEY, + }, sentry: { dsn: envs.SENTRY, - routeTimeout: toInt(envs.SENTRY_ROUTE_TIMEOUT, 30000), }, + errorTrackingRouteTimeout: toInt(envs.ERROR_TRACKING_ROUTE_TIMEOUT || envs.SENTRY_ROUTE_TIMEOUT, 30000), enableRemoteDebugging: toBoolean(envs.ENABLE_REMOTE_DEBUGGING, false), // feed config hotlink: { diff --git a/lib/errors/honeybadger.test.ts b/lib/errors/honeybadger.test.ts new file mode 100644 index 000000000000..c59d26ceb60c --- /dev/null +++ b/lib/errors/honeybadger.test.ts @@ -0,0 +1,79 @@ +import { describe, expect, it, vi } from 'vitest'; + +const notify = vi.fn(); + +vi.mock('@honeybadger-io/js', () => ({ + default: { notify }, +})); + +vi.mock('@sentry/node', () => ({ + withScope: vi.fn(), + captureException: vi.fn(), +})); + +vi.mock('hono/route', () => ({ + routePath: () => '/test/path', +})); + +vi.mock('@/utils/logger', () => ({ + default: { + error: vi.fn(), + }, +})); + +vi.mock('@/utils/otel', () => ({ + requestMetric: { + error: vi.fn(), + }, +})); + +describe('error handler honeybadger', () => { + it('sends errors to honeybadger when enabled', async () => { + process.env.HONEYBADGER_API_KEY = 'hbp_test_key'; + vi.resetModules(); + + // Re-mock after resetModules + vi.doMock('@honeybadger-io/js', () => ({ + default: { notify }, + })); + vi.doMock('@sentry/node', () => ({ + withScope: vi.fn(), + captureException: vi.fn(), + })); + vi.doMock('hono/route', () => ({ + routePath: () => '/test/path', + })); + vi.doMock('@/utils/logger', () => ({ + default: { error: vi.fn() }, + })); + vi.doMock('@/utils/otel', () => ({ + requestMetric: { error: vi.fn() }, + })); + + const { errorHandler } = await import('@/errors'); + + const ctx = { + req: { + path: '/test/path', + method: 'GET', + query: () => 'json', + }, + res: { + status: 500, + headers: new Headers(), + }, + status: vi.fn(), + header: vi.fn(), + json: (payload: unknown) => payload, + html: (payload: unknown) => payload, + }; + + errorHandler(new Error('boom'), ctx as any); + + expect(notify).toHaveBeenCalledWith(expect.any(Error), { + context: { name: 'test' }, + }); + + delete process.env.HONEYBADGER_API_KEY; + }); +}); diff --git a/lib/errors/index.tsx b/lib/errors/index.tsx index c8ae927edb5f..b78603815c00 100644 --- a/lib/errors/index.tsx +++ b/lib/errors/index.tsx @@ -1,3 +1,4 @@ +import Honeybadger from '@honeybadger-io/js'; import * as Sentry from '@sentry/node'; import type { ErrorHandler, NotFoundHandler } from 'hono'; import { routePath } from 'hono/route'; @@ -36,6 +37,12 @@ export const errorHandler: ErrorHandler = (error, ctx) => { hasMatchedRoute && debug.errorRoutes[matchedRoute]++; setDebugInfo(debug); + if (config.honeybadger.apiKey) { + Honeybadger.notify(error, { + context: { name: requestPath.split('/')[1] }, + }); + } + if (config.sentry.dsn) { Sentry.withScope((scope) => { scope.setTag('name', requestPath.split('/')[1]); diff --git a/lib/middleware/honeybadger.test.ts b/lib/middleware/honeybadger.test.ts new file mode 100644 index 000000000000..5c20ea4b7a85 --- /dev/null +++ b/lib/middleware/honeybadger.test.ts @@ -0,0 +1,69 @@ +import { afterEach, describe, expect, it, vi } from 'vitest'; + +afterEach(() => { + vi.resetModules(); + vi.restoreAllMocks(); + vi.unmock('@/config'); + vi.unmock('@/utils/helpers'); + vi.unmock('@/utils/logger'); + vi.unmock('@honeybadger-io/js'); +}); + +describe('honeybadger middleware', () => { + const loadMiddleware = async () => { + const honeybadger = { + configure: vi.fn(), + setContext: vi.fn(), + notify: vi.fn(), + }; + const logger = { + info: vi.fn(), + }; + const getRouteNameFromPath = vi.fn((path: string) => `route:${path}`); + + vi.doMock('@honeybadger-io/js', () => ({ + default: honeybadger, + })); + vi.doMock('@/utils/logger', () => ({ + default: logger, + })); + vi.doMock('@/utils/helpers', () => ({ + getRouteNameFromPath, + })); + vi.doMock('@/config', () => ({ + config: { + honeybadger: { + apiKey: 'hbp_test_key', + }, + errorTrackingRouteTimeout: 50, + nodeName: 'node-a', + }, + })); + + const { default: middleware } = await import('@/middleware/honeybadger'); + + return { middleware, honeybadger, logger, getRouteNameFromPath }; + }; + + it('initializes honeybadger and captures slow routes', async () => { + const { middleware, honeybadger, logger, getRouteNameFromPath } = await loadMiddleware(); + + expect(honeybadger.configure).toHaveBeenCalledWith({ + apiKey: 'hbp_test_key', + enableUncaught: false, + }); + expect(honeybadger.setContext).toHaveBeenCalledWith({ node_name: 'node-a' }); + expect(logger.info).toHaveBeenCalledWith('Honeybadger inited.'); + + const nowSpy = vi.spyOn(Date, 'now'); + nowSpy.mockReturnValueOnce(0).mockReturnValueOnce(100); + + await middleware({ req: { path: '/test/slow' } } as any, async () => {}); + + expect(getRouteNameFromPath).toHaveBeenCalledWith('/test/slow'); + expect(honeybadger.notify).toHaveBeenCalledTimes(1); + expect(honeybadger.notify).toHaveBeenCalledWith(expect.any(Error), { + context: { name: 'route:/test/slow' }, + }); + }); +}); diff --git a/lib/middleware/honeybadger.ts b/lib/middleware/honeybadger.ts new file mode 100644 index 000000000000..bf7675f6e8cb --- /dev/null +++ b/lib/middleware/honeybadger.ts @@ -0,0 +1,28 @@ +import Honeybadger from '@honeybadger-io/js'; +import type { MiddlewareHandler } from 'hono'; + +import { config } from '@/config'; +import { getRouteNameFromPath } from '@/utils/helpers'; +import logger from '@/utils/logger'; + +if (config.honeybadger.apiKey) { + Honeybadger.configure({ + apiKey: config.honeybadger.apiKey, + enableUncaught: false, + }); + Honeybadger.setContext({ node_name: config.nodeName }); + + logger.info('Honeybadger inited.'); +} + +const middleware: MiddlewareHandler = async (ctx, next) => { + const time = Date.now(); + await next(); + if (config.honeybadger.apiKey && Date.now() - time >= config.errorTrackingRouteTimeout) { + Honeybadger.notify(new Error('Route Timeout'), { + context: { name: getRouteNameFromPath(ctx.req.path) }, + }); + } +}; + +export default middleware; diff --git a/lib/middleware/sentry.test.ts b/lib/middleware/sentry.test.ts index 1b72733710f7..50c88bac0050 100644 --- a/lib/middleware/sentry.test.ts +++ b/lib/middleware/sentry.test.ts @@ -36,8 +36,8 @@ describe('sentry middleware', () => { config: { sentry: { dsn: 'https://sentry.example/123', - routeTimeout: 50, }, + errorTrackingRouteTimeout: 50, nodeName: 'node-a', }, })); diff --git a/lib/middleware/sentry.ts b/lib/middleware/sentry.ts index 8c2952bbb951..efc6f1679e7b 100644 --- a/lib/middleware/sentry.ts +++ b/lib/middleware/sentry.ts @@ -17,7 +17,7 @@ if (config.sentry.dsn) { const middleware: MiddlewareHandler = async (ctx, next) => { const time = Date.now(); await next(); - if (config.sentry.dsn && Date.now() - time >= config.sentry.routeTimeout) { + if (config.sentry.dsn && Date.now() - time >= config.errorTrackingRouteTimeout) { Sentry.withScope((scope) => { scope.setTag('name', getRouteNameFromPath(ctx.req.path)); Sentry.captureException(new Error('Route Timeout')); diff --git a/lib/shims/honeybadger.ts b/lib/shims/honeybadger.ts new file mode 100644 index 000000000000..2c3699c0735d --- /dev/null +++ b/lib/shims/honeybadger.ts @@ -0,0 +1,6 @@ +// No-op shim for @honeybadger-io/js in Cloudflare Workers +export default { + configure: () => {}, + notify: () => {}, + setContext: () => {}, +}; diff --git a/package.json b/package.json index b3a98d6683fa..6b408e8ba8d8 100644 --- a/package.json +++ b/package.json @@ -59,6 +59,7 @@ "@bbob/html": "4.3.1", "@bbob/plugin-helper": "4.3.1", "@bbob/preset-html5": "4.3.1", + "@honeybadger-io/js": "6.12.3", "@hono/node-server": "1.19.12", "@hono/zod-openapi": "1.2.4", "@jocmp/mercury-parser": "3.0.7", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9bbc46d9a31a..94c9b36d92b7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -40,6 +40,9 @@ importers: '@bbob/preset-html5': specifier: 4.3.1 version: 4.3.1 + '@honeybadger-io/js': + specifier: 6.12.3 + version: 6.12.3 '@hono/node-server': specifier: 1.19.12 version: 1.19.12(hono@4.12.8) @@ -1074,6 +1077,15 @@ packages: peerDependencies: '@opentelemetry/api': ^1.9.0 + '@honeybadger-io/core@6.7.2': + resolution: {integrity: sha512-4+hyrFI0S/Eni2cBgO40Lqyft5hyNXjgnuh1EbeH457kty8g4YatJYuHBffmrjwLiZHgFbWXRGv7SlG+NehC5Q==} + engines: {node: '>=14'} + + '@honeybadger-io/js@6.12.3': + resolution: {integrity: sha512-CL+9A8tGpjawsJEKE74P94hmimHRsq+B90i5N/pXNgnJbgZG40bs9yZpfn2z3w0+3z9wtH12D2RqBjxsGm9DBg==} + engines: {node: '>=14'} + hasBin: true + '@hono/node-server@1.19.12': resolution: {integrity: sha512-txsUW4SQ1iilgE0l9/e9VQWmELXifEFvmdA1j6WFh/aFPj99hIntrSsq/if0UWyGVkmrRPKA1wCeP+UCr1B9Uw==} engines: {node: '>=18.14.1'} @@ -2472,6 +2484,9 @@ packages: '@types/aes-js@3.1.4': resolution: {integrity: sha512-v3D66IptpUqh+pHKVNRxY8yvp2ESSZXe0rTzsGdzUhEwag7ljVfgCllkWv2YgiYXDhWFBrEywll4A5JToyTNFA==} + '@types/aws-lambda@8.10.161': + resolution: {integrity: sha512-rUYdp+MQwSFocxIOcSsYSF3YYYC/uUpMbCY/mbO21vGqfrEYvNSoPyKYDj6RhXXpPfS0KstW9RwG3qXh9sL7FQ==} + '@types/babel__preset-env@7.10.0': resolution: {integrity: sha512-LS8hRb/8TQir2f8W9/s5enDtrRS2F/6fsdkVw5ePHp6Q8SrSJHOGtWnP93ryaYMmg2du03vOsiGrl5mllz4uDA==} @@ -2481,6 +2496,9 @@ packages: '@types/bluebird@3.5.42': resolution: {integrity: sha512-Jhy+MWRlro6UjVi578V/4ZGNfeCOcNCp0YaFNIUGFKlImowqwb1O/22wDVk3FDGMLqxdpOV3qQHD5fPEH4hK6A==} + '@types/body-parser@1.19.6': + resolution: {integrity: sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==} + '@types/caseless@0.12.5': resolution: {integrity: sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==} @@ -2514,6 +2532,12 @@ packages: '@types/etag@1.8.4': resolution: {integrity: sha512-f1z/UMth8gQ6636NBqhFmJ3zES7EuDcUnV6K1gl1osHp+85KPKX+VixYWUpqLkw1fftCagyHJjJOZjZkEi2rHw==} + '@types/express-serve-static-core@5.1.1': + resolution: {integrity: sha512-v4zIMr/cX7/d2BpAEX3KNKL/JrT1s43s96lLvvdTmza1oEvDudCqK9aF/djc/SWgy8Yh0h30TZx5VpzqFCxk5A==} + + '@types/express@5.0.6': + resolution: {integrity: sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==} + '@types/fs-extra@11.0.4': resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} @@ -2523,6 +2547,9 @@ packages: '@types/http-cache-semantics@4.2.0': resolution: {integrity: sha512-L3LgimLHXtGkWikKnsPg0/VFx9OGZaC+eN1u4r+OB1XRqH3meBIAVC2zr1WdMH+RHmnRkqliQAOHNJ/E0j/e0Q==} + '@types/http-errors@2.0.5': + resolution: {integrity: sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==} + '@types/js-beautify@1.14.3': resolution: {integrity: sha512-FMbQHz+qd9DoGvgLHxeqqVPaNRffpIu5ZjozwV8hf9JAGpIOzuAf4wGbRSo8LNITHqGjmmVjaMggTT5P4v4IHg==} @@ -2577,6 +2604,12 @@ packages: '@types/pg@8.15.6': resolution: {integrity: sha512-NoaMtzhxOrubeL/7UZuNTrejB4MPAJ0RpxZqXQf2qXuVlTPuG6Y8p4u9dKRaue4yjmC7ZhzVO2/Yyyn25znrPQ==} + '@types/qs@6.15.0': + resolution: {integrity: sha512-JawvT8iBVWpzTrz3EGw9BTQFg3BQNmwERdKE22vlTxawwtbyUSlMppvZYKLZzB5zgACXdXxbD3m1bXaMqP/9ow==} + + '@types/range-parser@1.2.7': + resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + '@types/request-promise@4.1.51': resolution: {integrity: sha512-qVcP9Fuzh9oaAh8oPxiSoWMFGnWKkJDknnij66vi09Yiy62bsSDqtd+fG5kIM9wLLgZsRP3Y6acqj9O/v2ZtRw==} @@ -2586,6 +2619,12 @@ packages: '@types/sanitize-html@2.16.1': resolution: {integrity: sha512-n9wjs8bCOTyN/ynwD8s/nTcTreIHB1vf31vhLMGqUPNHaweKC4/fAl4Dj+hUlCTKYgm4P3k83fmiFfzkZ6sgMA==} + '@types/send@1.2.1': + resolution: {integrity: sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==} + + '@types/serve-static@2.2.0': + resolution: {integrity: sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==} + '@types/statuses@2.0.6': resolution: {integrity: sha512-xMAgYwceFhRA2zY+XbEA7mxYbA093wdiW8Vu6gZPGWy9cmOyU9XesH1tNcEWsKFd5Vzrqx5T3D38PWx1FIIXkA==} @@ -4355,6 +4394,9 @@ packages: json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + json-nd@1.0.0: + resolution: {integrity: sha512-8TIp0HZAY0VVrwRQJJPb4+nOTSPoOWZeEKBTLizUfQO4oym5Fc/MKqN8vEbLCxcyxDf2vwNxOQ1q84O49GWPyQ==} + json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} @@ -5419,6 +5461,10 @@ packages: stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + stacktrace-parser@0.1.11: + resolution: {integrity: sha512-WjlahMgHmCJpqzU8bIBy4qtsZdU9lRlcZE3Lvyej6t4tuOuv1vk57OW3MBrj6hXBFx/nNoC9MPMTcr5YA7NQbg==} + engines: {node: '>=6'} + standard-as-callback@2.1.0: resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} @@ -5732,6 +5778,10 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} + type-fest@0.7.1: + resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==} + engines: {node: '>=8'} + type-fest@3.13.1: resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} engines: {node: '>=14.16'} @@ -6664,6 +6714,17 @@ snapshots: transitivePeerDependencies: - supports-color + '@honeybadger-io/core@6.7.2': + dependencies: + json-nd: 1.0.0 + stacktrace-parser: 0.1.11 + + '@honeybadger-io/js@6.12.3': + dependencies: + '@honeybadger-io/core': 6.7.2 + '@types/aws-lambda': 8.10.161 + '@types/express': 5.0.6 + '@hono/node-server@1.19.12(hono@4.12.8)': dependencies: hono: 4.12.8 @@ -7895,12 +7956,19 @@ snapshots: '@types/aes-js@3.1.4': {} + '@types/aws-lambda@8.10.161': {} + '@types/babel__preset-env@7.10.0': {} '@types/bezier-js@4.1.3': {} '@types/bluebird@3.5.42': {} + '@types/body-parser@1.19.6': + dependencies: + '@types/connect': 3.4.38 + '@types/node': 25.5.0 + '@types/caseless@0.12.5': {} '@types/chai@5.2.3': @@ -7935,6 +8003,19 @@ snapshots: dependencies: '@types/node': 25.5.0 + '@types/express-serve-static-core@5.1.1': + dependencies: + '@types/node': 25.5.0 + '@types/qs': 6.15.0 + '@types/range-parser': 1.2.7 + '@types/send': 1.2.1 + + '@types/express@5.0.6': + dependencies: + '@types/body-parser': 1.19.6 + '@types/express-serve-static-core': 5.1.1 + '@types/serve-static': 2.2.0 + '@types/fs-extra@11.0.4': dependencies: '@types/jsonfile': 6.1.4 @@ -7944,6 +8025,8 @@ snapshots: '@types/http-cache-semantics@4.2.0': {} + '@types/http-errors@2.0.5': {} + '@types/js-beautify@1.14.3': {} '@types/jsdom@28.0.1': @@ -8005,6 +8088,10 @@ snapshots: pg-protocol: 1.13.0 pg-types: 2.2.0 + '@types/qs@6.15.0': {} + + '@types/range-parser@1.2.7': {} + '@types/request-promise@4.1.51': dependencies: '@types/bluebird': 3.5.42 @@ -8021,6 +8108,15 @@ snapshots: dependencies: htmlparser2: 10.1.0 + '@types/send@1.2.1': + dependencies: + '@types/node': 25.5.0 + + '@types/serve-static@2.2.0': + dependencies: + '@types/http-errors': 2.0.5 + '@types/node': 25.5.0 + '@types/statuses@2.0.6': {} '@types/tedious@4.0.14': @@ -9920,6 +10016,8 @@ snapshots: json-buffer@3.0.1: {} + json-nd@1.0.0: {} + json-parse-even-better-errors@2.3.1: {} json-schema-traverse@0.4.1: {} @@ -11302,6 +11400,10 @@ snapshots: stackback@0.0.2: {} + stacktrace-parser@0.1.11: + dependencies: + type-fest: 0.7.1 + standard-as-callback@2.1.0: {} statuses@2.0.2: {} @@ -11618,6 +11720,8 @@ snapshots: dependencies: prelude-ls: 1.2.1 + type-fest@0.7.1: {} + type-fest@3.13.1: {} type-fest@4.41.0: {} diff --git a/tsdown-worker.config.ts b/tsdown-worker.config.ts index 5b7626951411..979a5850b2dc 100644 --- a/tsdown-worker.config.ts +++ b/tsdown-worker.config.ts @@ -89,6 +89,7 @@ export default defineConfig({ 'node:child_process': path.resolve('./lib/shims/node-child-process.ts'), 'dotenv/config': path.resolve('./lib/shims/dotenv-config.ts'), '@sentry/node': path.resolve('./lib/shims/sentry-node.ts'), + '@honeybadger-io/js': path.resolve('./lib/shims/honeybadger.ts'), 'xxhash-wasm': path.resolve('./lib/shims/xxhash-wasm.ts'), // Routes file with Worker-specific build (match relative import from lib/) '../assets/build/routes.js': path.resolve('./assets/build/routes-worker.js'), From a61dc787e6307a36f0a1c6951cc1e9a5c8e62c5d Mon Sep 17 00:00:00 2001 From: Tony Date: Wed, 1 Apr 2026 06:00:17 +0800 Subject: [PATCH 025/439] fix(utils/wechat-mp): fix APP_MSG_PAGE metadata fetching (#21577) * fix(utils/wechat-mp): fix APP_MSG_PAGE metadata fetching * fix(tests/wechat-mp): update HTML string formatting in ExtractMetadata test --- lib/utils/wechat-mp.test.ts | 23 +++++++++ lib/utils/wechat-mp.ts | 94 +++++++++++++++++++++++-------------- 2 files changed, 82 insertions(+), 35 deletions(-) diff --git a/lib/utils/wechat-mp.test.ts b/lib/utils/wechat-mp.test.ts index 4ff1d9b2a12f..e5e39325d70a 100644 --- a/lib/utils/wechat-mp.test.ts +++ b/lib/utils/wechat-mp.test.ts @@ -135,6 +135,29 @@ describe('wechat-mp', () => { realShowType: '112233445566778899', createTime: '1713009660', }); + + // item_show_type in a separate script tag from real_item_show_type + expect( + ExtractMetadata.common( + load(/* HTML */ ` + + + + + `) + ) + ).toMatchObject({ + showType: showTypeMapReverse['0'], + realShowType: showTypeMapReverse['0'], + createTime: '1713009660', + sourceUrl: 'https://mp.weixin.qq.com/rsshub_test/fake', + }); }); it('ExtractMetadata.common rethrows unexpected errors', () => { diff --git a/lib/utils/wechat-mp.ts b/lib/utils/wechat-mp.ts index 56e0cab27a7a..292d4f04ec7a 100644 --- a/lib/utils/wechat-mp.ts +++ b/lib/utils/wechat-mp.ts @@ -173,41 +173,67 @@ class ExtractMetadata { }; private static commonMetadataToBeExtracted = { - showType: this.genExtractFunc('item_show_type', { valuePattern: String.raw`\d+` }), + showType: this.genExtractFunc('item_show_type', { valuePattern: String.raw`\d+`, allowNotFound: true }), realShowType: this.genExtractFunc('real_item_show_type', { valuePattern: String.raw`\d+` }), createTime: this.genExtractFunc('ct', { valuePattern: String.raw`\d+`, allowNotFound: true }), sourceUrl: this.genExtractFunc('msg_source_url', { valuePattern: `https?://[^'"]*`, allowNotFound: true }), }; - static common = ($: CheerioAPI) => - forEachScript( + private static showTypeMetadataToBeExtracted = { + showType: this.genExtractFunc('item_show_type', { valuePattern: String.raw`\d+` }), + }; + + static common = ($: CheerioAPI) => { + const metadataExtracted = forEachScript( $, (script) => { const scriptText = $(script).text(); const metadataExtracted = this.doExtract(this.commonMetadataToBeExtracted, scriptText) as Record; - const showType = showTypeMapReverse[metadataExtracted.showType]; - const realShowType = showTypeMapReverse[metadataExtracted.realShowType]; - metadataExtracted.sourceUrl = metadataExtracted.sourceUrl && fixUrl(metadataExtracted.sourceUrl); - if (showType) { - metadataExtracted.showType = showType; - } else { - warn('showType not found', `item_show_type=${metadataExtracted.showType}`); - } - if (realShowType) { - metadataExtracted.realShowType = realShowType; - } else { - warn('realShowType not found', `real_item_show_type=${metadataExtracted.realShowType}`); - } - if (metadataExtracted.showType !== metadataExtracted.realShowType) { - // never seen this happen, waiting for examples - warn('showType mismatch', `item_show_type=${metadataExtracted.showType}, real_item_show_type=${metadataExtracted.realShowType}`); - } throw new LoopReturn(metadataExtracted); }, {}, 'script[nonce][type="text/javascript"]:contains("real_item_show_type")' ); + // APP_MSG_PAGE has its item_show_type in a separate script + if (!metadataExtracted.showType) { + const showTypeExtracted = forEachScript( + $, + (script) => { + const scriptText = $(script).text(); + const metadataExtracted = this.doExtract(this.showTypeMetadataToBeExtracted, scriptText) as Record; + throw new LoopReturn(metadataExtracted); + }, + {}, + 'script[nonce][type="text/javascript"]:contains("item_show_type")' + ); + if (showTypeExtracted.showType) { + metadataExtracted.showType = showTypeExtracted.showType; + } + } + + const showType = showTypeMapReverse[metadataExtracted.showType]; + const realShowType = showTypeMapReverse[metadataExtracted.realShowType]; + if (metadataExtracted.sourceUrl) { + metadataExtracted.sourceUrl = fixUrl(metadataExtracted.sourceUrl); + } + if (showType) { + metadataExtracted.showType = showType; + } else { + warn('showType not found', `item_show_type=${metadataExtracted.showType}`); + } + if (realShowType) { + metadataExtracted.realShowType = realShowType; + } else { + warn('realShowType not found', `real_item_show_type=${metadataExtracted.realShowType}`); + } + if (metadataExtracted.showType !== metadataExtracted.realShowType) { + // never seen this happen, waiting for examples + warn('showType mismatch', `item_show_type=${metadataExtracted.showType}, real_item_show_type=${metadataExtracted.realShowType}`); + } + return metadataExtracted; + }; + private static audioMetadataToBeExtracted = { voiceId: this.genExtractFunc('voiceid', { assignPattern: ':' }), duration: this.genExtractFunc('duration', { valuePattern: String.raw`\d*`, assignPattern: ':', allowNotFound: true }), @@ -629,21 +655,19 @@ const fetchArticle = (url: string, bypassHostCheck: boolean = false) => { * @return {Promise} - The incoming `item` object, with the article and its metadata filled in. */ const finishArticleItem = async (item, setMpNameAsAuthor = false, skipLink = false) => { - if (item.link) { - const fetchedItem = await fetchArticle(item.link); - for (const key in fetchedItem) { - switch (key) { - case 'author': - item.author = setMpNameAsAuthor - ? fetchedItem.mpName || item.author // the Official Account itself. if your route return articles from different accounts, you may want to use this - : fetchedItem.author || item.author; // the real author of the article. if your route return articles from a certain account, use this - break; - case 'link': - item.link = skipLink ? item.link : fetchedItem.link || item.link; - break; - default: - item[key] = item[key] || fetchedItem[key]; - } + const fetchedItem = await fetchArticle(item.link); + for (const key in fetchedItem) { + switch (key) { + case 'author': + item.author = setMpNameAsAuthor + ? fetchedItem.mpName || item.author // the Official Account itself. if your route return articles from different accounts, you may want to use this + : fetchedItem.author || item.author; // the real author of the article. if your route return articles from a certain account, use this + break; + case 'link': + item.link = skipLink ? item.link : fetchedItem.link || item.link; + break; + default: + item[key] = item[key] || fetchedItem[key]; } } return item; From 683121d071632b2ed02aad22eb770dbc0ad75aac Mon Sep 17 00:00:00 2001 From: Tony Date: Wed, 1 Apr 2026 07:16:50 +0800 Subject: [PATCH 026/439] feat(route): add tw-nongmu (#21578) * feat(route): add tw-nongmu * fix: add image * Update market.ts * Update market.ts --- lib/routes/tw-nongmu/market.ts | 51 +++++++++++++++++++++++++++++++ lib/routes/tw-nongmu/namespace.ts | 7 +++++ 2 files changed, 58 insertions(+) create mode 100644 lib/routes/tw-nongmu/market.ts create mode 100644 lib/routes/tw-nongmu/namespace.ts diff --git a/lib/routes/tw-nongmu/market.ts b/lib/routes/tw-nongmu/market.ts new file mode 100644 index 000000000000..1167ed7858fa --- /dev/null +++ b/lib/routes/tw-nongmu/market.ts @@ -0,0 +1,51 @@ +import { load } from 'cheerio'; + +import type { Route } from '@/types'; +import ofetch from '@/utils/ofetch'; +import { parseDate } from '@/utils/parse-date'; +import { finishArticleItem } from '@/utils/wechat-mp'; + +export const route: Route = { + path: '/market', + categories: ['other'], + example: '/tw-nongmu/market', + radar: [ + { + source: ['www.tw-nongmu.com/market.html', 'www.tw-nongmu.com/'], + }, + ], + name: '鱼价行情', + maintainers: ['TonyRL'], + handler, + url: 'www.tw-nongmu.com/market.html', +}; + +async function handler() { + const baseUrl = 'https://www.tw-nongmu.com'; + const link = `${baseUrl}/market.html`; + + const response = await ofetch(link); + const $ = load(response); + + const list = $('.list-list li') + .toArray() + .map((item) => { + const $item = $(item); + const a = $item.find('a'); + return { + title: a.text(), + link: a.attr('href')!, + pubDate: parseDate($item.find('.date').text(), 'YYYY年MM月DD日'), + }; + }); + + const items = await Promise.all(list.map((item) => finishArticleItem(item))); + + return { + title: $('head title').text(), + link, + language: $('html').attr('lang') as const, + image: `${baseUrl}/favicon.ico`, + item: items, + }; +} diff --git a/lib/routes/tw-nongmu/namespace.ts b/lib/routes/tw-nongmu/namespace.ts new file mode 100644 index 000000000000..8953d24bdca8 --- /dev/null +++ b/lib/routes/tw-nongmu/namespace.ts @@ -0,0 +1,7 @@ +import type { Namespace } from '@/types'; + +export const namespace: Namespace = { + name: '通威农业发展', + url: 'www.tw-nongmu.com', + lang: 'zh-CN', +}; From 235cda1afa77e8ea6ca1e14254405cc592f14583 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Apr 2026 16:58:42 +0800 Subject: [PATCH 027/439] chore(deps): bump re2js from 1.2.3 to 1.3.0 (#21587) Bumps [re2js](https://github.com/le0pard/re2js) from 1.2.3 to 1.3.0. - [Release notes](https://github.com/le0pard/re2js/releases) - [Commits](https://github.com/le0pard/re2js/compare/1.2.3...1.3.0) --- updated-dependencies: - dependency-name: re2js dependency-version: 1.3.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 6b408e8ba8d8..77f48f176840 100644 --- a/package.json +++ b/package.json @@ -119,7 +119,7 @@ "puppeteer-real-browser": "1.4.4", "query-string": "9.3.1", "rate-limiter-flexible": "10.0.1", - "re2js": "1.2.3", + "re2js": "1.3.0", "rebrowser-puppeteer": "24.8.1", "rfc4648": "1.5.4", "rss-parser": "3.13.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 94c9b36d92b7..c4f5bb01a1f6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -221,8 +221,8 @@ importers: specifier: 10.0.1 version: 10.0.1 re2js: - specifier: 1.2.3 - version: 1.2.3 + specifier: 1.3.0 + version: 1.3.0 rebrowser-puppeteer: specifier: 24.8.1 version: 24.8.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10) @@ -5185,8 +5185,8 @@ packages: rate-limiter-flexible@10.0.1: resolution: {integrity: sha512-3G6GMFz5Oz5nVnDv9gQ1LLMdExR4B1lOjogPIjehtgyxPMIkY09BGyk2eCYt36/OkV/0t12GEt6J6HpTl6RzZg==} - re2js@1.2.3: - resolution: {integrity: sha512-M2/7k8LkP+LmB/muGZXvAHiwhgwqq0Ign2UHCZkea39nHOakeixyMSfb7rql7N/6u5PTS+IpP2MKfRLJ4fed0g==} + re2js@1.3.0: + resolution: {integrity: sha512-OmOZ9qDapRyfC0r+TyO6I9QpQx2jfU5u1RWJg/cjPnuLXUjilRSp13XAMJ6jMrPbpEWLCSJS+OoCgDAGKAW67Q==} readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} @@ -11009,7 +11009,7 @@ snapshots: rate-limiter-flexible@10.0.1: {} - re2js@1.2.3: {} + re2js@1.3.0: {} readable-stream@3.6.2: dependencies: From d2c36ea983d6d6b12f3441f53680a7102f8802ce Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Apr 2026 17:03:12 +0800 Subject: [PATCH 028/439] chore(deps): bump header-generator from 2.1.81 to 2.1.82 (#21586) Bumps [header-generator](https://github.com/apify/fingerprint-suite) from 2.1.81 to 2.1.82. - [Release notes](https://github.com/apify/fingerprint-suite/releases) - [Commits](https://github.com/apify/fingerprint-suite/compare/v2.1.81...v2.1.82) --- updated-dependencies: - dependency-name: header-generator dependency-version: 2.1.82 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 58 +++++++++++++++++++++++++------------------------- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/package.json b/package.json index 77f48f176840..56fd9841eb48 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,7 @@ "form-data": "4.0.5", "google-play-scraper": "10.1.2", "googleapis": "171.4.0", - "header-generator": "2.1.81", + "header-generator": "2.1.82", "hono": "4.12.8", "html-to-text": "9.0.5", "http-cookie-agent": "7.0.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c4f5bb01a1f6..d4e57f6a38b6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -131,8 +131,8 @@ importers: specifier: 171.4.0 version: 171.4.0 header-generator: - specifier: 2.1.81 - version: 2.1.81 + specifier: 2.1.82 + version: 2.1.82 hono: specifier: 4.12.8 version: 4.12.8 @@ -3028,8 +3028,8 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - baseline-browser-mapping@2.10.12: - resolution: {integrity: sha512-qyq26DxfY4awP2gIRXhhLWfwzwI+N5Nxk6iQi8EFizIaWIjqicQTE4sLnZZVdeKPRcVNoJOkkpfzoIYuvCKaIQ==} + baseline-browser-mapping@2.10.13: + resolution: {integrity: sha512-BL2sTuHOdy0YT1lYieUxTw/QMtPBC3pmlJC6xk8BBYVv6vcw3SGdKemQ+Xsx9ik2F/lYDO9tqsFQH1r9PFuHKw==} engines: {node: '>=6.0.0'} hasBin: true @@ -3087,8 +3087,8 @@ packages: resolution: {integrity: sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==} engines: {node: 18 || 20 || >=22} - browserslist@4.28.1: - resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} + browserslist@4.28.2: + resolution: {integrity: sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -3143,8 +3143,8 @@ packages: resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} engines: {node: '>=16'} - caniuse-lite@1.0.30001782: - resolution: {integrity: sha512-dZcaJLJeDMh4rELYFw1tvSn1bhZWYFOt468FcbHHxx/Z/dFidd1I6ciyFdi3iwfQCyOjqo9upF6lGQYtMiJWxw==} + caniuse-lite@1.0.30001784: + resolution: {integrity: sha512-WU346nBTklUV9YfUl60fqRbU5ZqyXlqvo1SgigE1OAXK5bFL8LL9q1K7aap3N739l4BvNqnkm3YrGHiY9sfUQw==} caseless@0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} @@ -3536,8 +3536,8 @@ packages: engines: {node: '>=14'} hasBin: true - electron-to-chromium@1.5.328: - resolution: {integrity: sha512-QNQ5l45DzYytThO21403XN3FvK0hOkWDG8viNf6jqS42msJ8I4tGDSpBCgvDRRPnkffafiwAym2X2eHeGD2V0w==} + electron-to-chromium@1.5.330: + resolution: {integrity: sha512-jFNydB5kFtYUobh4IkWUnXeyDbjf/r9gcUEXe1xcrcUxIGfTdzPXA+ld6zBRbwvgIGVzDll/LTIiDztEtckSnA==} ellipsize@0.6.0: resolution: {integrity: sha512-oest45O39yGzIKJj3gJv/Gt6jtYN6PHw/IbCXHPEd2KwC0dgxKqXOhTU0EGwRXWhGKoBJk7eJQkb3sp8W0px2g==} @@ -3940,8 +3940,8 @@ packages: resolution: {integrity: sha512-zV/5HKTfCeKWnxG0Dmrw51hEWFGfcF2xiXqcA3+J90WDuP0SvoiSO5ORvcBsifmx/FoIjgQN3oNOGaQ5PhLFkg==} engines: {node: '>=18'} - generative-bayesian-network@2.1.81: - resolution: {integrity: sha512-LrYK+CY5n21p437oahz8jRqTgw0i+S08H+ypag1sgZilfCj33k8Tp8kcFtPiWKsEEJ6niN9gRFP12+r06xB4rQ==} + generative-bayesian-network@2.1.82: + resolution: {integrity: sha512-DH4NrmQheoMaJErdVv2IzaqkbOYSDQZmiZTV6UPDJYRDK2EyPpIQ88XRcYdPeFrUjS1N0Jj25H3HUywoJ1dbow==} get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} @@ -4059,8 +4059,8 @@ packages: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true - header-generator@2.1.81: - resolution: {integrity: sha512-6+27UuqCHFx4xrTWIgcSF/x2WJ+PuVLxziXfPaVLRXi1lXIbTkXO+ffHJefVrdRT5/XEeWfJHrSIE2m1hAdWxw==} + header-generator@2.1.82: + resolution: {integrity: sha512-4NjPB0+bAKjPoponSmTOkK58IEF2W22sOJA5O48k/MxbCZgOm+jrU4WVR53Z2I6xFgIPkVrQmKtt1LAbWtfqXw==} engines: {node: '>=16.0.0'} headers-polyfill@4.0.3: @@ -8497,7 +8497,7 @@ snapshots: base64-js@1.5.1: {} - baseline-browser-mapping@2.10.12: {} + baseline-browser-mapping@2.10.13: {} basic-ftp@5.2.0: {} @@ -8547,13 +8547,13 @@ snapshots: dependencies: balanced-match: 4.0.4 - browserslist@4.28.1: + browserslist@4.28.2: dependencies: - baseline-browser-mapping: 2.10.12 - caniuse-lite: 1.0.30001782 - electron-to-chromium: 1.5.328 + baseline-browser-mapping: 2.10.13 + caniuse-lite: 1.0.30001784 + electron-to-chromium: 1.5.330 node-releases: 2.0.36 - update-browserslist-db: 1.2.3(browserslist@4.28.1) + update-browserslist-db: 1.2.3(browserslist@4.28.2) buffer-crc32@0.2.13: {} @@ -8608,7 +8608,7 @@ snapshots: camelcase@8.0.0: {} - caniuse-lite@1.0.30001782: {} + caniuse-lite@1.0.30001784: {} caseless@0.12.0: {} @@ -8752,7 +8752,7 @@ snapshots: core-js-compat@3.49.0: dependencies: - browserslist: 4.28.1 + browserslist: 4.28.2 core-js@2.6.12: {} @@ -8969,7 +8969,7 @@ snapshots: minimatch: 9.0.9 semver: 7.7.4 - electron-to-chromium@1.5.328: {} + electron-to-chromium@1.5.330: {} ellipsize@0.6.0: {} @@ -9496,7 +9496,7 @@ snapshots: transitivePeerDependencies: - supports-color - generative-bayesian-network@2.1.81: + generative-bayesian-network@2.1.82: dependencies: adm-zip: 0.5.16 tslib: 2.8.1 @@ -9648,10 +9648,10 @@ snapshots: he@1.2.0: {} - header-generator@2.1.81: + header-generator@2.1.82: dependencies: - browserslist: 4.28.1 - generative-bayesian-network: 2.1.81 + browserslist: 4.28.2 + generative-bayesian-network: 2.1.82 ow: 0.28.2 tslib: 2.8.1 @@ -11825,9 +11825,9 @@ snapshots: until-async@3.0.2: {} - update-browserslist-db@1.2.3(browserslist@4.28.1): + update-browserslist-db@1.2.3(browserslist@4.28.2): dependencies: - browserslist: 4.28.1 + browserslist: 4.28.2 escalade: 3.2.0 picocolors: 1.1.1 From c2a001bc9e2e8c6dc6ece9414ca643349db9ea52 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Apr 2026 17:08:40 +0800 Subject: [PATCH 029/439] chore(deps): bump @sentry/node from 10.46.0 to 10.47.0 (#21585) Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 10.46.0 to 10.47.0. - [Release notes](https://github.com/getsentry/sentry-javascript/releases) - [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-javascript/compare/10.46.0...10.47.0) --- updated-dependencies: - dependency-name: "@sentry/node" dependency-version: 10.47.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 314 +++++++++++++++++++++++-------------------------- 2 files changed, 151 insertions(+), 165 deletions(-) diff --git a/package.json b/package.json index 56fd9841eb48..949fcf37168e 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,7 @@ "@opentelemetry/semantic-conventions": "1.40.0", "@rss3/sdk": "0.0.25", "@scalar/hono-api-reference": "0.10.5", - "@sentry/node": "10.46.0", + "@sentry/node": "10.47.0", "aes-js": "3.1.2", "cheerio": "1.2.0", "city-timezones": "1.3.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d4e57f6a38b6..2c822f117b50 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -83,8 +83,8 @@ importers: specifier: 0.10.5 version: 0.10.5(hono@4.12.8) '@sentry/node': - specifier: 10.46.0 - version: 10.46.0 + specifier: 10.47.0 + version: 10.47.0(@opentelemetry/exporter-trace-otlp-http@0.214.0(@opentelemetry/api@1.9.1)) aes-js: specifier: 3.1.2 version: 3.1.2 @@ -1072,8 +1072,8 @@ packages: '@noble/hashes': optional: true - '@fastify/otel@0.17.1': - resolution: {integrity: sha512-K4wyxfUZx2ux5o+b6BtTqouYFVILohLZmSbA2tKUueJstNcBnoGPVhllCaOvbQ3ZrXdUxUC/fyrSWSCqHhdOPg==} + '@fastify/otel@0.18.0': + resolution: {integrity: sha512-3TASCATfw+ctICSb4ymrv7iCm0qJ0N9CarB+CZ7zIJ7KqNbwI5JjyDL1/sxoC0ccTO1Zyd1iQ+oqncPg5FJXaA==} peerDependencies: '@opentelemetry/api': ^1.9.0 @@ -1494,10 +1494,6 @@ packages: resolution: {integrity: sha512-TEEVrLbNROUkYY51sBJGk7lO/OLjuepch8+hmpM6ffMJQ2z/KVCjdHuCFX6fJj8OkJP2zckPjrJzQtXU3IAsFg==} engines: {node: '>=8.0.0'} - '@opentelemetry/api-logs@0.213.0': - resolution: {integrity: sha512-zRM5/Qj6G84Ej3F1yt33xBVY/3tnMxtL1fiDIxYbDWYaZ/eudVw3/PBiZ8G7JwUxXxjW8gU4g6LnOyfGKYHYgw==} - engines: {node: '>=8.0.0'} - '@opentelemetry/api-logs@0.214.0': resolution: {integrity: sha512-40lSJeqYO8Uz2Yj7u94/SJWE/wONa7rmMKjI1ZcIjgf3MHNHv1OZUCrCETGuaRF62d5pQD1wKIW+L4lmSMTzZA==} engines: {node: '>=8.0.0'} @@ -1512,12 +1508,6 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/core@2.6.0': - resolution: {integrity: sha512-HLM1v2cbZ4TgYN6KEOj+Bbj8rAKriOdkF9Ed3tG25FoprSiQl7kYc+RRT6fUZGOvx0oMi5U67GoFdT+XUn8zEg==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/core@2.6.1': resolution: {integrity: sha512-8xHSGWpJP9wBxgBpnqGL0R3PbdWQndL1Qp50qrg71+B28zK5OQmUgcDKLJgzyAAV38t4tOyLMGDD60LneR5W8g==} engines: {node: ^18.19.0 || >=20.6.0} @@ -1536,134 +1526,134 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-amqplib@0.60.0': - resolution: {integrity: sha512-q/B2IvoVXRm1M00MvhnzpMN6rKYOszPXVsALi6u0ss4AYHe+TidZEtLW9N1ZhrobI1dSriHnBqqtAOZVAv07sg==} + '@opentelemetry/instrumentation-amqplib@0.61.0': + resolution: {integrity: sha512-mCKoyTGfRNisge4br0NpOFSy2Z1NnEW8hbCJdUDdJFHrPqVzc4IIBPA/vX0U+LUcQqrQvJX+HMIU0dbDRe0i0Q==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-connect@0.56.0': - resolution: {integrity: sha512-PKp+sSZ7AfzMvGgO3VCyo1inwNu+q7A1k9X88WK4PQ+S6Hp7eFk8pie+sWHDTaARovmqq5V2osav3lQej2B0nw==} + '@opentelemetry/instrumentation-connect@0.57.0': + resolution: {integrity: sha512-FMEBChnI4FLN5TE9DHwfH7QpNir1JzXno1uz/TAucVdLCyrG0jTrKIcNHt/i30A0M2AunNBCkcd8Ei26dIPKdg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-dataloader@0.30.0': - resolution: {integrity: sha512-MXHP2Q38cd2OhzEBKAIXUi9uBlPEYzF6BNJbyjUXBQ6kLaf93kRC41vNMIz0Nl5mnuwK7fDvKT+/lpx7BXRwdg==} + '@opentelemetry/instrumentation-dataloader@0.31.0': + resolution: {integrity: sha512-f654tZFQXS5YeLDNb9KySrwtg7SnqZN119FauD7acBoTzuLduaiGTNz88ixcVSOOMGZ+EjJu/RFtx5klObC95g==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-express@0.61.0': - resolution: {integrity: sha512-Xdmqo9RZuZlL29Flg8QdwrrX7eW1CZ7wFQPKHyXljNymgKhN1MCsYuqQ/7uxavhSKwAl7WxkTzKhnqpUApLMvQ==} + '@opentelemetry/instrumentation-express@0.62.0': + resolution: {integrity: sha512-Tvx+vgAZKEQxU3Rx+xWLiR0mLxHwmk69/8ya04+VsV9WYh8w6Lhx5hm5yAMvo1wy0KqWgFKBLwSeo3sHCwdOww==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-fs@0.32.0': - resolution: {integrity: sha512-koR6apx0g0wX6RRiPpjA4AFQUQUbXrK16kq4/SZjVp7u5cffJhNkY4TnITxcGA4acGSPYAfx3NHRIv4Khn1axQ==} + '@opentelemetry/instrumentation-fs@0.33.0': + resolution: {integrity: sha512-sCZWXGalQ01wr3tAhSR9ucqFJ0phidpAle6/17HVjD6gN8FLmZMK/8sKxdXYHy3PbnlV1P4zeiSVFNKpbFMNLA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-generic-pool@0.56.0': - resolution: {integrity: sha512-fg+Jffs6fqrf0uQS0hom7qBFKsbtpBiBl8+Vkc63Gx8xh6pVh+FhagmiO6oM0m3vyb683t1lP7yGYq22SiDnqg==} + '@opentelemetry/instrumentation-generic-pool@0.57.0': + resolution: {integrity: sha512-orhmlaK+ZIW9hKU+nHTbXrCSXZcH83AescTqmpamHRobRmYSQwRbD0a1odc0yAzuzOtxYiHiXAnpnIpaSSY7Ow==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-graphql@0.61.0': - resolution: {integrity: sha512-pUiVASv6nh2XrerTvlbVHh7vKFzscpgwiQ/xvnZuAIzQ5lRjWVdRPUuXbvZJ/Yq79QsE81TZdJ7z9YsXiss1ew==} + '@opentelemetry/instrumentation-graphql@0.62.0': + resolution: {integrity: sha512-3YNuLVPUxafXkH1jBAbGsKNsP3XVzcFDhCDCE3OqBwCwShlqQbLMRMFh1T/d5jaVZiGVmSsfof+ICKD2iOV8xg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-hapi@0.59.0': - resolution: {integrity: sha512-33wa4mEr+9+ztwdgLor1SeBu4Opz4IsmpcLETXAd3VmBrOjez8uQtrsOhPCa5Vhbm5gzDlMYTgFRLQzf8/YHFA==} + '@opentelemetry/instrumentation-hapi@0.60.0': + resolution: {integrity: sha512-aNljZKYrEa7obLAxd1bCEDxF7kzCLGXTuTJZ8lMR9rIVEjmuKBXN1gfqpm/OB//Zc2zP4iIve1jBp7sr3mQV6w==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-http@0.213.0': - resolution: {integrity: sha512-B978Xsm5XEPGhm1P07grDoaOFLHapJPkOG9h016cJsyWWxmiLnPu2M/4Nrm7UCkHSiLnkXgC+zVGUAIahy8EEA==} + '@opentelemetry/instrumentation-http@0.214.0': + resolution: {integrity: sha512-FlkDhZDRjDJDcO2LcSCtjRpkal1NJ8y0fBqBhTvfAR3JSYY2jAIj1kSS5IjmEBt4c3aWv+u/lqLuoCDrrKCSKg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-ioredis@0.61.0': - resolution: {integrity: sha512-hsHDadUtAFbws1YSDc1XW0svGFKiUbqv2td1Cby+UAiwvojm1NyBo/taifH0t8CuFZ0x/2SDm0iuTwrM5pnVOg==} + '@opentelemetry/instrumentation-ioredis@0.62.0': + resolution: {integrity: sha512-ZYt//zcPve8qklaZX+5Z4MkU7UpEkFRrxsf2cnaKYBitqDnsCN69CPAuuMOX6NYdW2rG9sFy7V/QWtBlP5XiNQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-kafkajs@0.22.0': - resolution: {integrity: sha512-wJU4IBQMUikdJAcTChLFqK5lo+flo7pahqd8DSLv7uMxsdOdAHj6RzKYAm8pPfUS6ItKYutYyuicwKaFwQKsoA==} + '@opentelemetry/instrumentation-kafkajs@0.23.0': + resolution: {integrity: sha512-4K+nVo+zI+aDz0Z85SObwbdixIbzS9moIuKJaYsdlzcHYnKOPtB7ya8r8Ezivy/GVIBHiKJVq4tv+BEkgOMLaQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-knex@0.57.0': - resolution: {integrity: sha512-vMCSh8kolEm5rRsc+FZeTZymWmIJwc40hjIKnXH4O0Dv/gAkJJIRXCsPX5cPbe0c0j/34+PsENd0HqKruwhVYw==} + '@opentelemetry/instrumentation-knex@0.58.0': + resolution: {integrity: sha512-Hc/o8fSsaWxZ8r1Yw4rNDLwTpUopTf4X32y4W6UhlHmW8Wizz8wfhgOKIelSeqFVTKBBPIDUOsQWuIMxBmu8Bw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-koa@0.61.0': - resolution: {integrity: sha512-lvrfWe9ShK/D2X4brmx8ZqqeWPfRl8xekU0FCn7C1dHm5k6+rTOOi36+4fnaHAP8lig9Ux6XQ1D4RNIpPCt1WQ==} + '@opentelemetry/instrumentation-koa@0.62.0': + resolution: {integrity: sha512-uVip0VuGUQXZ+vFxkKxAUNq8qNl+VFlyHDh/U6IQ8COOEDfbEchdaHnpFrMYF3psZRUuoSIgb7xOeXj00RdwDA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.9.0 - '@opentelemetry/instrumentation-lru-memoizer@0.57.0': - resolution: {integrity: sha512-cEqpUocSKJfwDtLYTTJehRLWzkZ2eoePCxfVIgGkGkb83fMB71O+y4MvRHJPbeV2bdoWdOVrl8uO0+EynWhTEA==} + '@opentelemetry/instrumentation-lru-memoizer@0.58.0': + resolution: {integrity: sha512-6grM3TdMyHzlGY1cUA+mwoPueB1F3dYKgKtZIH6jOFXqfHAByyLTc+6PFjGM9tKh52CFBJaDwodNlL/Td39z7Q==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-mongodb@0.66.0': - resolution: {integrity: sha512-d7m9QnAY+4TCWI4q1QRkfrc6fo/92VwssaB1DzQfXNRvu51b78P+HJlWP7Qg6N6nkwdb9faMZNBCZJfftmszkw==} + '@opentelemetry/instrumentation-mongodb@0.67.0': + resolution: {integrity: sha512-1WJp5N1lYfHq2IhECOTewFs5Tf2NfUOwQRqs/rZdXKTezArMlucxgzAaqcgp3A3YREXopXTpXHsxZTGHjNhMdQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-mongoose@0.59.0': - resolution: {integrity: sha512-6/jWU+c1NgznkVLDU/2y0bXV2nJo3o9FWZ9mZ9nN6T/JBNRoMnVXZl2FdBmgH+a5MwaWLs5kmRJTP5oUVGIkPw==} + '@opentelemetry/instrumentation-mongoose@0.60.0': + resolution: {integrity: sha512-8BahAZpKsOoc+lrZGb7Ofn4g3z8qtp5IxDfvAVpKXsEheQN7ONMH5djT5ihy6yf8yyeQJGS0gXFfpEAEeEHqQg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-mysql2@0.59.0': - resolution: {integrity: sha512-n9/xrVCRBfG9egVbffnlU1uhr+HX0vF4GgtAB/Bvm48wpFgRidqD8msBMiym1kRYzmpWvJqTxNT47u1MkgBEdw==} + '@opentelemetry/instrumentation-mysql2@0.60.0': + resolution: {integrity: sha512-m/5d3bxQALllCzezYDk/6vajh0tj5OijMMvOZGr+qN1NMXm1dzMNwyJ0gNZW7Fo3YFRyj/jJMxIw+W7d525dlw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-mysql@0.59.0': - resolution: {integrity: sha512-r+V/Fh0sm7Ga8/zk/TI5H5FQRAjwr0RrpfPf8kNIehlsKf12XnvIaZi8ViZkpX0gyPEpLXqzqWD6QHlgObgzZw==} + '@opentelemetry/instrumentation-mysql@0.60.0': + resolution: {integrity: sha512-08pO8GFPEIz2zquKDGteBZDNmwketdgH8hTe9rVYgW9kCJXq1Psj3wPQGx+VaX4ZJKCfPeoLMYup9+cxHvZyVQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-pg@0.65.0': - resolution: {integrity: sha512-W0zpHEIEuyZ8zvb3njaX9AAbHgPYOsSWVOoWmv1sjVRSF6ZpBqtlxBWbU+6hhq1TFWBeWJOXZ8nZS/PUFpLJYQ==} + '@opentelemetry/instrumentation-pg@0.66.0': + resolution: {integrity: sha512-KxfLGXBb7k2ueaPJfq2GXBDXBly8P+SpR/4Mj410hhNgmQF3sCqwXvUBQxZQkDAmsdBAoenM+yV1LhtsMRamcA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-redis@0.61.0': - resolution: {integrity: sha512-JnPexA034/0UJRsvH96B0erQoNOqKJZjE2ZRSw9hiTSC23LzE0nJE/u6D+xqOhgUhRnhhcPHq4MdYtmUdYTF+Q==} + '@opentelemetry/instrumentation-redis@0.62.0': + resolution: {integrity: sha512-y3pPpot7WzR/8JtHcYlTYsyY8g+pbFhAqbwAuG5bLPnR6v6pt1rQc0DpH0OlGP/9CZbWBP+Zhwp9yFoygf/ZXQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-tedious@0.32.0': - resolution: {integrity: sha512-BQS6gG8RJ1foEqfEZ+wxoqlwfCAzb1ZVG0ad8Gfe4x8T658HJCLGLd4E4NaoQd8EvPfLqOXgzGaE/2U4ytDSWA==} + '@opentelemetry/instrumentation-tedious@0.33.0': + resolution: {integrity: sha512-Q6WQwAD01MMTub31GlejoiFACYNw26J426wyjvU7by7fDIr2nZXNW4vhTGs7i7F0TnXBO3xN688g1tdUgYwJ5w==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-undici@0.23.0': - resolution: {integrity: sha512-LL0VySzKVR2cJSFVZaTYpZl1XTpBGnfzoQPe2W7McS2267ldsaEIqtQY6VXs2KCXN0poFjze5110PIpxHDaDGg==} + '@opentelemetry/instrumentation-undici@0.24.0': + resolution: {integrity: sha512-oKzZ3uvqP17sV0EsoQcJgjEfIp0kiZRbYu/eD8p13Cbahumf8lb/xpYeNr/hfAJ4owzEtIDcGIjprfLcYbIKBQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.7.0 @@ -1680,8 +1670,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation@0.213.0': - resolution: {integrity: sha512-3i9NdkET/KvQomeh7UaR/F4r9P25Rx6ooALlWXPIjypcEOUxksCmVu0zA70NBJWlrMW1rPr/LRidFAflLI+s/w==} + '@opentelemetry/instrumentation@0.214.0': + resolution: {integrity: sha512-MHqEX5Dk59cqVah5LiARMACku7jXSVk9iVDWOea4x3cr7VfdByeDCURK6o1lntT1JS/Tsovw01UJrBhN3/uC5w==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -2073,8 +2063,8 @@ packages: '@postman/tunnel-agent@0.6.8': resolution: {integrity: sha512-2U42SmZW5G+suEcS++zB94sBWNO4qD4bvETGFRFDTqSpYl5ksfjcPqzYpgQgXgUmb6dfz+fAGbkcRamounGm0w==} - '@prisma/instrumentation@7.4.2': - resolution: {integrity: sha512-r9JfchJF1Ae6yAxcaLu/V1TGqBhAuSDe3mRNOssBfx1rMzfZ4fdNvrgUBwyb/TNTGXFxlH9AZix5P257x07nrg==} + '@prisma/instrumentation@7.6.0': + resolution: {integrity: sha512-ZPW2gRiwpPzEfgeZgaekhqXrbW+Y2RJKHVqUmlhZhKzRNCcvR6DykzylDrynpArKKRQtLxoZy36fK7U0p3pdgQ==} peerDependencies: '@opentelemetry/api': ^1.8 @@ -2407,17 +2397,18 @@ packages: '@selderee/plugin-htmlparser2@0.11.0': resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==} - '@sentry/core@10.46.0': - resolution: {integrity: sha512-N3fj4zqBQOhXliS1Ne9euqIKuciHCGOJfPGQLwBoW9DNz03jF+NB8+dUKtrJ79YLoftjVgf8nbgwtADK7NR+2Q==} + '@sentry/core@10.47.0': + resolution: {integrity: sha512-nsYRAx3EWezDut+Zl+UwwP07thh9uY7CfSAi2whTdcJl5hu1nSp2z8bba7Vq/MGbNLnazkd3A+GITBEML924JA==} engines: {node: '>=18'} - '@sentry/node-core@10.46.0': - resolution: {integrity: sha512-gwLGXfkzmiCmUI1VWttyoZBaVp1ItpDKc8AV2mQblWPQGdLSD0c6uKV/FkU291yZA3rXsrLXVwcWoibwnjE2vw==} + '@sentry/node-core@10.47.0': + resolution: {integrity: sha512-qv6LsqHbkQmd0aQEUox/svRSz26J+l4gGjFOUNEay2armZu9XLD+Ct89jpFgZD5oIPNAj2jraodTRqydXiwS5w==} engines: {node: '>=18'} peerDependencies: '@opentelemetry/api': ^1.9.0 '@opentelemetry/context-async-hooks': ^1.30.1 || ^2.1.0 '@opentelemetry/core': ^1.30.1 || ^2.1.0 + '@opentelemetry/exporter-trace-otlp-http': '>=0.57.0 <1' '@opentelemetry/instrumentation': '>=0.57.1 <1' '@opentelemetry/resources': ^1.30.1 || ^2.1.0 '@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.1.0 @@ -2429,6 +2420,8 @@ packages: optional: true '@opentelemetry/core': optional: true + '@opentelemetry/exporter-trace-otlp-http': + optional: true '@opentelemetry/instrumentation': optional: true '@opentelemetry/resources': @@ -2438,12 +2431,12 @@ packages: '@opentelemetry/semantic-conventions': optional: true - '@sentry/node@10.46.0': - resolution: {integrity: sha512-vF+7FrUXEtmYWuVcnvBjlWKeyLw/kwHpwnGj9oUmO/a2uKjDmUr53ZVcapggNxCjivavGYr9uHOY64AGdeUyzA==} + '@sentry/node@10.47.0': + resolution: {integrity: sha512-R+btqPepv88o635G6HtVewLjqCLUedBg5HBs7Nq1qbbKvyti01uArUF2f+3DsLenk5B9LUNiRlE+frZA44Ahmw==} engines: {node: '>=18'} - '@sentry/opentelemetry@10.46.0': - resolution: {integrity: sha512-dzzV2ovruGsx9jzusGGr6cNPvMgYRu2BIrF8aMZ3rkQ1OpPJjPStqtA1l1fw0aoxHOxIjFU7ml4emF+xdmMl3g==} + '@sentry/opentelemetry@10.47.0': + resolution: {integrity: sha512-f6Hw2lrpCjlOksiosP0Z2jK/+l+21SIdoNglVeG/sttMyx8C8ywONKh0Ha50sFsvB1VaB8n94RKzzf3hkh9V3g==} engines: {node: '>=18'} peerDependencies: '@opentelemetry/api': ^1.9.0 @@ -6704,7 +6697,7 @@ snapshots: optionalDependencies: '@noble/hashes': 2.0.1 - '@fastify/otel@0.17.1(@opentelemetry/api@1.9.1)': + '@fastify/otel@0.18.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) @@ -7085,10 +7078,6 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/api-logs@0.213.0': - dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/api-logs@0.214.0': dependencies: '@opentelemetry/api': 1.9.1 @@ -7099,11 +7088,6 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core@2.6.0(@opentelemetry/api@1.9.1)': - dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/semantic-conventions': 1.40.0 - '@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 @@ -7126,163 +7110,163 @@ snapshots: '@opentelemetry/resources': 2.6.1(@opentelemetry/api@1.9.1) '@opentelemetry/sdk-trace-base': 2.6.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-amqplib@0.60.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/instrumentation-amqplib@0.61.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-connect@0.56.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/instrumentation-connect@0.57.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 '@types/connect': 3.4.38 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-dataloader@0.30.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/instrumentation-dataloader@0.31.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-express@0.61.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/instrumentation-express@0.62.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-fs@0.32.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/instrumentation-fs@0.33.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-generic-pool@0.56.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/instrumentation-generic-pool@0.57.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-graphql@0.61.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/instrumentation-graphql@0.62.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-hapi@0.59.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/instrumentation-hapi@0.60.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-http@0.213.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/instrumentation-http@0.214.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 forwarded-parse: 2.1.2 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-ioredis@0.61.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/instrumentation-ioredis@0.62.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) '@opentelemetry/redis-common': 0.38.2 '@opentelemetry/semantic-conventions': 1.40.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-kafkajs@0.22.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/instrumentation-kafkajs@0.23.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-knex@0.57.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/instrumentation-knex@0.58.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-koa@0.61.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/instrumentation-koa@0.62.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-lru-memoizer@0.57.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/instrumentation-lru-memoizer@0.58.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-mongodb@0.66.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/instrumentation-mongodb@0.67.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-mongoose@0.59.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/instrumentation-mongoose@0.60.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-mysql2@0.59.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/instrumentation-mysql2@0.60.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 '@opentelemetry/sql-common': 0.41.2(@opentelemetry/api@1.9.1) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-mysql@0.59.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/instrumentation-mysql@0.60.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 '@types/mysql': 2.15.27 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-pg@0.65.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/instrumentation-pg@0.66.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 '@opentelemetry/sql-common': 0.41.2(@opentelemetry/api@1.9.1) '@types/pg': 8.15.6 @@ -7290,29 +7274,29 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-redis@0.61.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/instrumentation-redis@0.62.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) '@opentelemetry/redis-common': 0.38.2 '@opentelemetry/semantic-conventions': 1.40.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-tedious@0.32.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/instrumentation-tedious@0.33.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 '@types/tedious': 4.0.14 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-undici@0.23.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/instrumentation-undici@0.24.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 transitivePeerDependencies: - supports-color @@ -7335,10 +7319,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation@0.213.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/api-logs': 0.213.0 + '@opentelemetry/api-logs': 0.214.0 import-in-the-middle: 3.0.0 require-in-the-middle: 8.0.1 transitivePeerDependencies: @@ -7601,7 +7585,7 @@ snapshots: dependencies: safe-buffer: '@nolyfill/safe-buffer@1.0.44' - '@prisma/instrumentation@7.4.2(@opentelemetry/api@1.9.1)': + '@prisma/instrumentation@7.6.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 '@opentelemetry/instrumentation': 0.207.0(@opentelemetry/api@1.9.1) @@ -7859,70 +7843,72 @@ snapshots: domhandler: 5.0.3 selderee: 0.11.0 - '@sentry/core@10.46.0': {} + '@sentry/core@10.47.0': {} - '@sentry/node-core@10.46.0(@opentelemetry/api@1.9.1)(@opentelemetry/context-async-hooks@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.213.0(@opentelemetry/api@1.9.1))(@opentelemetry/resources@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0)': + '@sentry/node-core@10.47.0(@opentelemetry/api@1.9.1)(@opentelemetry/context-async-hooks@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/exporter-trace-otlp-http@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/resources@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0)': dependencies: - '@sentry/core': 10.46.0 - '@sentry/opentelemetry': 10.46.0(@opentelemetry/api@1.9.1)(@opentelemetry/context-async-hooks@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) + '@sentry/core': 10.47.0 + '@sentry/opentelemetry': 10.47.0(@opentelemetry/api@1.9.1)(@opentelemetry/context-async-hooks@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) import-in-the-middle: 3.0.0 optionalDependencies: '@opentelemetry/api': 1.9.1 '@opentelemetry/context-async-hooks': 2.6.1(@opentelemetry/api@1.9.1) '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.1) + '@opentelemetry/exporter-trace-otlp-http': 0.214.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) '@opentelemetry/resources': 2.6.1(@opentelemetry/api@1.9.1) '@opentelemetry/sdk-trace-base': 2.6.1(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 - '@sentry/node@10.46.0': + '@sentry/node@10.47.0(@opentelemetry/exporter-trace-otlp-http@0.214.0(@opentelemetry/api@1.9.1))': dependencies: - '@fastify/otel': 0.17.1(@opentelemetry/api@1.9.1) + '@fastify/otel': 0.18.0(@opentelemetry/api@1.9.1) '@opentelemetry/api': 1.9.1 '@opentelemetry/context-async-hooks': 2.6.1(@opentelemetry/api@1.9.1) '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation': 0.213.0(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-amqplib': 0.60.0(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-connect': 0.56.0(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-dataloader': 0.30.0(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-express': 0.61.0(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-fs': 0.32.0(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-generic-pool': 0.56.0(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-graphql': 0.61.0(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-hapi': 0.59.0(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-http': 0.213.0(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-ioredis': 0.61.0(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-kafkajs': 0.22.0(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-knex': 0.57.0(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-koa': 0.61.0(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-lru-memoizer': 0.57.0(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-mongodb': 0.66.0(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-mongoose': 0.59.0(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-mysql': 0.59.0(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-mysql2': 0.59.0(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-pg': 0.65.0(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-redis': 0.61.0(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-tedious': 0.32.0(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-undici': 0.23.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-amqplib': 0.61.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-connect': 0.57.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-dataloader': 0.31.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-express': 0.62.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-fs': 0.33.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-generic-pool': 0.57.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-graphql': 0.62.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-hapi': 0.60.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-http': 0.214.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-ioredis': 0.62.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-kafkajs': 0.23.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-knex': 0.58.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-koa': 0.62.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-lru-memoizer': 0.58.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-mongodb': 0.67.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-mongoose': 0.60.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-mysql': 0.60.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-mysql2': 0.60.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-pg': 0.66.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-redis': 0.62.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-tedious': 0.33.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-undici': 0.24.0(@opentelemetry/api@1.9.1) '@opentelemetry/resources': 2.6.1(@opentelemetry/api@1.9.1) '@opentelemetry/sdk-trace-base': 2.6.1(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 - '@prisma/instrumentation': 7.4.2(@opentelemetry/api@1.9.1) - '@sentry/core': 10.46.0 - '@sentry/node-core': 10.46.0(@opentelemetry/api@1.9.1)(@opentelemetry/context-async-hooks@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.213.0(@opentelemetry/api@1.9.1))(@opentelemetry/resources@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) - '@sentry/opentelemetry': 10.46.0(@opentelemetry/api@1.9.1)(@opentelemetry/context-async-hooks@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) + '@prisma/instrumentation': 7.6.0(@opentelemetry/api@1.9.1) + '@sentry/core': 10.47.0 + '@sentry/node-core': 10.47.0(@opentelemetry/api@1.9.1)(@opentelemetry/context-async-hooks@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/exporter-trace-otlp-http@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/resources@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) + '@sentry/opentelemetry': 10.47.0(@opentelemetry/api@1.9.1)(@opentelemetry/context-async-hooks@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) import-in-the-middle: 3.0.0 transitivePeerDependencies: + - '@opentelemetry/exporter-trace-otlp-http' - supports-color - '@sentry/opentelemetry@10.46.0(@opentelemetry/api@1.9.1)(@opentelemetry/context-async-hooks@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0)': + '@sentry/opentelemetry@10.47.0(@opentelemetry/api@1.9.1)(@opentelemetry/context-async-hooks@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0)': dependencies: '@opentelemetry/api': 1.9.1 '@opentelemetry/context-async-hooks': 2.6.1(@opentelemetry/api@1.9.1) '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) '@opentelemetry/sdk-trace-base': 2.6.1(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 - '@sentry/core': 10.46.0 + '@sentry/core': 10.47.0 '@sindresorhus/is@4.6.0': {} From 92010651a118c61a2452911e86a59aa387fc8fb9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Apr 2026 17:13:23 +0800 Subject: [PATCH 030/439] chore(deps-dev): bump the cloudflare group with 3 updates (#21582) Bumps the cloudflare group with 3 updates: [@cloudflare/containers](https://github.com/cloudflare/containers), [@cloudflare/workers-types](https://github.com/cloudflare/workerd) and [wrangler](https://github.com/cloudflare/workers-sdk/tree/HEAD/packages/wrangler). Updates `@cloudflare/containers` from 0.2.1 to 0.2.2 - [Release notes](https://github.com/cloudflare/containers/releases) - [Changelog](https://github.com/cloudflare/containers/blob/main/CHANGELOG.md) - [Commits](https://github.com/cloudflare/containers/compare/v0.2.1...v0.2.2) Updates `@cloudflare/workers-types` from 4.20260329.1 to 4.20260401.1 - [Release notes](https://github.com/cloudflare/workerd/releases) - [Changelog](https://github.com/cloudflare/workerd/blob/main/RELEASE.md) - [Commits](https://github.com/cloudflare/workerd/commits) Updates `wrangler` from 4.78.0 to 4.79.0 - [Release notes](https://github.com/cloudflare/workers-sdk/releases) - [Commits](https://github.com/cloudflare/workers-sdk/commits/wrangler@4.79.0/packages/wrangler) --- updated-dependencies: - dependency-name: "@cloudflare/containers" dependency-version: 0.2.2 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: cloudflare - dependency-name: "@cloudflare/workers-types" dependency-version: 4.20260401.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: cloudflare - dependency-name: wrangler dependency-version: 4.79.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: cloudflare ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 6 ++-- pnpm-lock.yaml | 98 +++++++++++++++++++++++++------------------------- 2 files changed, 52 insertions(+), 52 deletions(-) diff --git a/package.json b/package.json index 949fcf37168e..f71c4263da60 100644 --- a/package.json +++ b/package.json @@ -147,9 +147,9 @@ "@actions/core": "3.0.0", "@actions/github": "9.0.0", "@bbob/types": "4.3.1", - "@cloudflare/containers": "0.2.1", + "@cloudflare/containers": "0.2.2", "@cloudflare/puppeteer": "1.0.6", - "@cloudflare/workers-types": "4.20260329.1", + "@cloudflare/workers-types": "4.20260401.1", "@eslint/eslintrc": "3.3.5", "@eslint/js": "10.0.1", "@oxlint/plugins": "1.57.0", @@ -202,7 +202,7 @@ "unified": "11.0.5", "vite-tsconfig-paths": "6.1.1", "vitest": "4.0.9", - "wrangler": "4.78.0", + "wrangler": "4.79.0", "yaml-eslint-parser": "2.0.0" }, "lint-staged": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2c822f117b50..f682f034f68a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -300,14 +300,14 @@ importers: specifier: 4.3.1 version: 4.3.1 '@cloudflare/containers': - specifier: 0.2.1 - version: 0.2.1 + specifier: 0.2.2 + version: 0.2.2 '@cloudflare/puppeteer': specifier: 1.0.6 version: 1.0.6(bufferutil@4.1.0)(utf-8-validate@5.0.10) '@cloudflare/workers-types': - specifier: 4.20260329.1 - version: 4.20260329.1 + specifier: 4.20260401.1 + version: 4.20260401.1 '@eslint/eslintrc': specifier: 3.3.5 version: 3.3.5 @@ -465,8 +465,8 @@ importers: specifier: 4.0.9 version: 4.0.9(@edge-runtime/vm@3.2.0)(@types/debug@4.1.13)(@types/node@25.5.0)(jiti@2.6.1)(jsdom@29.0.1(@noble/hashes@2.0.1))(msw@2.12.14(@types/node@25.5.0)(typescript@5.9.3))(tsx@4.21.0)(yaml@2.8.3) wrangler: - specifier: 4.78.0 - version: 4.78.0(@cloudflare/workers-types@4.20260329.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10) + specifier: 4.79.0 + version: 4.79.0(@cloudflare/workers-types@4.20260401.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10) yaml-eslint-parser: specifier: 2.0.0 version: 2.0.0 @@ -585,8 +585,8 @@ packages: '@bufbuild/protobuf@2.11.0': resolution: {integrity: sha512-sBXGT13cpmPR5BMgHE6UEEfEaShh5Ror6rfN3yEK5si7QVrtZg8LEPQb0VVhiLRUslD2yLnXtnRzG035J/mZXQ==} - '@cloudflare/containers@0.2.1': - resolution: {integrity: sha512-8Cfy1p3hc3WgUeofodfsRcqjrfwUuzKb8yNyM/NoTFfy3aEHKbuia32n2lwSc1vOODTDZ1ooD8nRjvAYEPzVBg==} + '@cloudflare/containers@0.2.2': + resolution: {integrity: sha512-cfTSd7M96Z9NeCiaN4i3FuMb+i2Nzi0HbMuxvMAnUmkXwtWIZCQ3XLqUWQkdCKWNJZ/3BLMInC6ntFvpbTWIpA==} '@cloudflare/kv-asset-handler@0.4.2': resolution: {integrity: sha512-SIOD2DxrRRwQ+jgzlXCqoEFiKOFqaPjhnNTGKXSRLvp1HiOvapLaFG2kEr9dYQTYe8rKrd9uvDUzmAITeNyaHQ==} @@ -605,38 +605,38 @@ packages: workerd: optional: true - '@cloudflare/workerd-darwin-64@1.20260317.1': - resolution: {integrity: sha512-8hjh3sPMwY8M/zedq3/sXoA2Q4BedlGufn3KOOleIG+5a4ReQKLlUah140D7J6zlKmYZAFMJ4tWC7hCuI/s79g==} + '@cloudflare/workerd-darwin-64@1.20260329.1': + resolution: {integrity: sha512-oyDXYlPBuGXKkZ85+M3jFz0/qYmvA4AEURN8USIGPDCR5q+HFSRwywSd9neTx3Wi7jhey2wuYaEpD3fEFWyWUA==} engines: {node: '>=16'} cpu: [x64] os: [darwin] - '@cloudflare/workerd-darwin-arm64@1.20260317.1': - resolution: {integrity: sha512-M/MnNyvO5HMgoIdr3QHjdCj2T1ki9gt0vIUnxYxBu9ISXS/jgtMl6chUVPJ7zHYBn9MyYr8ByeN6frjYxj0MGg==} + '@cloudflare/workerd-darwin-arm64@1.20260329.1': + resolution: {integrity: sha512-++ZxVa3ovzYeDLEG6zMqql9gzZAG8vak6ZSBQgprGKZp7akr+GKTpw9f3RrMP552NSi3gTisroLobrrkPBtYLQ==} engines: {node: '>=16'} cpu: [arm64] os: [darwin] - '@cloudflare/workerd-linux-64@1.20260317.1': - resolution: {integrity: sha512-1ltuEjkRcS3fsVF7CxsKlWiRmzq2ZqMfqDN0qUOgbUwkpXsLVJsXmoblaLf5OP00ELlcgF0QsN0p2xPEua4Uug==} + '@cloudflare/workerd-linux-64@1.20260329.1': + resolution: {integrity: sha512-kkeywAgIHwbqHkVILqbj/YkfbrA6ARbmutjiYzZA2MwMSfNXlw6/kedAKOY8YwcymZIgepx3YTIPnBP50pOotw==} engines: {node: '>=16'} cpu: [x64] os: [linux] - '@cloudflare/workerd-linux-arm64@1.20260317.1': - resolution: {integrity: sha512-3QrNnPF1xlaNwkHpasvRvAMidOvQs2NhXQmALJrEfpIJ/IDL2la8g499yXp3eqhG3hVMCB07XVY149GTs42Xtw==} + '@cloudflare/workerd-linux-arm64@1.20260329.1': + resolution: {integrity: sha512-eYBN20+B7XOUSWEe0mlqkMUbfLoIKjKZnpqQiSxnLbL72JKY0D/KlfN/b7RVGLpewB7i8rTrwTNr0szCKnZzSQ==} engines: {node: '>=16'} cpu: [arm64] os: [linux] - '@cloudflare/workerd-windows-64@1.20260317.1': - resolution: {integrity: sha512-MfZTz+7LfuIpMGTa3RLXHX8Z/pnycZLItn94WRdHr8LPVet+C5/1Nzei399w/jr3+kzT4pDKk26JF/tlI5elpQ==} + '@cloudflare/workerd-windows-64@1.20260329.1': + resolution: {integrity: sha512-5R+/oxrDhS9nL3oA3ZWtD6ndMOqm7RfKknDNxLcmYW5DkUu7UH3J/s1t/Dz66iFePzr5BJmE7/8gbmve6TjtZQ==} engines: {node: '>=16'} cpu: [x64] os: [win32] - '@cloudflare/workers-types@4.20260329.1': - resolution: {integrity: sha512-LxBHrYYI/AZ6OCbUzRqRgg6Rt1qev2KxN2NNd3saye41AO2g52cYvHV+ohts5oPnrIUD7YRjbgN/J3NU7e7m5A==} + '@cloudflare/workers-types@4.20260401.1': + resolution: {integrity: sha512-tKBeV/ySfJjbO0qMKkFrstHDdWzZHAcW4vCpO5QaqjB/667y9lhZt9gZyTKeJ0gluIBwpeQ/efBjqRLqpkgw9g==} '@colors/colors@1.6.0': resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} @@ -4675,8 +4675,8 @@ packages: resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - miniflare@4.20260317.3: - resolution: {integrity: sha512-tK78D3X4q30/SXqVwMhWrUfH+ffRou9dJLC+jkhNy5zh1I7i7T4JH6xihOvYxdCSBavJ5fQXaaxDJz6orh09BA==} + miniflare@4.20260329.0: + resolution: {integrity: sha512-+G+1YFVeuEpw/gZZmUHQR7IfzJV+DDGvnSl0yXzhgvHh8Nbr8Go5uiWIwl17EyZ1Uors3FKUMDUyU6+ejeKZOw==} engines: {node: '>=18.0.0'} hasBin: true @@ -6078,17 +6078,17 @@ packages: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} - workerd@1.20260317.1: - resolution: {integrity: sha512-ZuEq1OdrJBS+NV+L5HMYPCzVn49a2O60slQiiLpG44jqtlOo+S167fWC76kEXteXLLLydeuRrluRel7WdOUa4g==} + workerd@1.20260329.1: + resolution: {integrity: sha512-+ifMv3uBuD33ee7pan5n8+sgVxm2u5HnbgfXzHKwMNTKw86znqBJSnJoBqtP88+2T5U2Lu11xXUt+khPYioXwQ==} engines: {node: '>=16'} hasBin: true - wrangler@4.78.0: - resolution: {integrity: sha512-He/vUhk4ih0D0eFmtNnlbT6Od8j+BEokaSR+oYjbVsH0SWIrIch+eHqfLRSBjBQaOoh6HCNxcafcIkBm2u0Hag==} + wrangler@4.79.0: + resolution: {integrity: sha512-NMinIdB1pXIqdk+NLw4+RjzB7K5z4+lWMxhTxFTfZomwJu3Pm6N+kZ+a66D3nI7w0oCjsdv/umrZVmSHCBp2cg==} engines: {node: '>=20.3.0'} hasBin: true peerDependencies: - '@cloudflare/workers-types': ^4.20260317.1 + '@cloudflare/workers-types': ^4.20260329.1 peerDependenciesMeta: '@cloudflare/workers-types': optional: true @@ -6384,7 +6384,7 @@ snapshots: '@bufbuild/protobuf@2.11.0': {} - '@cloudflare/containers@0.2.1': {} + '@cloudflare/containers@0.2.2': {} '@cloudflare/kv-asset-handler@0.4.2': {} @@ -6402,28 +6402,28 @@ snapshots: - supports-color - utf-8-validate - '@cloudflare/unenv-preset@2.16.0(unenv@2.0.0-rc.24)(workerd@1.20260317.1)': + '@cloudflare/unenv-preset@2.16.0(unenv@2.0.0-rc.24)(workerd@1.20260329.1)': dependencies: unenv: 2.0.0-rc.24 optionalDependencies: - workerd: 1.20260317.1 + workerd: 1.20260329.1 - '@cloudflare/workerd-darwin-64@1.20260317.1': + '@cloudflare/workerd-darwin-64@1.20260329.1': optional: true - '@cloudflare/workerd-darwin-arm64@1.20260317.1': + '@cloudflare/workerd-darwin-arm64@1.20260329.1': optional: true - '@cloudflare/workerd-linux-64@1.20260317.1': + '@cloudflare/workerd-linux-64@1.20260329.1': optional: true - '@cloudflare/workerd-linux-arm64@1.20260317.1': + '@cloudflare/workerd-linux-arm64@1.20260329.1': optional: true - '@cloudflare/workerd-windows-64@1.20260317.1': + '@cloudflare/workerd-windows-64@1.20260329.1': optional: true - '@cloudflare/workers-types@4.20260329.1': {} + '@cloudflare/workers-types@4.20260401.1': {} '@colors/colors@1.6.0': {} @@ -10396,12 +10396,12 @@ snapshots: mimic-response@4.0.0: {} - miniflare@4.20260317.3(bufferutil@4.1.0)(utf-8-validate@5.0.10): + miniflare@4.20260329.0(bufferutil@4.1.0)(utf-8-validate@5.0.10): dependencies: '@cspotcode/source-map-support': 0.8.1 sharp: 0.34.5 undici: 7.24.4 - workerd: 1.20260317.1 + workerd: 1.20260329.1 ws: 8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) youch: 4.1.0-beta.10 transitivePeerDependencies: @@ -12012,26 +12012,26 @@ snapshots: word-wrap@1.2.5: {} - workerd@1.20260317.1: + workerd@1.20260329.1: optionalDependencies: - '@cloudflare/workerd-darwin-64': 1.20260317.1 - '@cloudflare/workerd-darwin-arm64': 1.20260317.1 - '@cloudflare/workerd-linux-64': 1.20260317.1 - '@cloudflare/workerd-linux-arm64': 1.20260317.1 - '@cloudflare/workerd-windows-64': 1.20260317.1 + '@cloudflare/workerd-darwin-64': 1.20260329.1 + '@cloudflare/workerd-darwin-arm64': 1.20260329.1 + '@cloudflare/workerd-linux-64': 1.20260329.1 + '@cloudflare/workerd-linux-arm64': 1.20260329.1 + '@cloudflare/workerd-windows-64': 1.20260329.1 - wrangler@4.78.0(@cloudflare/workers-types@4.20260329.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10): + wrangler@4.79.0(@cloudflare/workers-types@4.20260401.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10): dependencies: '@cloudflare/kv-asset-handler': 0.4.2 - '@cloudflare/unenv-preset': 2.16.0(unenv@2.0.0-rc.24)(workerd@1.20260317.1) + '@cloudflare/unenv-preset': 2.16.0(unenv@2.0.0-rc.24)(workerd@1.20260329.1) blake3-wasm: 2.1.5 esbuild: 0.27.3 - miniflare: 4.20260317.3(bufferutil@4.1.0)(utf-8-validate@5.0.10) + miniflare: 4.20260329.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) path-to-regexp: 6.3.0 unenv: 2.0.0-rc.24 - workerd: 1.20260317.1 + workerd: 1.20260329.1 optionalDependencies: - '@cloudflare/workers-types': 4.20260329.1 + '@cloudflare/workers-types': 4.20260401.1 fsevents: 2.3.3 transitivePeerDependencies: - bufferutil From 2e7433b9824a0914b3807ae67e8432bfbae3de85 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Apr 2026 17:21:19 +0800 Subject: [PATCH 031/439] chore(deps): bump the proxy-agent group with 3 updates (#21584) Bumps the proxy-agent group with 3 updates: [https-proxy-agent](https://github.com/TooTallNate/proxy-agents/tree/HEAD/packages/https-proxy-agent), [pac-proxy-agent](https://github.com/TooTallNate/proxy-agents/tree/HEAD/packages/pac-proxy-agent) and [socks-proxy-agent](https://github.com/TooTallNate/proxy-agents/tree/HEAD/packages/socks-proxy-agent). Updates `https-proxy-agent` from 8.0.0 to 9.0.0 - [Release notes](https://github.com/TooTallNate/proxy-agents/releases) - [Changelog](https://github.com/TooTallNate/proxy-agents/blob/main/packages/https-proxy-agent/CHANGELOG.md) - [Commits](https://github.com/TooTallNate/proxy-agents/commits/https-proxy-agent@9.0.0/packages/https-proxy-agent) Updates `pac-proxy-agent` from 8.0.0 to 9.0.0 - [Release notes](https://github.com/TooTallNate/proxy-agents/releases) - [Changelog](https://github.com/TooTallNate/proxy-agents/blob/main/packages/pac-proxy-agent/CHANGELOG.md) - [Commits](https://github.com/TooTallNate/proxy-agents/commits/pac-proxy-agent@9.0.0/packages/pac-proxy-agent) Updates `socks-proxy-agent` from 9.0.0 to 10.0.0 - [Release notes](https://github.com/TooTallNate/proxy-agents/releases) - [Changelog](https://github.com/TooTallNate/proxy-agents/blob/main/packages/socks-proxy-agent/CHANGELOG.md) - [Commits](https://github.com/TooTallNate/proxy-agents/commits/socks-proxy-agent@10.0.0/packages/socks-proxy-agent) --- updated-dependencies: - dependency-name: https-proxy-agent dependency-version: 9.0.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: proxy-agent - dependency-name: pac-proxy-agent dependency-version: 9.0.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: proxy-agent - dependency-name: socks-proxy-agent dependency-version: 10.0.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: proxy-agent ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 6 +-- pnpm-lock.yaml | 112 ++++++++++++++++++++++++------------------------- 2 files changed, 59 insertions(+), 59 deletions(-) diff --git a/package.json b/package.json index f71c4263da60..d674c7135d51 100644 --- a/package.json +++ b/package.json @@ -93,7 +93,7 @@ "hono": "4.12.8", "html-to-text": "9.0.5", "http-cookie-agent": "7.0.3", - "https-proxy-agent": "8.0.0", + "https-proxy-agent": "9.0.0", "iconv-lite": "0.7.2", "imapflow": "1.2.18", "instagram-private-api": "1.46.1", @@ -114,7 +114,7 @@ "ofetch": "1.5.1", "otplib": "13.4.0", "p-map": "7.0.4", - "pac-proxy-agent": "8.0.0", + "pac-proxy-agent": "9.0.0", "proxy-chain": "2.7.1", "puppeteer-real-browser": "1.4.4", "query-string": "9.3.1", @@ -125,7 +125,7 @@ "rss-parser": "3.13.0", "sanitize-html": "2.17.2", "simplecc-wasm": "1.1.1", - "socks-proxy-agent": "9.0.0", + "socks-proxy-agent": "10.0.0", "source-map": "0.7.6", "telegram": "2.26.22", "title": "4.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f682f034f68a..f42b924cbcdc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -143,8 +143,8 @@ importers: specifier: 7.0.3 version: 7.0.3(tough-cookie@6.0.1)(undici@7.24.6) https-proxy-agent: - specifier: 8.0.0 - version: 8.0.0 + specifier: 9.0.0 + version: 9.0.0 iconv-lite: specifier: 0.7.2 version: 0.7.2 @@ -206,8 +206,8 @@ importers: specifier: 7.0.4 version: 7.0.4 pac-proxy-agent: - specifier: 8.0.0 - version: 8.0.0 + specifier: 9.0.0 + version: 9.0.0 proxy-chain: specifier: 2.7.1 version: 2.7.1 @@ -239,8 +239,8 @@ importers: specifier: 1.1.1 version: 1.1.1 socks-proxy-agent: - specifier: 9.0.0 - version: 9.0.0 + specifier: 10.0.0 + version: 10.0.0 source-map: specifier: 0.7.6 version: 0.7.6 @@ -2878,9 +2878,9 @@ packages: resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} engines: {node: '>= 14'} - agent-base@8.0.0: - resolution: {integrity: sha512-QT8i0hCz6C/KQ+KTAbSNwCHDGdmUJl2tp2ZpNlGSWCfhUNVbYG2WLE3MdZGBAgXPV4GAvjGMxo+C1hroyxmZEg==} - engines: {node: '>= 14'} + agent-base@9.0.0: + resolution: {integrity: sha512-TQf59BsZnytt8GdJKLPfUZ54g/iaUL2OWDSFCCvMOhsHduDQxO8xC4PNeyIkVcA5KwL2phPSv0douC0fgWzmnA==} + engines: {node: '>= 20'} ajv@6.14.0: resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==} @@ -3343,9 +3343,9 @@ packages: resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==} engines: {node: '>= 14'} - data-uri-to-buffer@7.0.0: - resolution: {integrity: sha512-CuRUx0TXGSbbWdEci3VK/XOZGP3n0P4pIKpsqpVtBqaIIuj3GKK8H45oAqA4Rg8FHipc+CzRdUzmD4YQXxv66Q==} - engines: {node: '>= 14'} + data-uri-to-buffer@8.0.0: + resolution: {integrity: sha512-6UHfyCux51b8PTGDgveqtz1tvphBku5DrMKKJbFAZAJOI2zsjDpDoYE1+QGj7FOMS4BdTFNJsJiR3zEB0xH0yQ==} + engines: {node: '>= 20'} data-urls@7.0.0: resolution: {integrity: sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA==} @@ -3419,9 +3419,9 @@ packages: resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==} engines: {node: '>= 14'} - degenerator@6.0.0: - resolution: {integrity: sha512-j5MdXdefrecJeSqTpUrgZd4fBsD2IxZx0JlJD+n1Q7+aTf7/HcyXSfHsicPW6ekPurX159v1ZYla6OJgSPh2Dw==} - engines: {node: '>= 14'} + degenerator@7.0.0: + resolution: {integrity: sha512-YIz9P5gRq4qThp4X5E7O0i/K3w4Jd9akZUt5wUPk6+6zZrSudknhi/IlDn4JJ281XcfSpcEz1lFD4C+tf0ymmQ==} + engines: {node: '>= 20'} peerDependencies: quickjs-wasi: ^0.0.1 @@ -3963,9 +3963,9 @@ packages: resolution: {integrity: sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==} engines: {node: '>= 14'} - get-uri@7.0.0: - resolution: {integrity: sha512-ZsC7KQxm1Hra8yO0RvMZ4lGJT7vnBtSNpEHKq39MPN7vjuvCiu1aQ8rkXUaIXG1y/TSDez97Gmv04ibnYqCp/A==} - engines: {node: '>= 14'} + get-uri@8.0.0: + resolution: {integrity: sha512-CqtZlMKvfJeY0Zxv8wazDwXmSKmnMnsmNy8j8+wudi8EyG/pMUB1NqHc+Tv1QaNtpYsK9nOYjb7r7Ufu32RPSw==} + engines: {node: '>= 20'} getpass@0.1.7: resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} @@ -4109,9 +4109,9 @@ packages: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} - http-proxy-agent@8.0.0: - resolution: {integrity: sha512-7pose0uGgrCJeH2Qh4JcNhWZp3u/oNrWjNYDK4ydOLxOpTw8V8ogHFAmkz0VWq96JBFj4umVJpvmQi287rSYLg==} - engines: {node: '>= 14'} + http-proxy-agent@9.0.0: + resolution: {integrity: sha512-FcF8VhXYLQcxWCnt/cCpT2apKsRDUGeVEeMqGu4HSTu29U8Yw0TLOjdYIlDsYk3IkUh+taX4IDWpPcCqKDhCjA==} + engines: {node: '>= 20'} http-signature@1.2.0: resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} @@ -4129,9 +4129,9 @@ packages: resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} - https-proxy-agent@8.0.0: - resolution: {integrity: sha512-YYeW+iCnAS3xhvj2dvVoWgsbca3RfQy/IlaNHHOtDmU0jMqPI9euIq3Y9BJETdxk16h9NHHCKqp/KB9nIMStCQ==} - engines: {node: '>= 14'} + https-proxy-agent@9.0.0: + resolution: {integrity: sha512-/MVmHp58WkOypgFhCLk4fzpPcFQvTJ/e6LBI7irpIO2HfxUbpmYoHF+KzipzJpxxzJu7aJNWQ0xojJ/dzV2G5g==} + engines: {node: '>= 20'} human-signals@5.0.0: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} @@ -4932,17 +4932,17 @@ packages: resolution: {integrity: sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==} engines: {node: '>= 14'} - pac-proxy-agent@8.0.0: - resolution: {integrity: sha512-HyCoVbyQ/nbVlQ/R6wBu0YXhbG2oAnEK5BQ3xMyj1OffQmU5NoOnpLzgPlKHaobUzz5NK0+AZHby4TdydAEBUA==} - engines: {node: '>= 14'} + pac-proxy-agent@9.0.0: + resolution: {integrity: sha512-/0mL/nYpzA1iT+QOzO/e7KAMaVPs2TqTcK9Hfl1nh+uwtFwSlODwM/Jie+ps22T4kkKWwOz1A+WvitB9yker2Q==} + engines: {node: '>= 20'} pac-resolver@7.0.1: resolution: {integrity: sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==} engines: {node: '>= 14'} - pac-resolver@8.0.0: - resolution: {integrity: sha512-SVNzOxVq2zuTew3WAt7U8UghwzJzuWYuJryd3y8FxyLTZdjVoCzY8kLP39PpEqQCDvlMWdQXwViu0sYT3eiU2w==} - engines: {node: '>= 14'} + pac-resolver@9.0.0: + resolution: {integrity: sha512-7vnhwZvvnXgqOFy7sXt6yJh2KASD5xqW9SYt4yGsbTNNUDoF5ryL84itpoERN7a2dF6AXJsIiXwcZchazLS/vw==} + engines: {node: '>= 20'} peerDependencies: quickjs-wasi: ^0.0.1 @@ -5404,14 +5404,14 @@ packages: resolution: {integrity: sha512-CjU5pyRfwOtaOITYv5C8DzpZ8XA/ieRsDpr93HI2r6e3YInC6moZpSQbmUtg8cTk58tq2x3jcG2gv+p1IZGmMA==} engines: {node: '>=8'} + socks-proxy-agent@10.0.0: + resolution: {integrity: sha512-pyp2YR3mNxAMu0mGLtzs4g7O3uT4/9sQOLAKcViAkaS9fJWkud7nmaf6ZREFqQEi24IPkBcjfHjXhPTUWjo3uA==} + engines: {node: '>= 20'} + socks-proxy-agent@8.0.5: resolution: {integrity: sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==} engines: {node: '>= 14'} - socks-proxy-agent@9.0.0: - resolution: {integrity: sha512-fFlbMlfsXhK02ZB8aZY7Hwxh/IHBV9b1Oq9bvBk6tkFWXvdAxUgA0wbw/NYR5liU3Y5+KI6U4FH3kYJt9QYv0w==} - engines: {node: '>= 14'} - socks@2.8.7: resolution: {integrity: sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==} engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} @@ -8372,7 +8372,7 @@ snapshots: agent-base@7.1.4: {} - agent-base@8.0.0: {} + agent-base@9.0.0: {} ajv@6.14.0: dependencies: @@ -8796,7 +8796,7 @@ snapshots: data-uri-to-buffer@6.0.2: {} - data-uri-to-buffer@7.0.0: {} + data-uri-to-buffer@8.0.0: {} data-urls@7.0.0(@noble/hashes@2.0.1): dependencies: @@ -8854,7 +8854,7 @@ snapshots: escodegen: 2.1.0 esprima: 4.0.1 - degenerator@6.0.0(quickjs-wasi@0.0.1): + degenerator@7.0.0(quickjs-wasi@0.0.1): dependencies: ast-types: 0.13.4 escodegen: 2.1.0 @@ -9514,10 +9514,10 @@ snapshots: transitivePeerDependencies: - supports-color - get-uri@7.0.0: + get-uri@8.0.0: dependencies: basic-ftp: 5.2.0 - data-uri-to-buffer: 7.0.0 + data-uri-to-buffer: 8.0.0 debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -9704,9 +9704,9 @@ snapshots: transitivePeerDependencies: - supports-color - http-proxy-agent@8.0.0: + http-proxy-agent@9.0.0: dependencies: - agent-base: 8.0.0 + agent-base: 9.0.0 debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -9735,9 +9735,9 @@ snapshots: transitivePeerDependencies: - supports-color - https-proxy-agent@8.0.0: + https-proxy-agent@9.0.0: dependencies: - agent-base: 8.0.0 + agent-base: 9.0.0 debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -10704,16 +10704,16 @@ snapshots: transitivePeerDependencies: - supports-color - pac-proxy-agent@8.0.0: + pac-proxy-agent@9.0.0: dependencies: - agent-base: 8.0.0 + agent-base: 9.0.0 debug: 4.4.3 - get-uri: 7.0.0 - http-proxy-agent: 8.0.0 - https-proxy-agent: 8.0.0 - pac-resolver: 8.0.0(quickjs-wasi@0.0.1) + get-uri: 8.0.0 + http-proxy-agent: 9.0.0 + https-proxy-agent: 9.0.0 + pac-resolver: 9.0.0(quickjs-wasi@0.0.1) quickjs-wasi: 0.0.1 - socks-proxy-agent: 9.0.0 + socks-proxy-agent: 10.0.0 transitivePeerDependencies: - supports-color @@ -10722,9 +10722,9 @@ snapshots: degenerator: 5.0.1 netmask: 2.0.2 - pac-resolver@8.0.0(quickjs-wasi@0.0.1): + pac-resolver@9.0.0(quickjs-wasi@0.0.1): dependencies: - degenerator: 6.0.0(quickjs-wasi@0.0.1) + degenerator: 7.0.0(quickjs-wasi@0.0.1) netmask: 2.0.2 quickjs-wasi: 0.0.1 @@ -11332,17 +11332,17 @@ snapshots: map-obj: 4.3.0 to-snake-case: 1.0.0 - socks-proxy-agent@8.0.5: + socks-proxy-agent@10.0.0: dependencies: - agent-base: 7.1.4 + agent-base: 9.0.0 debug: 4.4.3 socks: 2.8.7 transitivePeerDependencies: - supports-color - socks-proxy-agent@9.0.0: + socks-proxy-agent@8.0.5: dependencies: - agent-base: 8.0.0 + agent-base: 7.1.4 debug: 4.4.3 socks: 2.8.7 transitivePeerDependencies: From 1f976687608688053b208fb91a4fcf0b2168256d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Apr 2026 20:48:09 +0800 Subject: [PATCH 032/439] chore(deps-dev): bump eslint-plugin-unicorn from 63.0.0 to 64.0.0 (#21555) Bumps [eslint-plugin-unicorn](https://github.com/sindresorhus/eslint-plugin-unicorn) from 63.0.0 to 64.0.0. - [Release notes](https://github.com/sindresorhus/eslint-plugin-unicorn/releases) - [Commits](https://github.com/sindresorhus/eslint-plugin-unicorn/compare/v63.0.0...v64.0.0) --- updated-dependencies: - dependency-name: eslint-plugin-unicorn dependency-version: 64.0.0 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 18 ++++++------------ 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/package.json b/package.json index d674c7135d51..a61c08f32904 100644 --- a/package.json +++ b/package.json @@ -181,7 +181,7 @@ "eslint-plugin-import-x": "4.16.2", "eslint-plugin-n": "17.24.0", "eslint-plugin-simple-import-sort": "12.1.1", - "eslint-plugin-unicorn": "63.0.0", + "eslint-plugin-unicorn": "64.0.0", "eslint-plugin-yml": "3.3.1", "fs-extra": "11.3.4", "globals": "17.4.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f42b924cbcdc..41c09df96c95 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -402,8 +402,8 @@ importers: specifier: 12.1.1 version: 12.1.1(eslint@10.1.0(jiti@2.6.1)) eslint-plugin-unicorn: - specifier: 63.0.0 - version: 63.0.0(eslint@10.1.0(jiti@2.6.1)) + specifier: 64.0.0 + version: 64.0.0(eslint@10.1.0(jiti@2.6.1)) eslint-plugin-yml: specifier: 3.3.1 version: 3.3.1(eslint@10.1.0(jiti@2.6.1)) @@ -3710,8 +3710,8 @@ packages: peerDependencies: eslint: '>=5.0.0' - eslint-plugin-unicorn@63.0.0: - resolution: {integrity: sha512-Iqecl9118uQEXYh7adylgEmGfkn5es3/mlQTLLkd4pXkIk9CTGrAbeUux+YljSa2ohXCBmQQ0+Ej1kZaFgcfkA==} + eslint-plugin-unicorn@64.0.0: + resolution: {integrity: sha512-rNZwalHh8i0UfPlhNwg5BTUO1CMdKNmjqe+TgzOTZnpKoi8VBgsW7u9qCHIdpxEzZ1uwrJrPF0uRb7l//K38gA==} engines: {node: ^20.10.0 || >=21.0.0} peerDependencies: eslint: '>=9.38.0' @@ -3994,10 +3994,6 @@ packages: resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} engines: {node: '>=18'} - globals@16.5.0: - resolution: {integrity: sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==} - engines: {node: '>=18'} - globals@17.4.0: resolution: {integrity: sha512-hjrNztw/VajQwOLsMNT1cbJiH2muO3OROCHnbehc8eY5JyD2gqz4AcMHPqgaOR59DjgUjYAYLeH699g/eWi2jw==} engines: {node: '>=18'} @@ -9195,7 +9191,7 @@ snapshots: dependencies: eslint: 10.1.0(jiti@2.6.1) - eslint-plugin-unicorn@63.0.0(eslint@10.1.0(jiti@2.6.1)): + eslint-plugin-unicorn@64.0.0(eslint@10.1.0(jiti@2.6.1)): dependencies: '@babel/helper-validator-identifier': 7.28.5 '@eslint-community/eslint-utils': 4.9.1(eslint@10.1.0(jiti@2.6.1)) @@ -9205,7 +9201,7 @@ snapshots: core-js-compat: 3.49.0 eslint: 10.1.0(jiti@2.6.1) find-up-simple: 1.0.1 - globals: 16.5.0 + globals: 17.4.0 indent-string: 5.0.0 is-builtin-module: 5.0.0 jsesc: 3.1.0 @@ -9557,8 +9553,6 @@ snapshots: globals@15.15.0: {} - globals@16.5.0: {} - globals@17.4.0: {} globrex@0.1.2: {} From 3fb2954b18dd471be199bdcad67ce0c52371467e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Apr 2026 22:10:13 +0800 Subject: [PATCH 033/439] chore(deps-dev): bump the oxc group across 1 directory with 4 updates (#21583) * chore(deps-dev): bump the oxc group with 4 updates Bumps the oxc group with 4 updates: [@oxlint/plugins](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint-plugins), [oxfmt](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt), [oxlint](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint) and [oxlint-tsgolint](https://github.com/oxc-project/tsgolint). Updates `@oxlint/plugins` from 1.57.0 to 1.58.0 - [Release notes](https://github.com/oxc-project/oxc/releases) - [Changelog](https://github.com/oxc-project/oxc/blob/main/CHANGELOG.md) - [Commits](https://github.com/oxc-project/oxc/commits/apps_v1.58.0/npm/oxlint-plugins) Updates `oxfmt` from 0.42.0 to 0.43.0 - [Release notes](https://github.com/oxc-project/oxc/releases) - [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxfmt/CHANGELOG.md) - [Commits](https://github.com/oxc-project/oxc/commits/oxfmt_v0.43.0/npm/oxfmt) Updates `oxlint` from 1.57.0 to 1.58.0 - [Release notes](https://github.com/oxc-project/oxc/releases) - [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxlint/CHANGELOG.md) - [Commits](https://github.com/oxc-project/oxc/commits/oxlint_v1.58.0/npm/oxlint) Updates `oxlint-tsgolint` from 0.18.1 to 0.19.0 - [Release notes](https://github.com/oxc-project/tsgolint/releases) - [Commits](https://github.com/oxc-project/tsgolint/compare/v0.18.1...v0.19.0) --- updated-dependencies: - dependency-name: "@oxlint/plugins" dependency-version: 1.58.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: oxc - dependency-name: oxfmt dependency-version: 0.43.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: oxc - dependency-name: oxlint dependency-version: 1.58.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: oxc - dependency-name: oxlint-tsgolint dependency-version: 0.19.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: oxc ... Signed-off-by: dependabot[bot] * chore: use jsPlugins for unicorn * style: unicorn auto-format template-indent * style: add unicorn v64 rules * Revert "style: unicorn auto-format template-indent" This reverts commit 5f4dbf4346465c9a9dcaf1b19ce5211e1d61bd78. --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Tony --- .oxlintrc.json | 43 ++-- eslint.config.mjs | 85 +------ lib/routes/qbittorrent/news.ts | 1 + lib/shims/node-module.ts | 3 +- package.json | 8 +- pnpm-lock.yaml | 400 ++++++++++++++++----------------- 6 files changed, 232 insertions(+), 308 deletions(-) diff --git a/.oxlintrc.json b/.oxlintrc.json index 62b6dd4b4855..10927bb882bb 100644 --- a/.oxlintrc.json +++ b/.oxlintrc.json @@ -15,6 +15,7 @@ "@stylistic/eslint-plugin", { "name": "import-x-js", "specifier": "eslint-plugin-import-x" }, { "name": "n", "specifier": "eslint-plugin-n" }, + { "name": "unicorn-js", "specifier": "eslint-plugin-unicorn" }, "eslint-plugin-simple-import-sort", "./eslint-plugins/no-then.js", "./eslint-plugins/nsfw-flag.js" @@ -147,21 +148,22 @@ "n/process-exit-as-throw": "error", // #endregion - // #region --- unicorn --- + // #region --- unicorn recommended --- "unicorn/catch-error-name": "error", "unicorn/consistent-assert": "error", "unicorn/consistent-date-clone": "error", "unicorn/consistent-empty-array-spread": "error", "unicorn/consistent-existence-index-check": "error", // "unicorn/consistent-function-scoping": "error", + "unicorn-js/consistent-template-literal-escape": "error", // use jsPlugins "unicorn/empty-brace-spaces": "error", "unicorn/error-message": "error", "unicorn/escape-case": "error", // "unicorn/expiring-todo-comments": "error", // not yet implemented // "unicorn/explicit-length-check": "error", // "unicorn/filename-case": "error", - // "unicorn/import-style": "error", // not yet implemented - // "unicorn/isolated-functions": "error", // not yet implemented + "unicorn-js/import-style": "error", // use jsPlugins + "unicorn-js/isolated-functions": "error", // use jsPlugins "unicorn/new-for-builtins": "error", "unicorn/no-abusive-eslint-disable": "error", "unicorn/no-accessor-recursion": "error", @@ -204,13 +206,14 @@ "unicorn/no-unnecessary-array-flat-depth": "error", "unicorn/no-unnecessary-array-splice-count": "error", "unicorn/no-unnecessary-await": "error", - // "unicorn/no-unnecessary-polyfills": "error", // not yet implemented + "unicorn-js/no-unnecessary-polyfills": "error", // use jsPlugins "unicorn/no-unnecessary-slice-end": "error", "unicorn/no-unreadable-array-destructuring": "error", "unicorn/no-unreadable-iife": "error", "unicorn/no-useless-collection-argument": "error", "unicorn/no-useless-error-capture-stack-trace": "error", "unicorn/no-useless-fallback-in-spread": "error", + // "unicorn/no-useless-iterator-to-array": "error", "unicorn/no-useless-length-check": "error", "unicorn/no-useless-promise-resolve-reject": "error", "unicorn/no-useless-spread": "error", @@ -238,7 +241,7 @@ "unicorn/prefer-dom-node-remove": "error", "unicorn/prefer-dom-node-text-content": "error", "unicorn/prefer-event-target": "error", - // "unicorn/prefer-export-from": "error", // not yet implemented + "unicorn-js/prefer-export-from": "error", // use jsPlugins // "unicorn/prefer-global-this": "error", "unicorn/prefer-includes": "error", "unicorn/prefer-keyboard-event-key": "error", @@ -261,7 +264,8 @@ "unicorn/prefer-response-static-json": "error", "unicorn/prefer-set-has": "error", "unicorn/prefer-set-size": "error", - // "unicorn/prefer-single-call": "error", // not yet implemented + "unicorn-js/prefer-simple-condition-first": "error", // use jsPlugins + "unicorn-js/prefer-single-call": "error", // use jsPlugins // "unicorn/prefer-spread": "error", "unicorn/prefer-string-raw": "error", "unicorn/prefer-string-replace-all": "error", @@ -269,18 +273,19 @@ "unicorn/prefer-string-starts-ends-with": "error", "unicorn/prefer-string-trim-start-end": "error", "unicorn/prefer-structured-clone": "error", - // "unicorn/prefer-switch": "error", // not yet implemented + // "unicorn/prefer-switch": "error", // use jsPlugins "unicorn/prefer-ternary": "error", // "unicorn/prefer-top-level-await": "error", "unicorn/prefer-type-error": "error", - // "unicorn/prevent-abbreviations": "error", // not yet implemented + // "unicorn/prevent-abbreviations": "error", "unicorn/relative-url-style": "error", "unicorn/require-array-join-separator": "error", "unicorn/require-module-attributes": "error", "unicorn/require-module-specifiers": "error", "unicorn/require-number-to-fixed-digits-argument": "error", // "unicorn/switch-case-braces": "error", - // "unicorn/template-indent": "error", // not yet implemented + "unicorn-js/switch-case-break-position": "error", // use jsPlugins + "unicorn-js/template-indent": "error", // use jsPlugins // "unicorn/text-encoding-identifier-case": "error", "unicorn/throw-new-error": "error", // #endregion @@ -423,7 +428,7 @@ "unicorn/prefer-code-point": "warn", "unicorn/prefer-global-this": "off", - "unicorn/prefer-import-meta-properties": "warn", + "unicorn-js/prefer-import-meta-properties": "warn", "unicorn/prefer-module": "off", "unicorn/prefer-number-properties": ["error", { "checkInfinity": false, "checkNaN": false }], @@ -431,15 +436,15 @@ "unicorn/prefer-spread": "warn", "unicorn/prefer-string-slice": "warn", - // "unicorn/prefer-switch": [ // not yet implemented - // "warn", - // { - // "emptyDefaultCase": "do-nothing-comment" - // } - // ], + "unicorn-js/prefer-switch": [ + "warn", + { + "emptyDefaultCase": "do-nothing-comment" + } + ], "unicorn/prefer-top-level-await": "off", - "unicorn/prevent-abbreviations": "off", + // "unicorn/prevent-abbreviations": "off", "unicorn/switch-case-braces": ["error", "avoid"], "unicorn/text-encoding-identifier-case": "off", // #endregion @@ -469,12 +474,12 @@ // #region --- import sorting --- // oxfmt also handles import sorting "sort-imports": "off", - "import-x/order": "off", + // "import-x/order": "off", "simple-import-sort/imports": "error", // oxc doesn't sort named imports yet https://github.com/oxc-project/oxc/issues/13610 "simple-import-sort/exports": "error", "import-x/first": "error", - "import-x-js/newline-after-import": "error", // oxc native not yet implemented + "import-x-js/newline-after-import": "error", // use jsPlugins "no-duplicate-imports": "off", "import-x/no-duplicates": "error", diff --git a/eslint.config.mjs b/eslint.config.mjs index 76ce19cbefdd..76f7be82c274 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -5,7 +5,6 @@ import tsParser from '@typescript-eslint/parser'; // import { importX } from 'eslint-plugin-import-x'; import n from 'eslint-plugin-n'; // import simpleImportSort from 'eslint-plugin-simple-import-sort'; -import unicorn from 'eslint-plugin-unicorn'; import eslintPluginYml from 'eslint-plugin-yml'; import { defineConfig } from 'eslint/config'; import globals from 'globals'; @@ -35,9 +34,8 @@ export default defineConfig([ // github, js, n, - unicorn, }, - // extends: [js.configs.recommended, typescriptEslint.configs['flat/recommended'], typescriptEslint.configs['flat/stylistic'], n.configs['flat/recommended-script'], unicorn.configs.recommended], + // extends: [js.configs.recommended, typescriptEslint.configs['flat/recommended'], typescriptEslint.configs['flat/stylistic'], n.configs['flat/recommended-script']], languageOptions: { globals: { @@ -166,87 +164,6 @@ export default defineConfig([ */ // #endregion - // #region unicorn - /* - 'unicorn/consistent-function-scoping': 'warn', - 'unicorn/explicit-length-check': 'off', - - 'unicorn/filename-case': [ - 'error', - { - case: 'kebabCase', - ignore: [String.raw`.*\.(yaml|yml)$`, String.raw`RequestInProgress\.js$`], - }, - ], - - 'unicorn/no-array-callback-reference': 'warn', - 'unicorn/no-array-reduce': 'warn', - 'unicorn/no-array-sort': 'warn', - 'unicorn/no-await-expression-member': 'off', - 'unicorn/no-empty-file': 'warn', - 'unicorn/no-for-loop': 'off', - 'unicorn/no-hex-escape': 'warn', - 'unicorn/no-nested-ternary': 'off', - 'unicorn/no-null': 'off', - 'unicorn/no-object-as-default-parameter': 'warn', - 'unicorn/no-process-exit': 'off', - 'unicorn/no-useless-switch-case': 'off', - - 'unicorn/no-useless-undefined': ['error', { checkArguments: false }], - - 'unicorn/number-literal-case': 'off', - - 'unicorn/numeric-separators-style': [ - 'warn', - { - onlyIfContainsSeparator: false, - - number: { - minimumDigits: 7, - groupLength: 3, - }, - - binary: { - minimumDigits: 9, - groupLength: 4, - }, - - octal: { - minimumDigits: 9, - groupLength: 4, - }, - - hexadecimal: { - minimumDigits: 5, - groupLength: 2, - }, - }, - ], - - 'unicorn/prefer-code-point': 'warn', - 'unicorn/prefer-global-this': 'off', - 'unicorn/prefer-import-meta-properties': 'warn', - 'unicorn/prefer-module': 'off', - - 'unicorn/prefer-number-properties': ['error', { checkInfinity: false, checkNaN: false }], - - 'unicorn/prefer-spread': 'warn', - 'unicorn/prefer-string-slice': 'warn', - - 'unicorn/prefer-switch': [ - 'warn', - { - emptyDefaultCase: 'do-nothing-comment', - }, - ], - - 'unicorn/prefer-top-level-await': 'off', - 'unicorn/prevent-abbreviations': 'off', - 'unicorn/switch-case-braces': ['error', 'avoid'], - 'unicorn/text-encoding-identifier-case': 'off', - */ - // #endregion - // #region stylistic /* '@stylistic/arrow-parens': 'error', diff --git a/lib/routes/qbittorrent/news.ts b/lib/routes/qbittorrent/news.ts index 85f0e909c384..7acd5338a237 100644 --- a/lib/routes/qbittorrent/news.ts +++ b/lib/routes/qbittorrent/news.ts @@ -52,6 +52,7 @@ async function handler(ctx) { const item = $('.stretcher') .find('h3') .toArray() + // oxlint-disable-next-line array-callback-return .map((item) => { item = $(item); const pubDate = item diff --git a/lib/shims/node-module.ts b/lib/shims/node-module.ts index fdaedae8a121..f41cd800f181 100644 --- a/lib/shims/node-module.ts +++ b/lib/shims/node-module.ts @@ -1,3 +1,5 @@ +// oxlint-disable n/no-deprecated-api +// oxlint-disable unicorn-js/import-style -- need full util module for CJS compatibility // Shim for node:module in Cloudflare Workers // Provides a createRequire that returns pre-imported modules @@ -34,7 +36,6 @@ import * as timers_promises from 'node:timers/promises'; import * as tls from 'node:tls'; import * as tty from 'node:tty'; import * as url from 'node:url'; -// eslint-disable-next-line unicorn/import-style -- need full util module for CJS compatibility import * as util from 'node:util'; import * as util_types from 'node:util/types'; import * as worker_threads from 'node:worker_threads'; diff --git a/package.json b/package.json index a61c08f32904..98626f7aa1e4 100644 --- a/package.json +++ b/package.json @@ -152,7 +152,7 @@ "@cloudflare/workers-types": "4.20260401.1", "@eslint/eslintrc": "3.3.5", "@eslint/js": "10.0.1", - "@oxlint/plugins": "1.57.0", + "@oxlint/plugins": "1.58.0", "@stylistic/eslint-plugin": "5.10.0", "@types/aes-js": "3.1.4", "@types/babel__preset-env": "7.10.0", @@ -193,9 +193,9 @@ "mockdate": "3.0.5", "msw": "2.12.14", "node-network-devtools": "1.0.29", - "oxfmt": "0.42.0", - "oxlint": "1.57.0", - "oxlint-tsgolint": "0.18.1", + "oxfmt": "0.43.0", + "oxlint": "1.58.0", + "oxlint-tsgolint": "0.19.0", "remark-parse": "11.0.0", "tsdown": "0.21.7", "typescript": "5.9.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 41c09df96c95..206e06cb1fee 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -315,8 +315,8 @@ importers: specifier: 10.0.1 version: 10.0.1(eslint@10.1.0(jiti@2.6.1)) '@oxlint/plugins': - specifier: 1.57.0 - version: 1.57.0 + specifier: 1.58.0 + version: 1.58.0 '@stylistic/eslint-plugin': specifier: 5.10.0 version: 5.10.0(eslint@10.1.0(jiti@2.6.1)) @@ -438,14 +438,14 @@ importers: specifier: 1.0.29 version: 1.0.29(undici@7.24.6)(utf-8-validate@5.0.10) oxfmt: - specifier: 0.42.0 - version: 0.42.0 + specifier: 0.43.0 + version: 0.43.0 oxlint: - specifier: 1.57.0 - version: 1.57.0(oxlint-tsgolint@0.18.1) + specifier: 1.58.0 + version: 1.58.0(oxlint-tsgolint@0.19.0) oxlint-tsgolint: - specifier: 0.18.1 - version: 0.18.1 + specifier: 0.19.0 + version: 0.19.0 remark-parse: specifier: 11.0.0 version: 11.0.0 @@ -1751,282 +1751,282 @@ packages: '@oxc-project/types@0.122.0': resolution: {integrity: sha512-oLAl5kBpV4w69UtFZ9xqcmTi+GENWOcPF7FCrczTiBbmC0ibXxCwyvZGbO39rCVEuLGAZM84DH0pUIyyv/YJzA==} - '@oxfmt/binding-android-arm-eabi@0.42.0': - resolution: {integrity: sha512-dsqPTYsozeokRjlrt/b4E7Pj0z3eS3Eg74TWQuuKbjY4VttBmA88rB7d50Xrd+TZ986qdXCNeZRPEzZHAe+jow==} + '@oxfmt/binding-android-arm-eabi@0.43.0': + resolution: {integrity: sha512-CgU2s+/9hHZgo0IxVxrbMPrMj+tJ6VM3mD7Mr/4oiz4FNTISLoCvRmB5nk4wAAle045RtRjd86m673jwPyb1OQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@oxfmt/binding-android-arm64@0.42.0': - resolution: {integrity: sha512-t+aAjHxcr5eOBphFHdg1ouQU9qmZZoRxnX7UOJSaTwSoKsb6TYezNKO0YbWytGXCECObRqNcUxPoPr0KaraAIg==} + '@oxfmt/binding-android-arm64@0.43.0': + resolution: {integrity: sha512-T9OfRwjA/EdYxAqbvR7TtqLv5nIrwPXuCtTwOHtS7aR9uXyn74ZYgzgTo6/ZwvTq9DY4W+DsV09hB2EXgn9EbA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxfmt/binding-darwin-arm64@0.42.0': - resolution: {integrity: sha512-ulpSEYMKg61C5bRMZinFHrKJYRoKGVbvMEXA5zM1puX3O9T6Q4XXDbft20yrDijpYWeuG59z3Nabt+npeTsM1A==} + '@oxfmt/binding-darwin-arm64@0.43.0': + resolution: {integrity: sha512-o3i49ZUSJWANzXMAAVY1wnqb65hn4JVzwlRQ5qfcwhRzIA8lGVaud31Q3by5ALHPrksp5QEaKCQF9aAS3TXpZA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxfmt/binding-darwin-x64@0.42.0': - resolution: {integrity: sha512-ttxLKhQYPdFiM8I/Ri37cvqChE4Xa562nNOsZFcv1CKTVLeEozXjKuYClNvxkXmNlcF55nzM80P+CQkdFBu+uQ==} + '@oxfmt/binding-darwin-x64@0.43.0': + resolution: {integrity: sha512-vWECzzCFkb0kK6jaHjbtC5sC3adiNWtqawFCxhpvsWlzVeKmv5bNvkB4nux+o4JKWTpHCM57NDK/MeXt44txmA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxfmt/binding-freebsd-x64@0.42.0': - resolution: {integrity: sha512-Og7QS3yI3tdIKYZ58SXik0rADxIk2jmd+/YvuHRyKULWpG4V2fR5V4hvKm624Mc0cQET35waPXiCQWvjQEjwYQ==} + '@oxfmt/binding-freebsd-x64@0.43.0': + resolution: {integrity: sha512-rgz8JpkKiI/umOf7fl9gwKyQasC8bs5SYHy6g7e4SunfLBY3+8ATcD5caIg8KLGEtKFm5ujKaH8EfjcmnhzTLg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxfmt/binding-linux-arm-gnueabihf@0.42.0': - resolution: {integrity: sha512-jwLOw/3CW4H6Vxcry4/buQHk7zm9Ne2YsidzTL1kpiMe4qqrRCwev3dkyWe2YkFmP+iZCQ7zku4KwjcLRoh8ew==} + '@oxfmt/binding-linux-arm-gnueabihf@0.43.0': + resolution: {integrity: sha512-nWYnF3vIFzT4OM1qL/HSf1Yuj96aBuKWSaObXHSWliwAk2rcj7AWd6Lf7jowEBQMo4wCZVnueIGw/7C4u0KTBQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxfmt/binding-linux-arm-musleabihf@0.42.0': - resolution: {integrity: sha512-XwXu2vkMtiq2h7tfvN+WA/9/5/1IoGAVCFPiiQUvcAuG3efR97KNcRGM8BetmbYouFotQ2bDal3yyjUx6IPsTg==} + '@oxfmt/binding-linux-arm-musleabihf@0.43.0': + resolution: {integrity: sha512-sFg+NWJbLfupYTF4WELHAPSnLPOn1jiDZ33Z1jfDnTaA+cC3iB35x0FMMZTFdFOz3icRIArncwCcemJFGXu6TQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxfmt/binding-linux-arm64-gnu@0.42.0': - resolution: {integrity: sha512-ea7s/XUJoT7ENAtUQDudFe3nkSM3e3Qpz4nJFRdzO2wbgXEcjnchKLEsV3+t4ev3r8nWxIYr9NRjPWtnyIFJVA==} + '@oxfmt/binding-linux-arm64-gnu@0.43.0': + resolution: {integrity: sha512-MelWqv68tX6wZEILDrTc9yewiGXe7im62+5x0bNXlCYFOZdA+VnYiJfAihbROsZ5fm90p9C3haFrqjj43XnlAA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-arm64-musl@0.42.0': - resolution: {integrity: sha512-+JA0YMlSdDqmacygGi2REp57c3fN+tzARD8nwsukx9pkCHK+6DkbAA9ojS4lNKsiBjIW8WWa0pBrBWhdZEqfuw==} + '@oxfmt/binding-linux-arm64-musl@0.43.0': + resolution: {integrity: sha512-ROaWfYh+6BSJ1Arwy5ujijTlwnZetxDxzBpDc1oBR4d7rfrPBqzeyjd5WOudowzQUgyavl2wEpzn1hw3jWcqLA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@oxfmt/binding-linux-ppc64-gnu@0.42.0': - resolution: {integrity: sha512-VfnET0j4Y5mdfCzh5gBt0NK28lgn5DKx+8WgSMLYYeSooHhohdbzwAStLki9pNuGy51y4I7IoW8bqwAaCMiJQg==} + '@oxfmt/binding-linux-ppc64-gnu@0.43.0': + resolution: {integrity: sha512-PJRs/uNxmFipJJ8+SyKHh7Y7VZIKQicqrrBzvfyM5CtKi8D7yZKTwUOZV3ffxmiC2e7l1SDJpkBEOyue5NAFsg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-riscv64-gnu@0.42.0': - resolution: {integrity: sha512-gVlCbmBkB0fxBWbhBj9rcxezPydsQHf4MFKeHoTSPicOQ+8oGeTQgQ8EeesSybWeiFPVRx3bgdt4IJnH6nOjAA==} + '@oxfmt/binding-linux-riscv64-gnu@0.43.0': + resolution: {integrity: sha512-j6biGAgzIhj+EtHXlbNumvwG7XqOIdiU4KgIWRXAEj/iUbHKukKW8eXa4MIwpQwW1YkxovduKtzEAPnjlnAhVQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-riscv64-musl@0.42.0': - resolution: {integrity: sha512-zN5OfstL0avgt/IgvRu0zjQzVh/EPkcLzs33E9LMAzpqlLWiPWeMDZyMGFlSRGOdDjuNmlZBCgj0pFnK5u32TQ==} + '@oxfmt/binding-linux-riscv64-musl@0.43.0': + resolution: {integrity: sha512-RYWxAcslKxvy7yri24Xm9cmD0RiANaiEPs007EFG6l9h1ChM69Q5SOzACaCoz4Z9dEplnhhneeBaTWMEdpgIbA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [musl] - '@oxfmt/binding-linux-s390x-gnu@0.42.0': - resolution: {integrity: sha512-9X6+H2L0qMc2sCAgO9HS03bkGLMKvOFjmEdchaFlany3vNZOjnVui//D8k/xZAtQv2vaCs1reD5KAgPoIU4msA==} + '@oxfmt/binding-linux-s390x-gnu@0.43.0': + resolution: {integrity: sha512-DT6Q8zfQQy3jxpezAsBACEHNUUixKSYTwdXeXojNHe4DQOoxjPdjr3Szu6BRNjxLykZM/xMNmp9ElOIyDppwtw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-x64-gnu@0.42.0': - resolution: {integrity: sha512-BajxJ6KQvMMdpXGPWhBGyjb2Jvx4uec0w+wi6TJZ6Tv7+MzPwe0pO8g5h1U0jyFgoaF7mDl6yKPW3ykWcbUJRw==} + '@oxfmt/binding-linux-x64-gnu@0.43.0': + resolution: {integrity: sha512-R8Yk7iYcuZORXmCfFZClqbDxRZgZ9/HEidUuBNdoX8Ptx07cMePnMVJ/woB84lFIDjh2ROHVaOP40Ds3rBXFqg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-x64-musl@0.42.0': - resolution: {integrity: sha512-0wV284I6vc5f0AqAhgAbHU2935B4bVpncPoe5n/WzVZY/KnHgqxC8iSFGeSyLWEgstFboIcWkOPck7tqbdHkzA==} + '@oxfmt/binding-linux-x64-musl@0.43.0': + resolution: {integrity: sha512-F2YYqyvnQNvi320RWZNAvsaWEHwmW3k4OwNJ1hZxRKXupY63expbBaNp6jAgvYs7y/g546vuQnGHQuCBhslhLQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@oxfmt/binding-openharmony-arm64@0.42.0': - resolution: {integrity: sha512-p4BG6HpGnhfgHk1rzZfyR6zcWkE7iLrWxyehHfXUy4Qa5j3e0roglFOdP/Nj5cJJ58MA3isQ5dlfkW2nNEpolw==} + '@oxfmt/binding-openharmony-arm64@0.43.0': + resolution: {integrity: sha512-OE6TdietLXV3F6c7pNIhx/9YC1/2YFwjU9DPc/fbjxIX19hNIaP1rS0cFjCGJlGX+cVJwIKWe8Mos+LdQ1yAJw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@oxfmt/binding-win32-arm64-msvc@0.42.0': - resolution: {integrity: sha512-mn//WV60A+IetORDxYieYGAoQso4KnVRRjORDewMcod4irlRe0OSC7YPhhwaexYNPQz/GCFk+v9iUcZ2W22yxQ==} + '@oxfmt/binding-win32-arm64-msvc@0.43.0': + resolution: {integrity: sha512-0nWK6a7pGkbdoypfVicmV9k/N1FwjPZENoqhlTU+5HhZnAhpIO3za30nEE33u6l6tuy9OVfpdXUqxUgZ+4lbZw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxfmt/binding-win32-ia32-msvc@0.42.0': - resolution: {integrity: sha512-3gWltUrvuz4LPJXWivoAxZ28Of2O4N7OGuM5/X3ubPXCEV8hmgECLZzjz7UYvSDUS3grfdccQwmjynm+51EFpw==} + '@oxfmt/binding-win32-ia32-msvc@0.43.0': + resolution: {integrity: sha512-9aokTR4Ft+tRdvgN/pKzSkVy2ksc4/dCpDm9L/xFrbIw0yhLtASLbvoG/5WOTUh/BRPPnfGTsWznEqv0dlOmhA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@oxfmt/binding-win32-x64-msvc@0.42.0': - resolution: {integrity: sha512-Wg4TMAfQRL9J9AZevJ/ZNy3uyyDztDYQtGr4P8UyyzIhLhFrdSmz1J/9JT+rv0fiCDLaFOBQnj3f3K3+a5PzDQ==} + '@oxfmt/binding-win32-x64-msvc@0.43.0': + resolution: {integrity: sha512-4bPgdQux2ZLWn3bf2TTXXMHcJB4lenmuxrLqygPmvCJ104Yqzj1UctxSRzR31TiJ4MLaG22RK8dUsVpJtrCz5g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] - '@oxlint-tsgolint/darwin-arm64@0.18.1': - resolution: {integrity: sha512-CxSd15ZwHn70UJFTXVvy76bZ9zwI097cVyjvUFmYRJwvkQF3VnrTf2oe1gomUacErksvtqLgn9OKvZhLMYwvog==} + '@oxlint-tsgolint/darwin-arm64@0.19.0': + resolution: {integrity: sha512-FVOIp5Njte8Z6PpINz7sL5blqSro0pAL8VAHYQ+K5Xm4cOrPQ6DGIhH14oXnbRjzn8Kl69qjz8TPteyn8EqwsQ==} cpu: [arm64] os: [darwin] - '@oxlint-tsgolint/darwin-x64@0.18.1': - resolution: {integrity: sha512-LE7VW/T/VcKhl3Z1ev5BusrxdlQ3DWweSeOB+qpBeur2h8+vCWq+M7tCO29C7lveBDfx1+rNwj4aiUVlA+Qs+g==} + '@oxlint-tsgolint/darwin-x64@0.19.0': + resolution: {integrity: sha512-GakDTDACePvqOFq3N4oQCl8SyMMa7VBnqV0gDcXPuK50jdWCUqlxM9tgRJarjyIVvmDEJRGYOen+4uBtVwg4Aw==} cpu: [x64] os: [darwin] - '@oxlint-tsgolint/linux-arm64@0.18.1': - resolution: {integrity: sha512-2AG8YIXVJJbnM0rcsJmzzWOjZXBu5REwowgUpbHZueF7OYM3wR7Xu8pXEpAojEHAtYYZ3X4rpPoetomkJx7kCw==} + '@oxlint-tsgolint/linux-arm64@0.19.0': + resolution: {integrity: sha512-Ya0R7somo+KDhhkPtENJ9Q28Fost+aqA3MPe86pEqgmukHFc/KO65PgShOSbIFjZNptELEQvsWL8gDxYZWhH3w==} cpu: [arm64] os: [linux] - '@oxlint-tsgolint/linux-x64@0.18.1': - resolution: {integrity: sha512-f8vDYPEdiwpA2JaDEkadTXfuqIgweQ8zcL4SX75EN2kkW2oAynjN7cd8m86uXDgB0JrcyOywbRtwnXdiIzXn2A==} + '@oxlint-tsgolint/linux-x64@0.19.0': + resolution: {integrity: sha512-yFH378jWc1k/oJmpk+TKpWbKvFieJJvsOHxVMSNFc+ukqs44ZSHVt4HFfAhXAt/bzVK2f7EIDTGp8Hm1OjoJ6Q==} cpu: [x64] os: [linux] - '@oxlint-tsgolint/win32-arm64@0.18.1': - resolution: {integrity: sha512-fBdML05KMDAL9ebWeoHIzkyI86Eq6r9YH5UDRuXJ9vAIo1EnKo0ti7hLUxNdc2dy2FF/T4k98p5wkkXvLyXqfA==} + '@oxlint-tsgolint/win32-arm64@0.19.0': + resolution: {integrity: sha512-R6NyAtha7OWxh7NGBeFxqDTGAVl1Xj4xLa8Qj39PKbIDqBeVW8BIb+1nEnRp+Mo/VpRoeoFAcqlBsuMcUMd26Q==} cpu: [arm64] os: [win32] - '@oxlint-tsgolint/win32-x64@0.18.1': - resolution: {integrity: sha512-cYZMhNrsq9ZZ3OUWHyawqiS+c8HfieYG0zuZP2LbEuWWPfdZM/22iAlo608J+27G1s9RXQhvgX6VekwWbXbD7A==} + '@oxlint-tsgolint/win32-x64@0.19.0': + resolution: {integrity: sha512-2ePvxcbS5tPOmrQvxR8Kc+IqzdTtlrGeMDv+jjTYfkTFPmh2rF9yxVchi/4WM6js3gt2UauQeMV/tfnZNemENQ==} cpu: [x64] os: [win32] - '@oxlint/binding-android-arm-eabi@1.57.0': - resolution: {integrity: sha512-C7EiyfAJG4B70496eV543nKiq5cH0o/xIh/ufbjQz3SIvHhlDDsyn+mRFh+aW8KskTyUpyH2LGWL8p2oN6bl1A==} + '@oxlint/binding-android-arm-eabi@1.58.0': + resolution: {integrity: sha512-1T7UN3SsWWxpWyWGn1cT3ASNJOo+pI3eUkmEl7HgtowapcV8kslYpFQcYn431VuxghXakPNlbjRwhqmR37PFOg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@oxlint/binding-android-arm64@1.57.0': - resolution: {integrity: sha512-9i80AresjZ/FZf5xK8tKFbhQnijD4s1eOZw6/FHUwD59HEZbVLRc2C88ADYJfLZrF5XofWDiRX/Ja9KefCLy7w==} + '@oxlint/binding-android-arm64@1.58.0': + resolution: {integrity: sha512-GryzujxuiRv2YFF7bRy8mKcxlbuAN+euVUtGJt9KKbLT8JBUIosamVhcthLh+VEr6KE6cjeVMAQxKAzJcoN7dg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxlint/binding-darwin-arm64@1.57.0': - resolution: {integrity: sha512-0eUfhRz5L2yKa9I8k3qpyl37XK3oBS5BvrgdVIx599WZK63P8sMbg+0s4IuxmIiZuBK68Ek+Z+gcKgeYf0otsg==} + '@oxlint/binding-darwin-arm64@1.58.0': + resolution: {integrity: sha512-7/bRSJIwl4GxeZL9rPZ11anNTyUO9epZrfEJH/ZMla3+/gbQ6xZixh9nOhsZ0QwsTW7/5J2A/fHbD1udC5DQQA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxlint/binding-darwin-x64@1.57.0': - resolution: {integrity: sha512-UvrSuzBaYOue+QMAcuDITe0k/Vhj6KZGjfnI6x+NkxBTke/VoM7ZisaxgNY0LWuBkTnd1OmeQfEQdQ48fRjkQg==} + '@oxlint/binding-darwin-x64@1.58.0': + resolution: {integrity: sha512-EqdtJSiHweS2vfILNrpyJ6HUwpEq2g7+4Zx1FPi4hu3Hu7tC3znF6ufbXO8Ub2LD4mGgznjI7kSdku9NDD1Mkg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxlint/binding-freebsd-x64@1.57.0': - resolution: {integrity: sha512-wtQq0dCoiw4bUwlsNVDJJ3pxJA218fOezpgtLKrbQqUtQJcM9yP8z+I9fu14aHg0uyAxIY+99toL6uBa2r7nxA==} + '@oxlint/binding-freebsd-x64@1.58.0': + resolution: {integrity: sha512-VQt5TH4M42mY20F545G637RKxV/yjwVtKk2vfXuazfReSIiuvWBnv+FVSvIV5fKVTJNjt3GSJibh6JecbhGdBw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxlint/binding-linux-arm-gnueabihf@1.57.0': - resolution: {integrity: sha512-qxFWl2BBBFcT4djKa+OtMdnLgoHEJXpqjyGwz8OhW35ImoCwR5qtAGqApNYce5260FQqoAHW8S8eZTjiX67Tsg==} + '@oxlint/binding-linux-arm-gnueabihf@1.58.0': + resolution: {integrity: sha512-fBYcj4ucwpAtjJT3oeBdFBYKvNyjRSK+cyuvBOTQjh0jvKp4yeA4S/D0IsCHus/VPaNG5L48qQkh+Vjy3HL2/Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxlint/binding-linux-arm-musleabihf@1.57.0': - resolution: {integrity: sha512-SQoIsBU7J0bDW15/f0/RvxHfY3Y0+eB/caKBQtNFbuerTiA6JCYx9P1MrrFTwY2dTm/lMgTSgskvCEYk2AtG/Q==} + '@oxlint/binding-linux-arm-musleabihf@1.58.0': + resolution: {integrity: sha512-0BeuFfwlUHlJ1xpEdSD1YO3vByEFGPg36uLjK1JgFaxFb4W6w17F8ET8sz5cheZ4+x5f2xzdnRrrWv83E3Yd8g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxlint/binding-linux-arm64-gnu@1.57.0': - resolution: {integrity: sha512-jqxYd1W6WMeozsCmqe9Rzbu3SRrGTyGDAipRlRggetyYbUksJqJKvUNTQtZR/KFoJPb+grnSm5SHhdWrywv3RQ==} + '@oxlint/binding-linux-arm64-gnu@1.58.0': + resolution: {integrity: sha512-TXlZgnPTlxrQzxG9ZXU7BNwx1Ilrr17P3GwZY0If2EzrinqRH3zXPc3HrRcBJgcsoZNMuNL5YivtkJYgp467UQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-arm64-musl@1.57.0': - resolution: {integrity: sha512-i66WyEPVEvq9bxRUCJ/MP5EBfnTDN3nhwEdFZFTO5MmLLvzngfWEG3NSdXQzTT3vk5B9i6C2XSIYBh+aG6uqyg==} + '@oxlint/binding-linux-arm64-musl@1.58.0': + resolution: {integrity: sha512-zSoYRo5dxHLcUx93Stl2hW3hSNjPt99O70eRVWt5A1zwJ+FPjeCCANCD2a9R4JbHsdcl11TIQOjyigcRVOH2mw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@oxlint/binding-linux-ppc64-gnu@1.57.0': - resolution: {integrity: sha512-oMZDCwz4NobclZU3pH+V1/upVlJZiZvne4jQP+zhJwt+lmio4XXr4qG47CehvrW1Lx2YZiIHuxM2D4YpkG3KVA==} + '@oxlint/binding-linux-ppc64-gnu@1.58.0': + resolution: {integrity: sha512-NQ0U/lqxH2/VxBYeAIvMNUK1y0a1bJ3ZicqkF2c6wfakbEciP9jvIE4yNzCFpZaqeIeRYaV7AVGqEO1yrfVPjA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-riscv64-gnu@1.57.0': - resolution: {integrity: sha512-uoBnjJ3MMEBbfnWC1jSFr7/nSCkcQYa72NYoNtLl1imshDnWSolYCjzb8LVCwYCCfLJXD+0gBLD7fyC14c0+0g==} + '@oxlint/binding-linux-riscv64-gnu@1.58.0': + resolution: {integrity: sha512-X9J+kr3gIC9FT8GuZt0ekzpNUtkBVzMVU4KiKDSlocyQuEgi3gBbXYN8UkQiV77FTusLDPsovjo95YedHr+3yg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-riscv64-musl@1.57.0': - resolution: {integrity: sha512-BdrwD7haPZ8a9KrZhKJRSj6jwCor+Z8tHFZ3PT89Y3Jq5v3LfMfEePeAmD0LOTWpiTmzSzdmyw9ijneapiVHKQ==} + '@oxlint/binding-linux-riscv64-musl@1.58.0': + resolution: {integrity: sha512-CDze3pi1OO3Wvb/QsXjmLEY4XPKGM6kIo82ssNOgmcl1IdndF9VSGAE38YLhADWmOac7fjqhBw82LozuUVxD0Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [musl] - '@oxlint/binding-linux-s390x-gnu@1.57.0': - resolution: {integrity: sha512-BNs+7ZNsRstVg2tpNxAXfMX/Iv5oZh204dVyb8Z37+/gCh+yZqNTlg6YwCLIMPSk5wLWIGOaQjT0GUOahKYImw==} + '@oxlint/binding-linux-s390x-gnu@1.58.0': + resolution: {integrity: sha512-b/89glbxFaEAcA6Uf1FvCNecBJEgcUTsV1quzrqXM/o4R1M4u+2KCVuyGCayN2UpsRWtGGLb+Ver0tBBpxaPog==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@oxlint/binding-linux-x64-gnu@1.57.0': - resolution: {integrity: sha512-AghS18w+XcENcAX0+BQGLiqjpqpaxKJa4cWWP0OWNLacs27vHBxu7TYkv9LUSGe5w8lOJHeMxcYfZNOAPqw2bg==} + '@oxlint/binding-linux-x64-gnu@1.58.0': + resolution: {integrity: sha512-0/yYpkq9VJFCEcuRlrViGj8pJUFFvNS4EkEREaN7CB1EcLXJIaVSSa5eCihwBGXtOZxhnblWgxks9juRdNQI7w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-x64-musl@1.57.0': - resolution: {integrity: sha512-E/FV3GB8phu/Rpkhz5T96hAiJlGzn91qX5yj5gU754P5cmVGXY1Jw/VSjDSlZBCY3VHjsVLdzgdkJaomEmcNOg==} + '@oxlint/binding-linux-x64-musl@1.58.0': + resolution: {integrity: sha512-hr6FNvmcAXiH+JxSvaJ4SJ1HofkdqEElXICW9sm3/Rd5eC3t7kzvmLyRAB3NngKO2wzXRCAm4Z/mGWfrsS4X8w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@oxlint/binding-openharmony-arm64@1.57.0': - resolution: {integrity: sha512-xvZ2yZt0nUVfU14iuGv3V25jpr9pov5N0Wr28RXnHFxHCRxNDMtYPHV61gGLhN9IlXM96gI4pyYpLSJC5ClLCQ==} + '@oxlint/binding-openharmony-arm64@1.58.0': + resolution: {integrity: sha512-R+O368VXgRql1K6Xar+FEo7NEwfo13EibPMoTv3sesYQedRXd6m30Dh/7lZMxnrQVFfeo4EOfYIP4FpcgWQNHg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@oxlint/binding-win32-arm64-msvc@1.57.0': - resolution: {integrity: sha512-Z4D8Pd0AyHBKeazhdIXeUUy5sIS3Mo0veOlzlDECg6PhRRKgEsBJCCV1n+keUZtQ04OP+i7+itS3kOykUyNhDg==} + '@oxlint/binding-win32-arm64-msvc@1.58.0': + resolution: {integrity: sha512-Q0FZiAY/3c4YRj4z3h9K1PgaByrifrfbBoODSeX7gy97UtB7pySPUQfC2B/GbxWU6k7CzQrRy5gME10PltLAFQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxlint/binding-win32-ia32-msvc@1.57.0': - resolution: {integrity: sha512-StOZ9nFMVKvevicbQfql6Pouu9pgbeQnu60Fvhz2S6yfMaii+wnueLnqQ5I1JPgNF0Syew4voBlAaHD13wH6tw==} + '@oxlint/binding-win32-ia32-msvc@1.58.0': + resolution: {integrity: sha512-Y8FKBABrSPp9H0QkRLHDHOSUgM/309a3IvOVgPcVxYcX70wxJrk608CuTg7w+C6vEd724X5wJoNkBcGYfH7nNQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@oxlint/binding-win32-x64-msvc@1.57.0': - resolution: {integrity: sha512-6PuxhYgth8TuW0+ABPOIkGdBYw+qYGxgIdXPHSVpiCDm+hqTTWCmC739St1Xni0DJBt8HnSHTG67i1y6gr8qrA==} + '@oxlint/binding-win32-x64-msvc@1.58.0': + resolution: {integrity: sha512-bCn5rbiz5My+Bj7M09sDcnqW0QJyINRVxdZ65x1/Y2tGrMwherwK/lpk+HRQCKvXa8pcaQdF5KY5j54VGZLwNg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] - '@oxlint/plugins@1.57.0': - resolution: {integrity: sha512-4mAGdfUZNQSZwUbHs0xoUcKjByrdBSJ9iaCI3STn/d1ZVRKhW/82oCA6rdfSzO4vxrWH3/l+qYWh/tyrwPSpag==} + '@oxlint/plugins@1.58.0': + resolution: {integrity: sha512-lW4/uOVf0O9qp/niWS+0dTi45SNsLn2e6J2s9r0gl7Uy19T/kWcMIgZjOE5579WPjStYX58Vjw41H/Yi/6Q8xQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} '@package-json/types@0.0.12': @@ -4889,21 +4889,21 @@ packages: resolution: {integrity: sha512-dD4UpyBh/9m4X2NVjA+73/ZPBRF+uF4zIMFvvQsabMiEK8x41L3rQ8EENOi35kyyoaJwNxEeJcP6Fj1H4U409Q==} engines: {node: '>=12'} - oxfmt@0.42.0: - resolution: {integrity: sha512-QhejGErLSMReNuZ6vxgFHDyGoPbjTRNi6uGHjy0cvIjOQFqD6xmr/T+3L41ixR3NIgzcNiJ6ylQKpvShTgDfqg==} + oxfmt@0.43.0: + resolution: {integrity: sha512-KTYNG5ISfHSdmeZ25Xzb3qgz9EmQvkaGAxgBY/p38+ZiAet3uZeu7FnMwcSQJg152Qwl0wnYAxDc+Z/H6cvrwA==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true - oxlint-tsgolint@0.18.1: - resolution: {integrity: sha512-Hgb0wMfuXBYL0ddY+1hAG8IIfC40ADwPnBuUaC6ENAuCtTF4dHwsy7mCYtQ2e7LoGvfoSJRY0+kqQRiembJ/jQ==} + oxlint-tsgolint@0.19.0: + resolution: {integrity: sha512-pSzUmDjMyjC8iUUZ7fCLo0D1iUaYIfodd/WIQ6Zra11YkjkUQk3BOFoW4I5ec6uZ/0s2FEmxtiZ7hiTXFRp1cg==} hasBin: true - oxlint@1.57.0: - resolution: {integrity: sha512-DGFsuBX5MFZX9yiDdtKjTrYPq45CZ8Fft6qCltJITYZxfwYjVdGf/6wycGYTACloauwIPxUnYhBVeZbHvleGhw==} + oxlint@1.58.0: + resolution: {integrity: sha512-t4s9leczDMqlvOSjnbCQe7gtoLkWgBGZ7sBdCJ9EOj5IXFSG/X7OAzK4yuH4iW+4cAYe8kLFbC8tuYMwWZm+Cg==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: - oxlint-tsgolint: '>=0.15.0' + oxlint-tsgolint: '>=0.18.0' peerDependenciesMeta: oxlint-tsgolint: optional: true @@ -7408,139 +7408,139 @@ snapshots: '@oxc-project/types@0.122.0': {} - '@oxfmt/binding-android-arm-eabi@0.42.0': + '@oxfmt/binding-android-arm-eabi@0.43.0': optional: true - '@oxfmt/binding-android-arm64@0.42.0': + '@oxfmt/binding-android-arm64@0.43.0': optional: true - '@oxfmt/binding-darwin-arm64@0.42.0': + '@oxfmt/binding-darwin-arm64@0.43.0': optional: true - '@oxfmt/binding-darwin-x64@0.42.0': + '@oxfmt/binding-darwin-x64@0.43.0': optional: true - '@oxfmt/binding-freebsd-x64@0.42.0': + '@oxfmt/binding-freebsd-x64@0.43.0': optional: true - '@oxfmt/binding-linux-arm-gnueabihf@0.42.0': + '@oxfmt/binding-linux-arm-gnueabihf@0.43.0': optional: true - '@oxfmt/binding-linux-arm-musleabihf@0.42.0': + '@oxfmt/binding-linux-arm-musleabihf@0.43.0': optional: true - '@oxfmt/binding-linux-arm64-gnu@0.42.0': + '@oxfmt/binding-linux-arm64-gnu@0.43.0': optional: true - '@oxfmt/binding-linux-arm64-musl@0.42.0': + '@oxfmt/binding-linux-arm64-musl@0.43.0': optional: true - '@oxfmt/binding-linux-ppc64-gnu@0.42.0': + '@oxfmt/binding-linux-ppc64-gnu@0.43.0': optional: true - '@oxfmt/binding-linux-riscv64-gnu@0.42.0': + '@oxfmt/binding-linux-riscv64-gnu@0.43.0': optional: true - '@oxfmt/binding-linux-riscv64-musl@0.42.0': + '@oxfmt/binding-linux-riscv64-musl@0.43.0': optional: true - '@oxfmt/binding-linux-s390x-gnu@0.42.0': + '@oxfmt/binding-linux-s390x-gnu@0.43.0': optional: true - '@oxfmt/binding-linux-x64-gnu@0.42.0': + '@oxfmt/binding-linux-x64-gnu@0.43.0': optional: true - '@oxfmt/binding-linux-x64-musl@0.42.0': + '@oxfmt/binding-linux-x64-musl@0.43.0': optional: true - '@oxfmt/binding-openharmony-arm64@0.42.0': + '@oxfmt/binding-openharmony-arm64@0.43.0': optional: true - '@oxfmt/binding-win32-arm64-msvc@0.42.0': + '@oxfmt/binding-win32-arm64-msvc@0.43.0': optional: true - '@oxfmt/binding-win32-ia32-msvc@0.42.0': + '@oxfmt/binding-win32-ia32-msvc@0.43.0': optional: true - '@oxfmt/binding-win32-x64-msvc@0.42.0': + '@oxfmt/binding-win32-x64-msvc@0.43.0': optional: true - '@oxlint-tsgolint/darwin-arm64@0.18.1': + '@oxlint-tsgolint/darwin-arm64@0.19.0': optional: true - '@oxlint-tsgolint/darwin-x64@0.18.1': + '@oxlint-tsgolint/darwin-x64@0.19.0': optional: true - '@oxlint-tsgolint/linux-arm64@0.18.1': + '@oxlint-tsgolint/linux-arm64@0.19.0': optional: true - '@oxlint-tsgolint/linux-x64@0.18.1': + '@oxlint-tsgolint/linux-x64@0.19.0': optional: true - '@oxlint-tsgolint/win32-arm64@0.18.1': + '@oxlint-tsgolint/win32-arm64@0.19.0': optional: true - '@oxlint-tsgolint/win32-x64@0.18.1': + '@oxlint-tsgolint/win32-x64@0.19.0': optional: true - '@oxlint/binding-android-arm-eabi@1.57.0': + '@oxlint/binding-android-arm-eabi@1.58.0': optional: true - '@oxlint/binding-android-arm64@1.57.0': + '@oxlint/binding-android-arm64@1.58.0': optional: true - '@oxlint/binding-darwin-arm64@1.57.0': + '@oxlint/binding-darwin-arm64@1.58.0': optional: true - '@oxlint/binding-darwin-x64@1.57.0': + '@oxlint/binding-darwin-x64@1.58.0': optional: true - '@oxlint/binding-freebsd-x64@1.57.0': + '@oxlint/binding-freebsd-x64@1.58.0': optional: true - '@oxlint/binding-linux-arm-gnueabihf@1.57.0': + '@oxlint/binding-linux-arm-gnueabihf@1.58.0': optional: true - '@oxlint/binding-linux-arm-musleabihf@1.57.0': + '@oxlint/binding-linux-arm-musleabihf@1.58.0': optional: true - '@oxlint/binding-linux-arm64-gnu@1.57.0': + '@oxlint/binding-linux-arm64-gnu@1.58.0': optional: true - '@oxlint/binding-linux-arm64-musl@1.57.0': + '@oxlint/binding-linux-arm64-musl@1.58.0': optional: true - '@oxlint/binding-linux-ppc64-gnu@1.57.0': + '@oxlint/binding-linux-ppc64-gnu@1.58.0': optional: true - '@oxlint/binding-linux-riscv64-gnu@1.57.0': + '@oxlint/binding-linux-riscv64-gnu@1.58.0': optional: true - '@oxlint/binding-linux-riscv64-musl@1.57.0': + '@oxlint/binding-linux-riscv64-musl@1.58.0': optional: true - '@oxlint/binding-linux-s390x-gnu@1.57.0': + '@oxlint/binding-linux-s390x-gnu@1.58.0': optional: true - '@oxlint/binding-linux-x64-gnu@1.57.0': + '@oxlint/binding-linux-x64-gnu@1.58.0': optional: true - '@oxlint/binding-linux-x64-musl@1.57.0': + '@oxlint/binding-linux-x64-musl@1.58.0': optional: true - '@oxlint/binding-openharmony-arm64@1.57.0': + '@oxlint/binding-openharmony-arm64@1.58.0': optional: true - '@oxlint/binding-win32-arm64-msvc@1.57.0': + '@oxlint/binding-win32-arm64-msvc@1.58.0': optional: true - '@oxlint/binding-win32-ia32-msvc@1.57.0': + '@oxlint/binding-win32-ia32-msvc@1.58.0': optional: true - '@oxlint/binding-win32-x64-msvc@1.57.0': + '@oxlint/binding-win32-x64-msvc@1.58.0': optional: true - '@oxlint/plugins@1.57.0': {} + '@oxlint/plugins@1.58.0': {} '@package-json/types@0.0.12': {} @@ -10617,61 +10617,61 @@ snapshots: lodash.isequal: 4.5.0 vali-date: 1.0.0 - oxfmt@0.42.0: + oxfmt@0.43.0: dependencies: tinypool: 2.1.0 optionalDependencies: - '@oxfmt/binding-android-arm-eabi': 0.42.0 - '@oxfmt/binding-android-arm64': 0.42.0 - '@oxfmt/binding-darwin-arm64': 0.42.0 - '@oxfmt/binding-darwin-x64': 0.42.0 - '@oxfmt/binding-freebsd-x64': 0.42.0 - '@oxfmt/binding-linux-arm-gnueabihf': 0.42.0 - '@oxfmt/binding-linux-arm-musleabihf': 0.42.0 - '@oxfmt/binding-linux-arm64-gnu': 0.42.0 - '@oxfmt/binding-linux-arm64-musl': 0.42.0 - '@oxfmt/binding-linux-ppc64-gnu': 0.42.0 - '@oxfmt/binding-linux-riscv64-gnu': 0.42.0 - '@oxfmt/binding-linux-riscv64-musl': 0.42.0 - '@oxfmt/binding-linux-s390x-gnu': 0.42.0 - '@oxfmt/binding-linux-x64-gnu': 0.42.0 - '@oxfmt/binding-linux-x64-musl': 0.42.0 - '@oxfmt/binding-openharmony-arm64': 0.42.0 - '@oxfmt/binding-win32-arm64-msvc': 0.42.0 - '@oxfmt/binding-win32-ia32-msvc': 0.42.0 - '@oxfmt/binding-win32-x64-msvc': 0.42.0 - - oxlint-tsgolint@0.18.1: + '@oxfmt/binding-android-arm-eabi': 0.43.0 + '@oxfmt/binding-android-arm64': 0.43.0 + '@oxfmt/binding-darwin-arm64': 0.43.0 + '@oxfmt/binding-darwin-x64': 0.43.0 + '@oxfmt/binding-freebsd-x64': 0.43.0 + '@oxfmt/binding-linux-arm-gnueabihf': 0.43.0 + '@oxfmt/binding-linux-arm-musleabihf': 0.43.0 + '@oxfmt/binding-linux-arm64-gnu': 0.43.0 + '@oxfmt/binding-linux-arm64-musl': 0.43.0 + '@oxfmt/binding-linux-ppc64-gnu': 0.43.0 + '@oxfmt/binding-linux-riscv64-gnu': 0.43.0 + '@oxfmt/binding-linux-riscv64-musl': 0.43.0 + '@oxfmt/binding-linux-s390x-gnu': 0.43.0 + '@oxfmt/binding-linux-x64-gnu': 0.43.0 + '@oxfmt/binding-linux-x64-musl': 0.43.0 + '@oxfmt/binding-openharmony-arm64': 0.43.0 + '@oxfmt/binding-win32-arm64-msvc': 0.43.0 + '@oxfmt/binding-win32-ia32-msvc': 0.43.0 + '@oxfmt/binding-win32-x64-msvc': 0.43.0 + + oxlint-tsgolint@0.19.0: optionalDependencies: - '@oxlint-tsgolint/darwin-arm64': 0.18.1 - '@oxlint-tsgolint/darwin-x64': 0.18.1 - '@oxlint-tsgolint/linux-arm64': 0.18.1 - '@oxlint-tsgolint/linux-x64': 0.18.1 - '@oxlint-tsgolint/win32-arm64': 0.18.1 - '@oxlint-tsgolint/win32-x64': 0.18.1 - - oxlint@1.57.0(oxlint-tsgolint@0.18.1): + '@oxlint-tsgolint/darwin-arm64': 0.19.0 + '@oxlint-tsgolint/darwin-x64': 0.19.0 + '@oxlint-tsgolint/linux-arm64': 0.19.0 + '@oxlint-tsgolint/linux-x64': 0.19.0 + '@oxlint-tsgolint/win32-arm64': 0.19.0 + '@oxlint-tsgolint/win32-x64': 0.19.0 + + oxlint@1.58.0(oxlint-tsgolint@0.19.0): optionalDependencies: - '@oxlint/binding-android-arm-eabi': 1.57.0 - '@oxlint/binding-android-arm64': 1.57.0 - '@oxlint/binding-darwin-arm64': 1.57.0 - '@oxlint/binding-darwin-x64': 1.57.0 - '@oxlint/binding-freebsd-x64': 1.57.0 - '@oxlint/binding-linux-arm-gnueabihf': 1.57.0 - '@oxlint/binding-linux-arm-musleabihf': 1.57.0 - '@oxlint/binding-linux-arm64-gnu': 1.57.0 - '@oxlint/binding-linux-arm64-musl': 1.57.0 - '@oxlint/binding-linux-ppc64-gnu': 1.57.0 - '@oxlint/binding-linux-riscv64-gnu': 1.57.0 - '@oxlint/binding-linux-riscv64-musl': 1.57.0 - '@oxlint/binding-linux-s390x-gnu': 1.57.0 - '@oxlint/binding-linux-x64-gnu': 1.57.0 - '@oxlint/binding-linux-x64-musl': 1.57.0 - '@oxlint/binding-openharmony-arm64': 1.57.0 - '@oxlint/binding-win32-arm64-msvc': 1.57.0 - '@oxlint/binding-win32-ia32-msvc': 1.57.0 - '@oxlint/binding-win32-x64-msvc': 1.57.0 - oxlint-tsgolint: 0.18.1 + '@oxlint/binding-android-arm-eabi': 1.58.0 + '@oxlint/binding-android-arm64': 1.58.0 + '@oxlint/binding-darwin-arm64': 1.58.0 + '@oxlint/binding-darwin-x64': 1.58.0 + '@oxlint/binding-freebsd-x64': 1.58.0 + '@oxlint/binding-linux-arm-gnueabihf': 1.58.0 + '@oxlint/binding-linux-arm-musleabihf': 1.58.0 + '@oxlint/binding-linux-arm64-gnu': 1.58.0 + '@oxlint/binding-linux-arm64-musl': 1.58.0 + '@oxlint/binding-linux-ppc64-gnu': 1.58.0 + '@oxlint/binding-linux-riscv64-gnu': 1.58.0 + '@oxlint/binding-linux-riscv64-musl': 1.58.0 + '@oxlint/binding-linux-s390x-gnu': 1.58.0 + '@oxlint/binding-linux-x64-gnu': 1.58.0 + '@oxlint/binding-linux-x64-musl': 1.58.0 + '@oxlint/binding-openharmony-arm64': 1.58.0 + '@oxlint/binding-win32-arm64-msvc': 1.58.0 + '@oxlint/binding-win32-ia32-msvc': 1.58.0 + '@oxlint/binding-win32-x64-msvc': 1.58.0 + oxlint-tsgolint: 0.19.0 p-cancelable@4.0.1: {} From bbae3e2346cc763fcbc2144004c81ddbdda52e7e Mon Sep 17 00:00:00 2001 From: Tony Date: Wed, 1 Apr 2026 22:42:57 +0800 Subject: [PATCH 034/439] fix(route/anthropic): anthropic posts data (#21588) --- lib/routes/anthropic/research.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/routes/anthropic/research.ts b/lib/routes/anthropic/research.ts index 55961d98a8d3..cfba01932e4d 100644 --- a/lib/routes/anthropic/research.ts +++ b/lib/routes/anthropic/research.ts @@ -68,8 +68,7 @@ async function handler() { }); const sections = fd.flatMap((d) => (Array.isArray(d.data) ? d.data : [])).flatMap((item) => item?.page?.sections ?? []); - const tabPages = sections.flatMap((section) => section?.tabPages ?? []).filter((tabPage) => tabPage?.label === 'Overview'); - const publicationSections = tabPages.flatMap((tabPage) => tabPage.sections).filter((section) => section?.title === 'Publications'); + const publicationSections = sections.filter((section) => section?.title === 'Publications'); const posts = publicationSections .flatMap((section) => section?.posts ?? []) .map((post) => ({ @@ -85,7 +84,10 @@ async function handler() { const response = await ofetch(item.link); const $ = load(response); - const content = $('div[class*="PostDetail_post-detail__"]'); + const content = $('#main-content > article'); + content + .find('[class$="__header"], [class$="__sidebar-container"], [class$="__controls"], [class$="__socialShare"], [class^="LandingPageSection-module-scss-module__"], [class^="SubjectNewsletter-module-scss-module__"]') + .remove(); content.find('img').each((_, e) => { const $e = $(e); $e.removeAttr('style srcset'); From 0f705a566c2608af4d174fadb5e6df5432334a20 Mon Sep 17 00:00:00 2001 From: Tony Date: Thu, 2 Apr 2026 05:29:27 +0800 Subject: [PATCH 035/439] style: use oxlint-plugin-eslint for unimplemented eslint rules --- .github/dependabot.yml | 1 + .oxlintrc.json | 55 +++++++++--- eslint.config.mjs | 161 +----------------------------------- lib/routes/8kcos/utils.ts | 2 +- lib/routes/qq/news/user.ts | 10 ++- lib/utils/wechat-mp.test.ts | 2 +- package.json | 1 + pnpm-lock.yaml | 9 ++ 8 files changed, 65 insertions(+), 176 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index c9a819637e83..20b8cd6d002d 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -35,6 +35,7 @@ updates: - '@oxlint/*' - 'oxfmt' - 'oxlint' + - 'oxlint-plugin-eslint' - 'oxlint-tsgolint' proxy-agent: patterns: diff --git a/.oxlintrc.json b/.oxlintrc.json index 10927bb882bb..c6800c9e53a1 100644 --- a/.oxlintrc.json +++ b/.oxlintrc.json @@ -12,11 +12,12 @@ }, "plugins": ["eslint", "typescript", "node", "unicorn", "import"], "jsPlugins": [ - "@stylistic/eslint-plugin", { "name": "import-x-js", "specifier": "eslint-plugin-import-x" }, { "name": "n", "specifier": "eslint-plugin-n" }, { "name": "unicorn-js", "specifier": "eslint-plugin-unicorn" }, + "@stylistic/eslint-plugin", "eslint-plugin-simple-import-sort", + "oxlint-plugin-eslint", "./eslint-plugins/no-then.js", "./eslint-plugins/nsfw-flag.js" ], @@ -325,27 +326,60 @@ } ], - // "no-implicit-globals": "error", // not yet implemented + "eslint-js/no-implicit-globals": "error", // use jsPlugins "no-labels": "error", "no-lonely-if": "error", "no-multi-str": "error", "no-new-func": "error", + + "eslint-js/no-restricted-syntax": [ + "error", // use jsPlugins + { + "selector": "CallExpression[callee.property.name='get'][arguments.length=0]", + "message": "Please use .toArray() instead." + }, + { + "selector": "CallExpression[callee.property.name='toArray'] MemberExpression[object.callee.property.name='map']", + "message": "Please use .toArray() before .map()." + }, + { + "selector": "CallExpression[callee.property.name=\"catch\"] > ArrowFunctionExpression[params.length=0][body.value=null]", + "message": "Usage of .catch(() => null) is not allowed. Please handle the error appropriately." + }, + { + "selector": "CallExpression[callee.property.name=\"catch\"] > ArrowFunctionExpression[params.length=0][body.type=\"Identifier\"][body.name=\"undefined\"]", + "message": "Usage of .catch(() => undefined) is not allowed. Please handle the error appropriately." + }, + { + "selector": "CallExpression[callee.property.name=\"catch\"] > ArrowFunctionExpression[params.length=0] > ArrayExpression[elements.length=0]", + "message": "Usage of .catch(() => []) is not allowed. Please handle the error appropriately." + }, + { + "selector": "CallExpression[callee.property.name=\"catch\"] > ArrowFunctionExpression[params.length=0] > BlockStatement[body.length=0]", + "message": "Usage of .catch(() => {}) is not allowed. Please handle the error appropriately." + }, + { + "selector": "CallExpression[callee.name=\"load\"] AwaitExpression > CallExpression", + "message": "Do not use await in call expressions. Extract the result into a variable first." + } + ], + "no-unneeded-ternary": "error", "no-useless-computed-key": "error", "no-useless-concat": "warn", "no-useless-rename": "error", "no-var": "error", - // "object-shorthand": "error", // not yet implemented - // "prefer-arrow-callback'": "error", // not yet implemented + "eslint-js/object-shorthand": "error", // use jsPlugins + "eslint-js/prefer-arrow-callback": "error", // use jsPlugins "prefer-const": "error", "prefer-object-has-own": "error", + "eslint-js/prefer-regex-literals": [ + "error", // use jsPlugins + { + "disallowRedundantWrapping": true + } + ], "require-await": "error", - // "prefer-regex-literals": [ // not yet implemented - // "error", - // { - // "disallowRedundantWrapping": true - // } - // ], // #endregion // #region --- TypeScript --- @@ -354,6 +388,7 @@ "@typescript-eslint/ban-ts-comment": "off", "@typescript-eslint/consistent-indexed-object-style": "off", // stylistic "@typescript-eslint/consistent-type-definitions": "off", // stylistic + "@typescript-eslint/dot-notation": "error", // type-aware "@typescript-eslint/no-empty-function": "off", // stylistic && tests "@typescript-eslint/no-explicit-any": "off", diff --git a/eslint.config.mjs b/eslint.config.mjs index 76f7be82c274..e1637cb97180 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -1,41 +1,26 @@ import js from '@eslint/js'; -import stylistic from '@stylistic/eslint-plugin'; import typescriptEslint from '@typescript-eslint/eslint-plugin'; import tsParser from '@typescript-eslint/parser'; // import { importX } from 'eslint-plugin-import-x'; -import n from 'eslint-plugin-n'; // import simpleImportSort from 'eslint-plugin-simple-import-sort'; import eslintPluginYml from 'eslint-plugin-yml'; import { defineConfig } from 'eslint/config'; import globals from 'globals'; -// import github from './eslint-plugins/no-then.js'; -// import nsfwFlagPlugin from './eslint-plugins/nsfw-flag.js'; - const SOURCE_FILES_GLOB = '**/*.?([cm])[jt]s?(x)'; export default defineConfig([ - // { - // plugins: { - // '@rsshub/nsfw-flag': nsfwFlagPlugin, - // }, - // rules: { - // '@rsshub/nsfw-flag/add-nsfw-flag': 'error', - // }, - // }, { ignores: ['**/coverage', '**/.vscode', '**/docker-compose.yml', '!.github', 'assets/build', 'lib/routes-deprecated', 'lib/router.js', 'dist', 'dist-lib', 'dist-worker'], }, { files: [SOURCE_FILES_GLOB], plugins: { - '@stylistic': stylistic, '@typescript-eslint': typescriptEslint, // github, js, - n, }, - // extends: [js.configs.recommended, typescriptEslint.configs['flat/recommended'], typescriptEslint.configs['flat/stylistic'], n.configs['flat/recommended-script']], + // extends: [typescriptEslint.configs['flat/recommended'], typescriptEslint.configs['flat/stylistic'], n.configs['flat/recommended-script']], languageOptions: { globals: { @@ -53,101 +38,6 @@ export default defineConfig([ }, rules: { - // #region possible problems - /* - 'array-callback-return': ['error', { allowImplicit: true }], - - 'no-await-in-loop': 'error', - 'no-control-regex': 'off', - 'no-prototype-builtins': 'off', - */ - // #endregion - - // #region suggestions - /* - 'arrow-body-style': 'error', - 'block-scoped-var': 'error', - curly: 'error', - 'dot-notation': 'error', - eqeqeq: 'error', - - 'default-case': ['warn', { commentPattern: '^no default$' }], - - 'default-case-last': 'error', - 'no-console': 'error', - 'no-eval': 'error', - 'no-extend-native': 'error', - 'no-extra-label': 'error', - - 'no-implicit-coercion': [ - 'error', - { - boolean: false, - number: false, - string: false, - disallowTemplateShorthand: true, - }, - ], - - 'no-implicit-globals': 'error', - 'no-labels': 'error', - 'no-lonely-if': 'error', - 'no-multi-str': 'error', - 'no-new-func': 'error', - */ - 'no-restricted-syntax': [ - 'error', - { - selector: "CallExpression[callee.property.name='get'][arguments.length=0]", - message: 'Please use .toArray() instead.', - }, - { - selector: "CallExpression[callee.property.name='toArray'] MemberExpression[object.callee.property.name='map']", - message: 'Please use .toArray() before .map().', - }, - { - selector: 'CallExpression[callee.property.name="catch"] > ArrowFunctionExpression[params.length=0][body.value=null]', - message: 'Usage of .catch(() => null) is not allowed. Please handle the error appropriately.', - }, - { - selector: 'CallExpression[callee.property.name="catch"] > ArrowFunctionExpression[params.length=0][body.type="Identifier"][body.name="undefined"]', - message: 'Usage of .catch(() => undefined) is not allowed. Please handle the error appropriately.', - }, - { - selector: 'CallExpression[callee.property.name="catch"] > ArrowFunctionExpression[params.length=0] > ArrayExpression[elements.length=0]', - message: 'Usage of .catch(() => []) is not allowed. Please handle the error appropriately.', - }, - { - selector: 'CallExpression[callee.property.name="catch"] > ArrowFunctionExpression[params.length=0] > BlockStatement[body.length=0]', - message: 'Usage of .catch(() => {}) is not allowed. Please handle the error appropriately.', - }, - { - selector: 'CallExpression[callee.name="load"] AwaitExpression > CallExpression', - message: 'Do not use await in call expressions. Extract the result into a variable first.', - }, - ], - /* - 'no-unneeded-ternary': 'error', - 'no-useless-computed-key': 'error', - 'no-useless-concat': 'warn', - 'no-useless-rename': 'error', - 'no-var': 'error', - 'object-shorthand': 'error', - 'prefer-arrow-callback': 'error', - 'prefer-const': 'error', - 'prefer-object-has-own': 'error', - - 'prefer-regex-literals': [ - 'error', - { - disallowRedundantWrapping: true, - }, - ], - - 'require-await': 'error', - */ - // #endregion - // #region typescript /* '@typescript-eslint/array-type': ['error', { default: 'array-simple' }], @@ -163,55 +53,6 @@ export default defineConfig([ '@typescript-eslint/no-unused-vars': ['error', { args: 'after-used', argsIgnorePattern: '^_' }], */ // #endregion - - // #region stylistic - /* - '@stylistic/arrow-parens': 'error', - '@stylistic/arrow-spacing': 'error', - '@stylistic/comma-spacing': 'error', - '@stylistic/comma-style': 'error', - '@stylistic/function-call-spacing': 'error', - '@stylistic/keyword-spacing': 'off', - '@stylistic/linebreak-style': 'error', - - '@stylistic/lines-around-comment': ['error', { beforeBlockComment: false }], - - '@stylistic/no-multiple-empty-lines': 'error', - '@stylistic/no-trailing-spaces': 'error', - '@stylistic/rest-spread-spacing': 'error', - '@stylistic/semi': 'error', - '@stylistic/space-before-blocks': 'error', - '@stylistic/space-in-parens': 'error', - '@stylistic/space-infix-ops': 'error', - '@stylistic/space-unary-ops': 'error', - '@stylistic/spaced-comment': 'error', - */ - // #endregion - - // #region node specific rules - /* - 'n/no-extraneous-require': 'error', - 'n/no-deprecated-api': 'warn', - 'n/no-missing-import': 'off', - 'n/no-missing-require': 'off', - 'n/no-process-exit': 'off', - 'n/no-unpublished-import': 'off', - - 'n/no-unpublished-require': ['error', { allowModules: ['tosource'] }], - - 'n/no-unsupported-features/node-builtins': [ - 'error', - { - version: '^22.20.0 || ^24', - allowExperimental: true, - ignores: [], - }, - ], - */ - // #endregion - - // github - // 'github/no-then': 'warn', }, }, { diff --git a/lib/routes/8kcos/utils.ts b/lib/routes/8kcos/utils.ts index 9bb08bc5b04c..237317eaec81 100644 --- a/lib/routes/8kcos/utils.ts +++ b/lib/routes/8kcos/utils.ts @@ -19,7 +19,7 @@ export const getPosts = async (limit: number, options?: { categories?: number; t description: item.content.rendered, link: item.link, pubDate: parseDate(item.date_gmt), - author: item._embedded?.['author']?.map((a) => a.name).join(', '), + author: item._embedded?.author?.map((a) => a.name).join(', '), category: item._embedded?.['wp:term']?.flatMap((terms) => terms.map((t) => t.name)), })) satisfies DataItem[]; }; diff --git a/lib/routes/qq/news/user.ts b/lib/routes/qq/news/user.ts index 191542514e2a..aad163a1c138 100644 --- a/lib/routes/qq/news/user.ts +++ b/lib/routes/qq/news/user.ts @@ -64,10 +64,12 @@ async function handler(ctx) { news = await Promise.all( response.newslist.map((item) => cache.tryGet(item.id, async () => { - const description = - item.articletype === '0' - ? load(await ofetch(`https://news.qq.com/rain/a/${item.id}`))('.rich_media_content').html()! - : `

${item.abstract}

文章包含非文本内容,请在浏览器中打开查看

`; + let description = `

${item.abstract}

文章包含非文本内容,请在浏览器中打开查看

`; + if (item.articletype === '0') { + const article = await ofetch(`https://news.qq.com/rain/a/${item.id}`); + const $ = load(article); + description = $('.rich_media_content').html()!; + } return { title: item.longtitle, description, diff --git a/lib/utils/wechat-mp.test.ts b/lib/utils/wechat-mp.test.ts index e5e39325d70a..4e59d2b051f3 100644 --- a/lib/utils/wechat-mp.test.ts +++ b/lib/utils/wechat-mp.test.ts @@ -139,7 +139,7 @@ describe('wechat-mp', () => { // item_show_type in a separate script tag from real_item_show_type expect( ExtractMetadata.common( - load(/* HTML */ ` + load(` @@ -165,38 +165,38 @@ async function handler(ctx) { `, - pubDate: new Date(`2019-3-1`).toUTCString(), - link: `//mock.com/DIYgod/RSSHub`, - author: `DIYgod`, + pubDate: new Date('2019-3-1').toUTCString(), + link: '//mock.com/DIYgod/RSSHub', + author: 'DIYgod', }, { - title: `Complicated Title`, + title: 'Complicated Title', description: ` `, - pubDate: new Date(`2019-3-1`).toUTCString(), - link: `https://mock.com/DIYgod/RSSHub`, - author: `DIYgod`, + pubDate: new Date('2019-3-1').toUTCString(), + link: 'https://mock.com/DIYgod/RSSHub', + author: 'DIYgod', }, { - title: `Complicated Title`, + title: 'Complicated Title', description: ` `, - pubDate: new Date(`2019-3-1`).toUTCString(), - link: `//mock.com/DIYgod/RSSHub`, - author: `DIYgod`, + pubDate: new Date('2019-3-1').toUTCString(), + link: '//mock.com/DIYgod/RSSHub', + author: 'DIYgod', enclosure_url: 'https://mock.com/DIYgod/RSSHub.png', enclosure_type: 'image/png', itunes_item_image: 'https://mock.com/DIYgod/RSSHub.gif', }, { - title: `Complicated Title`, + title: 'Complicated Title', description: ` `, - pubDate: new Date(`2019-3-1`).toUTCString(), - link: `//mock.com/DIYgod/RSSHub`, - author: `DIYgod`, + pubDate: new Date('2019-3-1').toUTCString(), + link: '//mock.com/DIYgod/RSSHub', + author: 'DIYgod', image: 'https://mock.com/DIYgod/RSSHub.jpg', } ); @@ -206,7 +206,7 @@ async function handler(ctx) { case 'multimedia': item.push( { - title: `Multimedia Title`, + title: 'Multimedia Title', description: ` `, - pubDate: new Date(`2019-3-1`).toUTCString(), - link: `https://mock.com/DIYgod/RSSHub`, - author: `DIYgod`, + pubDate: new Date('2019-3-1').toUTCString(), + link: 'https://mock.com/DIYgod/RSSHub', + author: 'DIYgod', }, { - title: `Multimedia Title`, + title: 'Multimedia Title', description: ` `, - pubDate: new Date(`2019-3-1`).toUTCString(), - link: `https://mock.com/DIYgod/RSSHub`, - author: `DIYgod`, + pubDate: new Date('2019-3-1').toUTCString(), + link: 'https://mock.com/DIYgod/RSSHub', + author: 'DIYgod', enclosure_url: 'https://mock.com/DIYgod/RSSHub.mp4', enclosure_type: 'video/mp4', } @@ -236,26 +236,26 @@ async function handler(ctx) { case 'sort': item.push( { - title: `Sort Title 0`, - link: `https://github.com/DIYgod/RSSHub/issues/s1`, - author: `DIYgod0`, + title: 'Sort Title 0', + link: 'https://github.com/DIYgod/RSSHub/issues/s1', + author: 'DIYgod0', }, { - title: `Sort Title 1`, - link: `https://github.com/DIYgod/RSSHub/issues/s1`, - author: `DIYgod0`, + title: 'Sort Title 1', + link: 'https://github.com/DIYgod/RSSHub/issues/s1', + author: 'DIYgod0', }, { - title: `Sort Title 2`, - link: `https://github.com/DIYgod/RSSHub/issues/s2`, + title: 'Sort Title 2', + link: 'https://github.com/DIYgod/RSSHub/issues/s2', pubDate: new Date(1_546_272_000_000 - 10 * 10 * 1000).toUTCString(), - author: `DIYgod0`, + author: 'DIYgod0', }, { - title: `Sort Title 3`, - link: `https://github.com/DIYgod/RSSHub/issues/s3`, + title: 'Sort Title 3', + link: 'https://github.com/DIYgod/RSSHub/issues/s3', pubDate: new Date(1_546_272_000_000).toUTCString(), - author: `DIYgod0`, + author: 'DIYgod0', } ); @@ -263,10 +263,10 @@ async function handler(ctx) { case 'mess': item.push({ - title: `Mess Title`, - link: `/DIYgod/RSSHub/issues/0`, + title: 'Mess Title', + link: '/DIYgod/RSSHub/issues/0', pubDate: 1_546_272_000_000, - author: `DIYgod0`, + author: 'DIYgod0', }); break; @@ -275,9 +275,9 @@ async function handler(ctx) { item.push({ title: '小可愛', description: '宇宙無敵', - link: `/DIYgod/RSSHub/issues/0`, + link: '/DIYgod/RSSHub/issues/0', pubDate: new Date(1_546_272_000_000).toUTCString(), - author: `DIYgod0`, + author: 'DIYgod0', }); break; @@ -286,9 +286,9 @@ async function handler(ctx) { item.push({ title: '小可愛', description: '

宇宙無敵


'.repeat(1000), - link: `/DIYgod/RSSHub/issues/0`, + link: '/DIYgod/RSSHub/issues/0', pubDate: new Date(1_546_272_000_000).toUTCString(), - author: `DIYgod0`, + author: 'DIYgod0', }); break; @@ -297,23 +297,23 @@ async function handler(ctx) { item.push( { title: 'Title0', - pubDate: new Date(`2019-3-1`).toUTCString(), - link: `https://github.com/DIYgod/RSSHub/issues/-3`, + pubDate: new Date('2019-3-1').toUTCString(), + link: 'https://github.com/DIYgod/RSSHub/issues/-3', }, { title: 'Title1', description: 'Description1', - pubDate: new Date(`2019-3-1`).toUTCString(), - link: `https://github.com/DIYgod/RSSHub/issues/-2`, - author: `DIYgod0 `, + pubDate: new Date('2019-3-1').toUTCString(), + link: 'https://github.com/DIYgod/RSSHub/issues/-2', + author: 'DIYgod0 ', category: 'Category0', }, { title: 'Title2 HTML in description', description: 'RSSHub', - pubDate: new Date(`2019-3-1`).toUTCString(), - updated: new Date(`2019-3-2`).toUTCString(), - link: `https://github.com/DIYgod/RSSHub/issues/-1`, + pubDate: new Date('2019-3-1').toUTCString(), + updated: new Date('2019-3-2').toUTCString(), + link: 'https://github.com/DIYgod/RSSHub/issues/-1', author: [{ name: ' DIYgod1' }, { name: 'DIYgod2 ' }], category: ['Category0', 'Category1'], }, @@ -322,9 +322,9 @@ async function handler(ctx) { content: { html: 'DIYgod/RSSHub', }, - pubDate: new Date(`2019-3-1`).toUTCString(), - updated: new Date(`2019-3-2`).toUTCString(), - link: `https://github.com/DIYgod/RSSHub/issues/0`, + pubDate: new Date('2019-3-1').toUTCString(), + updated: new Date('2019-3-2').toUTCString(), + link: 'https://github.com/DIYgod/RSSHub/issues/0', author: [{ name: ' DIYgod3' }, { name: 'DIYgod4 ' }, { name: 'DIYgod5 ' }], category: ['Category1'], enclosure_url: 'https://github.com/DIYgod/RSSHub/issues/0', @@ -334,8 +334,8 @@ async function handler(ctx) { }, { title: 'Title4 author is null', - pubDate: new Date(`2019-3-1`).toUTCString(), - link: `https://github.com/DIYgod/RSSHub/pull/11555`, + pubDate: new Date('2019-3-1').toUTCString(), + link: 'https://github.com/DIYgod/RSSHub/pull/11555', author: null, } ); @@ -346,7 +346,7 @@ async function handler(ctx) { item.push({ title: 'Title0', description: 'Description0', - pubDate: new Date(`2019-3-1`).toUTCString(), + pubDate: new Date('2019-3-1').toUTCString(), link: 'https://github.com/DIYgod/RSSHub/issues/0', }); diff --git a/lib/routes/theblockbeats/index.tsx b/lib/routes/theblockbeats/index.tsx index c2c570f6fb67..861be0e3fe69 100644 --- a/lib/routes/theblockbeats/index.tsx +++ b/lib/routes/theblockbeats/index.tsx @@ -10,7 +10,7 @@ import { parseDate } from '@/utils/parse-date'; const domain = 'theblockbeats.info'; const rootUrl = `https://www.${domain}`; -const apiBase = `https://api.blockbeats.cn`; +const apiBase = 'https://api.blockbeats.cn'; const render = (data: { image?: string; description?: string }) => { const html = renderToString(); diff --git a/lib/routes/thecover/channel.ts b/lib/routes/thecover/channel.ts index 9d3dfe39d606..039658fbb657 100644 --- a/lib/routes/thecover/channel.ts +++ b/lib/routes/thecover/channel.ts @@ -82,7 +82,8 @@ async function handler(ctx) { return { title: `${nodes[id]}-封面新闻`, link: targetUrl, - description: `封面新闻作为华西都市报深度融合转型和打造新型主流媒体的载体,牢固确立移动优先战略,创新移动新闻产品,打造移动传播矩阵,封面新闻的传播力、引导力、影响力和公信力不断得到各方肯定。封面新闻突破千万的用户下载量,呈现出以四川为主阵地的全国分布态势,用户年龄构成以20-35岁为主,“亿万年轻人的生活方式”的定位初步得到体现。`, + description: + '封面新闻作为华西都市报深度融合转型和打造新型主流媒体的载体,牢固确立移动优先战略,创新移动新闻产品,打造移动传播矩阵,封面新闻的传播力、引导力、影响力和公信力不断得到各方肯定。封面新闻突破千万的用户下载量,呈现出以四川为主阵地的全国分布态势,用户年龄构成以20-35岁为主,“亿万年轻人的生活方式”的定位初步得到体现。', language: 'zh-cn', item: items, }; diff --git a/lib/routes/thepaper/namespace.ts b/lib/routes/thepaper/namespace.ts index a0cda4243511..36c7e447dd14 100644 --- a/lib/routes/thepaper/namespace.ts +++ b/lib/routes/thepaper/namespace.ts @@ -3,6 +3,6 @@ import type { Namespace } from '@/types'; export const namespace: Namespace = { name: '澎湃新闻', url: 'thepaper.cn', - description: `以下所有路由可使用参数\`old\`以采取旧全文获取方法。该方法会另外获取网页中的图片与视频资源。在原始 url 追加\`?old=yes\`以启用.`, + description: '以下所有路由可使用参数`old`以采取旧全文获取方法。该方法会另外获取网页中的图片与视频资源。在原始 url 追加`?old=yes`以启用.', lang: 'zh-CN', }; diff --git a/lib/routes/thwiki/index.ts b/lib/routes/thwiki/index.ts index 7f0f6e072c57..3f89be1b5be5 100644 --- a/lib/routes/thwiki/index.ts +++ b/lib/routes/thwiki/index.ts @@ -45,7 +45,7 @@ async function handler(ctx) { return { title: 'Touhou events calendar (THBWiki)', - link: `https://calendar.thwiki.cc/`, + link: 'https://calendar.thwiki.cc/', description: 'A Touhou related events calendar api from THBWiki', item: data.map((item) => ({ title: item.title, diff --git a/lib/routes/tingshuitz/shenzhen.tsx b/lib/routes/tingshuitz/shenzhen.tsx index 3e3420a3d72e..735f2355f777 100644 --- a/lib/routes/tingshuitz/shenzhen.tsx +++ b/lib/routes/tingshuitz/shenzhen.tsx @@ -27,7 +27,7 @@ export const route: Route = { maintainers: ['lilPiper'], handler, url: 'sz-water.com.cn/*', - description: `可能仅限中国大陆服务器访问,以实际情况为准。`, + description: '可能仅限中国大陆服务器访问,以实际情况为准。', }; async function handler() { diff --git a/lib/routes/toranoana/news.ts b/lib/routes/toranoana/news.ts index 9c60d77f033b..e340331f9956 100644 --- a/lib/routes/toranoana/news.ts +++ b/lib/routes/toranoana/news.ts @@ -61,7 +61,7 @@ async function handler(ctx): Promise { } } else { // exclude category-joshi to get result of general - apiUrl += `?categories_exclude=1598`; + apiUrl += '?categories_exclude=1598'; } const posts = await ofetch(apiUrl, { diff --git a/lib/routes/toutiao/a-bogus.ts b/lib/routes/toutiao/a-bogus.ts index 33f2353e7099..e3b916232b62 100644 --- a/lib/routes/toutiao/a-bogus.ts +++ b/lib/routes/toutiao/a-bogus.ts @@ -304,7 +304,7 @@ function generate_rc4_bb_str(url_search_params, user_agent, window_env_str, suff // 对后缀两次sm3之的结果 const cus = sm3.sum(sm3.sum(suffix)); // 对ua处理之后的结果 - const ua = sm3.sum(result_encrypt(rc4_encrypt(user_agent, Reflect.apply(String.fromCharCode, null, [0.003_906_25, 1, 14])), 's3')); + const ua = sm3.sum(result_encrypt(rc4_encrypt(user_agent, Reflect.apply(String.fromCodePoint, null, [0.003_906_25, 1, 14])), 's3')); // const end_time = Date.now(); // b @@ -524,7 +524,7 @@ function generate_rc4_bb_str(url_search_params, user_agent, window_env_str, suff b[71], ]; bb = bb.concat(window_env_list).concat(b[72]); - return rc4_encrypt(String.fromCharCode.apply(null, bb), Reflect.apply(String.fromCharCode, null, [121])); + return rc4_encrypt(String.fromCodePoint.apply(null, bb), Reflect.apply(String.fromCodePoint, null, [121])); } function generate_random_str() { @@ -532,7 +532,7 @@ function generate_random_str() { random_str_list = random_str_list.concat(gener_random(Math.random() * 10000, [3, 45])); random_str_list = random_str_list.concat(gener_random(Math.random() * 10000, [1, 0])); random_str_list = random_str_list.concat(gener_random(Math.random() * 10000, [1, 5])); - return String.fromCharCode.apply(null, random_str_list); + return String.fromCodePoint.apply(null, random_str_list); } export function generate_a_bogus(url_search_params, user_agent) { diff --git a/lib/routes/trow/portal.ts b/lib/routes/trow/portal.ts index c814477d3026..d01921d3d8c0 100644 --- a/lib/routes/trow/portal.ts +++ b/lib/routes/trow/portal.ts @@ -32,11 +32,11 @@ export const route: Route = { async function handler() { let data; const response = await got.extend({ followRedirect: false }).get({ - url: `https://trow.cc`, + url: 'https://trow.cc', }); if (response.statusCode === 302) { const response2 = await got.extend({ followRedirect: false }).get({ - url: `https://trow.cc`, + url: 'https://trow.cc', headers: { cookie: response.headers['set-cookie'], }, @@ -50,9 +50,9 @@ async function handler() { const list = $('#portal_content .borderwrap[style="display:show"]'); return { - title: `The Ring of Wonder - Portal`, - link: `https://trow.cc`, - description: `The Ring of Wonder 首页更新`, + title: 'The Ring of Wonder - Portal', + link: 'https://trow.cc', + description: 'The Ring of Wonder 首页更新', item: list.toArray().map((item) => { item = $(item); const dateraw = item.find('.postdetails').text(); diff --git a/lib/routes/tumblr/utils.ts b/lib/routes/tumblr/utils.ts index b04dd104fd83..50c4eeb68fae 100644 --- a/lib/routes/tumblr/utils.ts +++ b/lib/routes/tumblr/utils.ts @@ -107,7 +107,7 @@ if (config.tumblr && config.tumblr.clientId && config.tumblr.clientSecret && con // We may be able to restore the new token if the app is restarted. This will avoid reusing the old token and have a failing request. // Keep it for a year (not clear how long the refresh token lasts). const cacheEntry = { startToken: config.tumblr.refreshToken, currentToken: newRefreshToken }; - await cache.set(`tumblr:refreshToken`, JSON.stringify(cacheEntry), 31_536_000); + await cache.set('tumblr:refreshToken', JSON.stringify(cacheEntry), 31_536_000); return accessToken; }; diff --git a/lib/routes/twitch/schedule.ts b/lib/routes/twitch/schedule.ts index daad1d2f038c..7afc493a451b 100644 --- a/lib/routes/twitch/schedule.ts +++ b/lib/routes/twitch/schedule.ts @@ -77,7 +77,7 @@ async function handler(ctx) { const streamScheduleData = response.data[1].data; if (!streamScheduleData.user.id) { - throw new InvalidParameterError(`Username does not exist`); + throw new InvalidParameterError('Username does not exist'); } const displayName = channelShellData.userOrError.displayName; diff --git a/lib/routes/twitch/video.ts b/lib/routes/twitch/video.ts index ef3be9eebd8c..0e7efb9700cb 100644 --- a/lib/routes/twitch/video.ts +++ b/lib/routes/twitch/video.ts @@ -83,7 +83,7 @@ async function handler(ctx) { const channelVideoShelvesQueryData = response.data[0].data; if (!channelVideoShelvesQueryData.user.id) { - throw new InvalidParameterError(`Username does not exist`); + throw new InvalidParameterError('Username does not exist'); } const displayName = channelVideoShelvesQueryData.user.displayName; diff --git a/lib/routes/twitter/api/web-api/gql-id-resolver.ts b/lib/routes/twitter/api/web-api/gql-id-resolver.ts index 9c2067aceba7..aac492bf1106 100644 --- a/lib/routes/twitter/api/web-api/gql-id-resolver.ts +++ b/lib/routes/twitter/api/web-api/gql-id-resolver.ts @@ -68,7 +68,7 @@ export async function resolveQueryIds(): Promise> { try { const parsed = typeof cached === 'string' ? JSON.parse(cached) : cached; if (parsed && typeof parsed === 'object' && Object.keys(parsed).length > 0) { - logger.debug(`twitter gql-id-resolver: using cached query IDs`); + logger.debug('twitter gql-id-resolver: using cached query IDs'); return { ...fallbackIds, ...parsed }; } } catch { diff --git a/lib/routes/twitter/home-latest.ts b/lib/routes/twitter/home-latest.ts index a9d4e9abefc5..6a0ff63751b8 100644 --- a/lib/routes/twitter/home-latest.ts +++ b/lib/routes/twitter/home-latest.ts @@ -54,8 +54,8 @@ async function handler(ctx) { } return { - title: `Twitter following timeline`, - link: `https://x.com/home`, + title: 'Twitter following timeline', + link: 'https://x.com/home', // description: userInfo?.description, item: utils.ProcessFeed(ctx, { data, diff --git a/lib/routes/twitter/home.ts b/lib/routes/twitter/home.ts index 4879e767e785..c4f1a94e3cb9 100644 --- a/lib/routes/twitter/home.ts +++ b/lib/routes/twitter/home.ts @@ -54,8 +54,8 @@ async function handler(ctx) { } return { - title: `Twitter following timeline`, - link: `https://x.com/home`, + title: 'Twitter following timeline', + link: 'https://x.com/home', // description: userInfo?.description, item: utils.ProcessFeed(ctx, { data, diff --git a/lib/routes/twitter/trends.ts b/lib/routes/twitter/trends.ts index 214082213e09..426bca1600e9 100644 --- a/lib/routes/twitter/trends.ts +++ b/lib/routes/twitter/trends.ts @@ -33,7 +33,7 @@ async function handler(ctx) { return { title: `Twitter Trends on ${data[0].locations[0].name}`, - link: `https://x.com/i/trends`, + link: 'https://x.com/i/trends', item: trends .filter((t) => !t.promoted_content) .map((t) => ({ diff --git a/lib/routes/twitter/utils.ts b/lib/routes/twitter/utils.ts index c9fef81ab2b5..e1de97426f14 100644 --- a/lib/routes/twitter/utils.ts +++ b/lib/routes/twitter/utils.ts @@ -101,7 +101,7 @@ const ProcessFeed = (ctx, { data = [] }, params = {}) => { } if (bestVideo && bestVideo.url) { - const gifAutoPlayAttr = media.type === 'animated_gif' ? `autoplay loop muted webkit-playsinline playsinline` : ''; + const gifAutoPlayAttr = media.type === 'animated_gif' ? 'autoplay loop muted webkit-playsinline playsinline' : ''; if (!readable) { content += '
'; } @@ -131,12 +131,12 @@ const ProcessFeed = (ctx, { data = [] }, params = {}) => { default: originalImg = getOriginalImg(media.media_url_https); if (!readable) { - content += `
`; + content += '
'; } if (addLinkForPics) { content += ``; } - content += `= 0) { content += ` width="${widthOfPics}"`; style += `width: ${widthOfPics}px;`; @@ -150,7 +150,7 @@ const ProcessFeed = (ctx, { data = [] }, params = {}) => { } content += ` style="${style}" ${readable ? 'hspace="4" vspace="8"' : ''} src="${originalImg}">`; if (addLinkForPics) { - content += ``; + content += ''; } break; } @@ -180,7 +180,7 @@ const ProcessFeed = (ctx, { data = [] }, params = {}) => { let originalImg; switch (media.type) { case 'video': - content = formatVideo(media, `width="0" height="0"`); + content = formatVideo(media, 'width="0" height="0"'); break; case 'photo': @@ -218,7 +218,7 @@ const ProcessFeed = (ctx, { data = [] }, params = {}) => { quote += `
`; quote += `
`; } else { - quote += `

`; + quote += '

'; } if (readable) { @@ -230,20 +230,20 @@ const ProcessFeed = (ctx, { data = [] }, params = {}) => { } if (authorNameBold) { - quote += ``; + quote += ''; } quote += author.name; if (authorNameBold) { - quote += ``; + quote += ''; } if (readable) { - quote += ``; + quote += ''; } - quote += `: `; + quote += ': '; quote += formatText(quoteData); if (!readable) { @@ -261,14 +261,14 @@ const ProcessFeed = (ctx, { data = [] }, params = {}) => { } if (showTimestampInDescription) { quote += '
' + parseDate(quoteData.created_at); - quote += ``; + quote += ''; if (readable) { quote += `
`; } } if (readable) { - quote += `
`; + quote += ''; } quote += ''; } @@ -316,11 +316,11 @@ const ProcessFeed = (ctx, { data = [] }, params = {}) => { description += ``; } if (authorNameBold) { - description += ``; + description += ''; } description += originalItem.user?.name; if (authorNameBold) { - description += ``; + description += ''; } if (readable) { description += ''; @@ -334,11 +334,11 @@ const ProcessFeed = (ctx, { data = [] }, params = {}) => { description += ``; } if (authorNameBold) { - description += ``; + description += ''; } description += item.user?.name; if (authorNameBold) { - description += ``; + description += ''; } if (readable) { description += ''; @@ -358,16 +358,16 @@ const ProcessFeed = (ctx, { data = [] }, params = {}) => { description += ``; } if (authorNameBold) { - description += ``; + description += ''; } description += item.user?.name; if (authorNameBold) { - description += ``; + description += ''; } if (readable) { - description += ``; + description += ''; } - description += `: `; + description += ': '; } if (item.in_reply_to_screen_name) { description += showEmojiForRetweetAndReply ? '↩️ ' : showSymbolForRetweetAndReply ? 'Re ' : ''; @@ -384,7 +384,7 @@ const ProcessFeed = (ctx, { data = [] }, params = {}) => { if (showTimestampInDescription) { if (readable) { - description += `
`; + description += '
'; } description += `${parseDate(item.created_at)}`; } diff --git a/lib/routes/twreporter/newest.ts b/lib/routes/twreporter/newest.ts index eb65efd6e41a..2b362e10af1a 100644 --- a/lib/routes/twreporter/newest.ts +++ b/lib/routes/twreporter/newest.ts @@ -29,8 +29,8 @@ export const route: Route = { }; async function handler() { - const base = `https://www.twreporter.org`; - const url = `https://go-api.twreporter.org/v2/index_page`; + const base = 'https://www.twreporter.org'; + const url = 'https://go-api.twreporter.org/v2/index_page'; const res = await ofetch(url); const list = res.data.latest_section; const out = await Promise.all( @@ -45,7 +45,7 @@ async function handler() { ); return { - title: `報導者 | 最新`, + title: '報導者 | 最新', link: base, item: out, }; diff --git a/lib/routes/txks/news.ts b/lib/routes/txks/news.ts index dae83a9ccdcd..34f8654a523e 100644 --- a/lib/routes/txks/news.ts +++ b/lib/routes/txks/news.ts @@ -101,7 +101,7 @@ export const route: Route = { { title: '全国通信专业技术人员职业水平考试动态', source: ['www.txks.org.cn/index/work', 'www.txks.org.cn'], - target: `/news`, + target: '/news', }, ], example: '/txks/news', diff --git a/lib/routes/typora/changelog-dev.ts b/lib/routes/typora/changelog-dev.ts index 6859758d58ad..d93afcf226ff 100644 --- a/lib/routes/typora/changelog-dev.ts +++ b/lib/routes/typora/changelog-dev.ts @@ -50,7 +50,7 @@ async function handler() { }); return { - title: `Typora Changelog - Dev`, + title: 'Typora Changelog - Dev', link: currentUrl, description: 'Typora Changelog', item: items, diff --git a/lib/routes/uber/blog.ts b/lib/routes/uber/blog.ts index aea54a2c92c6..3dc01134128d 100644 --- a/lib/routes/uber/blog.ts +++ b/lib/routes/uber/blog.ts @@ -85,7 +85,7 @@ async function handler() { ); return { - title: `Uber Engineering Blog`, + title: 'Uber Engineering Blog', link: rootURL + '/blog/engineering', description: 'The technology behind Uber Engineering', item: result, diff --git a/lib/routes/upc/jsj.ts b/lib/routes/upc/jsj.ts index 1dc8d9461b71..75319585802b 100644 --- a/lib/routes/upc/jsj.ts +++ b/lib/routes/upc/jsj.ts @@ -92,9 +92,9 @@ async function handler(ctx) { ); return { - title: HEAD[type] + `-计算机科学与技术学院`, + title: HEAD[type] + '-计算机科学与技术学院', link, - description: HEAD[type] + `-计算机科学与技术学院`, + description: HEAD[type] + '-计算机科学与技术学院', item: out, }; } diff --git a/lib/routes/upc/main.ts b/lib/routes/upc/main.ts index ea41372a8013..e19ebeb77155 100644 --- a/lib/routes/upc/main.ts +++ b/lib/routes/upc/main.ts @@ -88,9 +88,9 @@ async function handler(ctx) { ); return { - title: HEAD[type] + `-中国石油大学(华东)`, + title: HEAD[type] + '-中国石油大学(华东)', link, - description: HEAD[type] + `-中国石油大学(华东)`, + description: HEAD[type] + '-中国石油大学(华东)', item: out, }; } diff --git a/lib/routes/uraaka-joshi/uraaka-joshi.ts b/lib/routes/uraaka-joshi/uraaka-joshi.ts index 1aef1cf8d76b..4d97470fa286 100644 --- a/lib/routes/uraaka-joshi/uraaka-joshi.ts +++ b/lib/routes/uraaka-joshi/uraaka-joshi.ts @@ -22,8 +22,8 @@ export const route: Route = { }; async function handler() { - const link = `https://www.uraaka-joshi.com/`; - const title = `裏垢女子まとめ`; + const link = 'https://www.uraaka-joshi.com/'; + const title = '裏垢女子まとめ'; const browser = await puppeteer(); diff --git a/lib/routes/usenix/usenix.ts b/lib/routes/usenix/usenix.ts index 8eff3387f781..e994b8a4b9d5 100644 --- a/lib/routes/usenix/usenix.ts +++ b/lib/routes/usenix/usenix.ts @@ -22,7 +22,7 @@ export const route: Route = { maintainers: ['ZeddYu'], handler, url: 'usenix.org/conferences/all', - description: `Return results from 2020`, + description: 'Return results from 2020', }; async function handler() { diff --git a/lib/routes/v2ex/xna.ts b/lib/routes/v2ex/xna.ts index b37a94e17ddd..befd869aaa8b 100644 --- a/lib/routes/v2ex/xna.ts +++ b/lib/routes/v2ex/xna.ts @@ -52,9 +52,9 @@ async function handler(ctx) { }); return { - title: `V2EX-xna`, + title: 'V2EX-xna', link: pageUrl, - description: `V2EX-xna`, + description: 'V2EX-xna', item: items, }; } diff --git a/lib/routes/vimeo/category.ts b/lib/routes/vimeo/category.ts index f590fdab456e..7d19c8bdf157 100644 --- a/lib/routes/vimeo/category.ts +++ b/lib/routes/vimeo/category.ts @@ -79,7 +79,7 @@ async function handler(ctx) { item: vimeojs.map((item) => ({ title: item.name, description: renderDescription({ - videoUrl: item.uri.replace(`/videos`, ''), + videoUrl: item.uri.replace('/videos', ''), vdescription: item.description || '', }), pubDate: parseDate(item.created_time), diff --git a/lib/routes/vimeo/channel.ts b/lib/routes/vimeo/channel.ts index eb34fd65bbd1..8fd2baf825a1 100644 --- a/lib/routes/vimeo/channel.ts +++ b/lib/routes/vimeo/channel.ts @@ -42,7 +42,7 @@ async function handler(ctx) { }, }); const page2 = - channel === `bestoftheyear` + channel === 'bestoftheyear' ? await got({ method: 'get', url: `${url}/page:2/sort:date/format:detail`, diff --git a/lib/routes/visionias/daily-news-summary.ts b/lib/routes/visionias/daily-news-summary.ts index c4b1eed8afa6..6f749e25d833 100644 --- a/lib/routes/visionias/daily-news-summary.ts +++ b/lib/routes/visionias/daily-news-summary.ts @@ -40,15 +40,15 @@ async function handler(): Promise { language: 'en', item: items, image: `${baseUrl}/current-affairs/images/news-today-logo.svg`, - icon: `https://cdn.visionias.in/new-system-assets/images/home_page/home/vision-logo-footer.png`, - logo: `https://cdn.visionias.in/new-system-assets/images/home_page/home/vision-logo-footer.png`, + icon: 'https://cdn.visionias.in/new-system-assets/images/home_page/home/vision-logo-footer.png', + logo: 'https://cdn.visionias.in/new-system-assets/images/home_page/home/vision-logo-footer.png', allowEmpty: true, }; } function processNews(page) { const $ = load(page); - const items = $(`#quiz-start div[x-data="{ isExpanded: false }"]`) + const items = $('#quiz-start div[x-data="{ isExpanded: false }"]') .toArray() .map((item) => { const title = $(item).find('a>h5').text().trim(); diff --git a/lib/routes/visionias/monthly-magazine.ts b/lib/routes/visionias/monthly-magazine.ts index e8bbef7ae6a2..25b6e3d05d95 100644 --- a/lib/routes/visionias/monthly-magazine.ts +++ b/lib/routes/visionias/monthly-magazine.ts @@ -40,15 +40,15 @@ async function handler(): Promise { language: 'en', item: items, image: `${baseUrl}/current-affairs/images/news-today-logo.svg`, - icon: `https://cdn.visionias.in/new-system-assets/images/home_page/home/vision-logo-footer.png`, - logo: `https://cdn.visionias.in/new-system-assets/images/home_page/home/vision-logo-footer.png`, + icon: 'https://cdn.visionias.in/new-system-assets/images/home_page/home/vision-logo-footer.png', + logo: 'https://cdn.visionias.in/new-system-assets/images/home_page/home/vision-logo-footer.png', allowEmpty: true, }; } async function processNews(page) { const $ = load(page); - const divItems = $(`#monthly-table-of-content>div`).toArray(); + const divItems = $('#monthly-table-of-content>div').toArray(); const linkItems = divItems.flatMap((item) => { const maintitle = $(item).find('button>div:nth-child(2) div.text-left').text().trim(); return $(item) diff --git a/lib/routes/visionias/news-today.ts b/lib/routes/visionias/news-today.ts index 5c8d67bee89a..41a3f667cc9e 100644 --- a/lib/routes/visionias/news-today.ts +++ b/lib/routes/visionias/news-today.ts @@ -66,8 +66,8 @@ async function handler(ctx): Promise { language: 'en', item: items, image: `${baseUrl}/current-affairs/images/news-today-logo.svg`, - icon: `https://cdn.visionias.in/new-system-assets/images/home_page/home/vision-logo-footer.png`, - logo: `https://cdn.visionias.in/new-system-assets/images/home_page/home/vision-logo-footer.png`, + icon: 'https://cdn.visionias.in/new-system-assets/images/home_page/home/vision-logo-footer.png', + logo: 'https://cdn.visionias.in/new-system-assets/images/home_page/home/vision-logo-footer.png', allowEmpty: true, }; } @@ -75,7 +75,7 @@ async function handler(ctx): Promise { async function processCurrentNews(currentUrl) { const response = await ofetch(`${baseUrl}${currentUrl}`); const $ = load(response); - const items = $(`#table-of-content > ul > li > a`) + const items = $('#table-of-content > ul > li > a') .toArray() .map((item) => { const link = $(item).attr('href'); diff --git a/lib/routes/visionias/weekly-focus.ts b/lib/routes/visionias/weekly-focus.ts index bcf73b69f035..fe0ee3148171 100644 --- a/lib/routes/visionias/weekly-focus.ts +++ b/lib/routes/visionias/weekly-focus.ts @@ -51,8 +51,8 @@ async function handler(ctx): Promise { language: 'en', item: itemsPromise.map((item) => (item.status === 'fulfilled' ? item.value : { title: 'Error Parse News' })), image: `${baseUrl}/current-affairs/images/weekly-focus-logo.svg`, - icon: `https://cdn.visionias.in/new-system-assets/images/home_page/home/vision-logo-footer.png`, - logo: `https://cdn.visionias.in/new-system-assets/images/home_page/home/vision-logo-footer.png`, + icon: 'https://cdn.visionias.in/new-system-assets/images/home_page/home/vision-logo-footer.png', + logo: 'https://cdn.visionias.in/new-system-assets/images/home_page/home/vision-logo-footer.png', allowEmpty: true, }; } diff --git a/lib/routes/wechat/mp.ts b/lib/routes/wechat/mp.ts index d080dc708873..b54d935aead9 100755 --- a/lib/routes/wechat/mp.ts +++ b/lib/routes/wechat/mp.ts @@ -48,7 +48,7 @@ async function handler(ctx) { const list = JSONresponse.data.appmsg_list; const $ = load(HTMLresponse.data); // 标题,另外差一个菜单标题!求助 - const mptitle = $('div.articles_header').find('a').text() + `|` + $('div.articles_header > h2.rich_media_title').text(); + const mptitle = $('div.articles_header').find('a').text() + '|' + $('div.articles_header > h2.rich_media_title').text(); const articledata = await Promise.all( list.map((item) => { const single = { diff --git a/lib/routes/wechat/msgalbum.ts b/lib/routes/wechat/msgalbum.ts index 327057356930..3f6d8d7f659d 100644 --- a/lib/routes/wechat/msgalbum.ts +++ b/lib/routes/wechat/msgalbum.ts @@ -21,7 +21,8 @@ export const route: Route = { name: '公众号文章话题 Tag', maintainers: ['MisteryMonster'], handler, - description: `一些公众号(如看理想)会在微信文章里添加 Tag ,点入 Tag 的链接如 \`https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzA3MDM3NjE5NQ==&action=getalbum&album_id=1375870284640911361\`,其中\`biz\` 为 \`MzA3MDM3NjE5NQ==\`,\`aid\` 为 \`1375870284640911361\`。`, + description: + '一些公众号(如看理想)会在微信文章里添加 Tag ,点入 Tag 的链接如 `https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzA3MDM3NjE5NQ==&action=getalbum&album_id=1375870284640911361`,其中`biz` 为 `MzA3MDM3NjE5NQ==`,`aid` 为 `1375870284640911361`。', }; async function handler(ctx) { @@ -34,7 +35,7 @@ async function handler(ctx) { }); const $ = load(HTMLresponse.data); const list = $('li').toArray(); - const mptitle = $('.album__author-name').text() + `|` + $('.album__label-title').text(); + const mptitle = $('.album__author-name').text() + '|' + $('.album__label-title').text(); const articledata = await Promise.all( list.map((item) => { const link = $(item).attr('data-link').replace('http://', 'https://'); diff --git a/lib/routes/weibo/friends.ts b/lib/routes/weibo/friends.ts index dbc04bf3780d..255d0fe0ce9d 100644 --- a/lib/routes/weibo/friends.ts +++ b/lib/routes/weibo/friends.ts @@ -67,13 +67,13 @@ async function handler(ctx) { } const uid = await cache.tryGet( - `weibo:friends:login-user`, + 'weibo:friends:login-user', async () => { const _r = await got({ method: 'get', url: 'https://m.weibo.cn/api/config', headers: { - Referer: `https://m.weibo.cn/`, + Referer: 'https://m.weibo.cn/', Cookie: config.weibo.cookies, ...weiboUtils.apiHeaders, }, @@ -112,7 +112,7 @@ async function handler(ctx) { method: 'get', url: 'https://m.weibo.cn/feed/friends', headers: { - Referer: `https://m.weibo.cn/`, + Referer: 'https://m.weibo.cn/', Cookie: config.weibo.cookies, ...weiboUtils.apiHeaders, }, @@ -156,7 +156,7 @@ async function handler(ctx) { return weiboUtils.sinaimgTvax({ title, - link: `https://weibo.com`, + link: 'https://weibo.com', item: resultItems, }); } diff --git a/lib/routes/weibo/group.ts b/lib/routes/weibo/group.ts index 80f6573735a8..4c52d814abf3 100644 --- a/lib/routes/weibo/group.ts +++ b/lib/routes/weibo/group.ts @@ -68,7 +68,7 @@ async function handler(ctx) { method: 'get', url: `https://m.weibo.cn/feed/group?gid=${gid}`, headers: { - Referer: `https://m.weibo.cn/`, + Referer: 'https://m.weibo.cn/', Cookie: config.weibo.cookies, ...weiboUtils.apiHeaders, }, diff --git a/lib/routes/weibo/utils.ts b/lib/routes/weibo/utils.ts index f33e283157bb..5923d6935d44 100644 --- a/lib/routes/weibo/utils.ts +++ b/lib/routes/weibo/utils.ts @@ -312,8 +312,8 @@ const weiboUtils = { // 处理转发的微博 if (status.retweeted_status) { html += readable - ? `
` - : `
- 转发 `; + ? '
' + : '
- 转发 '; if (!status.retweeted_status.user) { // 当转发的微博被删除时user为null status.retweeted_status.user = { @@ -335,10 +335,10 @@ const weiboUtils = { html += `
原博:https://weibo.com/${status.retweeted_status.user.id}/${status.retweeted_status.bid}`; } if (showTimestampInDescription) { - html += `
` + new Date(status.retweeted_status.created_at).toLocaleString() + ``; + html += '
' + new Date(status.retweeted_status.created_at).toLocaleString() + ''; } if (readable) { - html += `
`; + html += '
'; } html += '
'; @@ -548,7 +548,7 @@ const weiboUtils = { }); if (response.data && response.data.data) { const comments = response.data.data; - itemDesc += `
`; + itemDesc += '
'; itemDesc += '

热门评论

'; for (const comment of comments) { itemDesc += '

'; diff --git a/lib/routes/wikinews/index.ts b/lib/routes/wikinews/index.ts index 1ccb16ab88dc..53b20f1e640c 100644 --- a/lib/routes/wikinews/index.ts +++ b/lib/routes/wikinews/index.ts @@ -28,7 +28,7 @@ export const route: Route = { name: '最新新闻', maintainers: ['KotoriK'], handler, - description: `根据维基新闻的[sitemap](https://zh.wikinews.org/wiki/Special:%E6%96%B0%E9%97%BB%E8%AE%A2%E9%98%85)获取新闻全文。目前仅支持中文维基新闻。`, + description: '根据维基新闻的[sitemap](https://zh.wikinews.org/wiki/Special:%E6%96%B0%E9%97%BB%E8%AE%A2%E9%98%85)获取新闻全文。目前仅支持中文维基新闻。', }; async function handler() { diff --git a/lib/routes/wise/pair.tsx b/lib/routes/wise/pair.tsx index 0338a02cc980..228c82db0ff3 100644 --- a/lib/routes/wise/pair.tsx +++ b/lib/routes/wise/pair.tsx @@ -53,7 +53,7 @@ export const route: Route = { name: 'FX Pair Yesterday', maintainers: ['HenryQW'], handler, - description: `Refer to [the list of supported currencies](https://wise.com/tools/exchange-rate-alerts/).`, + description: 'Refer to [the list of supported currencies](https://wise.com/tools/exchange-rate-alerts/).', }; async function handler(ctx) { @@ -108,7 +108,7 @@ async function handler(ctx) { return { title: `${source} to ${target} by Wise`, link, - description: `Exchange Rate from Wise`, + description: 'Exchange Rate from Wise', item: [single], }; } diff --git a/lib/routes/wizfile/index.ts b/lib/routes/wizfile/index.ts index 81e82eef44d3..8d9cd87a3c39 100644 --- a/lib/routes/wizfile/index.ts +++ b/lib/routes/wizfile/index.ts @@ -60,7 +60,7 @@ async function handler() { }); return { - title: `WziFile - 更新日志`, + title: 'WziFile - 更新日志', link: currentUrl, item: items, }; diff --git a/lib/routes/wmpvp/index.ts b/lib/routes/wmpvp/index.ts index ea8b3e959422..844ef7e11a34 100644 --- a/lib/routes/wmpvp/index.ts +++ b/lib/routes/wmpvp/index.ts @@ -63,7 +63,7 @@ async function handler(ctx) { return { title: `完美世界电竞 - ${TYPE_MAP[type]} 资讯`, - link: `https://news.wmpvp.com/`, + link: 'https://news.wmpvp.com/', item: items, }; } diff --git a/lib/routes/wogem/index.ts b/lib/routes/wogem/index.ts index edbebb315186..38479ec9f20d 100644 --- a/lib/routes/wogem/index.ts +++ b/lib/routes/wogem/index.ts @@ -14,7 +14,7 @@ export const route: Route = { path: '/:page?', maintainers: ['sk22'], categories: ['other'], - description: `Pass in the name of the php file, e.g. \`angebote\` for \`/de/angebote.php\`\`.`, + description: 'Pass in the name of the php file, e.g. `angebote` for `/de/angebote.php``.', parameters: { page: 'Page name, e.g. `angebote` for `angebote.php. Defaults to `angebote`', }, diff --git a/lib/routes/xaut/index.ts b/lib/routes/xaut/index.ts index 395cd3be3279..c9dc5b92b93a 100644 --- a/lib/routes/xaut/index.ts +++ b/lib/routes/xaut/index.ts @@ -66,7 +66,7 @@ async function handler(ctx) { // 源链接 link: 'http://www.xaut.edu.cn', // 源说明 - description: `西安理工大学官网-` + dic_title[category], + description: '西安理工大学官网-' + dic_title[category], // 遍历此前获取的数据 item: await Promise.all( list.map((item) => diff --git a/lib/routes/xaut/jwc.ts b/lib/routes/xaut/jwc.ts index 0bfc7b8381a4..0183c7a719d9 100644 --- a/lib/routes/xaut/jwc.ts +++ b/lib/routes/xaut/jwc.ts @@ -70,7 +70,7 @@ async function handler(ctx) { // 源链接 link: rootUrl, // 源说明 - description: `西安理工大学教务处-` + dic_title[category], + description: '西安理工大学教务处-' + dic_title[category], // 遍历此前获取的数据 item: await Promise.all( list.map((item) => diff --git a/lib/routes/xaut/rsc.ts b/lib/routes/xaut/rsc.ts index 3c1af4ed9ad5..cec018b79442 100644 --- a/lib/routes/xaut/rsc.ts +++ b/lib/routes/xaut/rsc.ts @@ -69,7 +69,7 @@ async function handler(ctx) { // 源链接 link: 'http://renshichu.xaut.edu.cn', // 源说明 - description: `西安理工大学人事处-` + dic_title[category], + description: '西安理工大学人事处-' + dic_title[category], // 遍历此前获取的数据 item: await Promise.all( list.map((item) => diff --git a/lib/routes/xiaoheihe/add2cart.ts b/lib/routes/xiaoheihe/add2cart.ts index d6c5b5c36b97..79a9d42e9d1e 100644 --- a/lib/routes/xiaoheihe/add2cart.ts +++ b/lib/routes/xiaoheihe/add2cart.ts @@ -57,7 +57,7 @@ async function handler(ctx) { return { title: `小黑盒 ${platform.toUpperCase()} 喜加一`, - link: `https://xiaoheihe.cn`, + link: 'https://xiaoheihe.cn', item: items, }; } diff --git a/lib/routes/xiaoheihe/discount.ts b/lib/routes/xiaoheihe/discount.ts index df1aa9ebf9ae..6a1622ea92af 100644 --- a/lib/routes/xiaoheihe/discount.ts +++ b/lib/routes/xiaoheihe/discount.ts @@ -139,7 +139,7 @@ async function handler(ctx) { return { title: `小黑盒 ${platformInfo.desc} 游戏折扣`, - link: `https://xiaoheihe.cn`, + link: 'https://xiaoheihe.cn', item: items, }; } diff --git a/lib/routes/xiaoheihe/news.ts b/lib/routes/xiaoheihe/news.ts index cddb0f3bb6a3..5740b4c3c685 100644 --- a/lib/routes/xiaoheihe/news.ts +++ b/lib/routes/xiaoheihe/news.ts @@ -23,7 +23,7 @@ export const route: Route = { }; async function handler() { - const feedUrl = calculate(`https://api.xiaoheihe.cn/bbs/app/feeds/news?os_type=web&app=heybox&client_type=mobile&version=999.0.3&x_client_type=web&x_os_type=Mac&x_app=heybox&heybox_id=-1&appid=900018355&offset=0&limit=20`); + const feedUrl = calculate('https://api.xiaoheihe.cn/bbs/app/feeds/news?os_type=web&app=heybox&client_type=mobile&version=999.0.3&x_client_type=web&x_os_type=Mac&x_app=heybox&heybox_id=-1&appid=900018355&offset=0&limit=20'); const response = await got({ method: 'get', url: feedUrl, @@ -55,8 +55,8 @@ async function handler() { ); return { - title: `小黑盒游戏新闻`, - link: `https://xiaoheihe.cn`, + title: '小黑盒游戏新闻', + link: 'https://xiaoheihe.cn', item: items, }; } diff --git a/lib/routes/xiaoheihe/user.ts b/lib/routes/xiaoheihe/user.ts index d708a51bc39d..d19838935db1 100644 --- a/lib/routes/xiaoheihe/user.ts +++ b/lib/routes/xiaoheihe/user.ts @@ -64,7 +64,7 @@ async function handler(ctx) { return { title: `${username} 的动态`, - link: `https://xiaoheihe.cn`, + link: 'https://xiaoheihe.cn', item: items, }; } diff --git a/lib/routes/xiaohongshu/util.ts b/lib/routes/xiaohongshu/util.ts index dcd23dd56e40..dec7726735b7 100644 --- a/lib/routes/xiaohongshu/util.ts +++ b/lib/routes/xiaohongshu/util.ts @@ -151,9 +151,9 @@ const getBoard = (url, cache) => const formatText = (text) => text.replaceAll(/(\r\n|\r|\n)/g, '
').replaceAll('\t', ' '); // tag_list.id has nothing to do with its url -const formatTagList = (tagList) => tagList.reduce((acc, item) => acc + `#${item.name} `, ``); +const formatTagList = (tagList) => tagList.reduce((acc, item) => acc + `#${item.name} `, ''); -const formatImageList = (imageList) => imageList.reduce((acc, item) => acc + `
`, ``); +const formatImageList = (imageList) => imageList.reduce((acc, item) => acc + `
`, ''); const formatNote = (url, note) => ({ title: note.title, diff --git a/lib/routes/xunhupay/index.ts b/lib/routes/xunhupay/index.ts index 59b965b642ab..a9ad383df916 100644 --- a/lib/routes/xunhupay/index.ts +++ b/lib/routes/xunhupay/index.ts @@ -32,8 +32,8 @@ async function handler() { return await buildData({ link, url: link, - title: `%title%`, - description: `%description%`, + title: '%title%', + description: '%description%', params: { title: '博客', description: '虎皮椒-博客', diff --git a/lib/routes/yande/namespace.ts b/lib/routes/yande/namespace.ts index 83371c10c93b..f6511722b0e5 100644 --- a/lib/routes/yande/namespace.ts +++ b/lib/routes/yande/namespace.ts @@ -3,6 +3,6 @@ import type { Namespace } from '@/types'; export const namespace: Namespace = { name: 'yande.re', url: 'yande.re', - description: `yande post`, + description: 'yande post', lang: 'en', }; diff --git a/lib/routes/yicai/utils.ts b/lib/routes/yicai/utils.ts index 2623c800881a..ed148f1b8c5a 100644 --- a/lib/routes/yicai/utils.ts +++ b/lib/routes/yicai/utils.ts @@ -16,7 +16,7 @@ const ProcessItems = async (apiUrl, tryGet) => { const items = response.data.map((item) => ({ title: item.NewsTitle, - link: item.url.startsWith('http') ? item.url : `${rootUrl}${item.AppID === 0 ? `/vip` : ''}${item.url}`, + link: item.url.startsWith('http') ? item.url : `${rootUrl}${item.AppID === 0 ? '/vip' : ''}${item.url}`, author: item.NewsAuthor || item.NewsSource || item.CreaterName, pubDate: timezone(parseDate(item.CreateDate), +8), category: [item.ChannelName], diff --git a/lib/routes/ymgal/game.tsx b/lib/routes/ymgal/game.tsx index eb09deb7d09f..3efecc38d1bd 100644 --- a/lib/routes/ymgal/game.tsx +++ b/lib/routes/ymgal/game.tsx @@ -59,7 +59,7 @@ async function handler() { }); return { - title: `月幕 Galgame - 本月新作`, + title: '月幕 Galgame - 本月新作', link: `${host}/release-list/${year}/${month}`, description: '月幕 Galgame - 本月新作', item: items, diff --git a/lib/routes/youtube/channel.ts b/lib/routes/youtube/channel.ts index fa53b06c6d87..bf077a4c8f5c 100644 --- a/lib/routes/youtube/channel.ts +++ b/lib/routes/youtube/channel.ts @@ -63,7 +63,7 @@ async function handler(ctx) { const filterShorts = filterShortsStr === null || filterShortsStr === '' || filterShortsStr === 'true'; if (!utils.isYouTubeChannelId(id)) { - throw new InvalidParameterError(`Invalid YouTube channel ID. \nYou may want to use /youtube/user/:id instead.`); + throw new InvalidParameterError('Invalid YouTube channel ID. \nYou may want to use /youtube/user/:id instead.'); } const isJsonFeed = ctx.req.query('format') === 'json'; diff --git a/lib/routes/yystv/docs.ts b/lib/routes/yystv/docs.ts index 836dfe958a00..7912ff20badc 100644 --- a/lib/routes/yystv/docs.ts +++ b/lib/routes/yystv/docs.ts @@ -31,7 +31,7 @@ export const route: Route = { }; async function handler() { - const url = `https://www.yystv.cn/docs`; + const url = 'https://www.yystv.cn/docs'; const response = await ofetch(url); const $ = load(response); @@ -62,7 +62,7 @@ async function handler() { return { title: '游研社-' + $('title').text(), - link: `https://www.yystv.cn/docs`, + link: 'https://www.yystv.cn/docs', item: items, }; } diff --git a/lib/routes/zagg/new-arrivals.tsx b/lib/routes/zagg/new-arrivals.tsx index b3fe344d74c2..94659cacaa24 100644 --- a/lib/routes/zagg/new-arrivals.tsx +++ b/lib/routes/zagg/new-arrivals.tsx @@ -21,7 +21,7 @@ export const route: Route = { name: 'New Arrivals', maintainers: ['EthanWng97'], handler, - description: `For instance, in \`https://www.zagg.com/en_us/new-arrivals?brand=164&cat=3038%2C3041\`, the query is \`brand=164&cat=3038%2C3041\``, + description: 'For instance, in `https://www.zagg.com/en_us/new-arrivals?brand=164&cat=3038%2C3041`, the query is `brand=164&cat=3038%2C3041`', }; async function handler(ctx) { diff --git a/lib/routes/zaobao/other.ts b/lib/routes/zaobao/other.ts index 02b0aa05d8ed..6f07777fe683 100644 --- a/lib/routes/zaobao/other.ts +++ b/lib/routes/zaobao/other.ts @@ -12,7 +12,8 @@ export const route: Route = { name: '其他栏目', maintainers: ['shunf4'], handler, - description: `除了上面两个兼容规则之外,联合早报网站里所有页面形如 [https://www.zaobao.com/lifestyle/health](https://www.zaobao.com/lifestyle/health) 这样的栏目都能被这个规则解析到,早报的大部分栏目都是这个样式的。你可以测试之后再订阅。`, + description: + '除了上面两个兼容规则之外,联合早报网站里所有页面形如 [https://www.zaobao.com/lifestyle/health](https://www.zaobao.com/lifestyle/health) 这样的栏目都能被这个规则解析到,早报的大部分栏目都是这个样式的。你可以测试之后再订阅。', }; async function handler(ctx) { diff --git a/lib/routes/zaozao/article.ts b/lib/routes/zaozao/article.ts index 861b10a0ef8a..18887aa26598 100644 --- a/lib/routes/zaozao/article.ts +++ b/lib/routes/zaozao/article.ts @@ -35,7 +35,7 @@ async function handler(ctx) { method: 'put', url: `https://e.zaozao.run/article/page/${type}`, headers: { - Referer: `https://www.zaozao.run/`, + Referer: 'https://www.zaozao.run/', }, body: JSON.stringify({ pageNo: 1, @@ -51,9 +51,9 @@ async function handler(ctx) { const { data } = response.data; return { - title: `前端早早聊 - 文章`, + title: '前端早早聊 - 文章', link: `https://www.zaozao.run/article/${type}`, - description: `前端早早聊 - 文章`, + description: '前端早早聊 - 文章', item: data.map((item) => ({ title: item.title, link: item.url, diff --git a/lib/routes/zhihu/check-cookie.ts b/lib/routes/zhihu/check-cookie.ts index 6d0938d92ede..f68c255135fe 100644 --- a/lib/routes/zhihu/check-cookie.ts +++ b/lib/routes/zhihu/check-cookie.ts @@ -18,9 +18,9 @@ async function handler() { }; } - const response = await ofetch(`https://www.zhihu.com/api/v4/me?include=is_realname`, { + const response = await ofetch('https://www.zhihu.com/api/v4/me?include=is_realname', { headers: { - Referer: `https://www.zhihu.com/`, + Referer: 'https://www.zhihu.com/', Cookie: cookie as string, }, }); diff --git a/lib/routes/zhihu/hot.ts b/lib/routes/zhihu/hot.ts index d76011596295..87eac28d0ef2 100644 --- a/lib/routes/zhihu/hot.ts +++ b/lib/routes/zhihu/hot.ts @@ -31,7 +31,7 @@ export const route: Route = { async function handler(ctx) { const category = ctx.req.param('category'); if (category) { - ctx.set('redirect', `/zhihu/hot`); + ctx.set('redirect', '/zhihu/hot'); return null; } @@ -39,7 +39,7 @@ async function handler(ctx) { const response = await got({ method: 'get', - url: `https://api.zhihu.com/topstory/hot-lists/total?limit=10&reverse_order=0`, + url: 'https://api.zhihu.com/topstory/hot-lists/total?limit=10&reverse_order=0', headers: { Cookie: cookie, }, @@ -56,8 +56,8 @@ async function handler(ctx) { }); return { - title: `知乎热榜`, - link: `https://www.zhihu.com/hot`, + title: '知乎热榜', + link: 'https://www.zhihu.com/hot', item: items, }; } diff --git a/lib/routes/zhihu/timeline.ts b/lib/routes/zhihu/timeline.ts index 0dd5454411d4..5d85afc3570f 100644 --- a/lib/routes/zhihu/timeline.ts +++ b/lib/routes/zhihu/timeline.ts @@ -39,7 +39,7 @@ async function handler(ctx) { } const response = await got({ method: 'get', - url: `https://www.zhihu.com/api/v3/moments`, + url: 'https://www.zhihu.com/api/v3/moments', headers: { Cookie: cookie, }, @@ -145,8 +145,8 @@ async function handler(ctx) { }); return { - title: `知乎关注动态`, - link: `https://www.zhihu.com/follow`, + title: '知乎关注动态', + link: 'https://www.zhihu.com/follow', item: out, }; } diff --git a/lib/routes/zhuwang/index.ts b/lib/routes/zhuwang/index.ts index f530a238e931..80500f5bd396 100644 --- a/lib/routes/zhuwang/index.ts +++ b/lib/routes/zhuwang/index.ts @@ -63,7 +63,7 @@ async function handler() { }); return { - title: `全国今日生猪价格`, + title: '全国今日生猪价格', desription: '中国养猪网猪价频道是中国猪价权威平台,提供每日猪评,猪价和行情分析,并且预测猪价和分析每天的猪价排行。', link: baseUrl, item: priceItems, diff --git a/lib/routes/zju/list.ts b/lib/routes/zju/list.ts index 4e86f28a0d37..32a498370e61 100644 --- a/lib/routes/zju/list.ts +++ b/lib/routes/zju/list.ts @@ -26,7 +26,7 @@ export const route: Route = { async function handler(ctx) { const type = ctx.req.param('type') ?? 'xs'; - const link = host + type + `/list.htm`; + const link = host + type + '/list.htm'; const response = await got({ method: 'get', url: link, @@ -77,7 +77,7 @@ async function handler(ctx) { }) ); return { - title: `浙江大学` + $('ul.submenu .selected').text(), + title: '浙江大学' + $('ul.submenu .selected').text(), link, item: out, }; diff --git a/lib/routes/zxcs/novel.ts b/lib/routes/zxcs/novel.ts index 6c5d19c65d95..30d33eb3d4c3 100644 --- a/lib/routes/zxcs/novel.ts +++ b/lib/routes/zxcs/novel.ts @@ -52,7 +52,7 @@ export const route: Route = { async function handler(ctx) { const { type } = ctx.req.param(); - const baseUrl = `https://www.zxcs.info`; + const baseUrl = 'https://www.zxcs.info'; const link = `${baseUrl}/${type}`; const response = await ofetch(link); const $ = load(response); diff --git a/lib/setup.test.ts b/lib/setup.test.ts index c9834ab957ac..6779f93901e5 100644 --- a/lib/setup.test.ts +++ b/lib/setup.test.ts @@ -26,7 +26,7 @@ ${script} }; const server = setupServer( - http.post(`https://api.openai.mock/v1/chat/completions`, () => + http.post('https://api.openai.mock/v1/chat/completions', () => HttpResponse.json({ choices: [ { @@ -37,12 +37,12 @@ const server = setupServer( ], }) ), - http.get(`http://rsshub.test/config`, () => + http.get('http://rsshub.test/config', () => HttpResponse.json({ UA: 'test', }) ), - http.get(`http://rsshub.test/buildData`, () => + http.get('http://rsshub.test/buildData', () => HttpResponse.text(`

  • @@ -58,7 +58,7 @@ const server = setupServer(
`) ), - http.get(`https://mp.weixin.qq.com/rsshub_test/appMsg`, () => + http.get('https://mp.weixin.qq.com/rsshub_test/appMsg', () => HttpResponse.text( genWeChatMpPage( ` @@ -83,7 +83,7 @@ window.ip_wording = { ) ) ), - http.get(`https://mp.weixin.qq.com/rsshub_test/original_empty`, () => + http.get('https://mp.weixin.qq.com/rsshub_test/original_empty', () => HttpResponse.text( ` @@ -102,10 +102,10 @@ var msg_source_url = "https://mp.weixin.qq.com/rsshub_test/fake"; ` ) ), - http.get(`https://mp.weixin.qq.com/rsshub_test/original_source`, () => + http.get('https://mp.weixin.qq.com/rsshub_test/original_source', () => HttpResponse.text( genWeChatMpPage( - `original content`, + 'original content', ` var item_show_type = "0"; var real_item_show_type = "0"; @@ -115,7 +115,7 @@ var msg_source_url = "https://mp.weixin.qq.com/rsshub_test/fake";` ) ) ), - http.get(`https://mp.weixin.qq.com/rsshub_test/original_long`, () => + http.get('https://mp.weixin.qq.com/rsshub_test/original_long', () => HttpResponse.text( genWeChatMpPage( 'long-content-'.repeat(10), @@ -128,7 +128,7 @@ var msg_source_url = "https://mp.weixin.qq.com/rsshub_test/fake";` ) ) ), - http.get(`https://mp.weixin.qq.com/rsshub_test/img`, () => + http.get('https://mp.weixin.qq.com/rsshub_test/img', () => HttpResponse.text( genWeChatMpPage('fake_description', [ ` @@ -150,7 +150,7 @@ window.picture_page_info_list = [ ]) ) ), - http.get(`https://mp.weixin.qq.com/rsshub_test/audio`, () => + http.get('https://mp.weixin.qq.com/rsshub_test/audio', () => HttpResponse.text( genWeChatMpPage('fake_description', [ ` @@ -175,7 +175,7 @@ window.cgiData = { ]) ) ), - http.get(`https://mp.weixin.qq.com/rsshub_test/video`, () => + http.get('https://mp.weixin.qq.com/rsshub_test/video', () => HttpResponse.text( genWeChatMpPage( 'fake_description', @@ -188,7 +188,7 @@ var ct = "${1_636_626_300}"; ) ) ), - http.get(`https://mp.weixin.qq.com/rsshub_test/fallback`, () => + http.get('https://mp.weixin.qq.com/rsshub_test/fallback', () => HttpResponse.text( genWeChatMpPage( 'fake_description', @@ -201,14 +201,14 @@ var ct = "${1_636_626_300}"; ) ) ), - http.get(`https://mp.weixin.qq.com/s/rsshub_test`, () => HttpResponse.redirect(`https://mp.weixin.qq.com/rsshub_test/fallback`)), - http.get(`https://mp.weixin.qq.com/s`, ({ request }) => { + http.get('https://mp.weixin.qq.com/s/rsshub_test', () => HttpResponse.redirect('https://mp.weixin.qq.com/rsshub_test/fallback')), + http.get('https://mp.weixin.qq.com/s', ({ request }) => { const url = new URL(request.url); if (url.searchParams.get('__biz') === 'rsshub_test' && url.searchParams.get('mid') === '1' && url.searchParams.get('idx') === '1' && url.searchParams.get('sn') === '1') { - return HttpResponse.redirect(`https://mp.weixin.qq.com/rsshub_test/fallback`); + return HttpResponse.redirect('https://mp.weixin.qq.com/rsshub_test/fallback'); } }), - http.get(`https://mp.weixin.qq.com/mp/rsshub_test/waf`, () => + http.get('https://mp.weixin.qq.com/mp/rsshub_test/waf', () => HttpResponse.text( ` @@ -236,8 +236,8 @@ var ct = "${1_636_626_300}"; ` ) ), - http.get(`https://mp.weixin.qq.com/s/rsshub_test_hit_waf`, () => HttpResponse.redirect(`https://mp.weixin.qq.com/mp/rsshub_test/waf`)), - http.get(`https://mp.weixin.qq.com/s/unknown_page`, () => + http.get('https://mp.weixin.qq.com/s/rsshub_test_hit_waf', () => HttpResponse.redirect('https://mp.weixin.qq.com/mp/rsshub_test/waf')), + http.get('https://mp.weixin.qq.com/s/unknown_page', () => HttpResponse.text( ` @@ -253,7 +253,7 @@ Unknown paragraph ` ) ), - http.get(`https://mp.weixin.qq.com/s/deleted_page`, () => + http.get('https://mp.weixin.qq.com/s/deleted_page', () => HttpResponse.text( ` @@ -269,17 +269,17 @@ Unknown paragraph ` ) ), - http.get(`https://mp.weixin.qq.com/s/rsshub_test_redirect_no_location`, () => HttpResponse.text('', { status: 302 })), - http.get(`https://mp.weixin.qq.com/s/rsshub_test_recursive_redirect`, () => HttpResponse.redirect(`https://mp.weixin.qq.com/s/rsshub_test_recursive_redirect`)), - http.get(`http://rsshub.test/headers`, ({ request }) => HttpResponse.json(Object.fromEntries(request.headers.entries()))), - http.post(`http://rsshub.test/form-post`, async ({ request }) => { + http.get('https://mp.weixin.qq.com/s/rsshub_test_redirect_no_location', () => HttpResponse.text('', { status: 302 })), + http.get('https://mp.weixin.qq.com/s/rsshub_test_recursive_redirect', () => HttpResponse.redirect('https://mp.weixin.qq.com/s/rsshub_test_recursive_redirect')), + http.get('http://rsshub.test/headers', ({ request }) => HttpResponse.json(Object.fromEntries(request.headers.entries()))), + http.post('http://rsshub.test/form-post', async ({ request }) => { const formData = await request.formData(); return HttpResponse.json({ test: formData.get('test'), req: { headers: Object.fromEntries(request.headers.entries()) }, }); }), - http.post(`http://rsshub.test/json-post`, async ({ request }) => { + http.post('http://rsshub.test/json-post', async ({ request }) => { const jsonData = (await request.json()) as { test: string; }; @@ -287,7 +287,7 @@ Unknown paragraph test: jsonData?.test, }); }), - http.get(`http://rsshub.test/rss`, () => HttpResponse.text('')) + http.get('http://rsshub.test/rss', () => HttpResponse.text('')) ); server.listen({ onUnhandledRequest: 'bypass' }); diff --git a/lib/utils/common-config.charset.test.ts b/lib/utils/common-config.charset.test.ts index 29b02d9b2fa7..008141d66cab 100644 --- a/lib/utils/common-config.charset.test.ts +++ b/lib/utils/common-config.charset.test.ts @@ -30,7 +30,7 @@ describe('common-config charset', () => { const data = await buildData({ link: 'http://rsshub.test/buildData', url: 'http://rsshub.test/buildData', - title: `%title%`, + title: '%title%', params: { title: 'buildData', }, diff --git a/lib/utils/common-config.test.ts b/lib/utils/common-config.test.ts index 7cac7f5a6793..8acb8ebd855a 100644 --- a/lib/utils/common-config.test.ts +++ b/lib/utils/common-config.test.ts @@ -43,7 +43,7 @@ describe('index', () => { const data = await configUtils({ link: 'http://rsshub.test/buildData', url: 'http://rsshub.test/buildData', - title: `%title%`, + title: '%title%', params: { title: 'buildData', }, diff --git a/lib/utils/got.test.ts b/lib/utils/got.test.ts index 9f6a891b6f24..5b2195f7ca54 100644 --- a/lib/utils/got.test.ts +++ b/lib/utils/got.test.ts @@ -15,7 +15,7 @@ describe('got', () => { const requestRun = vi.fn(); const { default: server } = await import('@/setup.test'); server.use( - http.get(`http://rsshub.test/retry-test`, () => { + http.get('http://rsshub.test/retry-test', () => { requestRun(); return HttpResponse.error(); }) diff --git a/lib/utils/proxy/unify-proxy.ts b/lib/utils/proxy/unify-proxy.ts index f4c17bbab702..a28f90b42699 100644 --- a/lib/utils/proxy/unify-proxy.ts +++ b/lib/utils/proxy/unify-proxy.ts @@ -47,7 +47,7 @@ const unifyProxy = (proxyUri: Config['proxyUri'] | string, proxyObj: Config['pro if (Number.parseInt(proxyObj.port)) { proxyUrlHandler.port = proxyObj.port; } else { - logger.warn(`PROXY_PORT is not a number, ignoring`); + logger.warn('PROXY_PORT is not a number, ignoring'); } } else { logger.warn('PROXY_PORT is not set, leaving proxy agent to determine'); diff --git a/scripts/workflow/build-routes.ts b/scripts/workflow/build-routes.ts index 97411284fb65..284a39c2d5b8 100644 --- a/scripts/workflow/build-routes.ts +++ b/scripts/workflow/build-routes.ts @@ -108,12 +108,12 @@ fs.mkdirSync(buildDir, { recursive: true }); // For Worker build, only output routes-worker.js with filtered namespaces // For regular build, output all files if (isWorkerBuild) { - fs.writeFileSync(path.join(__dirname, '../../assets/build/routes-worker.js'), `export default ${JSON.stringify(namespacesToProcess, null, 2)}`.replaceAll(/"module": "(.*)"\n/g, `"module": $1\n`)); + fs.writeFileSync(path.join(__dirname, '../../assets/build/routes-worker.js'), `export default ${JSON.stringify(namespacesToProcess, null, 2)}`.replaceAll(/"module": "(.*)"\n/g, '"module": $1\n')); } else { fs.writeFileSync(path.join(__dirname, '../../assets/build/radar-rules.json'), JSON.stringify(radar, null, 2)); fs.writeFileSync(path.join(__dirname, '../../assets/build/radar-rules.js'), `(${toSource(radar)})`); fs.writeFileSync(path.join(__dirname, '../../assets/build/maintainers.json'), JSON.stringify(maintainers, null, 2)); fs.writeFileSync(path.join(__dirname, '../../assets/build/routes.json'), JSON.stringify(namespaces, null, 2)); - fs.writeFileSync(path.join(__dirname, '../../assets/build/routes.js'), `export default ${JSON.stringify(namespaces, null, 2)}`.replaceAll(/"module": "(.*)"\n/g, `"module": $1\n`)); + fs.writeFileSync(path.join(__dirname, '../../assets/build/routes.js'), `export default ${JSON.stringify(namespaces, null, 2)}`.replaceAll(/"module": "(.*)"\n/g, '"module": $1\n')); fs.writeFileSync(path.join(__dirname, '../../assets/build/route-paths.ts'), routePathsType); } From 6c8b0b4ad15113c4b5fb3896a4a4ea631cfdb6e8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Apr 2026 23:32:43 +0800 Subject: [PATCH 173/439] chore(deps-dev): bump the vitest group with 2 updates (#21729) Bumps the vitest group with 2 updates: [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) and [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Updates `@vitest/coverage-v8` from 4.0.9 to 4.1.4 - [Release notes](https://github.com/vitest-dev/vitest/releases) - [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.4/packages/coverage-v8) Updates `vitest` from 4.0.9 to 4.1.4 - [Release notes](https://github.com/vitest-dev/vitest/releases) - [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.4/packages/vitest) --- updated-dependencies: - dependency-name: "@vitest/coverage-v8" dependency-version: 4.1.4 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: vitest - dependency-name: vitest dependency-version: 4.1.4 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: vitest ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 4 +- pnpm-lock.yaml | 213 +++++++++++++++++++++++-------------------------- 2 files changed, 101 insertions(+), 116 deletions(-) diff --git a/package.json b/package.json index 1a9fcd140d85..ccac2d9d3c37 100644 --- a/package.json +++ b/package.json @@ -172,7 +172,7 @@ "@typescript-eslint/eslint-plugin": "8.58.2", "@typescript-eslint/parser": "8.58.2", "@vercel/nft": "1.5.0", - "@vitest/coverage-v8": "4.0.9", + "@vitest/coverage-v8": "4.1.4", "discord-api-types": "0.38.46", "domhandler": "6.0.1", "eslint": "10.2.0", @@ -201,7 +201,7 @@ "typescript": "5.9.3", "unified": "11.0.5", "vite-tsconfig-paths": "6.1.1", - "vitest": "4.0.9", + "vitest": "4.1.4", "wrangler": "4.82.2", "yaml-eslint-parser": "2.0.0" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cd83e334ef1b..3c69e57119dd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -375,8 +375,8 @@ importers: specifier: 1.5.0 version: 1.5.0(rollup@4.60.1) '@vitest/coverage-v8': - specifier: 4.0.9 - version: 4.0.9(vitest@4.0.9(@edge-runtime/vm@3.2.0)(@types/debug@4.1.13)(@types/node@25.6.0)(jiti@2.6.1)(jsdom@29.0.2(@noble/hashes@2.0.1))(msw@2.13.3(@types/node@25.6.0)(typescript@5.9.3))(tsx@4.21.0)(yaml@2.8.3)) + specifier: 4.1.4 + version: 4.1.4(vitest@4.1.4) discord-api-types: specifier: 0.38.46 version: 0.38.46 @@ -462,8 +462,8 @@ importers: specifier: 6.1.1 version: 6.1.1(typescript@5.9.3)(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)) vitest: - specifier: 4.0.9 - version: 4.0.9(@edge-runtime/vm@3.2.0)(@types/debug@4.1.13)(@types/node@25.6.0)(jiti@2.6.1)(jsdom@29.0.2(@noble/hashes@2.0.1))(msw@2.13.3(@types/node@25.6.0)(typescript@5.9.3))(tsx@4.21.0)(yaml@2.8.3) + specifier: 4.1.4 + version: 4.1.4(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.4)(jsdom@29.0.2(@noble/hashes@2.0.1))(msw@2.13.3(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)) wrangler: specifier: 4.82.2 version: 4.82.2(@cloudflare/workers-types@4.20260414.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10) @@ -2969,43 +2969,43 @@ packages: engines: {node: '>=20'} hasBin: true - '@vitest/coverage-v8@4.0.9': - resolution: {integrity: sha512-70oyhP+Q0HlWBIeGSP74YBw5KSjYhNgSCQjvmuQFciMqnyF36WL2cIkcT7XD85G4JPmBQitEMUsx+XMFv2AzQA==} + '@vitest/coverage-v8@4.1.4': + resolution: {integrity: sha512-x7FptB5oDruxNPDNY2+S8tCh0pcq7ymCe1gTHcsp733jYjrJl8V1gMUlVysuCD9Kz46Xz9t1akkv08dPcYDs1w==} peerDependencies: - '@vitest/browser': 4.0.9 - vitest: 4.0.9 + '@vitest/browser': 4.1.4 + vitest: 4.1.4 peerDependenciesMeta: '@vitest/browser': optional: true - '@vitest/expect@4.0.9': - resolution: {integrity: sha512-C2vyXf5/Jfj1vl4DQYxjib3jzyuswMi/KHHVN2z+H4v16hdJ7jMZ0OGe3uOVIt6LyJsAofDdaJNIFEpQcrSTFw==} + '@vitest/expect@4.1.4': + resolution: {integrity: sha512-iPBpra+VDuXmBFI3FMKHSFXp3Gx5HfmSCE8X67Dn+bwephCnQCaB7qWK2ldHa+8ncN8hJU8VTMcxjPpyMkUjww==} - '@vitest/mocker@4.0.9': - resolution: {integrity: sha512-PUyaowQFHW+9FKb4dsvvBM4o025rWMlEDXdWRxIOilGaHREYTi5Q2Rt9VCgXgPy/hHZu1LeuXtrA/GdzOatP2g==} + '@vitest/mocker@4.1.4': + resolution: {integrity: sha512-R9HTZBhW6yCSGbGQnDnH3QHfJxokKN4KB+Yvk9Q1le7eQNYwiCyKxmLmurSpFy6BzJanSLuEUDrD+j97Q+ZLPg==} peerDependencies: msw: ^2.4.9 - vite: ^6.0.0 || ^7.0.0-0 + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: msw: optional: true vite: optional: true - '@vitest/pretty-format@4.0.9': - resolution: {integrity: sha512-Hor0IBTwEi/uZqB7pvGepyElaM8J75pYjrrqbC8ZYMB9/4n5QA63KC15xhT+sqHpdGWfdnPo96E8lQUxs2YzSQ==} + '@vitest/pretty-format@4.1.4': + resolution: {integrity: sha512-ddmDHU0gjEUyEVLxtZa7xamrpIefdEETu3nZjWtHeZX4QxqJ7tRxSteHVXJOcr8jhiLoGAhkK4WJ3WqBpjx42A==} - '@vitest/runner@4.0.9': - resolution: {integrity: sha512-aF77tsXdEvIJRkj9uJZnHtovsVIx22Ambft9HudC+XuG/on1NY/bf5dlDti1N35eJT+QZLb4RF/5dTIG18s98w==} + '@vitest/runner@4.1.4': + resolution: {integrity: sha512-xTp7VZ5aXP5ZJrn15UtJUWlx6qXLnGtF6jNxHepdPHpMfz/aVPx+htHtgcAL2mDXJgKhpoo2e9/hVJsIeFbytQ==} - '@vitest/snapshot@4.0.9': - resolution: {integrity: sha512-r1qR4oYstPbnOjg0Vgd3E8ADJbi4ditCzqr+Z9foUrRhIy778BleNyZMeAJ2EjV+r4ASAaDsdciC9ryMy8xMMg==} + '@vitest/snapshot@4.1.4': + resolution: {integrity: sha512-MCjCFgaS8aZz+m5nTcEcgk/xhWv0rEH4Yl53PPlMXOZ1/Ka2VcZU6CJ+MgYCZbcJvzGhQRjVrGQNZqkGPttIKw==} - '@vitest/spy@4.0.9': - resolution: {integrity: sha512-J9Ttsq0hDXmxmT8CUOWUr1cqqAj2FJRGTdyEjSR+NjoOGKEqkEWj+09yC0HhI8t1W6t4Ctqawl1onHgipJve1A==} + '@vitest/spy@4.1.4': + resolution: {integrity: sha512-XxNdAsKW7C+FLydqFJLb5KhJtl3PGCMmYwFRfhvIgxJvLSXhhVI1zM8f1qD3Zg7RCjTSzDVyct6sghs9UEgBEQ==} - '@vitest/utils@4.0.9': - resolution: {integrity: sha512-cEol6ygTzY4rUPvNZM19sDf7zGa35IYTm9wfzkHoT/f5jX10IOY7QleWSOh5T0e3I3WVozwK5Asom79qW8DiuQ==} + '@vitest/utils@4.1.4': + resolution: {integrity: sha512-13QMT+eysM5uVGa1rG4kegGYNp6cnQcsTc67ELFbhNLQO+vgsygtYJx2khvdt4gVQqSSpC/KT5FZZxUpP3Oatw==} '@zone-eu/mailsplit@5.4.8': resolution: {integrity: sha512-eEyACj4JZ7sjzRvy26QhLgKEMWwQbsw1+QZnlLX+/gihcNH07lVPOcnwf5U6UAL7gkc//J3jVd76o/WS+taUiA==} @@ -3100,8 +3100,8 @@ packages: resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} engines: {node: '>=4'} - ast-v8-to-istanbul@0.3.12: - resolution: {integrity: sha512-BRRC8VRZY2R4Z4lFIL35MwNXmwVqBityvOIwETtsCSwvjl0IdgFsy9NhdaA6j74nUdtJJlIypeRhpDam19Wq3g==} + ast-v8-to-istanbul@1.0.0: + resolution: {integrity: sha512-1fSfIwuDICFA4LKkCzRPO7F0hzFf0B7+Xqrl27ynQaa+Rh0e1Es0v6kWHPott3lU10AyAr7oKHa65OppjLn3Rg==} async-mutex@0.3.2: resolution: {integrity: sha512-HuTK7E7MT7jZEh1P9GtRW9+aTWiDWWi9InbZ5hjxrnRa39KS4BW04+xLBhYNS2aXhHUIKZSw3gj4Pn1pj+qGAA==} @@ -3453,6 +3453,9 @@ packages: resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} engines: {node: ^14.18.0 || >=16.10.0} + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + cookie@1.1.1: resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==} engines: {node: '>=18'} @@ -3780,8 +3783,8 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-module-lexer@1.7.0: - resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} + es-module-lexer@2.0.0: + resolution: {integrity: sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==} es5-ext@0.10.64: resolution: {integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==} @@ -4510,10 +4513,6 @@ packages: resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} engines: {node: '>=10'} - istanbul-lib-source-maps@5.0.6: - resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==} - engines: {node: '>=10'} - istanbul-reports@3.2.0: resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} engines: {node: '>=8'} @@ -5254,6 +5253,10 @@ packages: resolution: {integrity: sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==} engines: {node: ^10 || ^12 || >=14} + postcss@8.5.9: + resolution: {integrity: sha512-7a70Nsot+EMX9fFU3064K/kdHWZqGVY+BADLyXc8Dfv+mTLLVl6JzJpPaCZ2kQL9gIJvKXSLMHhqdRRjwQeFtw==} + engines: {node: ^10 || ^12 || >=14} + postgres-array@2.0.0: resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} engines: {node: '>=4'} @@ -5664,8 +5667,8 @@ packages: resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} engines: {node: '>= 0.8'} - std-env@3.10.0: - resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} + std-env@4.0.0: + resolution: {integrity: sha512-zUMPtQ/HBY3/50VbpkupYHbRroTRZJPRLvreamgErJVys0ceuzMkD44J/QjqhHjOzK42GQ3QZIeFG1OYfOtKqQ==} stealthy-require@1.1.1: resolution: {integrity: sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g==} @@ -5802,9 +5805,6 @@ packages: tinybench@2.9.0: resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} - tinyexec@0.3.2: - resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} - tinyexec@1.0.4: resolution: {integrity: sha512-u9r3uZC0bdpGOXtlxUIdwf9pkmvhqJdrVCH9fapQtgy/OeTTMZ1nqH7agtvEfmGui6e1XxjcdrlxvxJvc3sMqw==} engines: {node: '>=18'} @@ -5813,10 +5813,6 @@ packages: resolution: {integrity: sha512-VKS/ZaQhhkKFMANmAOhhXVoIfBXblQxGX1myCQ2faQrfmobMftXeJPcZGp0gS07ocvGJWDLZGyOZDadDBqYIJg==} engines: {node: '>=18'} - tinyglobby@0.2.15: - resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} - engines: {node: '>=12.0.0'} - tinyglobby@0.2.16: resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==} engines: {node: '>=12.0.0'} @@ -6194,24 +6190,27 @@ packages: yaml: optional: true - vitest@4.0.9: - resolution: {integrity: sha512-E0Ja2AX4th+CG33yAFRC+d1wFx2pzU5r6HtG6LiPSE04flaE0qB6YyjSw9ZcpJAtVPfsvZGtJlKWZpuW7EHRxg==} + vitest@4.1.4: + resolution: {integrity: sha512-tFuJqTxKb8AvfyqMfnavXdzfy3h3sWZRWwfluGbkeR7n0HUev+FmNgZ8SDrRBTVrVCjgH5cA21qGbCffMNtWvg==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' - '@types/debug': ^4.1.12 + '@opentelemetry/api': ^1.9.0 '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 - '@vitest/browser-playwright': 4.0.9 - '@vitest/browser-preview': 4.0.9 - '@vitest/browser-webdriverio': 4.0.9 - '@vitest/ui': 4.0.9 + '@vitest/browser-playwright': 4.1.4 + '@vitest/browser-preview': 4.1.4 + '@vitest/browser-webdriverio': 4.1.4 + '@vitest/coverage-istanbul': 4.1.4 + '@vitest/coverage-v8': 4.1.4 + '@vitest/ui': 4.1.4 happy-dom: '*' jsdom: '*' + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: '@edge-runtime/vm': optional: true - '@types/debug': + '@opentelemetry/api': optional: true '@types/node': optional: true @@ -6221,6 +6220,10 @@ packages: optional: true '@vitest/browser-webdriverio': optional: true + '@vitest/coverage-istanbul': + optional: true + '@vitest/coverage-v8': + optional: true '@vitest/ui': optional: true happy-dom: @@ -8581,61 +8584,60 @@ snapshots: - rollup - supports-color - '@vitest/coverage-v8@4.0.9(vitest@4.0.9(@edge-runtime/vm@3.2.0)(@types/debug@4.1.13)(@types/node@25.6.0)(jiti@2.6.1)(jsdom@29.0.2(@noble/hashes@2.0.1))(msw@2.13.3(@types/node@25.6.0)(typescript@5.9.3))(tsx@4.21.0)(yaml@2.8.3))': + '@vitest/coverage-v8@4.1.4(vitest@4.1.4)': dependencies: '@bcoe/v8-coverage': 1.0.2 - '@vitest/utils': 4.0.9 - ast-v8-to-istanbul: 0.3.12 - debug: 4.4.3 + '@vitest/utils': 4.1.4 + ast-v8-to-istanbul: 1.0.0 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 5.0.6 istanbul-reports: 3.2.0 magicast: 0.5.2 - std-env: 3.10.0 + obug: 2.1.1 + std-env: 4.0.0 tinyrainbow: 3.1.0 - vitest: 4.0.9(@edge-runtime/vm@3.2.0)(@types/debug@4.1.13)(@types/node@25.6.0)(jiti@2.6.1)(jsdom@29.0.2(@noble/hashes@2.0.1))(msw@2.13.3(@types/node@25.6.0)(typescript@5.9.3))(tsx@4.21.0)(yaml@2.8.3) - transitivePeerDependencies: - - supports-color + vitest: 4.1.4(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.4)(jsdom@29.0.2(@noble/hashes@2.0.1))(msw@2.13.3(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)) - '@vitest/expect@4.0.9': + '@vitest/expect@4.1.4': dependencies: '@standard-schema/spec': 1.1.0 '@types/chai': 5.2.3 - '@vitest/spy': 4.0.9 - '@vitest/utils': 4.0.9 + '@vitest/spy': 4.1.4 + '@vitest/utils': 4.1.4 chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.0.9(msw@2.13.3(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3))': + '@vitest/mocker@4.1.4(msw@2.13.3(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: - '@vitest/spy': 4.0.9 + '@vitest/spy': 4.1.4 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: msw: 2.13.3(@types/node@25.6.0)(typescript@5.9.3) vite: 7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3) - '@vitest/pretty-format@4.0.9': + '@vitest/pretty-format@4.1.4': dependencies: tinyrainbow: 3.1.0 - '@vitest/runner@4.0.9': + '@vitest/runner@4.1.4': dependencies: - '@vitest/utils': 4.0.9 + '@vitest/utils': 4.1.4 pathe: 2.0.3 - '@vitest/snapshot@4.0.9': + '@vitest/snapshot@4.1.4': dependencies: - '@vitest/pretty-format': 4.0.9 + '@vitest/pretty-format': 4.1.4 + '@vitest/utils': 4.1.4 magic-string: 0.30.21 pathe: 2.0.3 - '@vitest/spy@4.0.9': {} + '@vitest/spy@4.1.4': {} - '@vitest/utils@4.0.9': + '@vitest/utils@4.1.4': dependencies: - '@vitest/pretty-format': 4.0.9 + '@vitest/pretty-format': 4.1.4 + convert-source-map: 2.0.0 tinyrainbow: 3.1.0 '@zone-eu/mailsplit@5.4.8': @@ -8711,7 +8713,7 @@ snapshots: dependencies: tslib: 2.8.1 - ast-v8-to-istanbul@0.3.12: + ast-v8-to-istanbul@1.0.0: dependencies: '@jridgewell/trace-mapping': 0.3.31 estree-walker: 3.0.3 @@ -9030,6 +9032,8 @@ snapshots: consola@3.4.2: {} + convert-source-map@2.0.0: {} + cookie@1.1.1: {} core-js-compat@3.49.0: @@ -9308,7 +9312,7 @@ snapshots: es-errors@1.3.0: optional: true - es-module-lexer@1.7.0: {} + es-module-lexer@2.0.0: {} es5-ext@0.10.64: dependencies: @@ -10265,14 +10269,6 @@ snapshots: make-dir: 4.0.0 supports-color: 7.2.0 - istanbul-lib-source-maps@5.0.6: - dependencies: - '@jridgewell/trace-mapping': 0.3.31 - debug: 4.4.3 - istanbul-lib-coverage: 3.2.2 - transitivePeerDependencies: - - supports-color - istanbul-reports@3.2.0: dependencies: html-escaper: 2.0.2 @@ -11196,6 +11192,12 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + postcss@8.5.9: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + postgres-array@2.0.0: {} postgres-bytea@1.0.1: {} @@ -11746,7 +11748,7 @@ snapshots: statuses@2.0.2: {} - std-env@3.10.0: {} + std-env@4.0.0: {} stealthy-require@1.1.1: {} @@ -11919,17 +11921,10 @@ snapshots: tinybench@2.9.0: {} - tinyexec@0.3.2: {} - tinyexec@1.0.4: {} tinyexec@1.1.1: {} - tinyglobby@0.2.15: - dependencies: - fdir: 6.5.0(picomatch@4.0.4) - picomatch: 4.0.4 - tinyglobby@0.2.16: dependencies: fdir: 6.5.0(picomatch@4.0.4) @@ -12244,7 +12239,7 @@ snapshots: esbuild: 0.27.7 fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 - postcss: 8.5.8 + postcss: 8.5.9 rollup: 4.60.1 tinyglobby: 0.2.16 optionalDependencies: @@ -12254,46 +12249,36 @@ snapshots: tsx: 4.21.0 yaml: 2.8.3 - vitest@4.0.9(@edge-runtime/vm@3.2.0)(@types/debug@4.1.13)(@types/node@25.6.0)(jiti@2.6.1)(jsdom@29.0.2(@noble/hashes@2.0.1))(msw@2.13.3(@types/node@25.6.0)(typescript@5.9.3))(tsx@4.21.0)(yaml@2.8.3): + vitest@4.1.4(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.4)(jsdom@29.0.2(@noble/hashes@2.0.1))(msw@2.13.3(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)): dependencies: - '@vitest/expect': 4.0.9 - '@vitest/mocker': 4.0.9(msw@2.13.3(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)) - '@vitest/pretty-format': 4.0.9 - '@vitest/runner': 4.0.9 - '@vitest/snapshot': 4.0.9 - '@vitest/spy': 4.0.9 - '@vitest/utils': 4.0.9 - debug: 4.4.3 - es-module-lexer: 1.7.0 + '@vitest/expect': 4.1.4 + '@vitest/mocker': 4.1.4(msw@2.13.3(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)) + '@vitest/pretty-format': 4.1.4 + '@vitest/runner': 4.1.4 + '@vitest/snapshot': 4.1.4 + '@vitest/spy': 4.1.4 + '@vitest/utils': 4.1.4 + es-module-lexer: 2.0.0 expect-type: 1.3.0 magic-string: 0.30.21 + obug: 2.1.1 pathe: 2.0.3 picomatch: 4.0.4 - std-env: 3.10.0 + std-env: 4.0.0 tinybench: 2.9.0 - tinyexec: 0.3.2 - tinyglobby: 0.2.15 + tinyexec: 1.1.1 + tinyglobby: 0.2.16 tinyrainbow: 3.1.0 vite: 7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3) why-is-node-running: 2.3.0 optionalDependencies: '@edge-runtime/vm': 3.2.0 - '@types/debug': 4.1.13 + '@opentelemetry/api': 1.9.1 '@types/node': 25.6.0 + '@vitest/coverage-v8': 4.1.4(vitest@4.1.4) jsdom: 29.0.2(@noble/hashes@2.0.1) transitivePeerDependencies: - - jiti - - less - - lightningcss - msw - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - yaml w3c-xmlserializer@5.0.0: dependencies: From cb0e63de6c9ddb249faa8c215b24a1a3219a92ca Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 14 Apr 2026 15:33:50 +0000 Subject: [PATCH 174/439] style: auto format --- lib/routes/kuaidi100/utils.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/routes/kuaidi100/utils.ts b/lib/routes/kuaidi100/utils.ts index b538b6ca1dbb..224195fd566e 100644 --- a/lib/routes/kuaidi100/utils.ts +++ b/lib/routes/kuaidi100/utils.ts @@ -33,21 +33,21 @@ async function getCookie() { for (const e of set_cookie) { // eslint-disable-next-line unicorn/prefer-switch switch (0) { - case e.indexOf('WWWID'): { + case e.indexOf('WWWID'): wwwid = e.split(';')[0]; break; - } - case e.indexOf('csrftoken'): { + + case e.indexOf('csrftoken'): csrf = e.split(';')[0]; break; - } - case e.indexOf('globacsrftoken'): { + + case e.indexOf('globacsrftoken'): globacsrftoken = e.split(';')[0]; break; - } + default: if (e.includes('dasddocTitle')) { dasddocTitl = e.split(';')[0]; From bd2f18c5c7f6b7c0526adce0440f0021cdfe9599 Mon Sep 17 00:00:00 2001 From: Tony Date: Wed, 15 Apr 2026 00:43:31 +0800 Subject: [PATCH 175/439] feat(route): add pixel update bulletins (#21740) --- lib/routes/android/pixel-update-bulletin.ts | 53 +++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 lib/routes/android/pixel-update-bulletin.ts diff --git a/lib/routes/android/pixel-update-bulletin.ts b/lib/routes/android/pixel-update-bulletin.ts new file mode 100644 index 000000000000..ce1e3bfce376 --- /dev/null +++ b/lib/routes/android/pixel-update-bulletin.ts @@ -0,0 +1,53 @@ +import { load } from 'cheerio'; + +import type { Route } from '@/types'; +import ofetch from '@/utils/ofetch'; +import { parseDate } from '@/utils/parse-date'; + +export const route: Route = { + path: '/pixel-update-bulletin', + categories: ['program-update'], + example: '/android/pixel-update-bulletin', + radar: [ + { + source: ['source.android.com/docs/security/bulletin/pixel', 'source.android.com'], + }, + ], + name: 'Pixel Update Bulletins', + maintainers: ['TonyRL'], + handler, + url: 'source.android.com/docs/security/bulletin/pixel', +}; + +async function handler() { + const baseUrl = 'https://source.android.com'; + const link = `${baseUrl}/docs/security/bulletin/pixel`; + + const response = await ofetch(link, { + headers: { + Cookie: 'signin=autosignin; cookies_accepted=true; django_language=en;', + }, + }); + + const $ = load(response); + + const list = $('table tr:has(td:first-child a)') + .toArray() + .map((item) => { + const $item = $(item); + const a = $item.find('td:nth-child(1) a'); + return { + title: `Pixel Update Bulletin ${a.text()}`, + description: $item.find('td:nth-child(2)').html()?.trim(), + link: new URL(a.attr('href')!, baseUrl).href, + pubDate: parseDate($item.find('td:nth-child(3)').text()), + }; + }); + + return { + title: $('head title').text(), + link, + image: $('link[rel="apple-touch-icon"]').attr('href'), + item: list, + }; +} From 1d7f3dc8fcfc02a33f354b5db42cd290301d525a Mon Sep 17 00:00:00 2001 From: Tony Date: Wed, 15 Apr 2026 01:56:50 +0800 Subject: [PATCH 176/439] feat(route): add caicai blog (#21741) * feat(route): add caicai blog * fix: favicon --- lib/routes/caicai/blog.ts | 138 +++++++++++++++++++++++++++++++++ lib/routes/caicai/namespace.ts | 10 +++ 2 files changed, 148 insertions(+) create mode 100644 lib/routes/caicai/blog.ts create mode 100644 lib/routes/caicai/namespace.ts diff --git a/lib/routes/caicai/blog.ts b/lib/routes/caicai/blog.ts new file mode 100644 index 000000000000..bc2426bb666a --- /dev/null +++ b/lib/routes/caicai/blog.ts @@ -0,0 +1,138 @@ +import { load } from 'cheerio'; +import type { Context } from 'hono'; + +import type { Route } from '@/types'; +import cache from '@/utils/cache'; +import ofetch from '@/utils/ofetch'; +import { parseDate } from '@/utils/parse-date'; + +export const route: Route = { + path: '/blog/:lang?', + categories: ['blog'], + example: '/caicai/blog', + parameters: { + lang: { + description: 'Language', + options: [ + { value: 'en', label: 'English' }, + { value: 'zh', label: '中文' }, + ], + default: 'en', + }, + }, + radar: [ + { + source: ['www.caicai.me/blogs'], + }, + { + source: ['www.caicai.me/zh/blogs'], + target: '/blog/zh', + }, + ], + name: 'Blog', + maintainers: ['TonyRL'], + handler, + url: 'www.caicai.me/blogs', +}; + +const baseUrl = 'https://www.caicai.me'; + +const renderAnnotation = (rich) => + rich + .map((t) => { + let s = t.content; + const a = t.annotations; + if (a.code) { + s = `${s}`; + } + if (a.bold) { + s = `${s}`; + } + if (a.italic) { + s = `${s}`; + } + if (a.strikethrough) { + s = `${s}`; + } + if (a.underline) { + s = `${s}`; + } + if (t.href) { + s = `${s}`; + } + return s; + }) + .join(''); + +const renderBlocks = (blocks) => + blocks + .map((b, i) => { + switch (b.type) { + case 'paragraph': + return b.text.length ? `

${renderAnnotation(b.text)}

` : ''; + case 'heading_2': + return b.text.length ? `

${renderAnnotation(b.text)}

` : ''; + case 'heading_3': + return b.text.length ? `

${renderAnnotation(b.text)}

` : ''; + case 'bulleted_list_item': { + if (!b.text.length) { + return ''; + } + const open = blocks[i - 1]?.type === 'bulleted_list_item' ? '' : '
    '; + const close = blocks[i + 1]?.type === 'bulleted_list_item' ? '' : '
'; + return `${open}
  • ${renderAnnotation(b.text)}
  • ${close}`; + } + case 'image': + return ``; + case 'divider': + return '
    '; + default: + return ''; + } + }) + .join(''); + +async function handler(ctx: Context) { + const { lang = 'en' } = ctx.req.param(); + const prefix = lang === 'en' ? '' : `/${lang}`; + const link = `${baseUrl}${prefix}/blogs`; + + const response = await ofetch(link); + const $ = load(response); + + const nextData = JSON.parse($('script#__NEXT_DATA__').text()); + + const list = nextData.props.pageProps.posts.map((post) => ({ + title: post.frontMatter.title, + link: `${baseUrl}${prefix}/blogs/${post.slug}`, + description: post.frontMatter.excerpt, + pubDate: parseDate(post.frontMatter.dateIso), + category: [post.frontMatter.group], + image: new URL(post.frontMatter.cover_image, baseUrl).href, + })); + + const items = await Promise.all( + list.map((item) => + cache.tryGet(item.link, async () => { + const response = await ofetch(item.link); + const $ = load(response); + + const { pageProps } = JSON.parse($('script#__NEXT_DATA__').text()).props; + const blocks = lang === 'en' ? pageProps.blocks : pageProps.chineseBlocks; + + item.description = renderBlocks(blocks); + + return item; + }) + ) + ); + + return { + title: $('head title').text(), + description: $('head meta[name="description"]').attr('content'), + link, + language: lang === 'en' ? ('en' as const) : ('zh-CN' as const), + image: `${baseUrl}/favicon.ico`, + item: items, + }; +} diff --git a/lib/routes/caicai/namespace.ts b/lib/routes/caicai/namespace.ts new file mode 100644 index 000000000000..c1f4d4ad3957 --- /dev/null +++ b/lib/routes/caicai/namespace.ts @@ -0,0 +1,10 @@ +import type { Namespace } from '@/types'; + +export const namespace: Namespace = { + name: 'CaiCai', + url: 'www.caicai.me', + categories: ['blog'], + zh: { + name: 'CaiCai 的博客', + }, +}; From ade10204b6807d843c4c0704804ca47deaeb4da2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Apr 2026 19:38:36 +0800 Subject: [PATCH 177/439] chore(deps-dev): bump @cloudflare/workers-types in the cloudflare group (#21743) Bumps the cloudflare group with 1 update: [@cloudflare/workers-types](https://github.com/cloudflare/workerd). Updates `@cloudflare/workers-types` from 4.20260414.1 to 4.20260415.1 - [Release notes](https://github.com/cloudflare/workerd/releases) - [Changelog](https://github.com/cloudflare/workerd/blob/main/RELEASE.md) - [Commits](https://github.com/cloudflare/workerd/commits) --- updated-dependencies: - dependency-name: "@cloudflare/workers-types" dependency-version: 4.20260415.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: cloudflare ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index ccac2d9d3c37..e00452825cf3 100644 --- a/package.json +++ b/package.json @@ -148,7 +148,7 @@ "@bbob/types": "4.3.1", "@cloudflare/containers": "0.3.0", "@cloudflare/puppeteer": "1.1.0", - "@cloudflare/workers-types": "4.20260414.1", + "@cloudflare/workers-types": "4.20260415.1", "@eslint/eslintrc": "3.3.5", "@eslint/js": "10.0.1", "@oxlint/plugins": "1.60.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3c69e57119dd..ecba7729a277 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -303,8 +303,8 @@ importers: specifier: 1.1.0 version: 1.1.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) '@cloudflare/workers-types': - specifier: 4.20260414.1 - version: 4.20260414.1 + specifier: 4.20260415.1 + version: 4.20260415.1 '@eslint/eslintrc': specifier: 3.3.5 version: 3.3.5 @@ -466,7 +466,7 @@ importers: version: 4.1.4(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.4)(jsdom@29.0.2(@noble/hashes@2.0.1))(msw@2.13.3(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)) wrangler: specifier: 4.82.2 - version: 4.82.2(@cloudflare/workers-types@4.20260414.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10) + version: 4.82.2(@cloudflare/workers-types@4.20260415.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10) yaml-eslint-parser: specifier: 2.0.0 version: 2.0.0 @@ -635,8 +635,8 @@ packages: cpu: [x64] os: [win32] - '@cloudflare/workers-types@4.20260414.1': - resolution: {integrity: sha512-E2wgYT1ywoM1M68nmVpxKdKzXsZm5vOu2plsqUixlK7YIydqsw31dZ+EjwXnAsdEjLaYC6XfsJayil8AEhyaBQ==} + '@cloudflare/workers-types@4.20260415.1': + resolution: {integrity: sha512-9sEq9cZzr4s075U/TfjvdSmiX+u2NMOAIcFcCfd24FDtPfR7Iw3SbuQxkcgtpx/Bvg0au9PmQ0ZJfBaIitG0gw==} '@colors/colors@1.6.0': resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} @@ -6635,7 +6635,7 @@ snapshots: '@cloudflare/workerd-windows-64@1.20260410.1': optional: true - '@cloudflare/workers-types@4.20260414.1': {} + '@cloudflare/workers-types@4.20260415.1': {} '@colors/colors@1.6.0': {} @@ -12361,7 +12361,7 @@ snapshots: '@cloudflare/workerd-linux-arm64': 1.20260410.1 '@cloudflare/workerd-windows-64': 1.20260410.1 - wrangler@4.82.2(@cloudflare/workers-types@4.20260414.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10): + wrangler@4.82.2(@cloudflare/workers-types@4.20260415.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10): dependencies: '@cloudflare/kv-asset-handler': 0.4.2 '@cloudflare/unenv-preset': 2.16.0(unenv@2.0.0-rc.24)(workerd@1.20260410.1) @@ -12372,7 +12372,7 @@ snapshots: unenv: 2.0.0-rc.24 workerd: 1.20260410.1 optionalDependencies: - '@cloudflare/workers-types': 4.20260414.1 + '@cloudflare/workers-types': 4.20260415.1 fsevents: 2.3.3 transitivePeerDependencies: - bufferutil From 3fc659d883884e649686bfc3b2a02e2429a75918 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Apr 2026 19:42:56 +0800 Subject: [PATCH 178/439] chore(deps): bump devenv from `8d558a8` to `07aa7cb` (#21745) Bumps [devenv](https://github.com/cachix/devenv) from `8d558a8` to `07aa7cb`. - [Release notes](https://github.com/cachix/devenv/releases) - [Commits](https://github.com/cachix/devenv/compare/8d558a84fa38242a7f13781670fee1a6a8902b48...07aa7cb4959bdc6d6537b819cc766ab3277fbb59) --- updated-dependencies: - dependency-name: devenv dependency-version: 07aa7cb4959bdc6d6537b819cc766ab3277fbb59 dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 4743c79d3bf6..088108d29e55 100644 --- a/flake.lock +++ b/flake.lock @@ -163,11 +163,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1776080969, - "narHash": "sha256-2uZxF6q0KOIH8tq3r65ZCz7dM+XYP3avtRP8IBq5zYY=", + "lastModified": 1776172467, + "narHash": "sha256-vSzfJ840b56yBC7vFByTfvgXdobnseqmRRdVn72yiC8=", "owner": "cachix", "repo": "devenv", - "rev": "8d558a84fa38242a7f13781670fee1a6a8902b48", + "rev": "07aa7cb4959bdc6d6537b819cc766ab3277fbb59", "type": "github" }, "original": { From 018366027cdc7985ead4f14e2449054e22d98074 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 15 Apr 2026 11:44:44 +0000 Subject: [PATCH 179/439] chore(nix): update dependencies hash to sha256-miyvJu4AKhQVlWea8a8bYN2y0KpXd5ooUmJQpoGioCs= --- flake.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flake.nix b/flake.nix index e8d34ea89381..857c258749dd 100644 --- a/flake.nix +++ b/flake.nix @@ -16,7 +16,7 @@ deps = pkgs.fetchPnpmDeps { pname = "rsshub"; src = ./.; - hash = "sha256-b/SBHeUs+zsKjx3Et/ppNoA1fm8/KGiaHCEvOP+af5I="; + hash = "sha256-miyvJu4AKhQVlWea8a8bYN2y0KpXd5ooUmJQpoGioCs="; fetcherVersion = 2; }; in From 8fe52b1173ff7362b07ce58e4980845990dca76b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Apr 2026 19:50:45 +0800 Subject: [PATCH 180/439] chore(deps): bump hono from 4.12.12 to 4.12.14 (#21744) Bumps [hono](https://github.com/honojs/hono) from 4.12.12 to 4.12.14. - [Release notes](https://github.com/honojs/hono/releases) - [Commits](https://github.com/honojs/hono/compare/v4.12.12...v4.12.14) --- updated-dependencies: - dependency-name: hono dependency-version: 4.12.14 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 34 +++++++++++++++++----------------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index e00452825cf3..8617306ebad7 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,7 @@ "google-play-scraper": "10.1.2", "googleapis": "171.4.0", "header-generator": "2.1.82", - "hono": "4.12.12", + "hono": "4.12.14", "html-to-text": "9.0.5", "http-cookie-agent": "7.0.3", "https-proxy-agent": "9.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ecba7729a277..ca5763555f8e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -45,10 +45,10 @@ importers: version: 6.12.3 '@hono/node-server': specifier: 1.19.14 - version: 1.19.14(hono@4.12.12) + version: 1.19.14(hono@4.12.14) '@hono/zod-openapi': specifier: 1.3.0 - version: 1.3.0(hono@4.12.12)(zod@4.3.6) + version: 1.3.0(hono@4.12.14)(zod@4.3.6) '@jocmp/mercury-parser': specifier: 3.0.7 version: 3.0.7 @@ -81,7 +81,7 @@ importers: version: 0.0.25 '@scalar/hono-api-reference': specifier: 0.10.7 - version: 0.10.7(hono@4.12.12) + version: 0.10.7(hono@4.12.14) '@sentry/node': specifier: 10.48.0 version: 10.48.0(@opentelemetry/exporter-trace-otlp-http@0.214.0(@opentelemetry/api@1.9.1)) @@ -131,8 +131,8 @@ importers: specifier: 2.1.82 version: 2.1.82 hono: - specifier: 4.12.12 - version: 4.12.12 + specifier: 4.12.14 + version: 4.12.14 html-to-text: specifier: 9.0.5 version: 9.0.5 @@ -4252,8 +4252,8 @@ packages: hmacsha1@1.0.0: resolution: {integrity: sha512-4FP6J0oI8jqb6gLLl9tSwVdosWJ/AKSGJ+HwYf6Ixe4MUcEkst4uWzpVQrNOCin0fzTRQbXV8ePheU8WiiDYBw==} - hono@4.12.12: - resolution: {integrity: sha512-p1JfQMKaceuCbpJKAPKVqyqviZdS0eUxH9v82oWo1kb9xjQ5wA6iP3FNVAPDFlz5/p7d45lO+BpSk1tuSZMF4Q==} + hono@4.12.14: + resolution: {integrity: sha512-am5zfg3yu6sqn5yjKBNqhnTX7Cv+m00ox+7jbaKkrLMRJ4rAdldd1xPd/JzbBWspqaQv6RSTrgFN95EsfhC+7w==} engines: {node: '>=16.9.0'} hookable@6.1.0: @@ -7017,21 +7017,21 @@ snapshots: '@types/aws-lambda': 8.10.161 '@types/express': 5.0.6 - '@hono/node-server@1.19.14(hono@4.12.12)': + '@hono/node-server@1.19.14(hono@4.12.14)': dependencies: - hono: 4.12.12 + hono: 4.12.14 - '@hono/zod-openapi@1.3.0(hono@4.12.12)(zod@4.3.6)': + '@hono/zod-openapi@1.3.0(hono@4.12.14)(zod@4.3.6)': dependencies: '@asteasolutions/zod-to-openapi': 8.5.0(zod@4.3.6) - '@hono/zod-validator': 0.7.6(hono@4.12.12)(zod@4.3.6) - hono: 4.12.12 + '@hono/zod-validator': 0.7.6(hono@4.12.14)(zod@4.3.6) + hono: 4.12.14 openapi3-ts: 4.5.0 zod: 4.3.6 - '@hono/zod-validator@0.7.6(hono@4.12.12)(zod@4.3.6)': + '@hono/zod-validator@0.7.6(hono@4.12.14)(zod@4.3.6)': dependencies: - hono: 4.12.12 + hono: 4.12.14 zod: 4.3.6 '@humanfs/core@0.19.1': {} @@ -8116,10 +8116,10 @@ snapshots: '@scalar/helpers@0.4.3': {} - '@scalar/hono-api-reference@0.10.7(hono@4.12.12)': + '@scalar/hono-api-reference@0.10.7(hono@4.12.14)': dependencies: '@scalar/core': 0.5.0 - hono: 4.12.12 + hono: 4.12.14 '@scalar/types@0.8.0': dependencies: @@ -9992,7 +9992,7 @@ snapshots: hmacsha1@1.0.0: {} - hono@4.12.12: {} + hono@4.12.14: {} hookable@6.1.0: {} From ecffcd3d953e88490d64d84093ed0ed5f1300417 Mon Sep 17 00:00:00 2001 From: Tony Date: Thu, 16 Apr 2026 07:11:37 +0800 Subject: [PATCH 181/439] chore: add vouch trust management system --- .github/VOUCHED.td | 16 ++++ .github/workflows/issue-command.yml | 23 ++++++ .github/workflows/lint.yml | 20 +++++ package.json | 8 +- scripts/workflow/vouch/check-pr.mjs | 115 ++++++++++++++++++++++++++++ 5 files changed, 180 insertions(+), 2 deletions(-) create mode 100644 .github/VOUCHED.td create mode 100644 scripts/workflow/vouch/check-pr.mjs diff --git a/.github/VOUCHED.td b/.github/VOUCHED.td new file mode 100644 index 000000000000..846508d128cc --- /dev/null +++ b/.github/VOUCHED.td @@ -0,0 +1,16 @@ +# Vouched contributors for this project. +# +# See https://github.com/mitchellh/vouch for details. +# +# Syntax: +# - One handle per line (without @), sorted alphabetically. +# - Optional platform prefix: platform:username (e.g., github:user). +# - Denounce with minus prefix: -username or -platform:username. +# - Optional details after a space following the handle. +DIYgod +HenryQW +hyoban +NeverBehave +pseudoyu +TonyRL +zhenlonghe diff --git a/.github/workflows/issue-command.yml b/.github/workflows/issue-command.yml index cd19cd68ccdb..9fbd56ad9a3e 100644 --- a/.github/workflows/issue-command.yml +++ b/.github/workflows/issue-command.yml @@ -36,6 +36,29 @@ jobs: token: ${{ secrets.GITHUB_TOKEN }} trigger: '/wip' + vouch-manage: + name: Vouch Manage + if: ${{ startsWith(github.event.comment.body, 'vouch') || startsWith(github.event.comment.body, 'unvouch') || startsWith(github.event.comment.body, 'denounce') }} + runs-on: ubuntu-slim + timeout-minutes: 5 + permissions: + contents: write + issues: write + pull-requests: read + concurrency: + group: vouch-manage + cancel-in-progress: false + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + + - uses: mitchellh/vouch/action/manage-by-issue@c6d80ead49839655b61b422700b7a3bc9d0804a9 # v1.4.2 + with: + issue-id: ${{ github.event.issue.number }} + comment-id: ${{ github.event.comment.id }} + roles: admin,maintain,write + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + test-on-demand: name: Test route on demand if: startsWith(github.event.comment.body, '/test') diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 7deb51f0c4fc..7e7f3994e90e 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -68,3 +68,23 @@ jobs: - uses: actions/labeler@634933edcd8ababfe52f92936142cc22ac488b1b # v6.0.1 with: repo-token: ${{ secrets.GITHUB_TOKEN }} + + vouch-check-pr: + name: Vouch check PR + if: ${{ github.event_name == 'pull_request_target' && github.event.action == 'opened' && github.repository == 'DIYgod/RSSHub' }} + permissions: + contents: read + issues: write + pull-requests: write + runs-on: ubuntu-slim + timeout-minutes: 5 + steps: + - name: Checkout + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + + - name: Check if PR author is denounced + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const { default: checkPr } = await import('${{ github.workspace }}/scripts/workflow/vouch/check-pr.mjs') + await checkPr({ github, context, core }) diff --git a/package.json b/package.json index 8617306ebad7..9f28dd2ab10d 100644 --- a/package.json +++ b/package.json @@ -206,13 +206,17 @@ "yaml-eslint-parser": "2.0.0" }, "lint-staged": { - "!(*.ts|*.tsx|*.js|*.yml)": [ + "!(*.ts|*.tsx|*.js|*.cjs|*.mjs|*.yml)": [ "oxfmt --no-error-on-unmatched-pattern" ], - "*.{ts,tsx,js,yml}": [ + "*.{ts,tsx,js,cjs,mjs}": [ "oxlint --type-aware --fix", "eslint --cache --fix --concurrency auto", "oxfmt --no-error-on-unmatched-pattern" + ], + "*.yml": [ + "eslint --cache --fix --concurrency auto", + "oxfmt --no-error-on-unmatched-pattern" ] }, "engines": { diff --git a/scripts/workflow/vouch/check-pr.mjs b/scripts/workflow/vouch/check-pr.mjs new file mode 100644 index 000000000000..254e8b200bb4 --- /dev/null +++ b/scripts/workflow/vouch/check-pr.mjs @@ -0,0 +1,115 @@ +/** + * @param {{ github: ReturnType, context: typeof import('@actions/github').context, core: typeof import('@actions/core') }} githubScript + * @returns {Promise} + */ +export default async function checkPr({ github, context, core }) { + const author = context.payload.pull_request.user.login; + const prNumber = context.payload.pull_request.number; + + // Skip bots + if (author.endsWith('[bot]')) { + core.info(`Skipping bot: ${author}`); + return; + } + + // Read the VOUCHED.td file via API (no checkout needed) + let content; + try { + const response = await github.rest.repos.getContent({ + owner: context.repo.owner, + repo: context.repo.repo, + path: '.github/VOUCHED.td', + }); + content = Buffer.from(response.data.content, 'base64').toString('utf-8'); + } catch (error) { + if (error.status === 404) { + core.info('No .github/VOUCHED.td file found, skipping check.'); + return; + } + throw error; + } + + // Parse the .td file for vouched and denounced users + const vouched = new Set(); + const denounced = new Map(); + for (const line of content.split('\n')) { + const trimmed = line.trim(); + if (!trimmed || trimmed.startsWith('#')) { + continue; + } + + const isDenounced = trimmed.startsWith('-'); + const rest = isDenounced ? trimmed.slice(1).trim() : trimmed; + if (!rest) { + continue; + } + + const spaceIdx = rest.indexOf(' '); + const handle = spaceIdx === -1 ? rest : rest.slice(0, spaceIdx); + const reason = spaceIdx === -1 ? null : rest.slice(spaceIdx + 1).trim(); + + // Handle platform:username or bare username + // Only match bare usernames or github: prefix (skip other platforms) + const colonIdx = handle.indexOf(':'); + if (colonIdx !== -1) { + const platform = handle.slice(0, colonIdx).toLowerCase(); + if (platform !== 'github') { + continue; + } + } + const username = colonIdx === -1 ? handle : handle.slice(colonIdx + 1); + if (!username) { + continue; + } + + if (isDenounced) { + denounced.set(username.toLowerCase(), reason); + continue; + } + + vouched.add(username.toLowerCase()); + } + + // Check if the author is denounced + const reason = denounced.get(author.toLowerCase()); + if (reason !== undefined) { + // Author is denounced — close the PR + await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: prNumber, + body: 'This pull request has been automatically closed.', + }); + + await github.rest.pulls.update({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: prNumber, + state: 'closed', + }); + + core.info(`Closed PR #${prNumber} from denounced user ${author}`); + return; + } + + // Author is positively vouched — add label + if (!vouched.has(author.toLowerCase())) { + core.info(`User ${author} is not denounced or vouched. Allowing PR.`); + return; + } + + const association = context.payload.pull_request.author_association; + if (association === 'OWNER' || association === 'MEMBER' || association === 'COLLABORATOR') { + core.info(`Skipping vouched label for collaborator ${author} (${association}).`); + return; + } + + await github.rest.issues.addLabels({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: prNumber, + labels: ['vouched'], + }); + + core.info(`Added vouched label to PR #${prNumber} from ${author}`); +} From be85b3ef23e643883472c4683cd6a7add58d60ef Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 15 Apr 2026 23:23:51 +0000 Subject: [PATCH 182/439] Update VOUCHED list https://github.com/DIYgod/RSSHub/issues/21742#issuecomment-4256353788 --- .github/VOUCHED.td | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/VOUCHED.td b/.github/VOUCHED.td index 846508d128cc..280c46e6ae89 100644 --- a/.github/VOUCHED.td +++ b/.github/VOUCHED.td @@ -7,10 +7,11 @@ # - Optional platform prefix: platform:username (e.g., github:user). # - Denounce with minus prefix: -username or -platform:username. # - Optional details after a space following the handle. -DIYgod -HenryQW +-betterandbetterii impersonate as dvorak0, goestav, Kjasn, Loongphy, TonyRL, ttttmr and xbot. https://github.com/DIYgod/RSSHub/commit/9e6f84df79bc9efcfabb0ca0768d7fded6775a1a. +diygod +henryqw hyoban -NeverBehave +neverbehave pseudoyu -TonyRL +tonyrl zhenlonghe From 3aaff74c6d34ffacd0f2a215664d431d03a8efb1 Mon Sep 17 00:00:00 2001 From: Tony Date: Thu, 16 Apr 2026 07:34:07 +0800 Subject: [PATCH 183/439] chore: close PR after denouncing --- .github/workflows/issue-command.yml | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/.github/workflows/issue-command.yml b/.github/workflows/issue-command.yml index 9fbd56ad9a3e..654dfc7b01b5 100644 --- a/.github/workflows/issue-command.yml +++ b/.github/workflows/issue-command.yml @@ -44,14 +44,15 @@ jobs: permissions: contents: write issues: write - pull-requests: read + pull-requests: write concurrency: group: vouch-manage cancel-in-progress: false steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: mitchellh/vouch/action/manage-by-issue@c6d80ead49839655b61b422700b7a3bc9d0804a9 # v1.4.2 + - id: vouch + uses: mitchellh/vouch/action/manage-by-issue@c6d80ead49839655b61b422700b7a3bc9d0804a9 # v1.4.2 with: issue-id: ${{ github.event.issue.number }} comment-id: ${{ github.event.comment.id }} @@ -59,6 +60,25 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Close PR if denounced + if: ${{ github.event.issue.pull_request && steps.vouch.outputs.status == 'denounced' }} + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const prNumber = context.payload.issue.number; + await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: prNumber, + body: 'This pull request has been automatically closed.', + }); + await github.rest.pulls.update({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: prNumber, + state: 'closed', + }); + test-on-demand: name: Test route on demand if: startsWith(github.event.comment.body, '/test') From d79f280c4ba412be817244f82f720ed270ab1bbf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Apr 2026 08:13:44 +0000 Subject: [PATCH 184/439] chore(deps): bump sanitize-html from 2.17.2 to 2.17.3 (#21749) Bumps [sanitize-html](https://github.com/apostrophecms/apostrophe/tree/HEAD/packages/sanitize-html) from 2.17.2 to 2.17.3. - [Changelog](https://github.com/apostrophecms/apostrophe/blob/main/packages/sanitize-html/CHANGELOG.md) - [Commits](https://github.com/apostrophecms/apostrophe/commits/sanitize-html@2.17.3/packages/sanitize-html) --- updated-dependencies: - dependency-name: sanitize-html dependency-version: 2.17.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 38 ++++++++++++++------------------------ 2 files changed, 15 insertions(+), 25 deletions(-) diff --git a/package.json b/package.json index 9f28dd2ab10d..ddba016c78b3 100644 --- a/package.json +++ b/package.json @@ -122,7 +122,7 @@ "rebrowser-puppeteer": "24.8.1", "rfc4648": "1.5.4", "rss-parser": "3.13.0", - "sanitize-html": "2.17.2", + "sanitize-html": "2.17.3", "simplecc-wasm": "1.1.1", "socks-proxy-agent": "10.0.0", "source-map": "0.7.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ca5763555f8e..1a494c6e5423 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -230,8 +230,8 @@ importers: specifier: 3.13.0 version: 3.13.0(patch_hash=afac79a31a3db94c953d49680bc5528468f051957d461e913d2e2dbf5cd22a8d) sanitize-html: - specifier: 2.17.2 - version: 2.17.2 + specifier: 2.17.3 + version: 2.17.3 simplecc-wasm: specifier: 1.1.1 version: 1.1.1 @@ -4932,8 +4932,8 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - nanoid@5.1.7: - resolution: {integrity: sha512-ua3NDgISf6jdwezAheMOk4mbE1LXjm1DfMUDMuJf4AqxLFK3ccGpgWizwa5YV7Yz9EpXwEaWoRXSb/BnV0t5dQ==} + nanoid@5.1.9: + resolution: {integrity: sha512-ZUvP7KeBLe3OZ1ypw6dI/TzYJuvHP77IM4Ry73waSQTLn8/g8rpdjfyVAh7t1/+FjBtG4lCP42MEbDxOsRpBMw==} engines: {node: ^18 || >=20} hasBin: true @@ -5249,12 +5249,8 @@ packages: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} engines: {node: '>=4'} - postcss@8.5.8: - resolution: {integrity: sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==} - engines: {node: ^10 || ^12 || >=14} - - postcss@8.5.9: - resolution: {integrity: sha512-7a70Nsot+EMX9fFU3064K/kdHWZqGVY+BADLyXc8Dfv+mTLLVl6JzJpPaCZ2kQL9gIJvKXSLMHhqdRRjwQeFtw==} + postcss@8.5.10: + resolution: {integrity: sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ==} engines: {node: ^10 || ^12 || >=14} postgres-array@2.0.0: @@ -5542,8 +5538,8 @@ packages: resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} engines: {node: '>=10'} - sanitize-html@2.17.2: - resolution: {integrity: sha512-EnffJUl46VE9uvZ0XeWzObHLurClLlT12gsOk1cHyP2Ol1P0BnBnsXmShlBmWVJM+dKieQI68R0tsPY5m/B+Jg==} + sanitize-html@2.17.3: + resolution: {integrity: sha512-Kn4srCAo2+wZyvCNKCSyB2g8RQ8IkX/gQs2uqoSRNu5t9I2qvUyAVvRDiFUVAiX3N3PNuwStY0eNr+ooBHVWEg==} sax@1.6.0: resolution: {integrity: sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==} @@ -8124,7 +8120,7 @@ snapshots: '@scalar/types@0.8.0': dependencies: '@scalar/helpers': 0.4.3 - nanoid: 5.1.7 + nanoid: 5.1.9 type-fest: 5.5.0 zod: 4.3.6 @@ -10821,7 +10817,7 @@ snapshots: nanoid@3.3.11: {} - nanoid@5.1.7: {} + nanoid@5.1.9: {} napi-postinstall@0.3.4: {} @@ -11186,13 +11182,7 @@ snapshots: pluralize@8.0.0: {} - postcss@8.5.8: - dependencies: - nanoid: 3.3.11 - picocolors: 1.1.1 - source-map-js: 1.2.1 - - postcss@8.5.9: + postcss@8.5.10: dependencies: nanoid: 3.3.11 picocolors: 1.1.1 @@ -11598,14 +11588,14 @@ snapshots: safe-stable-stringify@2.5.0: {} - sanitize-html@2.17.2: + sanitize-html@2.17.3: dependencies: deepmerge: 4.3.1 escape-string-regexp: 4.0.0 htmlparser2: 10.1.0 is-plain-object: 5.0.0 parse-srcset: 1.0.2 - postcss: 8.5.8 + postcss: 8.5.10 sax@1.6.0: {} @@ -12239,7 +12229,7 @@ snapshots: esbuild: 0.27.7 fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 - postcss: 8.5.9 + postcss: 8.5.10 rollup: 4.60.1 tinyglobby: 0.2.16 optionalDependencies: From 73e06a3102f16837f0a812ec006e1ec14be9e5bf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Apr 2026 20:24:02 +0800 Subject: [PATCH 185/439] chore(deps): bump devenv from `07aa7cb` to `2012662` (#21751) Bumps [devenv](https://github.com/cachix/devenv) from `07aa7cb` to `2012662`. - [Release notes](https://github.com/cachix/devenv/releases) - [Commits](https://github.com/cachix/devenv/compare/07aa7cb4959bdc6d6537b819cc766ab3277fbb59...2012662a89ff2ce92044151d7bbf3894eec5620a) --- updated-dependencies: - dependency-name: devenv dependency-version: 2012662a89ff2ce92044151d7bbf3894eec5620a dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 088108d29e55..04df3f087995 100644 --- a/flake.lock +++ b/flake.lock @@ -163,11 +163,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1776172467, - "narHash": "sha256-vSzfJ840b56yBC7vFByTfvgXdobnseqmRRdVn72yiC8=", + "lastModified": 1776271913, + "narHash": "sha256-j/1hNdZSci/jrYEHj3/F24EI/YE8DL0OzfMWZUgpMig=", "owner": "cachix", "repo": "devenv", - "rev": "07aa7cb4959bdc6d6537b819cc766ab3277fbb59", + "rev": "2012662a89ff2ce92044151d7bbf3894eec5620a", "type": "github" }, "original": { From 8529735890600cd5c6d9f678055a82be4954dd77 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 16 Apr 2026 12:25:48 +0000 Subject: [PATCH 186/439] chore(nix): update dependencies hash to sha256-aehV414pbc2t0JsC9Rkbllu9v3Mpw/wmZQo7hvEyX08= --- flake.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flake.nix b/flake.nix index 857c258749dd..46e6aa558c2e 100644 --- a/flake.nix +++ b/flake.nix @@ -16,7 +16,7 @@ deps = pkgs.fetchPnpmDeps { pname = "rsshub"; src = ./.; - hash = "sha256-miyvJu4AKhQVlWea8a8bYN2y0KpXd5ooUmJQpoGioCs="; + hash = "sha256-aehV414pbc2t0JsC9Rkbllu9v3Mpw/wmZQo7hvEyX08="; fetcherVersion = 2; }; in From 82cf0fbeeaf00beca8ca2efd6cdb2407f4557d23 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Apr 2026 20:28:11 +0800 Subject: [PATCH 187/439] chore(deps): bump nixpkgs from `4c1018d` to `4bd9165` (#21752) Bumps [nixpkgs](https://github.com/NixOS/nixpkgs) from `4c1018d` to `4bd9165`. - [Commits](https://github.com/NixOS/nixpkgs/compare/4c1018dae018162ec878d42fec712642d214fdfa...4bd9165a9165d7b5e33ae57f3eecbcb28fb231c9) --- updated-dependencies: - dependency-name: nixpkgs dependency-version: 4bd9165a9165d7b5e33ae57f3eecbcb28fb231c9 dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 04df3f087995..6a12571781be 100644 --- a/flake.lock +++ b/flake.lock @@ -739,11 +739,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1775710090, - "narHash": "sha256-ar3rofg+awPB8QXDaFJhJ2jJhu+KqN/PRCXeyuXR76E=", + "lastModified": 1776169885, + "narHash": "sha256-l/iNYDZ4bGOAFQY2q8y5OAfBBtrDAaPuRQqWaFHVRXM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "4c1018dae018162ec878d42fec712642d214fdfa", + "rev": "4bd9165a9165d7b5e33ae57f3eecbcb28fb231c9", "type": "github" }, "original": { From 9bf423d2b59ca72561c21f11305b4d18dbee5c1a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Apr 2026 12:37:21 +0000 Subject: [PATCH 188/439] chore(deps): bump @scalar/hono-api-reference from 0.10.7 to 0.10.8 (#21750) Bumps [@scalar/hono-api-reference](https://github.com/scalar/scalar/tree/HEAD/integrations/hono) from 0.10.7 to 0.10.8. - [Release notes](https://github.com/scalar/scalar/releases) - [Changelog](https://github.com/scalar/scalar/blob/main/integrations/hono/CHANGELOG.md) - [Commits](https://github.com/scalar/scalar/commits/HEAD/integrations/hono) --- updated-dependencies: - dependency-name: "@scalar/hono-api-reference" dependency-version: 0.10.8 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 44 ++++++++++++++++++++++---------------------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/package.json b/package.json index ddba016c78b3..d81533ba01be 100644 --- a/package.json +++ b/package.json @@ -72,7 +72,7 @@ "@opentelemetry/sdk-trace-base": "2.6.1", "@opentelemetry/semantic-conventions": "1.40.0", "@rss3/sdk": "0.0.25", - "@scalar/hono-api-reference": "0.10.7", + "@scalar/hono-api-reference": "0.10.8", "@sentry/node": "10.48.0", "aes-js": "3.1.2", "cheerio": "1.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1a494c6e5423..c09b40fb9627 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -80,8 +80,8 @@ importers: specifier: 0.0.25 version: 0.0.25 '@scalar/hono-api-reference': - specifier: 0.10.7 - version: 0.10.7(hono@4.12.14) + specifier: 0.10.8 + version: 0.10.8(hono@4.12.14) '@sentry/node': specifier: 10.48.0 version: 10.48.0(@opentelemetry/exporter-trace-otlp-http@0.214.0(@opentelemetry/api@1.9.1)) @@ -2528,26 +2528,26 @@ packages: '@rss3/sdk@0.0.25': resolution: {integrity: sha512-jyXT4YTwefxxRZ0tt5xjbnw8e7zPg2OGdo/0xb+h/7qWnMNhLtWpc95DsYs/1C/I0rIyiDpZBhLI2DieQ9y+tw==} - '@scalar/client-side-rendering@0.1.0': - resolution: {integrity: sha512-SUuLgDmY1mUYOrGB2vpKj2HnYmPibKOewIV0gugv6k/qajE9R88uIj6u0DxAJVOLgihvKdMGyeXsnUs4fTLZYg==} + '@scalar/client-side-rendering@0.1.1': + resolution: {integrity: sha512-ACASA/nQAC6HXQTIkkBlvCFxUN9xfCy3Zdgo75rw8jzUqsxRIpTuucR7r9VW1bO/N4qsgEQumC4hK4ESCMdZmQ==} engines: {node: '>=22'} - '@scalar/core@0.5.0': - resolution: {integrity: sha512-quPUndgBB1fwUkdIgJiCVA3vR6hyCgMYgca9YPI+RwbAB7/H/1otNEKfLBzLVbNllXlGnY4BxmGSft4fUg49jg==} + '@scalar/core@0.5.1': + resolution: {integrity: sha512-LvH4m502KjEICn7d6lG28fU2TT5AIAJN/czpnx1wusLei2EAgVeEfy0Gkr/kQy+lU215fockVngcvOktYb6KrA==} engines: {node: '>=22'} - '@scalar/helpers@0.4.3': - resolution: {integrity: sha512-Gv2V7SFreLx3DltzF2lKXdaJSH5cP1LOyt9PxON1cSWGxkrs3sg93c1taEJsW24E9ckfYXkL5hjCAVLfAN3wQw==} + '@scalar/helpers@0.5.0': + resolution: {integrity: sha512-S7m46UWqngUmDXuihUerNKS58vlUqF/qaXle3QREfc8Xh9wperAKxFmmxrnulAayrcCQ/fTJyGu5oSM2STlxkA==} engines: {node: '>=22'} - '@scalar/hono-api-reference@0.10.7': - resolution: {integrity: sha512-OkOtpMYUchkgMwqJ8M0cgOg5SzMIR4uajhggCWqIZa6b2masLHmS15y2ervEDUZRp0UhEXQWbIJv+6eQJ7KG3g==} + '@scalar/hono-api-reference@0.10.8': + resolution: {integrity: sha512-/8Pfg1ijyiL0gypc85geh7xFl0+iLUQS0tcqrX5cdao7pRO+aiDreMxYOBcRD9MJRD++nFUVYla97nmNwoTRTQ==} engines: {node: '>=22'} peerDependencies: hono: ^4.12.5 - '@scalar/types@0.8.0': - resolution: {integrity: sha512-3GP0eqe+4XR8MyKOSCTly/VRobT3sKoFBX1ZSuuZAlcBROqzRkBSzQ+kloGWqTR60vP9GAwW7SnHo72MdCP0DQ==} + '@scalar/types@0.9.0': + resolution: {integrity: sha512-SJNI2f2ZEsN+Cp7o4rAjPu2nFRFXdSkO1ocG9rzynhJhbMBniHnbkCAe19QT/iHMvSCXfj8J8qDOn2S+TnMymg==} engines: {node: '>=22'} '@scure/base@2.0.0': @@ -8101,25 +8101,25 @@ snapshots: '@rss3/api-core': 0.0.25 '@rss3/api-utils': 0.0.25 - '@scalar/client-side-rendering@0.1.0': + '@scalar/client-side-rendering@0.1.1': dependencies: - '@scalar/types': 0.8.0 + '@scalar/types': 0.9.0 - '@scalar/core@0.5.0': + '@scalar/core@0.5.1': dependencies: - '@scalar/client-side-rendering': 0.1.0 - '@scalar/types': 0.8.0 + '@scalar/client-side-rendering': 0.1.1 + '@scalar/types': 0.9.0 - '@scalar/helpers@0.4.3': {} + '@scalar/helpers@0.5.0': {} - '@scalar/hono-api-reference@0.10.7(hono@4.12.14)': + '@scalar/hono-api-reference@0.10.8(hono@4.12.14)': dependencies: - '@scalar/core': 0.5.0 + '@scalar/core': 0.5.1 hono: 4.12.14 - '@scalar/types@0.8.0': + '@scalar/types@0.9.0': dependencies: - '@scalar/helpers': 0.4.3 + '@scalar/helpers': 0.5.0 nanoid: 5.1.9 type-fest: 5.5.0 zod: 4.3.6 From 9d5f61f9a227ede42175dc80f616e173057b667e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Apr 2026 21:01:45 +0800 Subject: [PATCH 189/439] chore(deps-dev): bump the cloudflare group with 3 updates (#21748) Bumps the cloudflare group with 3 updates: [@cloudflare/containers](https://github.com/cloudflare/containers), [@cloudflare/workers-types](https://github.com/cloudflare/workerd) and [wrangler](https://github.com/cloudflare/workers-sdk/tree/HEAD/packages/wrangler). Updates `@cloudflare/containers` from 0.3.0 to 0.3.2 - [Release notes](https://github.com/cloudflare/containers/releases) - [Changelog](https://github.com/cloudflare/containers/blob/main/CHANGELOG.md) - [Commits](https://github.com/cloudflare/containers/compare/v0.3.0...v0.3.2) Updates `@cloudflare/workers-types` from 4.20260415.1 to 4.20260416.2 - [Release notes](https://github.com/cloudflare/workerd/releases) - [Changelog](https://github.com/cloudflare/workerd/blob/main/RELEASE.md) - [Commits](https://github.com/cloudflare/workerd/commits) Updates `wrangler` from 4.82.2 to 4.83.0 - [Release notes](https://github.com/cloudflare/workers-sdk/releases) - [Commits](https://github.com/cloudflare/workers-sdk/commits/wrangler@4.83.0/packages/wrangler) --- updated-dependencies: - dependency-name: "@cloudflare/containers" dependency-version: 0.3.2 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: cloudflare - dependency-name: "@cloudflare/workers-types" dependency-version: 4.20260416.2 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: cloudflare - dependency-name: wrangler dependency-version: 4.83.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: cloudflare ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 6 +-- pnpm-lock.yaml | 116 ++++++++++++++++++++++++++----------------------- 2 files changed, 65 insertions(+), 57 deletions(-) diff --git a/package.json b/package.json index d81533ba01be..e753ca12c10a 100644 --- a/package.json +++ b/package.json @@ -146,9 +146,9 @@ "@actions/core": "3.0.0", "@actions/github": "9.1.0", "@bbob/types": "4.3.1", - "@cloudflare/containers": "0.3.0", + "@cloudflare/containers": "0.3.2", "@cloudflare/puppeteer": "1.1.0", - "@cloudflare/workers-types": "4.20260415.1", + "@cloudflare/workers-types": "4.20260416.2", "@eslint/eslintrc": "3.3.5", "@eslint/js": "10.0.1", "@oxlint/plugins": "1.60.0", @@ -202,7 +202,7 @@ "unified": "11.0.5", "vite-tsconfig-paths": "6.1.1", "vitest": "4.1.4", - "wrangler": "4.82.2", + "wrangler": "4.83.0", "yaml-eslint-parser": "2.0.0" }, "lint-staged": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c09b40fb9627..8d13a6022ac9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -297,14 +297,14 @@ importers: specifier: 4.3.1 version: 4.3.1 '@cloudflare/containers': - specifier: 0.3.0 - version: 0.3.0 + specifier: 0.3.2 + version: 0.3.2 '@cloudflare/puppeteer': specifier: 1.1.0 version: 1.1.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) '@cloudflare/workers-types': - specifier: 4.20260415.1 - version: 4.20260415.1 + specifier: 4.20260416.2 + version: 4.20260416.2 '@eslint/eslintrc': specifier: 3.3.5 version: 3.3.5 @@ -465,8 +465,8 @@ importers: specifier: 4.1.4 version: 4.1.4(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.4)(jsdom@29.0.2(@noble/hashes@2.0.1))(msw@2.13.3(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)) wrangler: - specifier: 4.82.2 - version: 4.82.2(@cloudflare/workers-types@4.20260415.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10) + specifier: 4.83.0 + version: 4.83.0(@cloudflare/workers-types@4.20260416.2)(bufferutil@4.1.0)(utf-8-validate@5.0.10) yaml-eslint-parser: specifier: 2.0.0 version: 2.0.0 @@ -585,8 +585,8 @@ packages: '@bufbuild/protobuf@2.11.0': resolution: {integrity: sha512-sBXGT13cpmPR5BMgHE6UEEfEaShh5Ror6rfN3yEK5si7QVrtZg8LEPQb0VVhiLRUslD2yLnXtnRzG035J/mZXQ==} - '@cloudflare/containers@0.3.0': - resolution: {integrity: sha512-8HM1NgXThWCTk7SH28QFxqMNLJwl6RrMkj3qd0KvDA59BALsn3mZXNDT94i1JaGZnP4Bc8sPGs1u9UAl/mVUVg==} + '@cloudflare/containers@0.3.2': + resolution: {integrity: sha512-hWobJrpXCgFJ/HYii6E49eegnnlUDWGacjLd0Fb6nQwTD005+T2eHUPI6qOEq9KPJOd7xTWkhkuXEKxDFvfyqQ==} '@cloudflare/kv-asset-handler@0.4.2': resolution: {integrity: sha512-SIOD2DxrRRwQ+jgzlXCqoEFiKOFqaPjhnNTGKXSRLvp1HiOvapLaFG2kEr9dYQTYe8rKrd9uvDUzmAITeNyaHQ==} @@ -605,38 +605,38 @@ packages: workerd: optional: true - '@cloudflare/workerd-darwin-64@1.20260410.1': - resolution: {integrity: sha512-0sh6xPmCKUfv/lUklP1dfyeKxCuEZGS0HeduxnucL8ECxSgAdWTOD42h/lQTwZCIiWtyHB+ZNB9hsS2Mlf0tMQ==} + '@cloudflare/workerd-darwin-64@1.20260415.1': + resolution: {integrity: sha512-dsxaKsQm3LnPGNPEdsRv09QN3Y4DqCw7kX5j6noKqbAtro2jTr95sVlYM1jUxZ5FkOl1f7SXgaKKB9t5H5Nkbg==} engines: {node: '>=16'} cpu: [x64] os: [darwin] - '@cloudflare/workerd-darwin-arm64@1.20260410.1': - resolution: {integrity: sha512-r2On29gPvlk/eiH/OpeUT23xoB8W8D1PHr8lul5nyxElLqvh3yNxZUnJWrbcOl+ubfrvw7+jFwgopMe17xyf0g==} + '@cloudflare/workerd-darwin-arm64@1.20260415.1': + resolution: {integrity: sha512-+JgSgVA49KyKteHRA1SnonE4Zn5Ei5zdAp5FQMxFmXI8qulZw4Hl7safXxRyK4i9sTO8gl7TFOKO5Q64VPvSDQ==} engines: {node: '>=16'} cpu: [arm64] os: [darwin] - '@cloudflare/workerd-linux-64@1.20260410.1': - resolution: {integrity: sha512-qWORRcAzPZeHJjrcYBNZTN6Y9l+iZQUz4KBdWbNrM6My4CpNrXS5kErPR373vG//5QPaDGwMXgBqyn9xfzarJQ==} + '@cloudflare/workerd-linux-64@1.20260415.1': + resolution: {integrity: sha512-tU+9pwsqCy8afOVlGtiWrWQc/fedQK4SRm4KPIAt+zOiQWDxWASm6YGBUJis5c648WN80yz47qnmdDi8DQNOcA==} engines: {node: '>=16'} cpu: [x64] os: [linux] - '@cloudflare/workerd-linux-arm64@1.20260410.1': - resolution: {integrity: sha512-jQfuHL4mnGDFyomSS3JNs9TpTvCu6Vzz2QSNCfJRstMzTICUFLMc4Vp/xKK+M5xkb0PoAu/G0hHx7jrxB2j+OQ==} + '@cloudflare/workerd-linux-arm64@1.20260415.1': + resolution: {integrity: sha512-bR9uITnV19r5NQ14xnypi2xHXu2iQvfYV8cVgx0JouFUmWwTEEAwFVojDdssGq93VHX9hr/pi2IRUZeegbYBog==} engines: {node: '>=16'} cpu: [arm64] os: [linux] - '@cloudflare/workerd-windows-64@1.20260410.1': - resolution: {integrity: sha512-h8q/nbheDqpknY7AAOz19MuQkZAR1/bnoZnKipyeUPXt5No+y6HlTtva9Bohx5Fhc1MW2CX2MQVdb55qtkkqZQ==} + '@cloudflare/workerd-windows-64@1.20260415.1': + resolution: {integrity: sha512-4NuMLlerI0Ijua3Ir8HXQ+qyNvCUDEG5gDco5Om+sAiK6rnWiz+aGoSlbB8W16yW9QAgzCstbmXLiVknUBflfQ==} engines: {node: '>=16'} cpu: [x64] os: [win32] - '@cloudflare/workers-types@4.20260415.1': - resolution: {integrity: sha512-9sEq9cZzr4s075U/TfjvdSmiX+u2NMOAIcFcCfd24FDtPfR7Iw3SbuQxkcgtpx/Bvg0au9PmQ0ZJfBaIitG0gw==} + '@cloudflare/workers-types@4.20260416.2': + resolution: {integrity: sha512-f7VGuKsHckH5n9KATTPJQ6AGdc2q58eM2waGzzDoCKw+PBtw9j2TWdRz8tLkviv7XcjkcuKy181vQFffXJicrA==} '@colors/colors@1.6.0': resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} @@ -699,6 +699,9 @@ packages: '@emnapi/core@1.9.2': resolution: {integrity: sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA==} + '@emnapi/runtime@1.10.0': + resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} + '@emnapi/runtime@1.9.2': resolution: {integrity: sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw==} @@ -4865,8 +4868,8 @@ packages: resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - miniflare@4.20260410.0: - resolution: {integrity: sha512-94LEU8d+XPVGp18eW4+bu1v7Tnq7srhqWMIsrx2jhSkdbTnGqg1I613R0GKY4eygBYl9MbqXEhzK/bczJb6uMg==} + miniflare@4.20260415.0: + resolution: {integrity: sha512-JoExRWN4YBI2luA5BoSMFEgi8rQWXUGzo3mtE+58VXCLV3jj/Xnk5Yeqs/IXWz8Es5GJIaq6BtsixDvAxXSIng==} engines: {node: '>=18.0.0'} hasBin: true @@ -6029,8 +6032,8 @@ packages: resolution: {integrity: sha512-sC+b0tB1whOCzbtlx20fx3WgCXwkW627p4EA9uM+/tNNPkSS+eSEld6pAs9nDv7WbY1UUljBMYPtu9BCOrCWKA==} engines: {node: '>=18.17'} - undici@7.24.4: - resolution: {integrity: sha512-BM/JzwwaRXxrLdElV2Uo6cTLEjhSb3WXboncJamZ15NgUURmvlXvxa6xkwIOILIjPNo9i8ku136ZvWV0Uly8+w==} + undici@7.24.8: + resolution: {integrity: sha512-6KQ/+QxK49Z/p3HO6E5ZCZWNnCasyZLa5ExaVYyvPxUwKtbCPMKELJOqh7EqOle0t9cH/7d2TaaTRRa6Nhs4YQ==} engines: {node: '>=20.18.1'} undici@7.25.0: @@ -6288,17 +6291,17 @@ packages: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} - workerd@1.20260410.1: - resolution: {integrity: sha512-T/GRD6Y5vN9g4CnGmOlfST1w7bj+1IjRFvX0K7CodZPJuPVPNPGhz8Wppah0WdT6A7I8Kad3zgZ2OkDdWtENrg==} + workerd@1.20260415.1: + resolution: {integrity: sha512-phyPjRnx+mQDfkhN9ENPioL1L0SdhYs4S0YmJK/xF9Oga+ykNfdSy1MHnsOj8yqnOV96zcVQMx32dJ0r3pq0jQ==} engines: {node: '>=16'} hasBin: true - wrangler@4.82.2: - resolution: {integrity: sha512-SKfW21sTJUkM/Qd8zc9oc8TBkAWHRsXuTxE6XdToC55Ct84pR+IfRdaTjCTuC0dL+KYvauSvSn2rtqS2Ae+Dcw==} + wrangler@4.83.0: + resolution: {integrity: sha512-gw5g3LCiuAqVWxaoKY6+quE0HzAUEFb/FV3oAlNkE1ttd4XP3FiV91XDkkzUCcdqxS4WjhQvPhIDBNdhEi8P0A==} engines: {node: '>=20.3.0'} hasBin: true peerDependencies: - '@cloudflare/workers-types': ^4.20260410.1 + '@cloudflare/workers-types': ^4.20260415.1 peerDependenciesMeta: '@cloudflare/workers-types': optional: true @@ -6592,7 +6595,7 @@ snapshots: '@bufbuild/protobuf@2.11.0': {} - '@cloudflare/containers@0.3.0': {} + '@cloudflare/containers@0.3.2': {} '@cloudflare/kv-asset-handler@0.4.2': {} @@ -6610,28 +6613,28 @@ snapshots: - supports-color - utf-8-validate - '@cloudflare/unenv-preset@2.16.0(unenv@2.0.0-rc.24)(workerd@1.20260410.1)': + '@cloudflare/unenv-preset@2.16.0(unenv@2.0.0-rc.24)(workerd@1.20260415.1)': dependencies: unenv: 2.0.0-rc.24 optionalDependencies: - workerd: 1.20260410.1 + workerd: 1.20260415.1 - '@cloudflare/workerd-darwin-64@1.20260410.1': + '@cloudflare/workerd-darwin-64@1.20260415.1': optional: true - '@cloudflare/workerd-darwin-arm64@1.20260410.1': + '@cloudflare/workerd-darwin-arm64@1.20260415.1': optional: true - '@cloudflare/workerd-linux-64@1.20260410.1': + '@cloudflare/workerd-linux-64@1.20260415.1': optional: true - '@cloudflare/workerd-linux-arm64@1.20260410.1': + '@cloudflare/workerd-linux-arm64@1.20260415.1': optional: true - '@cloudflare/workerd-windows-64@1.20260410.1': + '@cloudflare/workerd-windows-64@1.20260415.1': optional: true - '@cloudflare/workers-types@4.20260415.1': {} + '@cloudflare/workers-types@4.20260416.2': {} '@colors/colors@1.6.0': {} @@ -6685,6 +6688,11 @@ snapshots: tslib: 2.8.1 optional: true + '@emnapi/runtime@1.10.0': + dependencies: + tslib: 2.8.1 + optional: true + '@emnapi/runtime@1.9.2': dependencies: tslib: 2.8.1 @@ -7125,7 +7133,7 @@ snapshots: '@img/sharp-wasm32@0.34.5': dependencies: - '@emnapi/runtime': 1.9.2 + '@emnapi/runtime': 1.10.0 optional: true '@img/sharp-win32-arm64@0.34.5': @@ -10738,12 +10746,12 @@ snapshots: mimic-response@4.0.0: {} - miniflare@4.20260410.0(bufferutil@4.1.0)(utf-8-validate@5.0.10): + miniflare@4.20260415.0(bufferutil@4.1.0)(utf-8-validate@5.0.10): dependencies: '@cspotcode/source-map-support': 0.8.1 sharp: 0.34.5 - undici: 7.24.4 - workerd: 1.20260410.1 + undici: 7.24.8 + workerd: 1.20260415.1 ws: 8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) youch: 4.1.0-beta.10 transitivePeerDependencies: @@ -12092,7 +12100,7 @@ snapshots: undici@6.24.1: {} - undici@7.24.4: {} + undici@7.24.8: {} undici@7.25.0: {} @@ -12343,26 +12351,26 @@ snapshots: word-wrap@1.2.5: {} - workerd@1.20260410.1: + workerd@1.20260415.1: optionalDependencies: - '@cloudflare/workerd-darwin-64': 1.20260410.1 - '@cloudflare/workerd-darwin-arm64': 1.20260410.1 - '@cloudflare/workerd-linux-64': 1.20260410.1 - '@cloudflare/workerd-linux-arm64': 1.20260410.1 - '@cloudflare/workerd-windows-64': 1.20260410.1 + '@cloudflare/workerd-darwin-64': 1.20260415.1 + '@cloudflare/workerd-darwin-arm64': 1.20260415.1 + '@cloudflare/workerd-linux-64': 1.20260415.1 + '@cloudflare/workerd-linux-arm64': 1.20260415.1 + '@cloudflare/workerd-windows-64': 1.20260415.1 - wrangler@4.82.2(@cloudflare/workers-types@4.20260415.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10): + wrangler@4.83.0(@cloudflare/workers-types@4.20260416.2)(bufferutil@4.1.0)(utf-8-validate@5.0.10): dependencies: '@cloudflare/kv-asset-handler': 0.4.2 - '@cloudflare/unenv-preset': 2.16.0(unenv@2.0.0-rc.24)(workerd@1.20260410.1) + '@cloudflare/unenv-preset': 2.16.0(unenv@2.0.0-rc.24)(workerd@1.20260415.1) blake3-wasm: 2.1.5 esbuild: 0.27.3 - miniflare: 4.20260410.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) + miniflare: 4.20260415.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) path-to-regexp: 6.3.0 unenv: 2.0.0-rc.24 - workerd: 1.20260410.1 + workerd: 1.20260415.1 optionalDependencies: - '@cloudflare/workers-types': 4.20260415.1 + '@cloudflare/workers-types': 4.20260416.2 fsevents: 2.3.3 transitivePeerDependencies: - bufferutil From 1d2519f4967f76005e232591073331fdf8f348a7 Mon Sep 17 00:00:00 2001 From: occam-7 Date: Thu, 16 Apr 2026 21:09:39 +0800 Subject: [PATCH 190/439] fix(route/bestblogs): API endpoint failure (#21753) --- lib/routes/bestblogs/newsletter.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/routes/bestblogs/newsletter.ts b/lib/routes/bestblogs/newsletter.ts index 6ed9e2d7f50e..28a7a59095c8 100644 --- a/lib/routes/bestblogs/newsletter.ts +++ b/lib/routes/bestblogs/newsletter.ts @@ -23,12 +23,12 @@ export const route: Route = { async function handler(ctx) { const pageSize = Number.parseInt(ctx.req.query('limit') ?? '10', 10); - const response = await ofetch('https://api.bestblogs.dev/api/newsletter/list', { - method: 'POST', - body: { - currentPage: 1, + const response = await ofetch('https://www.bestblogs.dev/api/proxy/newsletters', { + method: 'GET', + query: { + page: 1, pageSize, - userLanguage: 'zh', + language: 'zh', }, }); From e081128355cff77846b7ef5e1af6844b40b90568 Mon Sep 17 00:00:00 2001 From: Tony Date: Thu, 16 Apr 2026 23:28:49 +0800 Subject: [PATCH 191/439] revert: "chore(deps-dev): bump the cloudflare group with 3 updates (#21748)" (#21754) This reverts commit 9d5f61f9a227ede42175dc80f616e173057b667e. --- package.json | 6 +-- pnpm-lock.yaml | 116 +++++++++++++++++++++++-------------------------- 2 files changed, 57 insertions(+), 65 deletions(-) diff --git a/package.json b/package.json index e753ca12c10a..d81533ba01be 100644 --- a/package.json +++ b/package.json @@ -146,9 +146,9 @@ "@actions/core": "3.0.0", "@actions/github": "9.1.0", "@bbob/types": "4.3.1", - "@cloudflare/containers": "0.3.2", + "@cloudflare/containers": "0.3.0", "@cloudflare/puppeteer": "1.1.0", - "@cloudflare/workers-types": "4.20260416.2", + "@cloudflare/workers-types": "4.20260415.1", "@eslint/eslintrc": "3.3.5", "@eslint/js": "10.0.1", "@oxlint/plugins": "1.60.0", @@ -202,7 +202,7 @@ "unified": "11.0.5", "vite-tsconfig-paths": "6.1.1", "vitest": "4.1.4", - "wrangler": "4.83.0", + "wrangler": "4.82.2", "yaml-eslint-parser": "2.0.0" }, "lint-staged": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8d13a6022ac9..c09b40fb9627 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -297,14 +297,14 @@ importers: specifier: 4.3.1 version: 4.3.1 '@cloudflare/containers': - specifier: 0.3.2 - version: 0.3.2 + specifier: 0.3.0 + version: 0.3.0 '@cloudflare/puppeteer': specifier: 1.1.0 version: 1.1.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) '@cloudflare/workers-types': - specifier: 4.20260416.2 - version: 4.20260416.2 + specifier: 4.20260415.1 + version: 4.20260415.1 '@eslint/eslintrc': specifier: 3.3.5 version: 3.3.5 @@ -465,8 +465,8 @@ importers: specifier: 4.1.4 version: 4.1.4(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.4)(jsdom@29.0.2(@noble/hashes@2.0.1))(msw@2.13.3(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)) wrangler: - specifier: 4.83.0 - version: 4.83.0(@cloudflare/workers-types@4.20260416.2)(bufferutil@4.1.0)(utf-8-validate@5.0.10) + specifier: 4.82.2 + version: 4.82.2(@cloudflare/workers-types@4.20260415.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10) yaml-eslint-parser: specifier: 2.0.0 version: 2.0.0 @@ -585,8 +585,8 @@ packages: '@bufbuild/protobuf@2.11.0': resolution: {integrity: sha512-sBXGT13cpmPR5BMgHE6UEEfEaShh5Ror6rfN3yEK5si7QVrtZg8LEPQb0VVhiLRUslD2yLnXtnRzG035J/mZXQ==} - '@cloudflare/containers@0.3.2': - resolution: {integrity: sha512-hWobJrpXCgFJ/HYii6E49eegnnlUDWGacjLd0Fb6nQwTD005+T2eHUPI6qOEq9KPJOd7xTWkhkuXEKxDFvfyqQ==} + '@cloudflare/containers@0.3.0': + resolution: {integrity: sha512-8HM1NgXThWCTk7SH28QFxqMNLJwl6RrMkj3qd0KvDA59BALsn3mZXNDT94i1JaGZnP4Bc8sPGs1u9UAl/mVUVg==} '@cloudflare/kv-asset-handler@0.4.2': resolution: {integrity: sha512-SIOD2DxrRRwQ+jgzlXCqoEFiKOFqaPjhnNTGKXSRLvp1HiOvapLaFG2kEr9dYQTYe8rKrd9uvDUzmAITeNyaHQ==} @@ -605,38 +605,38 @@ packages: workerd: optional: true - '@cloudflare/workerd-darwin-64@1.20260415.1': - resolution: {integrity: sha512-dsxaKsQm3LnPGNPEdsRv09QN3Y4DqCw7kX5j6noKqbAtro2jTr95sVlYM1jUxZ5FkOl1f7SXgaKKB9t5H5Nkbg==} + '@cloudflare/workerd-darwin-64@1.20260410.1': + resolution: {integrity: sha512-0sh6xPmCKUfv/lUklP1dfyeKxCuEZGS0HeduxnucL8ECxSgAdWTOD42h/lQTwZCIiWtyHB+ZNB9hsS2Mlf0tMQ==} engines: {node: '>=16'} cpu: [x64] os: [darwin] - '@cloudflare/workerd-darwin-arm64@1.20260415.1': - resolution: {integrity: sha512-+JgSgVA49KyKteHRA1SnonE4Zn5Ei5zdAp5FQMxFmXI8qulZw4Hl7safXxRyK4i9sTO8gl7TFOKO5Q64VPvSDQ==} + '@cloudflare/workerd-darwin-arm64@1.20260410.1': + resolution: {integrity: sha512-r2On29gPvlk/eiH/OpeUT23xoB8W8D1PHr8lul5nyxElLqvh3yNxZUnJWrbcOl+ubfrvw7+jFwgopMe17xyf0g==} engines: {node: '>=16'} cpu: [arm64] os: [darwin] - '@cloudflare/workerd-linux-64@1.20260415.1': - resolution: {integrity: sha512-tU+9pwsqCy8afOVlGtiWrWQc/fedQK4SRm4KPIAt+zOiQWDxWASm6YGBUJis5c648WN80yz47qnmdDi8DQNOcA==} + '@cloudflare/workerd-linux-64@1.20260410.1': + resolution: {integrity: sha512-qWORRcAzPZeHJjrcYBNZTN6Y9l+iZQUz4KBdWbNrM6My4CpNrXS5kErPR373vG//5QPaDGwMXgBqyn9xfzarJQ==} engines: {node: '>=16'} cpu: [x64] os: [linux] - '@cloudflare/workerd-linux-arm64@1.20260415.1': - resolution: {integrity: sha512-bR9uITnV19r5NQ14xnypi2xHXu2iQvfYV8cVgx0JouFUmWwTEEAwFVojDdssGq93VHX9hr/pi2IRUZeegbYBog==} + '@cloudflare/workerd-linux-arm64@1.20260410.1': + resolution: {integrity: sha512-jQfuHL4mnGDFyomSS3JNs9TpTvCu6Vzz2QSNCfJRstMzTICUFLMc4Vp/xKK+M5xkb0PoAu/G0hHx7jrxB2j+OQ==} engines: {node: '>=16'} cpu: [arm64] os: [linux] - '@cloudflare/workerd-windows-64@1.20260415.1': - resolution: {integrity: sha512-4NuMLlerI0Ijua3Ir8HXQ+qyNvCUDEG5gDco5Om+sAiK6rnWiz+aGoSlbB8W16yW9QAgzCstbmXLiVknUBflfQ==} + '@cloudflare/workerd-windows-64@1.20260410.1': + resolution: {integrity: sha512-h8q/nbheDqpknY7AAOz19MuQkZAR1/bnoZnKipyeUPXt5No+y6HlTtva9Bohx5Fhc1MW2CX2MQVdb55qtkkqZQ==} engines: {node: '>=16'} cpu: [x64] os: [win32] - '@cloudflare/workers-types@4.20260416.2': - resolution: {integrity: sha512-f7VGuKsHckH5n9KATTPJQ6AGdc2q58eM2waGzzDoCKw+PBtw9j2TWdRz8tLkviv7XcjkcuKy181vQFffXJicrA==} + '@cloudflare/workers-types@4.20260415.1': + resolution: {integrity: sha512-9sEq9cZzr4s075U/TfjvdSmiX+u2NMOAIcFcCfd24FDtPfR7Iw3SbuQxkcgtpx/Bvg0au9PmQ0ZJfBaIitG0gw==} '@colors/colors@1.6.0': resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} @@ -699,9 +699,6 @@ packages: '@emnapi/core@1.9.2': resolution: {integrity: sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA==} - '@emnapi/runtime@1.10.0': - resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} - '@emnapi/runtime@1.9.2': resolution: {integrity: sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw==} @@ -4868,8 +4865,8 @@ packages: resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - miniflare@4.20260415.0: - resolution: {integrity: sha512-JoExRWN4YBI2luA5BoSMFEgi8rQWXUGzo3mtE+58VXCLV3jj/Xnk5Yeqs/IXWz8Es5GJIaq6BtsixDvAxXSIng==} + miniflare@4.20260410.0: + resolution: {integrity: sha512-94LEU8d+XPVGp18eW4+bu1v7Tnq7srhqWMIsrx2jhSkdbTnGqg1I613R0GKY4eygBYl9MbqXEhzK/bczJb6uMg==} engines: {node: '>=18.0.0'} hasBin: true @@ -6032,8 +6029,8 @@ packages: resolution: {integrity: sha512-sC+b0tB1whOCzbtlx20fx3WgCXwkW627p4EA9uM+/tNNPkSS+eSEld6pAs9nDv7WbY1UUljBMYPtu9BCOrCWKA==} engines: {node: '>=18.17'} - undici@7.24.8: - resolution: {integrity: sha512-6KQ/+QxK49Z/p3HO6E5ZCZWNnCasyZLa5ExaVYyvPxUwKtbCPMKELJOqh7EqOle0t9cH/7d2TaaTRRa6Nhs4YQ==} + undici@7.24.4: + resolution: {integrity: sha512-BM/JzwwaRXxrLdElV2Uo6cTLEjhSb3WXboncJamZ15NgUURmvlXvxa6xkwIOILIjPNo9i8ku136ZvWV0Uly8+w==} engines: {node: '>=20.18.1'} undici@7.25.0: @@ -6291,17 +6288,17 @@ packages: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} - workerd@1.20260415.1: - resolution: {integrity: sha512-phyPjRnx+mQDfkhN9ENPioL1L0SdhYs4S0YmJK/xF9Oga+ykNfdSy1MHnsOj8yqnOV96zcVQMx32dJ0r3pq0jQ==} + workerd@1.20260410.1: + resolution: {integrity: sha512-T/GRD6Y5vN9g4CnGmOlfST1w7bj+1IjRFvX0K7CodZPJuPVPNPGhz8Wppah0WdT6A7I8Kad3zgZ2OkDdWtENrg==} engines: {node: '>=16'} hasBin: true - wrangler@4.83.0: - resolution: {integrity: sha512-gw5g3LCiuAqVWxaoKY6+quE0HzAUEFb/FV3oAlNkE1ttd4XP3FiV91XDkkzUCcdqxS4WjhQvPhIDBNdhEi8P0A==} + wrangler@4.82.2: + resolution: {integrity: sha512-SKfW21sTJUkM/Qd8zc9oc8TBkAWHRsXuTxE6XdToC55Ct84pR+IfRdaTjCTuC0dL+KYvauSvSn2rtqS2Ae+Dcw==} engines: {node: '>=20.3.0'} hasBin: true peerDependencies: - '@cloudflare/workers-types': ^4.20260415.1 + '@cloudflare/workers-types': ^4.20260410.1 peerDependenciesMeta: '@cloudflare/workers-types': optional: true @@ -6595,7 +6592,7 @@ snapshots: '@bufbuild/protobuf@2.11.0': {} - '@cloudflare/containers@0.3.2': {} + '@cloudflare/containers@0.3.0': {} '@cloudflare/kv-asset-handler@0.4.2': {} @@ -6613,28 +6610,28 @@ snapshots: - supports-color - utf-8-validate - '@cloudflare/unenv-preset@2.16.0(unenv@2.0.0-rc.24)(workerd@1.20260415.1)': + '@cloudflare/unenv-preset@2.16.0(unenv@2.0.0-rc.24)(workerd@1.20260410.1)': dependencies: unenv: 2.0.0-rc.24 optionalDependencies: - workerd: 1.20260415.1 + workerd: 1.20260410.1 - '@cloudflare/workerd-darwin-64@1.20260415.1': + '@cloudflare/workerd-darwin-64@1.20260410.1': optional: true - '@cloudflare/workerd-darwin-arm64@1.20260415.1': + '@cloudflare/workerd-darwin-arm64@1.20260410.1': optional: true - '@cloudflare/workerd-linux-64@1.20260415.1': + '@cloudflare/workerd-linux-64@1.20260410.1': optional: true - '@cloudflare/workerd-linux-arm64@1.20260415.1': + '@cloudflare/workerd-linux-arm64@1.20260410.1': optional: true - '@cloudflare/workerd-windows-64@1.20260415.1': + '@cloudflare/workerd-windows-64@1.20260410.1': optional: true - '@cloudflare/workers-types@4.20260416.2': {} + '@cloudflare/workers-types@4.20260415.1': {} '@colors/colors@1.6.0': {} @@ -6688,11 +6685,6 @@ snapshots: tslib: 2.8.1 optional: true - '@emnapi/runtime@1.10.0': - dependencies: - tslib: 2.8.1 - optional: true - '@emnapi/runtime@1.9.2': dependencies: tslib: 2.8.1 @@ -7133,7 +7125,7 @@ snapshots: '@img/sharp-wasm32@0.34.5': dependencies: - '@emnapi/runtime': 1.10.0 + '@emnapi/runtime': 1.9.2 optional: true '@img/sharp-win32-arm64@0.34.5': @@ -10746,12 +10738,12 @@ snapshots: mimic-response@4.0.0: {} - miniflare@4.20260415.0(bufferutil@4.1.0)(utf-8-validate@5.0.10): + miniflare@4.20260410.0(bufferutil@4.1.0)(utf-8-validate@5.0.10): dependencies: '@cspotcode/source-map-support': 0.8.1 sharp: 0.34.5 - undici: 7.24.8 - workerd: 1.20260415.1 + undici: 7.24.4 + workerd: 1.20260410.1 ws: 8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) youch: 4.1.0-beta.10 transitivePeerDependencies: @@ -12100,7 +12092,7 @@ snapshots: undici@6.24.1: {} - undici@7.24.8: {} + undici@7.24.4: {} undici@7.25.0: {} @@ -12351,26 +12343,26 @@ snapshots: word-wrap@1.2.5: {} - workerd@1.20260415.1: + workerd@1.20260410.1: optionalDependencies: - '@cloudflare/workerd-darwin-64': 1.20260415.1 - '@cloudflare/workerd-darwin-arm64': 1.20260415.1 - '@cloudflare/workerd-linux-64': 1.20260415.1 - '@cloudflare/workerd-linux-arm64': 1.20260415.1 - '@cloudflare/workerd-windows-64': 1.20260415.1 + '@cloudflare/workerd-darwin-64': 1.20260410.1 + '@cloudflare/workerd-darwin-arm64': 1.20260410.1 + '@cloudflare/workerd-linux-64': 1.20260410.1 + '@cloudflare/workerd-linux-arm64': 1.20260410.1 + '@cloudflare/workerd-windows-64': 1.20260410.1 - wrangler@4.83.0(@cloudflare/workers-types@4.20260416.2)(bufferutil@4.1.0)(utf-8-validate@5.0.10): + wrangler@4.82.2(@cloudflare/workers-types@4.20260415.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10): dependencies: '@cloudflare/kv-asset-handler': 0.4.2 - '@cloudflare/unenv-preset': 2.16.0(unenv@2.0.0-rc.24)(workerd@1.20260415.1) + '@cloudflare/unenv-preset': 2.16.0(unenv@2.0.0-rc.24)(workerd@1.20260410.1) blake3-wasm: 2.1.5 esbuild: 0.27.3 - miniflare: 4.20260415.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) + miniflare: 4.20260410.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) path-to-regexp: 6.3.0 unenv: 2.0.0-rc.24 - workerd: 1.20260415.1 + workerd: 1.20260410.1 optionalDependencies: - '@cloudflare/workers-types': 4.20260416.2 + '@cloudflare/workers-types': 4.20260415.1 fsevents: 2.3.3 transitivePeerDependencies: - bufferutil From 0bed8a993dc898e9c75a00631d5ec397f896d7a3 Mon Sep 17 00:00:00 2001 From: Tony Date: Fri, 17 Apr 2026 03:27:51 +0800 Subject: [PATCH 192/439] docs: add FANTIA_COOKIE (#21755) * docs: add FANTIA_COOKIE * fix(user): handle optional fanClub.comment in description --- lib/routes/fantia/search.ts | 8 +++++++- lib/routes/fantia/user.ts | 36 ++++++++++++++++++++---------------- 2 files changed, 27 insertions(+), 17 deletions(-) diff --git a/lib/routes/fantia/search.ts b/lib/routes/fantia/search.ts index fe28e5381450..15b403e28a88 100644 --- a/lib/routes/fantia/search.ts +++ b/lib/routes/fantia/search.ts @@ -81,7 +81,13 @@ export const route: Route = { keyword: 'Keyword, empty by default', }, features: { - requireConfig: false, + requireConfig: [ + { + name: 'FANTIA_COOKIE', + optional: true, + description: 'The `cookie` after login can be obtained by viewing the request header in the console, If not filled in will cause some posts that require login to read to get exceptions', + }, + ], requirePuppeteer: false, antiCrawler: false, supportBT: false, diff --git a/lib/routes/fantia/user.ts b/lib/routes/fantia/user.ts index 4847145fee72..5244b8954cfc 100644 --- a/lib/routes/fantia/user.ts +++ b/lib/routes/fantia/user.ts @@ -2,7 +2,7 @@ import { config } from '@/config'; import type { Route } from '@/types'; import { ViewType } from '@/types'; import cache from '@/utils/cache'; -import got from '@/utils/got'; +import ofetch from '@/utils/ofetch'; import { parseDate } from '@/utils/parse-date'; export const route: Route = { @@ -12,7 +12,13 @@ export const route: Route = { example: '/fantia/user/3498', parameters: { id: 'User id, can be found in user profile URL' }, features: { - requireConfig: false, + requireConfig: [ + { + name: 'FANTIA_COOKIE', + optional: true, + description: 'The `cookie` after login can be obtained by viewing the request header in the console, If not filled in will cause some posts that require login to read to get exceptions', + }, + ], requirePuppeteer: false, antiCrawler: false, supportBT: false, @@ -34,36 +40,32 @@ async function handler(ctx) { const rootUrl = 'https://fantia.jp'; const userUrl = `${rootUrl}/api/v1/fanclubs/${ctx.req.param('id')}`; - const initalResponse = await got({ - method: 'get', - url: rootUrl, + const initalResponse = await ofetch(rootUrl, { headers: { Cookie: config.fantia.cookies ?? '', }, }); - const csrfToken = initalResponse.data.match(/name="csrf-token" content="(.*?)"\s?\/>/)[1]; + const csrfToken = initalResponse.match(/name="csrf-token" content="(.*?)"\s?\/>/)[1]; - const response = await got({ - method: 'get', - url: userUrl, + const response = await ofetch(userUrl, { headers: { Cookie: config.fantia.cookies ?? '', }, }); - const list = response.data.fanclub.recent_posts.map((item) => ({ + const fanClub = response.fanclub; + + const list = response.fanclub.recent_posts.map((item) => ({ title: item.title, link: `${rootUrl}/api/v1/posts/${item.id}`, - description: `

    ${item.comment}

    `, + description: item.comment ? `

    ${item.comment}

    ` : '', pubDate: parseDate(item.posted_at), })); const items = await Promise.all( list.map((item) => cache.tryGet(item.link, async () => { - const contentResponse = await got({ - method: 'get', - url: item.link, + const contentResponse = await ofetch(item.link, { headers: { Cookie: config.fantia.cookies ?? '', 'X-CSRF-Token': csrfToken, @@ -73,7 +75,7 @@ async function handler(ctx) { }, }); item.link = item.link.replace('api/v1/', ''); - item.description += ``; + item.description += ``; return item; }) @@ -81,8 +83,10 @@ async function handler(ctx) { ); return { - title: `Fantia - ${response.data.fanclub.fanclub_name_with_creator_name}`, + title: `Fantia - ${fanClub.fanclub_name_with_creator_name}`, + description: fanClub.comment?.replaceAll('\r\n', ' ')?.trim(), link: `${rootUrl}/fanclubs/${ctx.req.param('id')}`, + image: fanClub.icon.original ?? fanClub.icon.main, item: items, }; } From 1063a5f6b31b7e29b3993a5e586b98504b570318 Mon Sep 17 00:00:00 2001 From: Tony Date: Fri, 17 Apr 2026 08:55:36 +0800 Subject: [PATCH 193/439] chore: bump basic-ftp and lodash --- pnpm-lock.yaml | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c09b40fb9627..a0d4dde1059b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3192,13 +3192,8 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - basic-ftp@5.2.0: - resolution: {integrity: sha512-VoMINM2rqJwJgfdHq6RiUudKt2BV+FY5ZFezP/ypmwayk68+NzzAQy4XXLlqsGD4MCzq3DrmNFD/uUmBJuGoXw==} - engines: {node: '>=10.0.0'} - deprecated: Security vulnerability fixed in 5.2.1, please upgrade - - basic-ftp@5.2.2: - resolution: {integrity: sha512-1tDrzKsdCg70WGvbFss/ulVAxupNauGnOlgpyjKzeQxzyllBLS0CGLV7tjIXTK3ZQA9/FBEm9qyFFN1bciA6pw==} + basic-ftp@5.3.0: + resolution: {integrity: sha512-5K9eNNn7ywHPsYnFwjKgYH8Hf8B5emh7JKcPaVjjrMJFQQwGpwowEnZNEtHs7DfR7hCZsmaK3VA4HUK0YarT+w==} engines: {node: '>=10.0.0'} bcrypt-pbkdf@1.0.2: @@ -4680,8 +4675,8 @@ packages: resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} deprecated: This package is deprecated. Use require('node:util').isDeepStrictEqual instead. - lodash@4.17.23: - resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==} + lodash@4.18.1: + resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==} log-update@6.1.0: resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} @@ -8775,9 +8770,7 @@ snapshots: baseline-browser-mapping@2.10.13: {} - basic-ftp@5.2.0: {} - - basic-ftp@5.2.2: {} + basic-ftp@5.3.0: {} bcrypt-pbkdf@1.0.2: dependencies: @@ -9836,7 +9829,7 @@ snapshots: get-uri@6.0.5: dependencies: - basic-ftp: 5.2.2 + basic-ftp: 5.3.0 data-uri-to-buffer: 6.0.2 debug: 4.4.3 transitivePeerDependencies: @@ -9844,7 +9837,7 @@ snapshots: get-uri@8.0.0: dependencies: - basic-ftp: 5.2.0 + basic-ftp: 5.3.0 data-uri-to-buffer: 8.0.0 debug: 4.4.3 transitivePeerDependencies: @@ -10160,7 +10153,7 @@ snapshots: debug: 4.4.3 image-size: 0.7.5 json-bigint: 1.0.0 - lodash: 4.17.23 + lodash: 4.18.1 luxon: 1.28.1 reflect-metadata: 0.1.14 request: 2.88.2 @@ -10466,7 +10459,7 @@ snapshots: lodash.isequal@4.5.0: {} - lodash@4.17.23: {} + lodash@4.18.1: {} log-update@6.1.0: dependencies: @@ -11429,7 +11422,7 @@ snapshots: request-promise-core@1.1.4(request@2.88.2): dependencies: - lodash: 4.17.23 + lodash: 4.18.1 request: 2.88.2 request-promise@4.2.6(request@2.88.2): @@ -12420,7 +12413,7 @@ snapshots: wuzzy@0.1.8: dependencies: - lodash: 4.17.23 + lodash: 4.18.1 xml-name-validator@5.0.0: {} From a5f5082025d8455e607ea87d19347c07b5cfb4ed Mon Sep 17 00:00:00 2001 From: Tony Date: Fri, 17 Apr 2026 09:48:12 +0800 Subject: [PATCH 194/439] chore: bump protobufjs --- pnpm-lock.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a0d4dde1059b..6099db7b6c29 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5282,8 +5282,8 @@ packages: proto-list@1.2.4: resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} - protobufjs@7.5.4: - resolution: {integrity: sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==} + protobufjs@7.5.5: + resolution: {integrity: sha512-3wY1AxV+VBNW8Yypfd1yQY9pXnqTAN+KwQxL8iYm3/BjKYMNg4i0owhEe26PWDOMaIrzeeF98Lqd5NGz4omiIg==} engines: {node: '>=12.0.0'} proxy-agent@6.5.0: @@ -7624,7 +7624,7 @@ snapshots: '@opentelemetry/sdk-logs': 0.214.0(@opentelemetry/api@1.9.1) '@opentelemetry/sdk-metrics': 2.6.1(@opentelemetry/api@1.9.1) '@opentelemetry/sdk-trace-base': 2.6.1(@opentelemetry/api@1.9.1) - protobufjs: 7.5.4 + protobufjs: 7.5.5 '@opentelemetry/redis-common@0.38.2': {} @@ -10765,7 +10765,7 @@ snapshots: mixi2@0.2.2: dependencies: - protobufjs: 7.5.4 + protobufjs: 7.5.5 mockdate@3.0.5: {} @@ -11224,7 +11224,7 @@ snapshots: proto-list@1.2.4: {} - protobufjs@7.5.4: + protobufjs@7.5.5: dependencies: '@protobufjs/aspromise': 1.1.2 '@protobufjs/base64': 1.1.2 From 52f9e7d1077e9fcd0be75c8209caf29b36fe06af Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 Apr 2026 08:19:57 +0000 Subject: [PATCH 195/439] chore(deps-dev): bump tsdown from 0.21.8 to 0.21.9 (#21761) Bumps [tsdown](https://github.com/rolldown/tsdown) from 0.21.8 to 0.21.9. - [Release notes](https://github.com/rolldown/tsdown/releases) - [Commits](https://github.com/rolldown/tsdown/compare/v0.21.8...v0.21.9) --- updated-dependencies: - dependency-name: tsdown dependency-version: 0.21.9 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 232 +++++++++++++++++++++++++++---------------------- 2 files changed, 129 insertions(+), 105 deletions(-) diff --git a/package.json b/package.json index d81533ba01be..3e921821dd37 100644 --- a/package.json +++ b/package.json @@ -197,7 +197,7 @@ "oxlint-plugin-eslint": "1.60.0", "oxlint-tsgolint": "0.21.0", "remark-parse": "11.0.0", - "tsdown": "0.21.8", + "tsdown": "0.21.9", "typescript": "5.9.3", "unified": "11.0.5", "vite-tsconfig-paths": "6.1.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6099db7b6c29..bdaf03e8180d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -450,8 +450,8 @@ importers: specifier: 11.0.0 version: 11.0.0 tsdown: - specifier: 0.21.8 - version: 0.21.8(synckit@0.11.12)(typescript@5.9.3) + specifier: 0.21.9 + version: 0.21.9(synckit@0.11.12)(typescript@5.9.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -696,9 +696,15 @@ packages: resolution: {integrity: sha512-0dEVyRLM/lG4gp1R/Ik5bfPl/1wX00xFwd5KcNH602tzBa09oF7pbTKETEhR1GjZ75K6OJnYFu8II2dyMhONMw==} engines: {node: '>=16'} + '@emnapi/core@1.10.0': + resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} + '@emnapi/core@1.9.2': resolution: {integrity: sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA==} + '@emnapi/runtime@1.10.0': + resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} + '@emnapi/runtime@1.9.2': resolution: {integrity: sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw==} @@ -1558,8 +1564,8 @@ packages: '@napi-rs/wasm-runtime@0.2.12': resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} - '@napi-rs/wasm-runtime@1.1.3': - resolution: {integrity: sha512-xK9sGVbJWYb08+mTJt3/YV24WxvxpXcXtP6B172paPZ+Ts69Re9dAr7lKwJoeIx8OoeuimEiRZ7umkiUVClmmQ==} + '@napi-rs/wasm-runtime@1.1.4': + resolution: {integrity: sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==} peerDependencies: '@emnapi/core': ^1.7.1 '@emnapi/runtime': ^1.7.1 @@ -1906,8 +1912,8 @@ packages: '@otplib/uri@13.4.0': resolution: {integrity: sha512-x1ozBa5bPbdZCrrTL/HK21qchiK7jYElTu+0ft22abeEhiLYgH1+SIULvOcVk3CK8YwF4kdcidvkq4ciejucJA==} - '@oxc-project/types@0.124.0': - resolution: {integrity: sha512-VBFWMTBvHxS11Z5Lvlr3IWgrwhMTXV+Md+EQF0Xf60+wAdsGFTBx7X7K/hP4pi8N7dcm1RvcHwDxZ16Qx8keUg==} + '@oxc-project/types@0.126.0': + resolution: {integrity: sha512-oGfVtjAgwQVVpfBrbtk4e1XDyWHRFta6BS3GWVzrF8xYBT2VGQAk39yJS/wFSMrZqoiCU4oghT3Ch0HaHGIHcQ==} '@oxfmt/binding-android-arm-eabi@0.45.0': resolution: {integrity: sha512-A/UMxFob1fefCuMeGxQBulGfFE38g2Gm23ynr3u6b+b7fY7/ajGbNsa3ikMIkGMLJW/TRoQaMoP1kME7S+815w==} @@ -2274,103 +2280,103 @@ packages: '@quansync/fs@1.0.0': resolution: {integrity: sha512-4TJ3DFtlf1L5LDMaM6CanJ/0lckGNtJcMjQ1NAV6zDmA0tEHKZtxNKin8EgPaVX1YzljbxckyT2tJrpQKAtngQ==} - '@rolldown/binding-android-arm64@1.0.0-rc.15': - resolution: {integrity: sha512-YYe6aWruPZDtHNpwu7+qAHEMbQ/yRl6atqb/AhznLTnD3UY99Q1jE7ihLSahNWkF4EqRPVC4SiR4O0UkLK02tA==} + '@rolldown/binding-android-arm64@1.0.0-rc.16': + resolution: {integrity: sha512-rhY3k7Bsae9qQfOtph2Pm2jZEA+s8Gmjoz4hhmx70K9iMQ/ddeae+xhRQcM5IuVx5ry1+bGfkvMn7D6MJggVSA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@rolldown/binding-darwin-arm64@1.0.0-rc.15': - resolution: {integrity: sha512-oArR/ig8wNTPYsXL+Mzhs0oxhxfuHRfG7Ikw7jXsw8mYOtk71W0OkF2VEVh699pdmzjPQsTjlD1JIOoHkLP1Fg==} + '@rolldown/binding-darwin-arm64@1.0.0-rc.16': + resolution: {integrity: sha512-rNz0yK078yrNn3DrdgN+PKiMOW8HfQ92jQiXxwX8yW899ayV00MLVdaCNeVBhG/TbH3ouYVObo8/yrkiectkcQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.0-rc.15': - resolution: {integrity: sha512-YzeVqOqjPYvUbJSWJ4EDL8ahbmsIXQpgL3JVipmN+MX0XnXMeWomLN3Fb+nwCmP/jfyqte5I3XRSm7OfQrbyxw==} + '@rolldown/binding-darwin-x64@1.0.0-rc.16': + resolution: {integrity: sha512-r/OmdR00HmD4i79Z//xO06uEPOq5hRXdhw7nzkxQxwSavs3PSHa1ijntdpOiZ2mzOQ3fVVu8C1M19FoNM+dMUQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.0.0-rc.15': - resolution: {integrity: sha512-9Erhx956jeQ0nNTyif1+QWAXDRD38ZNjr//bSHrt6wDwB+QkAfl2q6Mn1k6OBPerznjRmbM10lgRb1Pli4xZPw==} + '@rolldown/binding-freebsd-x64@1.0.0-rc.16': + resolution: {integrity: sha512-KcRE5w8h0OnjUatG8pldyD14/CQ5Phs1oxfR+3pKDjboHRo9+MkqQaiIZlZRpsxC15paeXme/I127tUa9TXJ6g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.15': - resolution: {integrity: sha512-cVwk0w8QbZJGTnP/AHQBs5yNwmpgGYStL88t4UIaqcvYJWBfS0s3oqVLZPwsPU6M0zlW4GqjP0Zq5MnAGwFeGA==} + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.16': + resolution: {integrity: sha512-bT0guA1bpxEJ/ZhTRniQf7rNF8ybvXOuWbNIeLABaV5NGjx4EtOWBTSRGWFU9ZWVkPOZ+HNFP8RMcBokBiZ0Kg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.15': - resolution: {integrity: sha512-eBZ/u8iAK9SoHGanqe/jrPnY0JvBN6iXbVOsbO38mbz+ZJsaobExAm1Iu+rxa4S1l2FjG0qEZn4Rc6X8n+9M+w==} + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.16': + resolution: {integrity: sha512-+tHktCHWV8BDQSjemUqm/Jl/TPk3QObCTIjmdDy/nlupcujZghmKK2962LYrqFpWu+ai01AN/REOH3NEpqvYQg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-arm64-musl@1.0.0-rc.15': - resolution: {integrity: sha512-ZvRYMGrAklV9PEkgt4LQM6MjQX2P58HPAuecwYObY2DhS2t35R0I810bKi0wmaYORt6m/2Sm+Z+nFgb0WhXNcQ==} + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.16': + resolution: {integrity: sha512-3fPzdREH806oRLxpTWW1Gt4tQHs0TitZFOECB2xzCFLPKnSOy90gwA7P29cksYilFO6XVRY1kzga0cL2nRjKPg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.15': - resolution: {integrity: sha512-VDpgGBzgfg5hLg+uBpCLoFG5kVvEyafmfxGUV0UHLcL5irxAK7PKNeC2MwClgk6ZAiNhmo9FLhRYgvMmedLtnQ==} + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.16': + resolution: {integrity: sha512-EKwI1tSrLs7YVw+JPJT/G2dJQ1jl9qlTTTEG0V2Ok/RdOenRfBw2PQdLPyjhIu58ocdBfP7vIRN/pvMsPxs/AQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.15': - resolution: {integrity: sha512-y1uXY3qQWCzcPgRJATPSOUP4tCemh4uBdY7e3EZbVwCJTY3gLJWnQABgeUetvED+bt1FQ01OeZwvhLS2bpNrAQ==} + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.16': + resolution: {integrity: sha512-Uknladnb3Sxqu6SEcqBldQyJUpk8NleooZEc0MbRBJ4inEhRYWZX0NJu12vNf2mqAq7gsofAxHrGghiUYjhaLQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-gnu@1.0.0-rc.15': - resolution: {integrity: sha512-023bTPBod7J3Y/4fzAN6QtpkSABR0rigtrwaP+qSEabUh5zf6ELr9Nc7GujaROuPY3uwdSIXWrvhn1KxOvurWA==} + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.16': + resolution: {integrity: sha512-FIb8+uG49sZBtLTn+zt1AJ20TqVcqWeSIyoVt0or7uAWesgKaHbiBh6OpA/k9v0LTt+PTrb1Lao133kP4uVxkg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-musl@1.0.0-rc.15': - resolution: {integrity: sha512-witB2O0/hU4CgfOOKUoeFgQ4GktPi1eEbAhaLAIpgD6+ZnhcPkUtPsoKKHRzmOoWPZue46IThdSgdo4XneOLYw==} + '@rolldown/binding-linux-x64-musl@1.0.0-rc.16': + resolution: {integrity: sha512-RuERhF9/EgWxZEXYWCOaViUWHIboceK4/ivdtQ3R0T44NjLkIIlGIAVAuCddFxsZ7vnRHtNQUrt2vR2n2slB2w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@rolldown/binding-openharmony-arm64@1.0.0-rc.15': - resolution: {integrity: sha512-UCL68NJ0Ud5zRipXZE9dF5PmirzJE4E4BCIOOssEnM7wLDsxjc6Qb0sGDxTNRTP53I6MZpygyCpY8Aa8sPfKPg==} + '@rolldown/binding-openharmony-arm64@1.0.0-rc.16': + resolution: {integrity: sha512-mXcXnvd9GpazCxeUCCnZ2+YF7nut+ZOEbE4GtaiPtyY6AkhZWbK70y1KK3j+RDhjVq5+U8FySkKRb/+w0EeUwA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@rolldown/binding-wasm32-wasi@1.0.0-rc.15': - resolution: {integrity: sha512-ApLruZq/ig+nhaE7OJm4lDjayUnOHVUa77zGeqnqZ9pn0ovdVbbNPerVibLXDmWeUZXjIYIT8V3xkT58Rm9u5Q==} - engines: {node: '>=14.0.0'} + '@rolldown/binding-wasm32-wasi@1.0.0-rc.16': + resolution: {integrity: sha512-3Q2KQxnC8IJOLqXmUMoYwyIPZU9hzRbnHaoV3Euz+VVnjZKcY8ktnNP8T9R4/GGQtb27C/UYKABxesKWb8lsvQ==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [wasm32] - '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.15': - resolution: {integrity: sha512-KmoUoU7HnN+Si5YWJigfTws1jz1bKBYDQKdbLspz0UaqjjFkddHsqorgiW1mxcAj88lYUE6NC/zJNwT+SloqtA==} + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.16': + resolution: {integrity: sha512-tj7XRemQcOcFwv7qhpUxMTBbI5mWMlE4c1Omhg5+h8GuLXzyj8HviYgR+bB2DMDgRqUE+jiDleqSCRjx4aYk/Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.0-rc.15': - resolution: {integrity: sha512-3P2A8L+x75qavWLe/Dll3EYBJLQmtkJN8rfh+U/eR3MqMgL/h98PhYI+JFfXuDPgPeCB7iZAKiqii5vqOvnA0g==} + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.16': + resolution: {integrity: sha512-PH5DRZT+F4f2PTXRXR8uJxnBq2po/xFtddyabTJVJs/ZYVHqXPEgNIr35IHTEa6bpa0Q8Awg+ymkTaGnKITw4g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] - '@rolldown/pluginutils@1.0.0-rc.15': - resolution: {integrity: sha512-UromN0peaE53IaBRe9W7CjrZgXl90fqGpK+mIZbA3qSTeYqg3pqpROBdIPvOG3F5ereDHNwoHBI2e50n1BDr1g==} + '@rolldown/pluginutils@1.0.0-rc.16': + resolution: {integrity: sha512-45+YtqxLYKDWQouLKCrpIZhke+nXxhsw+qAHVzHDVwttyBlHNBVs2K25rDXrZzhpTp9w1FlAlvweV1H++fdZoA==} '@rollup/pluginutils@5.3.0': resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} @@ -4141,6 +4147,9 @@ packages: get-tsconfig@4.13.7: resolution: {integrity: sha512-7tN6rFgBlMgpBML5j8typ92BKFi2sFQvIdpAqLA2beia5avZDrMs0FLZiM5etShWq5irVyGcGMEA1jcDaK7A/Q==} + get-tsconfig@4.14.0: + resolution: {integrity: sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==} + get-uri@6.0.5: resolution: {integrity: sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==} engines: {node: '>= 14'} @@ -4251,8 +4260,8 @@ packages: resolution: {integrity: sha512-am5zfg3yu6sqn5yjKBNqhnTX7Cv+m00ox+7jbaKkrLMRJ4rAdldd1xPd/JzbBWspqaQv6RSTrgFN95EsfhC+7w==} engines: {node: '>=16.9.0'} - hookable@6.1.0: - resolution: {integrity: sha512-ZoKZSJgu8voGK2geJS+6YtYjvIzu9AOM/KZXsBxr83uhLL++e9pEv/dlgwgy3dvHg06kTz6JOh1hk3C8Ceiymw==} + hookable@6.1.1: + resolution: {integrity: sha512-U9LYDy1CwhMCnprUfeAZWZGByVbhd54hwepegYTK7Pi5NvqEj63ifz5z+xukznehT7i6NIZRu89Ay1AZmRsLEQ==} html-encoding-sniffer@6.0.0: resolution: {integrity: sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg==} @@ -4362,8 +4371,8 @@ packages: resolution: {integrity: sha512-pYkiyXVL2Mf3pozdlDGV6NAObxQx13Ae8knZk1UJRJ6uRW/ZRmTGHlQYtrsSl7ubuE5F8CD1z+s1n4RHNuTtuA==} engines: {node: '>=18'} - import-without-cache@0.2.5: - resolution: {integrity: sha512-B6Lc2s6yApwnD2/pMzFh/d5AVjdsDXjgkeJ766FmFuJELIGHNycKRj+l3A39yZPM4CchqNCB4RITEAYB1KUM6A==} + import-without-cache@0.3.3: + resolution: {integrity: sha512-bDxwDdF04gm550DfZHgffvlX+9kUlcz32UD0AeBTmVPFiWkrexF2XVmiuFFbDhiFuP8fQkrkvI2KdSNPYWAXkQ==} engines: {node: '>=20.19.0'} imurmurhash@0.1.4: @@ -5512,8 +5521,8 @@ packages: vue-tsc: optional: true - rolldown@1.0.0-rc.15: - resolution: {integrity: sha512-Ff31guA5zT6WjnGp0SXw76X6hzGRk/OQq2hE+1lcDe+lJdHSgnSX6nK3erbONHyCbpSj9a9E+uX/OvytZoWp2g==} + rolldown@1.0.0-rc.16: + resolution: {integrity: sha512-rzi5WqKzEZw3SooTt7cgm4eqIoujPIyGcJNGFL7iPEuajQw7vxMHUkXylu4/vhCkJGXsgRmxqMKXUpT6FEgl0g==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true @@ -5906,14 +5915,14 @@ packages: typescript: optional: true - tsdown@0.21.8: - resolution: {integrity: sha512-rHDIER4JU5owYTWptvyDk6pwfA5lCft1P+11HLGeF0uj0CB7vopFvr/E8QOaRmegeyHIEsu4+03j7ysvdgBAVA==} + tsdown@0.21.9: + resolution: {integrity: sha512-tZPv2zMaMnjj9H9h0SDqpSXa9YWVZWHlG46DnSgNTFX6aq001MSI8kuBzJumr/u099nWj+1v5S7rhbnHk5jCHA==} engines: {node: '>=20.19.0'} hasBin: true peerDependencies: '@arethetypeswrong/core': ^0.18.1 - '@tsdown/css': 0.21.8 - '@tsdown/exe': 0.21.8 + '@tsdown/css': 0.21.9 + '@tsdown/exe': 0.21.9 '@vitejs/devtools': '*' publint: ^0.3.0 typescript: ^5.0.0 || ^6.0.0 @@ -6055,8 +6064,8 @@ packages: unrs-resolver@1.11.1: resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} - unrun@0.2.35: - resolution: {integrity: sha512-nDP7mA4Fu5owDarQtLiiN3lq7tJZHFEAVIchnwP8U3wMeEkLoUNT37Hva85H05Rdw8CArpGmtY+lBjpk9fruVQ==} + unrun@0.2.36: + resolution: {integrity: sha512-ICAGv44LHSKjCdI4B4rk99lJLHXBweutO4MUwu3cavMlYtXID0Tn5e1Kwe/Uj6BSAuHHXfi1JheFVCYhcXHfAg==} engines: {node: '>=20.19.0'} hasBin: true peerDependencies: @@ -6674,12 +6683,23 @@ snapshots: '@edge-runtime/primitives': 4.1.0 optional: true + '@emnapi/core@1.10.0': + dependencies: + '@emnapi/wasi-threads': 1.2.1 + tslib: 2.8.1 + optional: true + '@emnapi/core@1.9.2': dependencies: '@emnapi/wasi-threads': 1.2.1 tslib: 2.8.1 optional: true + '@emnapi/runtime@1.10.0': + dependencies: + tslib: 2.8.1 + optional: true + '@emnapi/runtime@1.9.2': dependencies: tslib: 2.8.1 @@ -7120,7 +7140,7 @@ snapshots: '@img/sharp-wasm32@0.34.5': dependencies: - '@emnapi/runtime': 1.9.2 + '@emnapi/runtime': 1.10.0 optional: true '@img/sharp-win32-arm64@0.34.5': @@ -7268,12 +7288,12 @@ snapshots: '@napi-rs/wasm-runtime@0.2.12': dependencies: - '@emnapi/core': 1.9.2 - '@emnapi/runtime': 1.9.2 + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 '@tybys/wasm-util': 0.10.1 optional: true - '@napi-rs/wasm-runtime@1.1.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)': + '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)': dependencies: '@emnapi/core': 1.9.2 '@emnapi/runtime': 1.9.2 @@ -7691,7 +7711,7 @@ snapshots: dependencies: '@otplib/core': 13.4.0 - '@oxc-project/types@0.124.0': {} + '@oxc-project/types@0.126.0': {} '@oxfmt/binding-android-arm-eabi@0.45.0': optional: true @@ -7947,56 +7967,56 @@ snapshots: dependencies: quansync: 1.0.0 - '@rolldown/binding-android-arm64@1.0.0-rc.15': + '@rolldown/binding-android-arm64@1.0.0-rc.16': optional: true - '@rolldown/binding-darwin-arm64@1.0.0-rc.15': + '@rolldown/binding-darwin-arm64@1.0.0-rc.16': optional: true - '@rolldown/binding-darwin-x64@1.0.0-rc.15': + '@rolldown/binding-darwin-x64@1.0.0-rc.16': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-rc.15': + '@rolldown/binding-freebsd-x64@1.0.0-rc.16': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.15': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.16': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.15': + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.16': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-rc.15': + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.16': optional: true - '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.15': + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.16': optional: true - '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.15': + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.16': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-rc.15': + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.16': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-rc.15': + '@rolldown/binding-linux-x64-musl@1.0.0-rc.16': optional: true - '@rolldown/binding-openharmony-arm64@1.0.0-rc.15': + '@rolldown/binding-openharmony-arm64@1.0.0-rc.16': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-rc.15': + '@rolldown/binding-wasm32-wasi@1.0.0-rc.16': dependencies: '@emnapi/core': 1.9.2 '@emnapi/runtime': 1.9.2 - '@napi-rs/wasm-runtime': 1.1.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) + '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.15': + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.16': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-rc.15': + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.16': optional: true - '@rolldown/pluginutils@1.0.0-rc.15': {} + '@rolldown/pluginutils@1.0.0-rc.16': {} '@rollup/pluginutils@5.3.0(rollup@4.60.1)': dependencies: @@ -9827,6 +9847,10 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 + get-tsconfig@4.14.0: + dependencies: + resolve-pkg-maps: 1.0.0 + get-uri@6.0.5: dependencies: basic-ftp: 5.3.0 @@ -9983,7 +10007,7 @@ snapshots: hono@4.12.14: {} - hookable@6.1.0: {} + hookable@6.1.1: {} html-encoding-sniffer@6.0.0(@noble/hashes@2.0.1): dependencies: @@ -10127,7 +10151,7 @@ snapshots: cjs-module-lexer: 2.2.0 module-details-from-path: 1.0.4 - import-without-cache@0.2.5: {} + import-without-cache@0.3.3: {} imurmurhash@0.1.4: {} @@ -11500,7 +11524,7 @@ snapshots: rfdc@1.4.1: {} - rolldown-plugin-dts@0.23.2(rolldown@1.0.0-rc.15)(typescript@5.9.3): + rolldown-plugin-dts@0.23.2(rolldown@1.0.0-rc.16)(typescript@5.9.3): dependencies: '@babel/generator': 8.0.0-rc.3 '@babel/helper-validator-identifier': 8.0.0-rc.3 @@ -11509,35 +11533,35 @@ snapshots: ast-kit: 3.0.0-beta.1 birpc: 4.0.0 dts-resolver: 2.1.3 - get-tsconfig: 4.13.7 + get-tsconfig: 4.14.0 obug: 2.1.1 picomatch: 4.0.4 - rolldown: 1.0.0-rc.15 + rolldown: 1.0.0-rc.16 optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: - oxc-resolver - rolldown@1.0.0-rc.15: + rolldown@1.0.0-rc.16: dependencies: - '@oxc-project/types': 0.124.0 - '@rolldown/pluginutils': 1.0.0-rc.15 + '@oxc-project/types': 0.126.0 + '@rolldown/pluginutils': 1.0.0-rc.16 optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.0-rc.15 - '@rolldown/binding-darwin-arm64': 1.0.0-rc.15 - '@rolldown/binding-darwin-x64': 1.0.0-rc.15 - '@rolldown/binding-freebsd-x64': 1.0.0-rc.15 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-rc.15 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-rc.15 - '@rolldown/binding-linux-arm64-musl': 1.0.0-rc.15 - '@rolldown/binding-linux-ppc64-gnu': 1.0.0-rc.15 - '@rolldown/binding-linux-s390x-gnu': 1.0.0-rc.15 - '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.15 - '@rolldown/binding-linux-x64-musl': 1.0.0-rc.15 - '@rolldown/binding-openharmony-arm64': 1.0.0-rc.15 - '@rolldown/binding-wasm32-wasi': 1.0.0-rc.15 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.15 - '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.15 + '@rolldown/binding-android-arm64': 1.0.0-rc.16 + '@rolldown/binding-darwin-arm64': 1.0.0-rc.16 + '@rolldown/binding-darwin-x64': 1.0.0-rc.16 + '@rolldown/binding-freebsd-x64': 1.0.0-rc.16 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-rc.16 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-rc.16 + '@rolldown/binding-linux-arm64-musl': 1.0.0-rc.16 + '@rolldown/binding-linux-ppc64-gnu': 1.0.0-rc.16 + '@rolldown/binding-linux-s390x-gnu': 1.0.0-rc.16 + '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.16 + '@rolldown/binding-linux-x64-musl': 1.0.0-rc.16 + '@rolldown/binding-openharmony-arm64': 1.0.0-rc.16 + '@rolldown/binding-wasm32-wasi': 1.0.0-rc.16 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.16 + '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.16 rollup@4.60.1: dependencies: @@ -11985,24 +12009,24 @@ snapshots: optionalDependencies: typescript: 5.9.3 - tsdown@0.21.8(synckit@0.11.12)(typescript@5.9.3): + tsdown@0.21.9(synckit@0.11.12)(typescript@5.9.3): dependencies: ansis: 4.2.0 cac: 7.0.0 defu: 6.1.7 empathic: 2.0.0 - hookable: 6.1.0 - import-without-cache: 0.2.5 + hookable: 6.1.1 + import-without-cache: 0.3.3 obug: 2.1.1 picomatch: 4.0.4 - rolldown: 1.0.0-rc.15 - rolldown-plugin-dts: 0.23.2(rolldown@1.0.0-rc.15)(typescript@5.9.3) + rolldown: 1.0.0-rc.16 + rolldown-plugin-dts: 0.23.2(rolldown@1.0.0-rc.16)(typescript@5.9.3) semver: 7.7.4 tinyexec: 1.1.1 tinyglobby: 0.2.16 tree-kill: 1.2.2 unconfig-core: 7.5.0 - unrun: 0.2.35(synckit@0.11.12) + unrun: 0.2.36(synckit@0.11.12) optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: @@ -12137,9 +12161,9 @@ snapshots: '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 - unrun@0.2.35(synckit@0.11.12): + unrun@0.2.36(synckit@0.11.12): dependencies: - rolldown: 1.0.0-rc.15 + rolldown: 1.0.0-rc.16 optionalDependencies: synckit: 0.11.12 From 123e803752b73d4007816a0384089e9ad5eeb297 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 Apr 2026 08:23:11 +0000 Subject: [PATCH 196/439] chore(deps-dev): bump discord-api-types from 0.38.46 to 0.38.47 (#21763) Bumps [discord-api-types](https://github.com/discordjs/discord-api-types) from 0.38.46 to 0.38.47. - [Release notes](https://github.com/discordjs/discord-api-types/releases) - [Changelog](https://github.com/discordjs/discord-api-types/blob/main/CHANGELOG.md) - [Commits](https://github.com/discordjs/discord-api-types/compare/0.38.46...0.38.47) --- updated-dependencies: - dependency-name: discord-api-types dependency-version: 0.38.47 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 3e921821dd37..38011910a881 100644 --- a/package.json +++ b/package.json @@ -173,7 +173,7 @@ "@typescript-eslint/parser": "8.58.2", "@vercel/nft": "1.5.0", "@vitest/coverage-v8": "4.1.4", - "discord-api-types": "0.38.46", + "discord-api-types": "0.38.47", "domhandler": "6.0.1", "eslint": "10.2.0", "eslint-nibble": "9.1.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bdaf03e8180d..c2dedbeb44bb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -378,8 +378,8 @@ importers: specifier: 4.1.4 version: 4.1.4(vitest@4.1.4) discord-api-types: - specifier: 0.38.46 - version: 0.38.46 + specifier: 0.38.47 + version: 0.38.47 domhandler: specifier: 6.0.1 version: 6.0.1 @@ -3643,8 +3643,8 @@ packages: resolution: {tarball: https://codeload.github.com/postlight/difflib.js/tar.gz/32e8e38c7fcd935241b9baab71bb432fd9b166ed} version: 0.2.6 - discord-api-types@0.38.46: - resolution: {integrity: sha512-Ae7NcagMG+FPxwuQxGCPEHmLCKMm8YBMPWEuF5J3L+KWrlH4XGR3UoVo4Ne8bwhhHXbpf+DxDqOeW2jBFupXCQ==} + discord-api-types@0.38.47: + resolution: {integrity: sha512-XgXQodHQBAE6kfD7kMvVo30863iHX1LHSqNq6MGUTDwIFCCvHva13+rwxyxVXDqudyApMNAd32PGjgVETi5rjA==} dom-serializer@1.4.1: resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} @@ -9196,7 +9196,7 @@ snapshots: dependencies: heap: 0.2.7 - discord-api-types@0.38.46: {} + discord-api-types@0.38.47: {} dom-serializer@1.4.1: dependencies: From cfc522e9c4bf918d2cf28f9f3a44c481e7f10eed Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 Apr 2026 08:24:55 +0000 Subject: [PATCH 197/439] chore(deps-dev): bump msw from 2.13.3 to 2.13.4 (#21764) Bumps [msw](https://github.com/mswjs/msw) from 2.13.3 to 2.13.4. - [Release notes](https://github.com/mswjs/msw/releases) - [Changelog](https://github.com/mswjs/msw/blob/main/CHANGELOG.md) - [Commits](https://github.com/mswjs/msw/compare/v2.13.3...v2.13.4) --- updated-dependencies: - dependency-name: msw dependency-version: 2.13.4 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 141 +++++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 125 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index 38011910a881..74d1593b7cec 100644 --- a/package.json +++ b/package.json @@ -190,7 +190,7 @@ "lint-staged": "16.4.0", "magic-string": "0.30.21", "mockdate": "3.0.5", - "msw": "2.13.3", + "msw": "2.13.4", "node-network-devtools": "1.0.29", "oxfmt": "0.45.0", "oxlint": "1.60.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c2dedbeb44bb..b62db7898cc9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -429,8 +429,8 @@ importers: specifier: 3.0.5 version: 3.0.5 msw: - specifier: 2.13.3 - version: 2.13.3(@types/node@25.6.0)(typescript@5.9.3) + specifier: 2.13.4 + version: 2.13.4(@types/node@25.6.0)(typescript@5.9.3) node-network-devtools: specifier: 1.0.29 version: 1.0.29(undici@7.25.0)(utf-8-validate@5.0.10) @@ -463,7 +463,7 @@ importers: version: 6.1.1(typescript@5.9.3)(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)) vitest: specifier: 4.1.4 - version: 4.1.4(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.4)(jsdom@29.0.2(@noble/hashes@2.0.1))(msw@2.13.3(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.4(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.4)(jsdom@29.0.2(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)) wrangler: specifier: 4.82.2 version: 4.82.2(@cloudflare/workers-types@4.20260415.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10) @@ -1448,6 +1448,10 @@ packages: resolution: {integrity: sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==} engines: {node: '>=18'} + '@inquirer/ansi@2.0.5': + resolution: {integrity: sha512-doc2sWgJpbFQ64UflSVd17ibMGDuxO1yKgOgLMwavzESnXjFWJqUeG8saYosqKpHp4kWiM5x1nXvEjbpx90gzw==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + '@inquirer/checkbox@4.3.2': resolution: {integrity: sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA==} engines: {node: '>=18'} @@ -1466,6 +1470,15 @@ packages: '@types/node': optional: true + '@inquirer/confirm@6.0.11': + resolution: {integrity: sha512-pTpHjg0iEIRMYV/7oCZUMf27/383E6Wyhfc/MY+AVQGEoUobffIYWOK9YLP2XFRGz/9i6WlTQh1CkFVIo2Y7XA==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@inquirer/core@10.3.2': resolution: {integrity: sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==} engines: {node: '>=18'} @@ -1475,10 +1488,23 @@ packages: '@types/node': optional: true + '@inquirer/core@11.1.8': + resolution: {integrity: sha512-/u+yJk2pOKNDOh1ZgdUH2RQaRx6OOH4I0uwL95qPvTFTIL38YBsuSC4r1yXBB3Q6JvNqFFc202gk0Ew79rrcjA==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@inquirer/figures@1.0.15': resolution: {integrity: sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==} engines: {node: '>=18'} + '@inquirer/figures@2.0.5': + resolution: {integrity: sha512-NsSs4kzfm12lNetHwAn3GEuH317IzpwrMCbOuMIVytpjnJ90YYHNwdRgYGuKmVxwuIqSgqk3M5qqQt1cDk0tGQ==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + '@inquirer/select@4.4.2': resolution: {integrity: sha512-l4xMuJo55MAe+N7Qr4rX90vypFwCajSakx59qe/tMaC1aEHWLyw68wF4o0A4SLAY4E0nd+Vt+EyskeDIqu1M6w==} engines: {node: '>=18'} @@ -1497,6 +1523,15 @@ packages: '@types/node': optional: true + '@inquirer/type@4.0.5': + resolution: {integrity: sha512-aetVUNeKNc/VriqXlw1NRSW0zhMBB0W4bNbWRJgzRl/3d0QNDQFfk0GO5SDdtjMZVg6o8ZKEiadd7SCCzoOn5Q==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@ioredis/commands@1.5.1': resolution: {integrity: sha512-JH8ZL/ywcJyR9MmJ5BNqZllXNZQqQbnVZOqpPQqE1vHiFgAw4NHbvE0FOduNU8IX9babitBT46571OnPTT0Zcw==} @@ -1650,6 +1685,9 @@ packages: '@open-draft/deferred-promise@2.2.0': resolution: {integrity: sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==} + '@open-draft/deferred-promise@3.0.0': + resolution: {integrity: sha512-XW375UK8/9SqUVNVa6M0yEy8+iTi4QN5VZ7aZuRFQmy76LRwI9wy5F4YIBU6T+eTe2/DNDo8tqu8RHlwLHM6RA==} + '@open-draft/logger@0.3.0': resolution: {integrity: sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==} @@ -2786,6 +2824,9 @@ packages: '@types/serve-static@2.2.0': resolution: {integrity: sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==} + '@types/set-cookie-parser@2.4.10': + resolution: {integrity: sha512-GGmQVGpQWUe5qglJozEjZV/5dyxbOOZ0LHe/lqyWssB88Y4svNfst0uqBVscdDeIKl5Jy5+aPSvy7mI9tYRguw==} + '@types/statuses@2.0.6': resolution: {integrity: sha512-xMAgYwceFhRA2zY+XbEA7mxYbA093wdiW8Vu6gZPGWy9cmOyU9XesH1tNcEWsKFd5Vzrqx5T3D38PWx1FIIXkA==} @@ -4030,6 +4071,15 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + fast-string-truncated-width@3.0.3: + resolution: {integrity: sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g==} + + fast-string-width@3.0.2: + resolution: {integrity: sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg==} + + fast-wrap-ansi@0.2.0: + resolution: {integrity: sha512-rLV8JHxTyhVmFYhBJuMujcrHqOT2cnO5Zxj37qROj23CP39GXubJRBUFF0z8KFK77Uc0SukZUf7JZhsVEQ6n8w==} + fd-slicer@1.1.0: resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} @@ -4247,8 +4297,8 @@ packages: resolution: {integrity: sha512-4NjPB0+bAKjPoponSmTOkK58IEF2W22sOJA5O48k/MxbCZgOm+jrU4WVR53Z2I6xFgIPkVrQmKtt1LAbWtfqXw==} engines: {node: '>=16.0.0'} - headers-polyfill@4.0.3: - resolution: {integrity: sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==} + headers-polyfill@5.0.1: + resolution: {integrity: sha512-1TJ6Fih/b8h5TIcv+1+Hw0PDQWJTKDKzFZzcKOiW1wJza3XoAQlkCuXLbymPYB8+ZQyw8mHvdw560e8zVFIWyA==} heap@0.2.7: resolution: {integrity: sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==} @@ -4911,8 +4961,8 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - msw@2.13.3: - resolution: {integrity: sha512-/F49bxavkNGfreMlrKmTxZs6YorjfMbbDLd89Q3pWi+cXGtQQNXXaHt4MkXN7li91xnQJ24HWXqW9QDm5id33w==} + msw@2.13.4: + resolution: {integrity: sha512-fPlKBeFe+8rpcyR3umUmmHuNwu6gc6T3STvkgEa9WDX/HEgal9wDeflpCUAIRtmvaLZM2igfI5y1bZ9G5J26KA==} engines: {node: '>=18'} hasBin: true peerDependencies: @@ -4925,6 +4975,10 @@ packages: resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} engines: {node: ^18.17.0 || >=20.5.0} + mute-stream@3.0.0: + resolution: {integrity: sha512-dkEJPVvun4FryqBmZ5KhDo0K9iDXAwn08tMLDinNdRBNPcYEDiWYysLcc6k3mjTMlbP9KyylvRpd4wFtwrT9rw==} + engines: {node: ^20.17.0 || >=22.9.0} + nan@1.8.4: resolution: {integrity: sha512-609zQ1h3ApgH/94qmbbEklSrjcYYXCHnsWk4MAojq4OUk3tidhDYhPaMasMFKsZPZ96r4eQA1hbR2W4H7/77XA==} @@ -5561,6 +5615,9 @@ packages: engines: {node: '>=10'} hasBin: true + set-cookie-parser@3.1.0: + resolution: {integrity: sha512-kjnC1DXBHcxaOaOXBHBeRtltsDG2nUiUni+jP92M9gYdW12rsmx92UsfpH7o5tDRs7I1ZZPSQJQGv3UaRfCiuw==} + sharp@0.34.5: resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -7154,6 +7211,8 @@ snapshots: '@inquirer/ansi@1.0.2': {} + '@inquirer/ansi@2.0.5': {} + '@inquirer/checkbox@4.3.2(@types/node@25.6.0)': dependencies: '@inquirer/ansi': 1.0.2 @@ -7171,6 +7230,13 @@ snapshots: optionalDependencies: '@types/node': 25.6.0 + '@inquirer/confirm@6.0.11(@types/node@25.6.0)': + dependencies: + '@inquirer/core': 11.1.8(@types/node@25.6.0) + '@inquirer/type': 4.0.5(@types/node@25.6.0) + optionalDependencies: + '@types/node': 25.6.0 + '@inquirer/core@10.3.2(@types/node@25.6.0)': dependencies: '@inquirer/ansi': 1.0.2 @@ -7184,8 +7250,22 @@ snapshots: optionalDependencies: '@types/node': 25.6.0 + '@inquirer/core@11.1.8(@types/node@25.6.0)': + dependencies: + '@inquirer/ansi': 2.0.5 + '@inquirer/figures': 2.0.5 + '@inquirer/type': 4.0.5(@types/node@25.6.0) + cli-width: 4.1.0 + fast-wrap-ansi: 0.2.0 + mute-stream: 3.0.0 + signal-exit: 4.1.0 + optionalDependencies: + '@types/node': 25.6.0 + '@inquirer/figures@1.0.15': {} + '@inquirer/figures@2.0.5': {} + '@inquirer/select@4.4.2(@types/node@25.6.0)': dependencies: '@inquirer/ansi': 1.0.2 @@ -7200,6 +7280,10 @@ snapshots: optionalDependencies: '@types/node': 25.6.0 + '@inquirer/type@4.0.5(@types/node@25.6.0)': + optionalDependencies: + '@types/node': 25.6.0 + '@ioredis/commands@1.5.1': {} '@isaacs/cliui@8.0.2': @@ -7373,6 +7457,8 @@ snapshots: '@open-draft/deferred-promise@2.2.0': {} + '@open-draft/deferred-promise@3.0.0': {} + '@open-draft/logger@0.3.0': dependencies: is-node-process: 1.2.0 @@ -8407,6 +8493,10 @@ snapshots: '@types/http-errors': 2.0.5 '@types/node': 25.6.0 + '@types/set-cookie-parser@2.4.10': + dependencies: + '@types/node': 25.6.0 + '@types/statuses@2.0.6': {} '@types/tedious@4.0.14': @@ -8607,7 +8697,7 @@ snapshots: obug: 2.1.1 std-env: 4.0.0 tinyrainbow: 3.1.0 - vitest: 4.1.4(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.4)(jsdom@29.0.2(@noble/hashes@2.0.1))(msw@2.13.3(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)) + vitest: 4.1.4(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.4)(jsdom@29.0.2(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)) '@vitest/expect@4.1.4': dependencies: @@ -8618,13 +8708,13 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.4(msw@2.13.3(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3))': + '@vitest/mocker@4.1.4(msw@2.13.4(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: '@vitest/spy': 4.1.4 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - msw: 2.13.3(@types/node@25.6.0)(typescript@5.9.3) + msw: 2.13.4(@types/node@25.6.0)(typescript@5.9.3) vite: 7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3) '@vitest/pretty-format@4.1.4': @@ -9727,6 +9817,16 @@ snapshots: fast-levenshtein@2.0.6: {} + fast-string-truncated-width@3.0.3: {} + + fast-string-width@3.0.2: + dependencies: + fast-string-truncated-width: 3.0.3 + + fast-wrap-ansi@0.2.0: + dependencies: + fast-string-width: 3.0.2 + fd-slicer@1.1.0: dependencies: pend: 1.2.0 @@ -9999,7 +10099,10 @@ snapshots: ow: 0.28.2 tslib: 2.8.1 - headers-polyfill@4.0.3: {} + headers-polyfill@5.0.1: + dependencies: + '@types/set-cookie-parser': 2.4.10 + set-cookie-parser: 3.1.0 heap@0.2.7: {} @@ -10799,15 +10902,15 @@ snapshots: ms@2.1.3: {} - msw@2.13.3(@types/node@25.6.0)(typescript@5.9.3): + msw@2.13.4(@types/node@25.6.0)(typescript@5.9.3): dependencies: - '@inquirer/confirm': 5.1.21(@types/node@25.6.0) + '@inquirer/confirm': 6.0.11(@types/node@25.6.0) '@mswjs/interceptors': 0.41.3(patch_hash=5027fcc424409c41c41147fc6c90b36166061522e0b03e73b45f9a973fcd2a28) - '@open-draft/deferred-promise': 2.2.0 + '@open-draft/deferred-promise': 3.0.0 '@types/statuses': 2.0.6 cookie: 1.1.1 graphql: 16.13.2 - headers-polyfill: 4.0.3 + headers-polyfill: 5.0.1 is-node-process: 1.2.0 outvariant: 1.4.3 path-to-regexp: 6.3.0 @@ -10826,6 +10929,8 @@ snapshots: mute-stream@2.0.0: {} + mute-stream@3.0.0: {} + nan@1.8.4: optional: true @@ -11626,6 +11731,8 @@ snapshots: semver@7.7.4: {} + set-cookie-parser@3.1.0: {} + sharp@0.34.5: dependencies: '@img/colour': 1.1.0 @@ -12256,10 +12363,10 @@ snapshots: tsx: 4.21.0 yaml: 2.8.3 - vitest@4.1.4(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.4)(jsdom@29.0.2(@noble/hashes@2.0.1))(msw@2.13.3(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)): + vitest@4.1.4(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.4)(jsdom@29.0.2(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)): dependencies: '@vitest/expect': 4.1.4 - '@vitest/mocker': 4.1.4(msw@2.13.3(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)) + '@vitest/mocker': 4.1.4(msw@2.13.4(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)) '@vitest/pretty-format': 4.1.4 '@vitest/runner': 4.1.4 '@vitest/snapshot': 4.1.4 From f2c6984a25df109b03e27050f59c328043d3ddb6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 Apr 2026 08:30:46 +0000 Subject: [PATCH 198/439] chore(deps-dev): bump oxlint-tsgolint in the oxc group (#21760) Bumps the oxc group with 1 update: [oxlint-tsgolint](https://github.com/oxc-project/tsgolint). Updates `oxlint-tsgolint` from 0.21.0 to 0.21.1 - [Release notes](https://github.com/oxc-project/tsgolint/releases) - [Commits](https://github.com/oxc-project/tsgolint/compare/v0.21.0...v0.21.1) --- updated-dependencies: - dependency-name: oxlint-tsgolint dependency-version: 0.21.1 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: oxc ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 66 +++++++++++++++++++++++++------------------------- 2 files changed, 34 insertions(+), 34 deletions(-) diff --git a/package.json b/package.json index 74d1593b7cec..3650d3678c03 100644 --- a/package.json +++ b/package.json @@ -195,7 +195,7 @@ "oxfmt": "0.45.0", "oxlint": "1.60.0", "oxlint-plugin-eslint": "1.60.0", - "oxlint-tsgolint": "0.21.0", + "oxlint-tsgolint": "0.21.1", "remark-parse": "11.0.0", "tsdown": "0.21.9", "typescript": "5.9.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b62db7898cc9..38451930c2de 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -439,13 +439,13 @@ importers: version: 0.45.0 oxlint: specifier: 1.60.0 - version: 1.60.0(oxlint-tsgolint@0.21.0) + version: 1.60.0(oxlint-tsgolint@0.21.1) oxlint-plugin-eslint: specifier: 1.60.0 version: 1.60.0 oxlint-tsgolint: - specifier: 0.21.0 - version: 0.21.0 + specifier: 0.21.1 + version: 0.21.1 remark-parse: specifier: 11.0.0 version: 11.0.0 @@ -2075,33 +2075,33 @@ packages: cpu: [x64] os: [win32] - '@oxlint-tsgolint/darwin-arm64@0.21.0': - resolution: {integrity: sha512-P20j3MLqfwIT+94qGU3htC7dWp4pXGZW1p1p7FRUzu1aopq7c9nPCgf0W/WjktqQ57+iuTq9mbSlwWinl6+H1A==} + '@oxlint-tsgolint/darwin-arm64@0.21.1': + resolution: {integrity: sha512-7TLjyWe4wG9saJc992VWmaHq2hwKfOEEVTjheReXJXaDhavMZI4X9a6nKhbEng4IVkYtzjD2jw16vw2WFXLYLw==} cpu: [arm64] os: [darwin] - '@oxlint-tsgolint/darwin-x64@0.21.0': - resolution: {integrity: sha512-81TmmuBcPedEA0MwRmObuQuXnCprS1UiHQWGe7pseqNAJzUWXeAPrayqKTACX92VpruJI+yvY0XJrFp11PpcTA==} + '@oxlint-tsgolint/darwin-x64@0.21.1': + resolution: {integrity: sha512-7wf9Wf75nTzA7zpL9myhFe2RKvfuqGUOADNvUooCjEWvh7hmPz3lSEqTMh5Z/VQhzsG04mM9ACyghxhRzq7zFw==} cpu: [x64] os: [darwin] - '@oxlint-tsgolint/linux-arm64@0.21.0': - resolution: {integrity: sha512-sbjBr6zDduX8rNO0PTjhf7VYLCPWqdijWiMPp8e10qu6Tam1GdaVLaLlX8QrNupTgglO1GvqqgY/jcacWL8a6g==} + '@oxlint-tsgolint/linux-arm64@0.21.1': + resolution: {integrity: sha512-IPuQN/Vd0Rjklg/cCGBbQyUuRBp2f6LQXpZYwk5ivOR6V/+CgiYsv8pn/PVY7gjeyoNvPQrXB7xMjHUO2YZbdw==} cpu: [arm64] os: [linux] - '@oxlint-tsgolint/linux-x64@0.21.0': - resolution: {integrity: sha512-jNrOcy53R5TJQfrK444Cm60bW9437xDoxPbm3AdvFSo/fhdFMllawc7uZC2Wzr+EAjTkW13K8R4QHzsUdBG9fQ==} + '@oxlint-tsgolint/linux-x64@0.21.1': + resolution: {integrity: sha512-d1niGuTbh2qiv7dR7tqkbOcM5cIR63of0lMBFdEQavL1KrJV8zuRdwdi68K7MNGdgoR+J5A9ajpGGvsHwp1bPg==} cpu: [x64] os: [linux] - '@oxlint-tsgolint/win32-arm64@0.21.0': - resolution: {integrity: sha512-xWeRxJJILDE4b9UqHEWGBxcBc1TUS6zWHhxcyxTZMwf4q3wdKeu0OHYAcwLGJzoSjEIf6FTjyfPiRNil2oqsdg==} + '@oxlint-tsgolint/win32-arm64@0.21.1': + resolution: {integrity: sha512-ICu9y2JLnFPvFqstnWPPNqBM8LK8BWw2OTeaR0UgEMm4hOSbrZAKv1/hwZYyiLqnCNjBL87AGSQIgTHCYlsipw==} cpu: [arm64] os: [win32] - '@oxlint-tsgolint/win32-x64@0.21.0': - resolution: {integrity: sha512-Ob9AA9teI8ckPo1whV1smLr5NrqwgBv/8boDbK0YZG+fKgNGRwr1hBj1ORgFWOQaUBv+5njp5A0RAfJJjQ95QQ==} + '@oxlint-tsgolint/win32-x64@0.21.1': + resolution: {integrity: sha512-cTEFCFjCj6iXfrSHcvajSPNqhEA4TxSzU3gFxbdGSAUTNXGToU99IbdhWAPSbhcucoym0XE4Zl7E41NiSkNTug==} cpu: [x64] os: [win32] @@ -5154,8 +5154,8 @@ packages: resolution: {integrity: sha512-gAqkU8vYI1i8EoS0KSCCtrH/pCwDvDEs4Eu4Z1wnmcVMl9hSk4Dgs1udtrehw2vofW8VhrtJDbJfmkcM56TpMQ==} engines: {node: ^20.19.0 || >=22.12.0} - oxlint-tsgolint@0.21.0: - resolution: {integrity: sha512-HiWPhANwRnN1pZJQ2SgNB3WRR+1etLJHmRzQ/MJhyINsEIaOUCjxhlXJKbEaVUwdnyXwRWqo/P9Fx21lz0/mSg==} + oxlint-tsgolint@0.21.1: + resolution: {integrity: sha512-O2hxiT14C2HJkwzBU6CQBFPoagSd/IcV+Tt3e3UUaXFwbW4BO5DSDPSSboc3UM5MIDY+MLyepvtQwBQafNxWdw==} hasBin: true oxlint@1.60.0: @@ -7856,22 +7856,22 @@ snapshots: '@oxfmt/binding-win32-x64-msvc@0.45.0': optional: true - '@oxlint-tsgolint/darwin-arm64@0.21.0': + '@oxlint-tsgolint/darwin-arm64@0.21.1': optional: true - '@oxlint-tsgolint/darwin-x64@0.21.0': + '@oxlint-tsgolint/darwin-x64@0.21.1': optional: true - '@oxlint-tsgolint/linux-arm64@0.21.0': + '@oxlint-tsgolint/linux-arm64@0.21.1': optional: true - '@oxlint-tsgolint/linux-x64@0.21.0': + '@oxlint-tsgolint/linux-x64@0.21.1': optional: true - '@oxlint-tsgolint/win32-arm64@0.21.0': + '@oxlint-tsgolint/win32-arm64@0.21.1': optional: true - '@oxlint-tsgolint/win32-x64@0.21.0': + '@oxlint-tsgolint/win32-x64@0.21.1': optional: true '@oxlint/binding-android-arm-eabi@1.60.0': @@ -11115,16 +11115,16 @@ snapshots: oxlint-plugin-eslint@1.60.0: {} - oxlint-tsgolint@0.21.0: + oxlint-tsgolint@0.21.1: optionalDependencies: - '@oxlint-tsgolint/darwin-arm64': 0.21.0 - '@oxlint-tsgolint/darwin-x64': 0.21.0 - '@oxlint-tsgolint/linux-arm64': 0.21.0 - '@oxlint-tsgolint/linux-x64': 0.21.0 - '@oxlint-tsgolint/win32-arm64': 0.21.0 - '@oxlint-tsgolint/win32-x64': 0.21.0 - - oxlint@1.60.0(oxlint-tsgolint@0.21.0): + '@oxlint-tsgolint/darwin-arm64': 0.21.1 + '@oxlint-tsgolint/darwin-x64': 0.21.1 + '@oxlint-tsgolint/linux-arm64': 0.21.1 + '@oxlint-tsgolint/linux-x64': 0.21.1 + '@oxlint-tsgolint/win32-arm64': 0.21.1 + '@oxlint-tsgolint/win32-x64': 0.21.1 + + oxlint@1.60.0(oxlint-tsgolint@0.21.1): optionalDependencies: '@oxlint/binding-android-arm-eabi': 1.60.0 '@oxlint/binding-android-arm64': 1.60.0 @@ -11145,7 +11145,7 @@ snapshots: '@oxlint/binding-win32-arm64-msvc': 1.60.0 '@oxlint/binding-win32-ia32-msvc': 1.60.0 '@oxlint/binding-win32-x64-msvc': 1.60.0 - oxlint-tsgolint: 0.21.0 + oxlint-tsgolint: 0.21.1 p-cancelable@4.0.1: {} From df4225850d11b813a94f16234638fc00eb2b9ff9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 Apr 2026 21:00:22 +0800 Subject: [PATCH 199/439] chore(deps): bump @sentry/node from 10.48.0 to 10.49.0 (#21762) Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 10.48.0 to 10.49.0. - [Release notes](https://github.com/getsentry/sentry-javascript/releases) - [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-javascript/compare/10.48.0...10.49.0) --- updated-dependencies: - dependency-name: "@sentry/node" dependency-version: 10.49.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 62 ++++++++++++++++---------------------------------- 2 files changed, 21 insertions(+), 43 deletions(-) diff --git a/package.json b/package.json index 3650d3678c03..cf755f38da97 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,7 @@ "@opentelemetry/semantic-conventions": "1.40.0", "@rss3/sdk": "0.0.25", "@scalar/hono-api-reference": "0.10.8", - "@sentry/node": "10.48.0", + "@sentry/node": "10.49.0", "aes-js": "3.1.2", "cheerio": "1.2.0", "city-timezones": "1.3.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 38451930c2de..652b62e6cac5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -83,8 +83,8 @@ importers: specifier: 0.10.8 version: 0.10.8(hono@4.12.14) '@sentry/node': - specifier: 10.48.0 - version: 10.48.0(@opentelemetry/exporter-trace-otlp-http@0.214.0(@opentelemetry/api@1.9.1)) + specifier: 10.49.0 + version: 10.49.0(@opentelemetry/exporter-trace-otlp-http@0.214.0(@opentelemetry/api@1.9.1)) aes-js: specifier: 3.1.2 version: 3.1.2 @@ -1710,12 +1710,6 @@ packages: resolution: {integrity: sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q==} engines: {node: '>=8.0.0'} - '@opentelemetry/context-async-hooks@2.6.1': - resolution: {integrity: sha512-XHzhwRNkBpeP8Fs/qjGrAf9r9PRv67wkJQ/7ZPaBQQ68DYlTBBx5MF9LvPx7mhuXcDessKK2b+DcxqwpgkcivQ==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/core@2.6.1': resolution: {integrity: sha512-8xHSGWpJP9wBxgBpnqGL0R3PbdWQndL1Qp50qrg71+B28zK5OQmUgcDKLJgzyAAV38t4tOyLMGDD60LneR5W8g==} engines: {node: ^18.19.0 || >=20.6.0} @@ -2603,50 +2597,43 @@ packages: '@selderee/plugin-htmlparser2@0.11.0': resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==} - '@sentry/core@10.48.0': - resolution: {integrity: sha512-h8F+fXVwYC9ro5ZaO8V+v3vqc0awlXHGblEAuVxSGgh4IV/oFX+QVzXeDTTrFOFS6v/Vn5vAyu240eJrJAS6/g==} + '@sentry/core@10.49.0': + resolution: {integrity: sha512-UaFeum3LUM1mB0d67jvKnqId1yWQjyqmaDV6kWngG03x+jqXb08tJdGpSoxjXZe13jFBbiBL/wKDDYIK7rCK4g==} engines: {node: '>=18'} - '@sentry/node-core@10.48.0': - resolution: {integrity: sha512-D1TnPhN6vhrRqJ+bN+rdXDM+INibI6lNBm0eGx45zz7DBx9ouq2e9gm/DPx+y/hAkYYq0qTd6x84cGxtVZbKLw==} + '@sentry/node-core@10.49.0': + resolution: {integrity: sha512-7WO0KuCDPSq3G54TVUSI1CKFJwB67LasG+n/gDMBqbrarzs/Yh/s34OOMU5gfVQpncxQAmQsy4nEboQms8iNqA==} engines: {node: '>=18'} peerDependencies: '@opentelemetry/api': ^1.9.0 - '@opentelemetry/context-async-hooks': ^1.30.1 || ^2.1.0 '@opentelemetry/core': ^1.30.1 || ^2.1.0 '@opentelemetry/exporter-trace-otlp-http': '>=0.57.0 <1' '@opentelemetry/instrumentation': '>=0.57.1 <1' - '@opentelemetry/resources': ^1.30.1 || ^2.1.0 '@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.1.0 '@opentelemetry/semantic-conventions': ^1.39.0 peerDependenciesMeta: '@opentelemetry/api': optional: true - '@opentelemetry/context-async-hooks': - optional: true '@opentelemetry/core': optional: true '@opentelemetry/exporter-trace-otlp-http': optional: true '@opentelemetry/instrumentation': optional: true - '@opentelemetry/resources': - optional: true '@opentelemetry/sdk-trace-base': optional: true '@opentelemetry/semantic-conventions': optional: true - '@sentry/node@10.48.0': - resolution: {integrity: sha512-MzyLJyYmr0Qg60K6NJ2EdwJUX1OuAYXs9tyYxnqVO3nJ8MyYwIcuN4FCYEnXkG6Jiy/4q7OuZgXWnfdQJVcaqw==} + '@sentry/node@10.49.0': + resolution: {integrity: sha512-xr+HXABCiO5mgAJRQxsXRdNOLO0+Ee6CvXAAIqovL2A1GlhxNWc5ooPWeIrrLDJ/KGyT8zI91O5scpVXdXs0uQ==} engines: {node: '>=18'} - '@sentry/opentelemetry@10.48.0': - resolution: {integrity: sha512-Tn6Y0PZjRJ7OW8loK1ntK7wnJnIINnCfSpnwuqow0FMblaDmu5jDVOYq0U1SJBoBcMD5j9aSqrwyj6zqKwjc0A==} + '@sentry/opentelemetry@10.49.0': + resolution: {integrity: sha512-XNLm4dXmtegXQf+EEE2Cs84Ymlo/f5wMx+lg2S2XS4qLbXaPN/HttjhwKftd8D+8iUNfmH+xNMCSshx4s1B/1w==} engines: {node: '>=18'} peerDependencies: '@opentelemetry/api': ^1.9.0 - '@opentelemetry/context-async-hooks': ^1.30.1 || ^2.1.0 '@opentelemetry/core': ^1.30.1 || ^2.1.0 '@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.1.0 '@opentelemetry/semantic-conventions': ^1.39.0 @@ -7480,10 +7467,6 @@ snapshots: '@opentelemetry/api@1.9.1': {} - '@opentelemetry/context-async-hooks@2.6.1(@opentelemetry/api@1.9.1)': - dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 @@ -8234,28 +8217,25 @@ snapshots: domhandler: 5.0.3 selderee: 0.11.0 - '@sentry/core@10.48.0': {} + '@sentry/core@10.49.0': {} - '@sentry/node-core@10.48.0(@opentelemetry/api@1.9.1)(@opentelemetry/context-async-hooks@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/exporter-trace-otlp-http@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/resources@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0)': + '@sentry/node-core@10.49.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/exporter-trace-otlp-http@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0)': dependencies: - '@sentry/core': 10.48.0 - '@sentry/opentelemetry': 10.48.0(@opentelemetry/api@1.9.1)(@opentelemetry/context-async-hooks@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) + '@sentry/core': 10.49.0 + '@sentry/opentelemetry': 10.49.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) import-in-the-middle: 3.0.1 optionalDependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/context-async-hooks': 2.6.1(@opentelemetry/api@1.9.1) '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) '@opentelemetry/exporter-trace-otlp-http': 0.214.0(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) - '@opentelemetry/resources': 2.6.1(@opentelemetry/api@1.9.1) '@opentelemetry/sdk-trace-base': 2.6.1(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 - '@sentry/node@10.48.0(@opentelemetry/exporter-trace-otlp-http@0.214.0(@opentelemetry/api@1.9.1))': + '@sentry/node@10.49.0(@opentelemetry/exporter-trace-otlp-http@0.214.0(@opentelemetry/api@1.9.1))': dependencies: '@fastify/otel': 0.18.0(@opentelemetry/api@1.9.1) '@opentelemetry/api': 1.9.1 - '@opentelemetry/context-async-hooks': 2.6.1(@opentelemetry/api@1.9.1) '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation-amqplib': 0.61.0(@opentelemetry/api@1.9.1) @@ -8279,26 +8259,24 @@ snapshots: '@opentelemetry/instrumentation-redis': 0.62.0(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation-tedious': 0.33.0(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation-undici': 0.24.0(@opentelemetry/api@1.9.1) - '@opentelemetry/resources': 2.6.1(@opentelemetry/api@1.9.1) '@opentelemetry/sdk-trace-base': 2.6.1(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 '@prisma/instrumentation': 7.6.0(@opentelemetry/api@1.9.1) - '@sentry/core': 10.48.0 - '@sentry/node-core': 10.48.0(@opentelemetry/api@1.9.1)(@opentelemetry/context-async-hooks@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/exporter-trace-otlp-http@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/resources@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) - '@sentry/opentelemetry': 10.48.0(@opentelemetry/api@1.9.1)(@opentelemetry/context-async-hooks@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) + '@sentry/core': 10.49.0 + '@sentry/node-core': 10.49.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/exporter-trace-otlp-http@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) + '@sentry/opentelemetry': 10.49.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) import-in-the-middle: 3.0.1 transitivePeerDependencies: - '@opentelemetry/exporter-trace-otlp-http' - supports-color - '@sentry/opentelemetry@10.48.0(@opentelemetry/api@1.9.1)(@opentelemetry/context-async-hooks@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0)': + '@sentry/opentelemetry@10.49.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/context-async-hooks': 2.6.1(@opentelemetry/api@1.9.1) '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) '@opentelemetry/sdk-trace-base': 2.6.1(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 - '@sentry/core': 10.48.0 + '@sentry/core': 10.49.0 '@sindresorhus/is@4.6.0': {} From 4cbb027402429246ca25e2cb3e8d1f09868f8351 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 Apr 2026 21:31:20 +0800 Subject: [PATCH 200/439] chore(deps): bump devenv from `2012662` to `d7aba90` (#21765) Bumps [devenv](https://github.com/cachix/devenv) from `2012662` to `d7aba90`. - [Release notes](https://github.com/cachix/devenv/releases) - [Commits](https://github.com/cachix/devenv/compare/2012662a89ff2ce92044151d7bbf3894eec5620a...d7aba90c41ee261d215cbe09cf92393cc0ff2606) --- updated-dependencies: - dependency-name: devenv dependency-version: d7aba90c41ee261d215cbe09cf92393cc0ff2606 dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 6a12571781be..1a9c8b8f2b0d 100644 --- a/flake.lock +++ b/flake.lock @@ -163,11 +163,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1776271913, - "narHash": "sha256-j/1hNdZSci/jrYEHj3/F24EI/YE8DL0OzfMWZUgpMig=", + "lastModified": 1776354588, + "narHash": "sha256-NOsJcVAG63emvdlQSpSGQjvHHxcGDfBHd/cgtpduerw=", "owner": "cachix", "repo": "devenv", - "rev": "2012662a89ff2ce92044151d7bbf3894eec5620a", + "rev": "d7aba90c41ee261d215cbe09cf92393cc0ff2606", "type": "github" }, "original": { From 3a6b902cb5b55682d0738ca497e4b5bdeb11ae1c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 17 Apr 2026 13:33:13 +0000 Subject: [PATCH 201/439] chore(nix): update dependencies hash to sha256-ReWfQhFBGvq3C14bRhLihTiP9MeEAWbfe0A5fIwBMkw= --- flake.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flake.nix b/flake.nix index 46e6aa558c2e..b3518dd7d3c7 100644 --- a/flake.nix +++ b/flake.nix @@ -16,7 +16,7 @@ deps = pkgs.fetchPnpmDeps { pname = "rsshub"; src = ./.; - hash = "sha256-aehV414pbc2t0JsC9Rkbllu9v3Mpw/wmZQo7hvEyX08="; + hash = "sha256-ReWfQhFBGvq3C14bRhLihTiP9MeEAWbfe0A5fIwBMkw="; fetcherVersion = 2; }; in From a0dbb6edf02fc62cf459c7ba1e8ddcc8ef51e931 Mon Sep 17 00:00:00 2001 From: TimoYoung Date: Sat, 18 Apr 2026 05:47:50 +0800 Subject: [PATCH 202/439] fix(route/huxiu): restore article content fetching and unify metadata building (#21756) * fix(route/huxiu): fix article detail fetching - Introduced `extractArticleId` function to extract article IDs from links. - Added `fetchArticleDetail` function to retrieve article details using the extracted ID. - Updated `fetchItem` to first attempt fetching article details before falling back to the original link. - Enhanced error handling for API requests and parsing failures. * refactor(route/huxiu): enhance data fetching and processing - Introduced `prefixHuxiu` function to standardize titles and descriptions. - Updated `fetchData` to handle icon URLs more robustly. - Simplified `fetchItem` logic for better error handling and data retrieval. - Removed unused `parseInitialState` function to clean up the codebase. * refactor(route/huxiu): enhance data fetching and metadata building - Replaced `fetchData` with `fetchApiRouteData` for improved data retrieval across multiple routes. - Introduced `buildFeedMetadata` and `buildHuxiuRouteTitlePrefix` functions to standardize metadata construction. - Updated various route handlers to utilize the new data fetching and metadata building methods, improving consistency and maintainability. - Removed the `prefixHuxiu` function as its functionality is now integrated into the new metadata building process. --- lib/routes/huxiu/channel.ts | 13 +- lib/routes/huxiu/club.ts | 26 +- lib/routes/huxiu/collection.ts | 23 +- lib/routes/huxiu/member.ts | 6 +- lib/routes/huxiu/moment.ts | 10 +- lib/routes/huxiu/search.ts | 12 +- lib/routes/huxiu/tag.ts | 26 +- lib/routes/huxiu/util.ts | 436 ++++++++++++++++----------------- 8 files changed, 310 insertions(+), 242 deletions(-) diff --git a/lib/routes/huxiu/channel.ts b/lib/routes/huxiu/channel.ts index b23f0dd8e472..3b6a8d7366f7 100644 --- a/lib/routes/huxiu/channel.ts +++ b/lib/routes/huxiu/channel.ts @@ -2,7 +2,7 @@ import type { Route } from '@/types'; import cache from '@/utils/cache'; import got from '@/utils/got'; -import { apiArticleRootUrl, fetchData, processItems, rootUrl } from './util'; +import { apiArticleRootUrl, buildFeedMetadata, buildHuxiuRouteTitlePrefix, processItems, rootUrl } from './util'; export const route: Route = { path: ['/article', '/channel/:id?'], @@ -55,8 +55,17 @@ async function handler(ctx) { }); const items = await processItems(response.data?.dataList ?? response.data.datalist, limit, cache.tryGet); + const rawTitle = response.data?.share_info?.share_title ?? response.data?.name ?? '全部'; - const data = await fetchData(currentUrl); + const data = buildFeedMetadata({ + title: rawTitle, + link: currentUrl, + description: response.data?.share_info?.share_desc || rawTitle, + image: response.data?.share_info?.share_img, + subtitle: rawTitle, + titlePrefix: buildHuxiuRouteTitlePrefix(route.name), + descriptionPrefix: buildHuxiuRouteTitlePrefix(route.name), + }); return { item: items, diff --git a/lib/routes/huxiu/club.ts b/lib/routes/huxiu/club.ts index a5ae40842e19..9777f33c6f54 100644 --- a/lib/routes/huxiu/club.ts +++ b/lib/routes/huxiu/club.ts @@ -2,7 +2,7 @@ import type { Route } from '@/types'; import cache from '@/utils/cache'; import got from '@/utils/got'; -import { apiClubRootUrl, fetchClubData, processItems } from './util'; +import { apiClubRootUrl, buildHuxiuRouteTitlePrefix, fetchApiRouteData, processItems, rootUrl } from './util'; export const route: Route = { path: '/club/:id', @@ -28,8 +28,30 @@ async function handler(ctx) { const limit = ctx.req.query('limit') ? Number.parseInt(ctx.req.query('limit'), 10) : 20; const apiUrl = new URL('v1/club/briefList', apiClubRootUrl).href; + const currentUrl = new URL(`club/${id}.html`, rootUrl).href; - const data = await fetchClubData(id); + const data = await fetchApiRouteData<{ + name: string; + format_desc?: string; + icon_path?: string; + share_info?: { + share_desc?: string; + share_img?: string; + }; + }>({ + currentUrl, + apiUrl: new URL('v1/club/detail', apiClubRootUrl).href, + form: { + platform: 'www', + club_id: id, + }, + mapData: (data) => ({ + title: data.name, + description: data.format_desc ?? data.share_info?.share_desc, + image: data.icon_path ?? data.share_info?.share_img, + titlePrefix: buildHuxiuRouteTitlePrefix(route.name), + }), + }); const { data: response } = await got.post(apiUrl, { form: { diff --git a/lib/routes/huxiu/collection.ts b/lib/routes/huxiu/collection.ts index 695936e88faf..ab633658e254 100644 --- a/lib/routes/huxiu/collection.ts +++ b/lib/routes/huxiu/collection.ts @@ -2,7 +2,7 @@ import type { Route } from '@/types'; import cache from '@/utils/cache'; import got from '@/utils/got'; -import { apiArticleRootUrl, fetchData, processItems, rootUrl } from './util'; +import { apiArticleRootUrl, buildHuxiuRouteTitlePrefix, fetchApiRouteData, processItems, rootUrl } from './util'; export const route: Route = { path: '/collection/:id', @@ -29,7 +29,6 @@ async function handler(ctx) { const apiUrl = new URL('web/collection/articleList', apiArticleRootUrl).href; const currentUrl = new URL(`collection/${id}.html`, rootUrl).href; - const { data: response } = await got.post(apiUrl, { form: { platform: 'www', @@ -39,7 +38,25 @@ async function handler(ctx) { const items = await processItems(response.data.datalist, limit, cache.tryGet); - const data = await fetchData(currentUrl); + const data = await fetchApiRouteData<{ + name: string; + summary?: string; + icon?: string; + head_img?: string; + }>({ + currentUrl, + apiUrl: new URL('web/collection/detail', apiArticleRootUrl).href, + form: { + platform: 'www', + collection_id: id, + }, + mapData: (data) => ({ + title: data.name, + description: data.summary, + image: data.head_img || (data.icon ? new URL(data.icon, rootUrl).href : undefined), + titlePrefix: buildHuxiuRouteTitlePrefix(route.name), + }), + }); return { item: items, diff --git a/lib/routes/huxiu/member.ts b/lib/routes/huxiu/member.ts index 842e2927d7bd..a23e63cd19f8 100644 --- a/lib/routes/huxiu/member.ts +++ b/lib/routes/huxiu/member.ts @@ -2,7 +2,7 @@ import type { Route } from '@/types'; import cache from '@/utils/cache'; import got from '@/utils/got'; -import { apiMemberRootUrl, fetchData, processItems, rootUrl } from './util'; +import { apiMemberRootUrl, buildHuxiuRouteTitlePrefix, fetchMemberData, processItems } from './util'; export const route: Route = { path: ['/author/:id/:type?', '/member/:id/:type?'], @@ -30,8 +30,6 @@ async function handler(ctx) { const limit = ctx.req.query('limit') ? Number.parseInt(ctx.req.query('limit'), 10) : 10; const apiUrl = new URL(`web/${type}/${type}List`, apiMemberRootUrl).href; - const currentUrl = new URL(`member/${id}${type === 'article' ? '' : `/${type}`}.html`, rootUrl).href; - const { data: response } = await got.post(apiUrl, { form: { platform: 'www', @@ -41,7 +39,7 @@ async function handler(ctx) { const items = await processItems(response.data.datalist, limit, cache.tryGet); - const data = await fetchData(currentUrl); + const data = await fetchMemberData(id, type, response.data.datalist ?? [], buildHuxiuRouteTitlePrefix(route.name)); return { item: items, diff --git a/lib/routes/huxiu/moment.ts b/lib/routes/huxiu/moment.ts index 6c8141c3aec6..840bcfc5af5b 100644 --- a/lib/routes/huxiu/moment.ts +++ b/lib/routes/huxiu/moment.ts @@ -2,7 +2,7 @@ import type { Route } from '@/types'; import cache from '@/utils/cache'; import got from '@/utils/got'; -import { apiMomentRootUrl, fetchData, processItems, rootUrl } from './util'; +import { apiMomentRootUrl, buildFeedMetadata, buildHuxiuRouteTitlePrefix, processItems, rootUrl } from './util'; export const route: Route = { path: '/moment', @@ -42,7 +42,13 @@ async function handler(ctx) { const items = await processItems(response.data.moment_list.datalist, limit, cache.tryGet); - const data = await fetchData(currentUrl); + const data = buildFeedMetadata({ + title: '24 小时', + link: currentUrl, + description: '虎嗅 24 小时', + subtitle: '24 小时', + titlePrefix: buildHuxiuRouteTitlePrefix(route.name), + }); return { item: items, diff --git a/lib/routes/huxiu/search.ts b/lib/routes/huxiu/search.ts index aeed6c94f2bb..31fce902c430 100644 --- a/lib/routes/huxiu/search.ts +++ b/lib/routes/huxiu/search.ts @@ -2,7 +2,7 @@ import type { Route } from '@/types'; import cache from '@/utils/cache'; import got from '@/utils/got'; -import { apiSearchRootUrl, fetchData, generateSignature, processItems, rootUrl } from './util'; +import { apiSearchRootUrl, buildFeedMetadata, buildHuxiuRouteTitlePrefix, generateSignature, processItems, rootUrl, siteTitle } from './util'; export const route: Route = { path: '/search/:keyword', @@ -31,6 +31,7 @@ export const route: Route = { async function handler(ctx) { const keyword = ctx.req.param('keyword'); const limit = ctx.req.query('limit') ? Number.parseInt(ctx.req.query('limit'), 10) : 20; + const baseTitle = siteTitle; const apiUrl = new URL('api/article', apiSearchRootUrl).href; const currentUrl = rootUrl; @@ -49,8 +50,13 @@ async function handler(ctx) { const items = await processItems(response.data.datalist, limit, cache.tryGet); - const data = await fetchData(currentUrl); - data.title = `${keyword}-搜索结果-${data.title}`; + const data = buildFeedMetadata({ + title: `搜索结果-${keyword}`, + link: currentUrl, + description: baseTitle, + subtitle: baseTitle, + titlePrefix: buildHuxiuRouteTitlePrefix(route.name), + }); ctx.set('json', response.data.datalist); diff --git a/lib/routes/huxiu/tag.ts b/lib/routes/huxiu/tag.ts index 97f049f1c147..7c7894aad62f 100644 --- a/lib/routes/huxiu/tag.ts +++ b/lib/routes/huxiu/tag.ts @@ -2,7 +2,7 @@ import type { Route } from '@/types'; import cache from '@/utils/cache'; import got from '@/utils/got'; -import { apiArticleRootUrl, fetchData, processItems, rootUrl } from './util'; +import { apiArticleRootUrl, buildHuxiuRouteTitlePrefix, fetchApiRouteData, processItems, rootUrl } from './util'; export const route: Route = { path: '/tag/:id', @@ -29,7 +29,6 @@ async function handler(ctx) { const apiUrl = new URL('/v3/tag/articleList', apiArticleRootUrl).href; const currentUrl = new URL(`tag/${id}.html`, rootUrl).href; - const { data: response } = await got.post(apiUrl, { form: { platform: 'www', @@ -39,7 +38,28 @@ async function handler(ctx) { const items = await processItems(response.data.datalist, limit, cache.tryGet); - const data = await fetchData(currentUrl); + const data = await fetchApiRouteData<{ + tag_name: string; + summary?: string; + pic_path?: string; + share_info?: { + share_img?: string; + share_desc?: string; + }; + }>({ + currentUrl, + apiUrl: new URL('v3/tag/detail', apiArticleRootUrl).href, + form: { + platform: 'www', + tag_id: id, + }, + mapData: (data) => ({ + title: data.tag_name, + description: data.summary ?? data.share_info?.share_desc, + image: data.pic_path ?? data.share_info?.share_img, + titlePrefix: buildHuxiuRouteTitlePrefix(route.name), + }), + }); return { item: items, diff --git a/lib/routes/huxiu/util.ts b/lib/routes/huxiu/util.ts index ccfbb9c65199..c057f3762373 100644 --- a/lib/routes/huxiu/util.ts +++ b/lib/routes/huxiu/util.ts @@ -14,6 +14,7 @@ const apiClubRootUrl = `https://api-ms-web-club.${domain}`; const apiMemberRootUrl = `https://api-account.${domain}`; const apiMomentRootUrl = `https://moment-api.${domain}`; const apiSearchRootUrl = `https://search-api.${domain}`; +const siteTitle = '虎嗅'; /** * Cleans up HTML data by removing specific elements and attributes. @@ -65,94 +66,100 @@ const cleanUpHTML = (data) => { return $.html(); }; -/** - * Fetches club data for the specified ID. - * - * @param {string} id - The ID of the club to fetch data from. - * @returns {Promise} A promise that resolves to an object containing the fetched data - * to be added into `ctx.state.data`. - */ -const fetchClubData = async (id: string) => { - const currentUrl = new URL(`club/${id}.html`, rootUrl).href; - - const { data: currentResponse } = await got(currentUrl); - - const $ = load(currentResponse); - - const title = $('title').text(); - const icon = new URL($('link[rel="apple-touch-icon"]').prop('href') ?? '', rootUrl).href; - const author = $('meta[name="author"]').prop('content'); - - // Parse club data from __NUXT_DATA__ - let clubData: Record | undefined; - - const nuxtDataScript = $('#__NUXT_DATA__').text(); - if (nuxtDataScript) { - try { - const nuxtData = JSON.parse(nuxtDataScript) as unknown[]; - - // Find the fetchData object which contains club info - for (const item of nuxtData) { - if (typeof item === 'object' && item !== null && !Array.isArray(item)) { - const keys = Object.keys(item); - if (keys.includes('fetchData')) { - const fetchDataIndex = (item as Record).fetchData; - if (typeof fetchDataIndex === 'number') { - clubData = resolveNuxtData(nuxtData, fetchDataIndex) as Record; - break; - } - } - } - } - } catch { - // Failed to parse Nuxt data - } +const normalizeText = (value?: string) => { + if (!value) { + return; } - return { - title, - link: currentUrl, - description: String(clubData?.format_desc ?? $('meta[name="description"]').prop('content') ?? ''), - language: $('html').prop('lang'), - image: clubData?.icon_path ? String(clubData.icon_path).split(/\?/)[0] : undefined, - icon, - logo: icon, - subtitle: String(clubData?.name ?? title.split(/-/)[0]), - author, - itunes_author: author, - itunes_category: 'News', - allowEmpty: true, - }; + return load(value).text().trim() || undefined; }; -/** - * Fetch data from the specified URL. - * - * @param {string} url - The URL to fetch data from. - * @returns {Promise} A promise that resolves to an object containing the fetched data - * to be added into `ctx.state.data`. - */ -const fetchData = async (url) => { - const { data: response } = await got(url); +const buildRouteData = ({ title, link, description, image, icon, subtitle, author }: { title: string; link: string; description?: string; image?: string; icon?: string; subtitle?: string; author?: string }) => ({ + title, + link, + description, + language: 'zh-CN' as const, + image, + icon, + logo: icon, + subtitle: subtitle ?? title, + author, + itunes_author: author, + itunes_category: 'News', + allowEmpty: true, +}); - const $ = load(response); +const prefixValue = (value?: string, prefix?: string) => { + if (!value || !prefix) { + return value; + } - const icon = new URL($('link[rel="apple-touch-icon"]').prop('href'), rootUrl).href; - const author = $('meta[name="author"]').prop('content'); + return value.startsWith(prefix) ? value : `${prefix}${value}`; +}; - return { - title: $('title').text(), - link: url, - description: $('div.tag-content').text() || $('span.author-intro').text() || $('p.collection__intro').text() || $('meta[name="description"]').prop('content'), - language: $('html').prop('lang'), - icon, - logo: icon, - subtitle: $('title').text().split(/-/)[0], +const buildHuxiuRouteTitlePrefix = (routeName: string) => `${siteTitle}${routeName}-`; + +const buildFeedMetadata = ({ + title, + link, + description, + image, + subtitle, + author, + titlePrefix, + descriptionPrefix, +}: { + title: string; + link: string; + description?: string; + image?: string; + subtitle?: string; + author?: string; + titlePrefix?: string; + descriptionPrefix?: string; +}) => { + const baseTitle = title; + const baseDescription = normalizeText(description) ?? description ?? subtitle ?? title; + const resolvedTitle = prefixValue(baseTitle, titlePrefix) ?? baseTitle; + const resolvedDescription = prefixValue(baseDescription, descriptionPrefix) ?? baseDescription; + const resolvedSubtitle = subtitle ?? baseTitle; + + return buildRouteData({ + title: resolvedTitle, + link, + description: resolvedDescription, + image, + icon: image, + subtitle: resolvedSubtitle, author, - itunes_author: author, - itunes_category: 'News', - allowEmpty: true, + }); +}; + +const fetchApiRouteData = async ({ + currentUrl, + apiUrl, + form, + mapData, +}: { + currentUrl: string; + apiUrl: string; + form: Record; + mapData: (data: T) => { + title: string; + description?: string; + image?: string; + subtitle?: string; + author?: string; + titlePrefix?: string; + descriptionPrefix?: string; }; +}) => { + const { data: response } = await got.post(apiUrl, { form }); + + return buildFeedMetadata({ + link: currentUrl, + ...mapData(response.data as T), + }); }; /** @@ -163,6 +170,80 @@ const fetchData = async (url) => { */ const buildCategories = (data) => [data.video_article_tag, data.brief_column?.name, data.club_info?.name, ...(data.tags_info?.map((c) => c.name) ?? []), ...(data.relation_info?.channel?.map((c) => c.name) ?? [])].filter(Boolean); +const extractArticleId = (link: string) => { + const pathname = new URL(link).pathname; + return pathname.match(/^\/article\/(\d+)\.html$/)?.[1]; +}; + +const extractBriefId = (link: string) => { + const pathname = new URL(link).pathname; + return pathname.match(/^\/brief\/(\d+)\.html$/)?.[1]; +}; + +const fetchArticleDetail = async (aid: string) => { + const apiUrl = new URL('web/article/detail', apiArticleRootUrl).href; + const { data: response } = await got.post(apiUrl, { + form: { + platform: 'www', + aid, + }, + }); + + return response.data; +}; + +const fetchBriefDetail = async (briefId: string) => { + const apiUrl = new URL('v1/brief/detail', apiClubRootUrl).href; + const { data: response } = await got.post(apiUrl, { + form: { + platform: 'www', + brief_id: briefId, + }, + }); + + return response.data; +}; + +const buildBriefCategories = (data) => [data.brief_column?.name, data.club_info?.name, ...(data.brief?.tags_info?.map((c) => c.name) ?? [])].filter(Boolean); + +const buildBriefAuthor = (data) => + data.brief?.publisher_list + ?.map((publisher) => publisher.username) + .filter(Boolean) + .join(', ') || data.brief_column?.name; + +const fetchMemberData = async (id: string, type: string, items, titlePrefix?: string) => { + const currentUrl = new URL(`member/${id}${type === 'article' ? '' : `/${type}`}.html`, rootUrl).href; + const firstArticleId = items.find((item) => item.aid)?.aid; + + if (firstArticleId) { + try { + const detail = await fetchArticleDetail(firstArticleId); + const username = detail.user_info?.username ?? detail.author; + const description = detail.user_info?.yijuhua ?? `${username ?? `用户 ${id}`}的${type === 'moment' ? '24 小时' : '文章'}`; + const image = detail.user_info?.avatar?.split(/\?/)[0]; + + return buildFeedMetadata({ + title: username ?? `用户 ${id}`, + link: currentUrl, + description, + image, + author: username, + titlePrefix, + }); + } catch { + // Fall back to generic member metadata when article detail is unavailable. + } + } + + return buildFeedMetadata({ + title: `用户 ${id}`, + link: currentUrl, + description: `用户 ${id} 的${type === 'moment' ? '24 小时' : '文章'}`, + titlePrefix, + }); +}; + /** * Fetches item data. * @@ -170,23 +251,50 @@ const buildCategories = (data) => [data.video_article_tag, data.brief_column?.na * @returns {Promise} The fetched item data object. */ const fetchItem = async (item) => { - let detailResponse: string; + const articleId = extractArticleId(item.link); + const briefId = extractBriefId(item.link); + + if (!articleId && !briefId) { + return item; + } + + let data; try { - const response = await got(item.link); - detailResponse = response.data; + data = articleId ? await fetchArticleDetail(articleId) : await fetchBriefDetail(briefId!); } catch { - // Request failed (e.g., 503, connection terminated), return original item return item; } - const state = parseInitialState(detailResponse); - const data = state?.articleDetail?.articleDetail; - if (!data) { return item; } - const { processed: audio, processedItem: audioItem = {} } = processAudioInfo(data.audio_info); + if (briefId) { + const { brief, brief_column: briefColumn, club_info: clubInfo } = data; + const briefAudioInfo = processAudioInfo(brief.audio_info); + const audio = briefAudioInfo.processed; + const audioItem: Record = briefAudioInfo.processedItem ?? {}; + const body = [brief.preface, brief.content, brief.peroration].filter(Boolean).join(''); + + return { + ...audioItem, + ...item, + title: brief.title ?? item.title, + description: renderDescription({ + audio, + description: body ? cleanUpHTML(body) : undefined, + }), + author: buildBriefAuthor(data) ?? item.author, + category: buildBriefCategories({ brief, brief_column: briefColumn, club_info: clubInfo }), + pubDate: parseDate(brief.publish_time, 'X'), + upvotes: Number.parseInt(brief.agree_num ?? item.upvotes ?? 0, 10), + comments: Number.parseInt(brief.total_comment_num ?? brief.comment_num ?? item.comments ?? 0, 10), + }; + } + + const articleAudioInfo = processAudioInfo(data.audio_info); + const audio = articleAudioInfo.processed; + const audioItem: Record = articleAudioInfo.processedItem ?? {}; if (Object.keys(audioItem).length !== 0) { audioItem.itunes_item_image = data.pic_path ?? data.share_info?.share_img ?? undefined; @@ -253,140 +361,6 @@ const generateSignature = () => { }; }; -/** - * Resolves Nuxt 3 data array references recursively. - * Nuxt 3 uses a special array format where numbers are references to other array indices. - * - * @param {unknown[]} arr - The Nuxt data array. - * @param {number} index - The index to resolve. - * @param {Set} visited - Set of visited indices to prevent infinite loops. - * @returns {unknown} - The resolved value. - */ -const resolveNuxtData = (arr: unknown[], index: number, visited = new Set()): unknown => { - if (visited.has(index)) { - return arr[index]; - } - visited.add(index); - - const item = arr[index]; - - // Handle ShallowReactive wrapper: ["ShallowReactive", refIndex] - if (Array.isArray(item) && item[0] === 'ShallowReactive' && typeof item[1] === 'number') { - return resolveNuxtData(arr, item[1], visited); - } - - // Handle Reactive wrapper: ["Reactive", refIndex] - if (Array.isArray(item) && item[0] === 'Reactive' && typeof item[1] === 'number') { - return resolveNuxtData(arr, item[1], visited); - } - - // Handle Set wrapper: ["Set"] - if (Array.isArray(item) && item[0] === 'Set') { - return new Set(); - } - - // Handle object - resolve all numeric references in values - if (typeof item === 'object' && item !== null && !Array.isArray(item)) { - const resolved: Record = {}; - for (const [key, value] of Object.entries(item)) { - resolved[key] = typeof value === 'number' ? resolveNuxtData(arr, value, new Set(visited)) : value; - } - return resolved; - } - - // Handle arrays that are not special wrappers - if (Array.isArray(item)) { - return item.map((value, i) => { - if (typeof value === 'number' && value !== i) { - return resolveNuxtData(arr, value, new Set(visited)); - } - return value; - }); - } - - return item; -}; - -/** - * Parses the initial state from the provided data. - * Supports both Nuxt 3 (__NUXT_DATA__) format for articles and - * window.__INITIAL_STATE__ format for briefs. - * - * @param {string} data - The data to parse the initial state from. - * @returns {Object|undefined} - The parsed initial state object, or undefined if not found. - */ -const parseInitialState = (data: string) => { - const $ = load(data); - - // Try Nuxt 3 format first (for articles) - const nuxtDataScript = $('#__NUXT_DATA__').text(); - if (nuxtDataScript) { - try { - const nuxtData = JSON.parse(nuxtDataScript) as unknown[]; - - // Find the data object which contains articleDetail - // The structure is: [["ShallowReactive", 1], {data: 2, ...}, ["ShallowReactive", 3], {articleDetail-xxx: 4}, ...] - for (const item of nuxtData) { - if (typeof item === 'object' && item !== null && !Array.isArray(item)) { - const articleDetailKey = Object.keys(item).find((key) => key.startsWith('articleDetail-')); - if (articleDetailKey) { - const articleDetailIndex = (item as Record)[articleDetailKey]; - if (typeof articleDetailIndex === 'number') { - const articleData = resolveNuxtData(nuxtData, articleDetailIndex) as Record; - if (articleData?.articleDetail) { - return { articleDetail: articleData }; - } - } - } - } - } - } catch { - // Failed to parse Nuxt data - } - } - - // Try window.__INITIAL_STATE__ format (for briefs) - const initialStateMatch = data.match(/window\.__INITIAL_STATE__\s*=\s*(\{[\s\S]*?\});?\s*\(function\(\)/); - if (initialStateMatch?.[1]) { - try { - const initialState = JSON.parse(initialStateMatch[1]) as Record; - const briefStoreModule = initialState.briefStoreModule as Record | undefined; - const briefDetail = briefStoreModule?.brief_detail as Record | undefined; - const brief = briefDetail?.brief as Record | undefined; - - if (brief) { - // Transform brief data to match the articleDetail structure expected by fetchItem - const publisherList = brief.publisher_list as Array<{ username?: string }> | undefined; - const briefColumn = briefDetail?.brief_column as Record | undefined; - const clubInfo = briefDetail?.club_info as Record | undefined; - - return { - articleDetail: { - articleDetail: { - title: brief.title, - content: brief.content, - preface: brief.preface, - dateline: brief.publish_time, - publish_time: brief.publish_time, - audio_info: brief.audio_info, - agreenum: brief.agree_num, - total_comment_num: brief.total_comment_num, - user_info: publisherList?.[0] ? { username: publisherList[0].username } : undefined, - brief_column: briefColumn ? { name: briefColumn.name } : undefined, - club_info: clubInfo ? { name: clubInfo.name } : undefined, - share_info: brief.share_info, - }, - }, - }; - } - } catch { - // Failed to parse initial state - } - } - - return; -}; - const audioQualities = ['', 'low']; /** @@ -500,7 +474,9 @@ const mapItem = (item) => { return ''; } - const { processed: audio, processedItem: audioItem = {} } = processAudioInfo(item.audio_info); + const mappedAudioInfo = processAudioInfo(item.audio_info); + const audio = mappedAudioInfo.processed; + const audioItem: Record = mappedAudioInfo.processedItem ?? {}; if (Object.keys(audioItem).length !== 0) { audioItem.itunes_item_image = item.pic_path ?? item.share_info?.share_img ?? undefined; @@ -601,4 +577,18 @@ const processVideoInfo = (info) => { }; }; -export { apiArticleRootUrl, apiClubRootUrl, apiMemberRootUrl, apiMomentRootUrl, apiSearchRootUrl, fetchClubData, fetchData, generateSignature, processItems, rootUrl }; +export { + apiArticleRootUrl, + apiClubRootUrl, + apiMemberRootUrl, + apiMomentRootUrl, + apiSearchRootUrl, + buildFeedMetadata, + buildHuxiuRouteTitlePrefix, + fetchApiRouteData, + fetchMemberData, + generateSignature, + processItems, + rootUrl, + siteTitle, +}; From 4f2d4216178c5d82895035cadd4f5d3e6035ddbb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 18 Apr 2026 07:20:58 +0800 Subject: [PATCH 203/439] chore(deps-dev): bump the cloudflare group across 1 directory with 3 updates (#21759) * chore(deps-dev): bump the cloudflare group with 3 updates Bumps the cloudflare group with 3 updates: [@cloudflare/containers](https://github.com/cloudflare/containers), [@cloudflare/workers-types](https://github.com/cloudflare/workerd) and [wrangler](https://github.com/cloudflare/workers-sdk/tree/HEAD/packages/wrangler). Updates `@cloudflare/containers` from 0.3.0 to 0.3.2 - [Release notes](https://github.com/cloudflare/containers/releases) - [Changelog](https://github.com/cloudflare/containers/blob/main/CHANGELOG.md) - [Commits](https://github.com/cloudflare/containers/compare/v0.3.0...v0.3.2) Updates `@cloudflare/workers-types` from 4.20260415.1 to 4.20260417.1 - [Release notes](https://github.com/cloudflare/workerd/releases) - [Changelog](https://github.com/cloudflare/workerd/blob/main/RELEASE.md) - [Commits](https://github.com/cloudflare/workerd/commits) Updates `wrangler` from 4.82.2 to 4.83.0 - [Release notes](https://github.com/cloudflare/workers-sdk/releases) - [Commits](https://github.com/cloudflare/workers-sdk/commits/wrangler@4.83.0/packages/wrangler) --- updated-dependencies: - dependency-name: "@cloudflare/containers" dependency-version: 0.3.2 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: cloudflare - dependency-name: "@cloudflare/workers-types" dependency-version: 4.20260417.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: cloudflare - dependency-name: wrangler dependency-version: 4.83.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: cloudflare ... Signed-off-by: dependabot[bot] * chore(deps-dev): downgrade @cloudflare/workers-types and wrangler versions * chore(deps-dev): update @cloudflare/workers-types to version 4.20260417.1 --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Tony --- package.json | 4 ++-- pnpm-lock.yaml | 26 +++++++++++++------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index cf755f38da97..7ca1169d6cb6 100644 --- a/package.json +++ b/package.json @@ -146,9 +146,9 @@ "@actions/core": "3.0.0", "@actions/github": "9.1.0", "@bbob/types": "4.3.1", - "@cloudflare/containers": "0.3.0", + "@cloudflare/containers": "0.3.2", "@cloudflare/puppeteer": "1.1.0", - "@cloudflare/workers-types": "4.20260415.1", + "@cloudflare/workers-types": "4.20260417.1", "@eslint/eslintrc": "3.3.5", "@eslint/js": "10.0.1", "@oxlint/plugins": "1.60.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 652b62e6cac5..2b65d613486f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -297,14 +297,14 @@ importers: specifier: 4.3.1 version: 4.3.1 '@cloudflare/containers': - specifier: 0.3.0 - version: 0.3.0 + specifier: 0.3.2 + version: 0.3.2 '@cloudflare/puppeteer': specifier: 1.1.0 version: 1.1.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) '@cloudflare/workers-types': - specifier: 4.20260415.1 - version: 4.20260415.1 + specifier: 4.20260417.1 + version: 4.20260417.1 '@eslint/eslintrc': specifier: 3.3.5 version: 3.3.5 @@ -466,7 +466,7 @@ importers: version: 4.1.4(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.4)(jsdom@29.0.2(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)) wrangler: specifier: 4.82.2 - version: 4.82.2(@cloudflare/workers-types@4.20260415.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10) + version: 4.82.2(@cloudflare/workers-types@4.20260417.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10) yaml-eslint-parser: specifier: 2.0.0 version: 2.0.0 @@ -585,8 +585,8 @@ packages: '@bufbuild/protobuf@2.11.0': resolution: {integrity: sha512-sBXGT13cpmPR5BMgHE6UEEfEaShh5Ror6rfN3yEK5si7QVrtZg8LEPQb0VVhiLRUslD2yLnXtnRzG035J/mZXQ==} - '@cloudflare/containers@0.3.0': - resolution: {integrity: sha512-8HM1NgXThWCTk7SH28QFxqMNLJwl6RrMkj3qd0KvDA59BALsn3mZXNDT94i1JaGZnP4Bc8sPGs1u9UAl/mVUVg==} + '@cloudflare/containers@0.3.2': + resolution: {integrity: sha512-hWobJrpXCgFJ/HYii6E49eegnnlUDWGacjLd0Fb6nQwTD005+T2eHUPI6qOEq9KPJOd7xTWkhkuXEKxDFvfyqQ==} '@cloudflare/kv-asset-handler@0.4.2': resolution: {integrity: sha512-SIOD2DxrRRwQ+jgzlXCqoEFiKOFqaPjhnNTGKXSRLvp1HiOvapLaFG2kEr9dYQTYe8rKrd9uvDUzmAITeNyaHQ==} @@ -635,8 +635,8 @@ packages: cpu: [x64] os: [win32] - '@cloudflare/workers-types@4.20260415.1': - resolution: {integrity: sha512-9sEq9cZzr4s075U/TfjvdSmiX+u2NMOAIcFcCfd24FDtPfR7Iw3SbuQxkcgtpx/Bvg0au9PmQ0ZJfBaIitG0gw==} + '@cloudflare/workers-types@4.20260417.1': + resolution: {integrity: sha512-ke3GkFfFyfSxdLRR6LPbnfYAu3RNKqX0eYfu/FNnluBN9rLgYVqT+QEPgSEx1yq7XTOok+Bub1td9xvknaOz4A==} '@colors/colors@1.6.0': resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} @@ -6640,7 +6640,7 @@ snapshots: '@bufbuild/protobuf@2.11.0': {} - '@cloudflare/containers@0.3.0': {} + '@cloudflare/containers@0.3.2': {} '@cloudflare/kv-asset-handler@0.4.2': {} @@ -6679,7 +6679,7 @@ snapshots: '@cloudflare/workerd-windows-64@1.20260410.1': optional: true - '@cloudflare/workers-types@4.20260415.1': {} + '@cloudflare/workers-types@4.20260417.1': {} '@colors/colors@1.6.0': {} @@ -12453,7 +12453,7 @@ snapshots: '@cloudflare/workerd-linux-arm64': 1.20260410.1 '@cloudflare/workerd-windows-64': 1.20260410.1 - wrangler@4.82.2(@cloudflare/workers-types@4.20260415.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10): + wrangler@4.82.2(@cloudflare/workers-types@4.20260417.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10): dependencies: '@cloudflare/kv-asset-handler': 0.4.2 '@cloudflare/unenv-preset': 2.16.0(unenv@2.0.0-rc.24)(workerd@1.20260410.1) @@ -12464,7 +12464,7 @@ snapshots: unenv: 2.0.0-rc.24 workerd: 1.20260410.1 optionalDependencies: - '@cloudflare/workers-types': 4.20260415.1 + '@cloudflare/workers-types': 4.20260417.1 fsevents: 2.3.3 transitivePeerDependencies: - bufferutil From 6a664a87ffdf4db227f370c9eb089d08c4513b17 Mon Sep 17 00:00:00 2001 From: Tony Date: Sun, 19 Apr 2026 03:22:54 +0800 Subject: [PATCH 204/439] feat(route): add mhlw (#21766) * feat(route): add mhlw * fix(route/mhlw): simplify selector for fetching data items --- lib/routes/mhlw/monthly-labour-survey.ts | 86 ++++++++++++++++++++++++ lib/routes/mhlw/namespace.ts | 6 ++ 2 files changed, 92 insertions(+) create mode 100644 lib/routes/mhlw/monthly-labour-survey.ts create mode 100644 lib/routes/mhlw/namespace.ts diff --git a/lib/routes/mhlw/monthly-labour-survey.ts b/lib/routes/mhlw/monthly-labour-survey.ts new file mode 100644 index 000000000000..7f4853ad47ff --- /dev/null +++ b/lib/routes/mhlw/monthly-labour-survey.ts @@ -0,0 +1,86 @@ +import { load } from 'cheerio'; +import type { Context } from 'hono'; + +import type { DataItem, Route } from '@/types'; +import cache from '@/utils/cache'; +import ofetch from '@/utils/ofetch'; +import { parseDate } from '@/utils/parse-date'; +import timezone from '@/utils/timezone'; + +export const route: Route = { + path: '/monthly-labour-survey', + categories: ['government'], + example: '/mhlw/monthly-labour-survey', + radar: [ + { + source: ['www.mhlw.go.jp/toukei/list/30-1a.html'], + }, + ], + name: '毎月勤労統計調査 全国調査(月別結果)', + maintainers: ['TonyRL'], + handler, + url: 'www.mhlw.go.jp/toukei/list/30-1a.html', +}; + +async function fetchPage(url: string) { + const raw = await ofetch(url, { responseType: 'arrayBuffer' }); + const decoder = new TextDecoder('shift-jis'); + return decoder.decode(raw as ArrayBuffer); +} + +async function handler(ctx: Context) { + const limit = Number.parseInt(ctx.req.query('limit') || '24', 10); + const baseUrl = 'https://www.mhlw.go.jp'; + const link = `${baseUrl}/toukei/list/30-1a.html`; + + const response = await fetchPage(link); + const $ = load(response); + + const list: DataItem[] = $('table.xgengo:first tr') + .toArray() + .flatMap((row) => { + const $row = $(row); + const year = $row.find('h3').text().trim(); + return $row + .find('ul.ico-link li a') + .toArray() + .map((a) => { + const $a = $(a); + return { + title: `${year}${$a.text().trim()}`, + link: new URL($a.attr('href')!, baseUrl).href, + }; + }) + .toReversed(); + }) + .slice(0, limit); + + const items = await Promise.all( + list.map((item) => + cache.tryGet(item.link!, async () => { + const response = await fetchPage(item.link!); + const $ = load(response); + + const dateText = $('.prt-topContents .al-right').text().trim(); + const cleanedDate = dateText.replaceAll(/([^)]+)/g, ''); + const content = $('#contentsInner'); + content.find('.prt-topContents, .prt-linkNavi, .prt-plugin').remove(); + + item.title = $('h1#pageTitle').text().trim() || item.title; + item.pubDate = timezone(parseDate(cleanedDate, 'YYYY年M月D日'), 9); + item.description = content.html()?.trim(); + + return item; + }) + ) + ); + + return { + title: $('head title').text().trim(), + description: $('meta[name="description"]').attr('content')?.trim(), + link, + image: `${baseUrl}/favicon.ico`, + language: $('html').attr('lang'), + item: items, + }; +} diff --git a/lib/routes/mhlw/namespace.ts b/lib/routes/mhlw/namespace.ts new file mode 100644 index 000000000000..7cb58c3d9f30 --- /dev/null +++ b/lib/routes/mhlw/namespace.ts @@ -0,0 +1,6 @@ +import type { Namespace } from '@/types'; + +export const namespace: Namespace = { + name: '厚生労働省', + url: 'www.mhlw.go.jp', +}; From 2dc92de43e77e6a9324c26d4830091b6c6d6e5e4 Mon Sep 17 00:00:00 2001 From: ifwlzs <93xo.ox39@gmail.com> Date: Sun, 19 Apr 2026 20:48:50 +0800 Subject: [PATCH 205/439] fix(route): update zxcs domain to zxcs.click (#21768) --- lib/routes/zxcs/namespace.ts | 2 +- lib/routes/zxcs/novel.ts | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/routes/zxcs/namespace.ts b/lib/routes/zxcs/namespace.ts index a604ffcac87d..dc85a38d0cbc 100644 --- a/lib/routes/zxcs/namespace.ts +++ b/lib/routes/zxcs/namespace.ts @@ -2,6 +2,6 @@ import type { Namespace } from '@/types'; export const namespace: Namespace = { name: '知轩藏书', - url: 'zxcs.info', + url: 'zxcs.click', lang: 'zh-CN', }; diff --git a/lib/routes/zxcs/novel.ts b/lib/routes/zxcs/novel.ts index 30d33eb3d4c3..5541810820f1 100644 --- a/lib/routes/zxcs/novel.ts +++ b/lib/routes/zxcs/novel.ts @@ -24,7 +24,7 @@ const types = { export const route: Route = { path: '/novel/:type', name: '小说列表', - url: 'zxcs.info', + url: 'zxcs.click', maintainers: ['liaochuan'], example: '/zxcs/novel/jinqigengxin', parameters: { type: '小说类型, 可在对应类型页 URL 中找到' }, @@ -42,7 +42,7 @@ export const route: Route = { }, radar: [ { - source: ['zxcs.info/:type'], + source: ['zxcs.click/:type'], target: '/novel/:type', }, ], @@ -52,7 +52,7 @@ export const route: Route = { async function handler(ctx) { const { type } = ctx.req.param(); - const baseUrl = 'https://www.zxcs.info'; + const baseUrl = 'https://www.zxcs.click'; const link = `${baseUrl}/${type}`; const response = await ofetch(link); const $ = load(response); From 93bfb949110df6fcba6afaeaed2296f15d280978 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Apr 2026 08:47:57 +0000 Subject: [PATCH 206/439] chore(deps): bump rate-limiter-flexible from 11.0.0 to 11.0.1 (#21775) Bumps [rate-limiter-flexible](https://github.com/animir/node-rate-limiter-flexible) from 11.0.0 to 11.0.1. - [Release notes](https://github.com/animir/node-rate-limiter-flexible/releases) - [Commits](https://github.com/animir/node-rate-limiter-flexible/compare/v11.0.0...v11.0.1) --- updated-dependencies: - dependency-name: rate-limiter-flexible dependency-version: 11.0.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 228 ++++++++++++++++++++++++------------------------- 2 files changed, 115 insertions(+), 115 deletions(-) diff --git a/package.json b/package.json index 7ca1169d6cb6..965262092192 100644 --- a/package.json +++ b/package.json @@ -117,7 +117,7 @@ "proxy-chain": "2.7.1", "puppeteer-real-browser": "1.4.4", "query-string": "9.3.1", - "rate-limiter-flexible": "11.0.0", + "rate-limiter-flexible": "11.0.1", "re2js": "2.2.0", "rebrowser-puppeteer": "24.8.1", "rfc4648": "1.5.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2b65d613486f..ce19f637ded1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -215,8 +215,8 @@ importers: specifier: 9.3.1 version: 9.3.1 rate-limiter-flexible: - specifier: 11.0.0 - version: 11.0.0 + specifier: 11.0.1 + version: 11.0.1 re2js: specifier: 2.2.0 version: 2.2.0 @@ -373,7 +373,7 @@ importers: version: 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3) '@vercel/nft': specifier: 1.5.0 - version: 1.5.0(rollup@4.60.1) + version: 1.5.0(rollup@4.60.2) '@vitest/coverage-v8': specifier: 4.1.4 version: 4.1.4(vitest@4.1.4) @@ -2419,141 +2419,141 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.60.1': - resolution: {integrity: sha512-d6FinEBLdIiK+1uACUttJKfgZREXrF0Qc2SmLII7W2AD8FfiZ9Wjd+rD/iRuf5s5dWrr1GgwXCvPqOuDquOowA==} + '@rollup/rollup-android-arm-eabi@4.60.2': + resolution: {integrity: sha512-dnlp69efPPg6Uaw2dVqzWRfAWRnYVb1XJ8CyyhIbZeaq4CA5/mLeZ1IEt9QqQxmbdvagjLIm2ZL8BxXv5lH4Yw==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.60.1': - resolution: {integrity: sha512-YjG/EwIDvvYI1YvYbHvDz/BYHtkY4ygUIXHnTdLhG+hKIQFBiosfWiACWortsKPKU/+dUwQQCKQM3qrDe8c9BA==} + '@rollup/rollup-android-arm64@4.60.2': + resolution: {integrity: sha512-OqZTwDRDchGRHHm/hwLOL7uVPB9aUvI0am/eQuWMNyFHf5PSEQmyEeYYheA0EPPKUO/l0uigCp+iaTjoLjVoHg==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.60.1': - resolution: {integrity: sha512-mjCpF7GmkRtSJwon+Rq1N8+pI+8l7w5g9Z3vWj4T7abguC4Czwi3Yu/pFaLvA3TTeMVjnu3ctigusqWUfjZzvw==} + '@rollup/rollup-darwin-arm64@4.60.2': + resolution: {integrity: sha512-UwRE7CGpvSVEQS8gUMBe1uADWjNnVgP3Iusyda1nSRwNDCsRjnGc7w6El6WLQsXmZTbLZx9cecegumcitNfpmA==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.60.1': - resolution: {integrity: sha512-haZ7hJ1JT4e9hqkoT9R/19XW2QKqjfJVv+i5AGg57S+nLk9lQnJ1F/eZloRO3o9Scy9CM3wQ9l+dkXtcBgN5Ew==} + '@rollup/rollup-darwin-x64@4.60.2': + resolution: {integrity: sha512-gjEtURKLCC5VXm1I+2i1u9OhxFsKAQJKTVB8WvDAHF+oZlq0GTVFOlTlO1q3AlCTE/DF32c16ESvfgqR7343/g==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.60.1': - resolution: {integrity: sha512-czw90wpQq3ZsAVBlinZjAYTKduOjTywlG7fEeWKUA7oCmpA8xdTkxZZlwNJKWqILlq0wehoZcJYfBvOyhPTQ6w==} + '@rollup/rollup-freebsd-arm64@4.60.2': + resolution: {integrity: sha512-Bcl6CYDeAgE70cqZaMojOi/eK63h5Me97ZqAQoh77VPjMysA/4ORQBRGo3rRy45x4MzVlU9uZxs8Uwy7ZaKnBw==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.60.1': - resolution: {integrity: sha512-KVB2rqsxTHuBtfOeySEyzEOB7ltlB/ux38iu2rBQzkjbwRVlkhAGIEDiiYnO2kFOkJp+Z7pUXKyrRRFuFUKt+g==} + '@rollup/rollup-freebsd-x64@4.60.2': + resolution: {integrity: sha512-LU+TPda3mAE2QB0/Hp5VyeKJivpC6+tlOXd1VMoXV/YFMvk/MNk5iXeBfB4MQGRWyOYVJ01625vjkr0Az98OJQ==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.60.1': - resolution: {integrity: sha512-L+34Qqil+v5uC0zEubW7uByo78WOCIrBvci69E7sFASRl0X7b/MB6Cqd1lky/CtcSVTydWa2WZwFuWexjS5o6g==} + '@rollup/rollup-linux-arm-gnueabihf@4.60.2': + resolution: {integrity: sha512-2QxQrM+KQ7DAW4o22j+XZ6RKdxjLD7BOWTP0Bv0tmjdyhXSsr2Ul1oJDQqh9Zf5qOwTuTc7Ek83mOFaKnodPjg==} cpu: [arm] os: [linux] libc: [glibc] - '@rollup/rollup-linux-arm-musleabihf@4.60.1': - resolution: {integrity: sha512-n83O8rt4v34hgFzlkb1ycniJh7IR5RCIqt6mz1VRJD6pmhRi0CXdmfnLu9dIUS6buzh60IvACM842Ffb3xd6Gg==} + '@rollup/rollup-linux-arm-musleabihf@4.60.2': + resolution: {integrity: sha512-TbziEu2DVsTEOPif2mKWkMeDMLoYjx95oESa9fkQQK7r/Orta0gnkcDpzwufEcAO2BLBsD7mZkXGFqEdMRRwfw==} cpu: [arm] os: [linux] libc: [musl] - '@rollup/rollup-linux-arm64-gnu@4.60.1': - resolution: {integrity: sha512-Nql7sTeAzhTAja3QXeAI48+/+GjBJ+QmAH13snn0AJSNL50JsDqotyudHyMbO2RbJkskbMbFJfIJKWA6R1LCJQ==} + '@rollup/rollup-linux-arm64-gnu@4.60.2': + resolution: {integrity: sha512-bO/rVDiDUuM2YfuCUwZ1t1cP+/yqjqz+Xf2VtkdppefuOFS2OSeAfgafaHNkFn0t02hEyXngZkxtGqXcXwO8Rg==} cpu: [arm64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-arm64-musl@4.60.1': - resolution: {integrity: sha512-+pUymDhd0ys9GcKZPPWlFiZ67sTWV5UU6zOJat02M1+PiuSGDziyRuI/pPue3hoUwm2uGfxdL+trT6Z9rxnlMA==} + '@rollup/rollup-linux-arm64-musl@4.60.2': + resolution: {integrity: sha512-hr26p7e93Rl0Za+JwW7EAnwAvKkehh12BU1Llm9Ykiibg4uIr2rbpxG9WCf56GuvidlTG9KiiQT/TXT1yAWxTA==} cpu: [arm64] os: [linux] libc: [musl] - '@rollup/rollup-linux-loong64-gnu@4.60.1': - resolution: {integrity: sha512-VSvgvQeIcsEvY4bKDHEDWcpW4Yw7BtlKG1GUT4FzBUlEKQK0rWHYBqQt6Fm2taXS+1bXvJT6kICu5ZwqKCnvlQ==} + '@rollup/rollup-linux-loong64-gnu@4.60.2': + resolution: {integrity: sha512-pOjB/uSIyDt+ow3k/RcLvUAOGpysT2phDn7TTUB3n75SlIgZzM6NKAqlErPhoFU+npgY3/n+2HYIQVbF70P9/A==} cpu: [loong64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-loong64-musl@4.60.1': - resolution: {integrity: sha512-4LqhUomJqwe641gsPp6xLfhqWMbQV04KtPp7/dIp0nzPxAkNY1AbwL5W0MQpcalLYk07vaW9Kp1PBhdpZYYcEw==} + '@rollup/rollup-linux-loong64-musl@4.60.2': + resolution: {integrity: sha512-2/w+q8jszv9Ww1c+6uJT3OwqhdmGP2/4T17cu8WuwyUuuaCDDJ2ojdyYwZzCxx0GcsZBhzi3HmH+J5pZNXnd+Q==} cpu: [loong64] os: [linux] libc: [musl] - '@rollup/rollup-linux-ppc64-gnu@4.60.1': - resolution: {integrity: sha512-tLQQ9aPvkBxOc/EUT6j3pyeMD6Hb8QF2BTBnCQWP/uu1lhc9AIrIjKnLYMEroIz/JvtGYgI9dF3AxHZNaEH0rw==} + '@rollup/rollup-linux-ppc64-gnu@4.60.2': + resolution: {integrity: sha512-11+aL5vKheYgczxtPVVRhdptAM2H7fcDR5Gw4/bTcteuZBlH4oP9f5s9zYO9aGZvoGeBpqXI/9TZZihZ609wKw==} cpu: [ppc64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-ppc64-musl@4.60.1': - resolution: {integrity: sha512-RMxFhJwc9fSXP6PqmAz4cbv3kAyvD1etJFjTx4ONqFP9DkTkXsAMU4v3Vyc5BgzC+anz7nS/9tp4obsKfqkDHg==} + '@rollup/rollup-linux-ppc64-musl@4.60.2': + resolution: {integrity: sha512-i16fokAGK46IVZuV8LIIwMdtqhin9hfYkCh8pf8iC3QU3LpwL+1FSFGej+O7l3E/AoknL6Dclh2oTdnRMpTzFQ==} cpu: [ppc64] os: [linux] libc: [musl] - '@rollup/rollup-linux-riscv64-gnu@4.60.1': - resolution: {integrity: sha512-QKgFl+Yc1eEk6MmOBfRHYF6lTxiiiV3/z/BRrbSiW2I7AFTXoBFvdMEyglohPj//2mZS4hDOqeB0H1ACh3sBbg==} + '@rollup/rollup-linux-riscv64-gnu@4.60.2': + resolution: {integrity: sha512-49FkKS6RGQoriDSK/6E2GkAsAuU5kETFCh7pG4yD/ylj9rKhTmO3elsnmBvRD4PgJPds5W2PkhC82aVwmUcJ7A==} cpu: [riscv64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-riscv64-musl@4.60.1': - resolution: {integrity: sha512-RAjXjP/8c6ZtzatZcA1RaQr6O1TRhzC+adn8YZDnChliZHviqIjmvFwHcxi4JKPSDAt6Uhf/7vqcBzQJy0PDJg==} + '@rollup/rollup-linux-riscv64-musl@4.60.2': + resolution: {integrity: sha512-mjYNkHPfGpUR00DuM1ZZIgs64Hpf4bWcz9Z41+4Q+pgDx73UwWdAYyf6EG/lRFldmdHHzgrYyge5akFUW0D3mQ==} cpu: [riscv64] os: [linux] libc: [musl] - '@rollup/rollup-linux-s390x-gnu@4.60.1': - resolution: {integrity: sha512-wcuocpaOlaL1COBYiA89O6yfjlp3RwKDeTIA0hM7OpmhR1Bjo9j31G1uQVpDlTvwxGn2nQs65fBFL5UFd76FcQ==} + '@rollup/rollup-linux-s390x-gnu@4.60.2': + resolution: {integrity: sha512-ALyvJz965BQk8E9Al/JDKKDLH2kfKFLTGMlgkAbbYtZuJt9LU8DW3ZoDMCtQpXAltZxwBHevXz5u+gf0yA0YoA==} cpu: [s390x] os: [linux] libc: [glibc] - '@rollup/rollup-linux-x64-gnu@4.60.1': - resolution: {integrity: sha512-77PpsFQUCOiZR9+LQEFg9GClyfkNXj1MP6wRnzYs0EeWbPcHs02AXu4xuUbM1zhwn3wqaizle3AEYg5aeoohhg==} + '@rollup/rollup-linux-x64-gnu@4.60.2': + resolution: {integrity: sha512-UQjrkIdWrKI626Du8lCQ6MJp/6V1LAo2bOK9OTu4mSn8GGXIkPXk/Vsp4bLHCd9Z9Iz2OTEaokUE90VweJgIYQ==} cpu: [x64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-x64-musl@4.60.1': - resolution: {integrity: sha512-5cIATbk5vynAjqqmyBjlciMJl1+R/CwX9oLk/EyiFXDWd95KpHdrOJT//rnUl4cUcskrd0jCCw3wpZnhIHdD9w==} + '@rollup/rollup-linux-x64-musl@4.60.2': + resolution: {integrity: sha512-bTsRGj6VlSdn/XD4CGyzMnzaBs9bsRxy79eTqTCBsA8TMIEky7qg48aPkvJvFe1HyzQ5oMZdg7AnVlWQSKLTnw==} cpu: [x64] os: [linux] libc: [musl] - '@rollup/rollup-openbsd-x64@4.60.1': - resolution: {integrity: sha512-cl0w09WsCi17mcmWqqglez9Gk8isgeWvoUZ3WiJFYSR3zjBQc2J5/ihSjpl+VLjPqjQ/1hJRcqBfLjssREQILw==} + '@rollup/rollup-openbsd-x64@4.60.2': + resolution: {integrity: sha512-6d4Z3534xitaA1FcMWP7mQPq5zGwBmGbhphh2DwaA1aNIXUu3KTOfwrWpbwI4/Gr0uANo7NTtaykFyO2hPuFLg==} cpu: [x64] os: [openbsd] - '@rollup/rollup-openharmony-arm64@4.60.1': - resolution: {integrity: sha512-4Cv23ZrONRbNtbZa37mLSueXUCtN7MXccChtKpUnQNgF010rjrjfHx3QxkS2PI7LqGT5xXyYs1a7LbzAwT0iCA==} + '@rollup/rollup-openharmony-arm64@4.60.2': + resolution: {integrity: sha512-NetAg5iO2uN7eB8zE5qrZ3CSil+7IJt4WDFLcC75Ymywq1VZVD6qJ6EvNLjZ3rEm6gB7XW5JdT60c6MN35Z85Q==} cpu: [arm64] os: [openharmony] - '@rollup/rollup-win32-arm64-msvc@4.60.1': - resolution: {integrity: sha512-i1okWYkA4FJICtr7KpYzFpRTHgy5jdDbZiWfvny21iIKky5YExiDXP+zbXzm3dUcFpkEeYNHgQ5fuG236JPq0g==} + '@rollup/rollup-win32-arm64-msvc@4.60.2': + resolution: {integrity: sha512-NCYhOotpgWZ5kdxCZsv6Iudx0wX8980Q/oW4pNFNihpBKsDbEA1zpkfxJGC0yugsUuyDZ7gL37dbzwhR0VI7pQ==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.60.1': - resolution: {integrity: sha512-u09m3CuwLzShA0EYKMNiFgcjjzwqtUMLmuCJLeZWjjOYA3IT2Di09KaxGBTP9xVztWyIWjVdsB2E9goMjZvTQg==} + '@rollup/rollup-win32-ia32-msvc@4.60.2': + resolution: {integrity: sha512-RXsaOqXxfoUBQoOgvmmijVxJnW2IGB0eoMO7F8FAjaj0UTywUO/luSqimWBJn04WNgUkeNhh7fs7pESXajWmkg==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-gnu@4.60.1': - resolution: {integrity: sha512-k+600V9Zl1CM7eZxJgMyTUzmrmhB/0XZnF4pRypKAlAgxmedUA+1v9R+XOFv56W4SlHEzfeMtzujLJD22Uz5zg==} + '@rollup/rollup-win32-x64-gnu@4.60.2': + resolution: {integrity: sha512-qdAzEULD+/hzObedtmV6iBpdL5TIbKVztGiK7O3/KYSf+HIzU257+MX1EXJcyIiDbMAqmbwaufcYPvyRryeZtA==} cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.60.1': - resolution: {integrity: sha512-lWMnixq/QzxyhTV6NjQJ4SFo1J6PvOX8vUx5Wb4bBPsEb+8xZ89Bz6kOXpfXj9ak9AHTQVQzlgzBEc1SyM27xQ==} + '@rollup/rollup-win32-x64-msvc@4.60.2': + resolution: {integrity: sha512-Nd/SgG27WoA9e+/TdK74KnHz852TLa94ovOYySo/yMPuTmpckK/jIF2jSwS3g7ELSKXK13/cVdmg1Z/DaCWKxA==} cpu: [x64] os: [win32] @@ -5418,8 +5418,8 @@ packages: ramda@0.32.0: resolution: {integrity: sha512-GQWAHhxhxWBWA8oIBr1XahFVjQ9Fic6MK9ikijfd4TZHfE2+urfk+irVlR5VOn48uwMgM+loRRBJd6Yjsbc0zQ==} - rate-limiter-flexible@11.0.0: - resolution: {integrity: sha512-UhN3xVeU6Az3y6hAuxMUwFsKcKD1HffhMGK0MknbSxH9vkwslS/p19ovCvJqIVT97pE778nKu2sUgYAcxj4dmQ==} + rate-limiter-flexible@11.0.1: + resolution: {integrity: sha512-hvyCUefjRund2N6hro2H8Dql7OvB6+B3Qv2FLWWbdsdyQScXf4+N0tM0Bryz11awTtNxx6C1QbHYb1rCiAx7pA==} re2js@2.2.0: resolution: {integrity: sha512-IoEpLLg1dljnBkHzFwwHtCKJGEozP1/Qc2i2orS+QA7NNP7ZU3dy7Dzmc8sXlL9KcukZ3EB/go5h48GcF60SVQ==} @@ -5567,8 +5567,8 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} hasBin: true - rollup@4.60.1: - resolution: {integrity: sha512-VmtB2rFU/GroZ4oL8+ZqXgSA38O6GR8KSIvWmEFv63pQ0G6KaBH9s07PO8XTXP4vI+3UJUEypOfjkGfmSBBR0w==} + rollup@4.60.2: + resolution: {integrity: sha512-J9qZyW++QK/09NyN/zeO0dG/1GdGfyp9lV8ajHnRVLfo/uFsbji5mHnDgn/qYdUHyCkM2N+8VyspgZclfAh0eQ==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -8087,87 +8087,87 @@ snapshots: '@rolldown/pluginutils@1.0.0-rc.16': {} - '@rollup/pluginutils@5.3.0(rollup@4.60.1)': + '@rollup/pluginutils@5.3.0(rollup@4.60.2)': dependencies: '@types/estree': 1.0.8 estree-walker: 2.0.2 picomatch: 4.0.4 optionalDependencies: - rollup: 4.60.1 + rollup: 4.60.2 - '@rollup/rollup-android-arm-eabi@4.60.1': + '@rollup/rollup-android-arm-eabi@4.60.2': optional: true - '@rollup/rollup-android-arm64@4.60.1': + '@rollup/rollup-android-arm64@4.60.2': optional: true - '@rollup/rollup-darwin-arm64@4.60.1': + '@rollup/rollup-darwin-arm64@4.60.2': optional: true - '@rollup/rollup-darwin-x64@4.60.1': + '@rollup/rollup-darwin-x64@4.60.2': optional: true - '@rollup/rollup-freebsd-arm64@4.60.1': + '@rollup/rollup-freebsd-arm64@4.60.2': optional: true - '@rollup/rollup-freebsd-x64@4.60.1': + '@rollup/rollup-freebsd-x64@4.60.2': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.60.1': + '@rollup/rollup-linux-arm-gnueabihf@4.60.2': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.60.1': + '@rollup/rollup-linux-arm-musleabihf@4.60.2': optional: true - '@rollup/rollup-linux-arm64-gnu@4.60.1': + '@rollup/rollup-linux-arm64-gnu@4.60.2': optional: true - '@rollup/rollup-linux-arm64-musl@4.60.1': + '@rollup/rollup-linux-arm64-musl@4.60.2': optional: true - '@rollup/rollup-linux-loong64-gnu@4.60.1': + '@rollup/rollup-linux-loong64-gnu@4.60.2': optional: true - '@rollup/rollup-linux-loong64-musl@4.60.1': + '@rollup/rollup-linux-loong64-musl@4.60.2': optional: true - '@rollup/rollup-linux-ppc64-gnu@4.60.1': + '@rollup/rollup-linux-ppc64-gnu@4.60.2': optional: true - '@rollup/rollup-linux-ppc64-musl@4.60.1': + '@rollup/rollup-linux-ppc64-musl@4.60.2': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.60.1': + '@rollup/rollup-linux-riscv64-gnu@4.60.2': optional: true - '@rollup/rollup-linux-riscv64-musl@4.60.1': + '@rollup/rollup-linux-riscv64-musl@4.60.2': optional: true - '@rollup/rollup-linux-s390x-gnu@4.60.1': + '@rollup/rollup-linux-s390x-gnu@4.60.2': optional: true - '@rollup/rollup-linux-x64-gnu@4.60.1': + '@rollup/rollup-linux-x64-gnu@4.60.2': optional: true - '@rollup/rollup-linux-x64-musl@4.60.1': + '@rollup/rollup-linux-x64-musl@4.60.2': optional: true - '@rollup/rollup-openbsd-x64@4.60.1': + '@rollup/rollup-openbsd-x64@4.60.2': optional: true - '@rollup/rollup-openharmony-arm64@4.60.1': + '@rollup/rollup-openharmony-arm64@4.60.2': optional: true - '@rollup/rollup-win32-arm64-msvc@4.60.1': + '@rollup/rollup-win32-arm64-msvc@4.60.2': optional: true - '@rollup/rollup-win32-ia32-msvc@4.60.1': + '@rollup/rollup-win32-ia32-msvc@4.60.2': optional: true - '@rollup/rollup-win32-x64-gnu@4.60.1': + '@rollup/rollup-win32-x64-gnu@4.60.2': optional: true - '@rollup/rollup-win32-x64-msvc@4.60.1': + '@rollup/rollup-win32-x64-msvc@4.60.2': optional: true '@rss3/api-core@0.0.25': @@ -8644,10 +8644,10 @@ snapshots: '@unrs/resolver-binding-win32-x64-msvc@1.11.1': optional: true - '@vercel/nft@1.5.0(rollup@4.60.1)': + '@vercel/nft@1.5.0(rollup@4.60.2)': dependencies: '@mapbox/node-pre-gyp': 2.0.3 - '@rollup/pluginutils': 5.3.0(rollup@4.60.1) + '@rollup/pluginutils': 5.3.0(rollup@4.60.2) acorn: 8.16.0 acorn-import-attributes: 1.9.5(acorn@8.16.0) async-sema: 3.1.1 @@ -11439,7 +11439,7 @@ snapshots: ramda@0.32.0: {} - rate-limiter-flexible@11.0.0: {} + rate-limiter-flexible@11.0.1: {} re2js@2.2.0: {} @@ -11646,35 +11646,35 @@ snapshots: '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.16 '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.16 - rollup@4.60.1: + rollup@4.60.2: dependencies: '@types/estree': 1.0.8 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.60.1 - '@rollup/rollup-android-arm64': 4.60.1 - '@rollup/rollup-darwin-arm64': 4.60.1 - '@rollup/rollup-darwin-x64': 4.60.1 - '@rollup/rollup-freebsd-arm64': 4.60.1 - '@rollup/rollup-freebsd-x64': 4.60.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.60.1 - '@rollup/rollup-linux-arm-musleabihf': 4.60.1 - '@rollup/rollup-linux-arm64-gnu': 4.60.1 - '@rollup/rollup-linux-arm64-musl': 4.60.1 - '@rollup/rollup-linux-loong64-gnu': 4.60.1 - '@rollup/rollup-linux-loong64-musl': 4.60.1 - '@rollup/rollup-linux-ppc64-gnu': 4.60.1 - '@rollup/rollup-linux-ppc64-musl': 4.60.1 - '@rollup/rollup-linux-riscv64-gnu': 4.60.1 - '@rollup/rollup-linux-riscv64-musl': 4.60.1 - '@rollup/rollup-linux-s390x-gnu': 4.60.1 - '@rollup/rollup-linux-x64-gnu': 4.60.1 - '@rollup/rollup-linux-x64-musl': 4.60.1 - '@rollup/rollup-openbsd-x64': 4.60.1 - '@rollup/rollup-openharmony-arm64': 4.60.1 - '@rollup/rollup-win32-arm64-msvc': 4.60.1 - '@rollup/rollup-win32-ia32-msvc': 4.60.1 - '@rollup/rollup-win32-x64-gnu': 4.60.1 - '@rollup/rollup-win32-x64-msvc': 4.60.1 + '@rollup/rollup-android-arm-eabi': 4.60.2 + '@rollup/rollup-android-arm64': 4.60.2 + '@rollup/rollup-darwin-arm64': 4.60.2 + '@rollup/rollup-darwin-x64': 4.60.2 + '@rollup/rollup-freebsd-arm64': 4.60.2 + '@rollup/rollup-freebsd-x64': 4.60.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.60.2 + '@rollup/rollup-linux-arm-musleabihf': 4.60.2 + '@rollup/rollup-linux-arm64-gnu': 4.60.2 + '@rollup/rollup-linux-arm64-musl': 4.60.2 + '@rollup/rollup-linux-loong64-gnu': 4.60.2 + '@rollup/rollup-linux-loong64-musl': 4.60.2 + '@rollup/rollup-linux-ppc64-gnu': 4.60.2 + '@rollup/rollup-linux-ppc64-musl': 4.60.2 + '@rollup/rollup-linux-riscv64-gnu': 4.60.2 + '@rollup/rollup-linux-riscv64-musl': 4.60.2 + '@rollup/rollup-linux-s390x-gnu': 4.60.2 + '@rollup/rollup-linux-x64-gnu': 4.60.2 + '@rollup/rollup-linux-x64-musl': 4.60.2 + '@rollup/rollup-openbsd-x64': 4.60.2 + '@rollup/rollup-openharmony-arm64': 4.60.2 + '@rollup/rollup-win32-arm64-msvc': 4.60.2 + '@rollup/rollup-win32-ia32-msvc': 4.60.2 + '@rollup/rollup-win32-x64-gnu': 4.60.2 + '@rollup/rollup-win32-x64-msvc': 4.60.2 fsevents: 2.3.3 rss-parser@3.13.0(patch_hash=afac79a31a3db94c953d49680bc5528468f051957d461e913d2e2dbf5cd22a8d): @@ -12332,7 +12332,7 @@ snapshots: fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 postcss: 8.5.10 - rollup: 4.60.1 + rollup: 4.60.2 tinyglobby: 0.2.16 optionalDependencies: '@types/node': 25.6.0 From 1eb3b3826d6a28aa909535119d80cd574bbc1f38 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Apr 2026 08:51:20 +0000 Subject: [PATCH 207/439] chore(deps): bump jsrsasign from 11.1.2 to 11.1.3 (#21776) Bumps [jsrsasign](https://github.com/kjur/jsrsasign) from 11.1.2 to 11.1.3. - [Release notes](https://github.com/kjur/jsrsasign/releases) - [Changelog](https://github.com/kjur/jsrsasign/blob/master/ChangeLog.txt) - [Commits](https://github.com/kjur/jsrsasign/compare/11.1.2...11.1.3) --- updated-dependencies: - dependency-name: jsrsasign dependency-version: 11.1.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 965262092192..417147c78637 100644 --- a/package.json +++ b/package.json @@ -101,7 +101,7 @@ "jsdom": "29.0.2", "json-bigint": "1.0.0", "jsonpath-plus": "10.4.0", - "jsrsasign": "11.1.2", + "jsrsasign": "11.1.3", "lru-cache": "11.3.5", "lz-string": "1.5.0", "mailparser": "3.9.8", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ce19f637ded1..5d3aee73ad7b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -167,8 +167,8 @@ importers: specifier: 10.4.0 version: 10.4.0 jsrsasign: - specifier: 11.1.2 - version: 11.1.2 + specifier: 11.1.3 + version: 11.1.3 lru-cache: specifier: 11.3.5 version: 11.3.5 @@ -4648,8 +4648,8 @@ packages: resolution: {integrity: sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==} engines: {'0': node >=0.6.0} - jsrsasign@11.1.2: - resolution: {integrity: sha512-GJuqiU/Grs6BaBBXMAZM9kxhsBrksZE0pF3qIfpkopMd7OMJ9zZmE/+CpV//97srfEyyyq1Ec0ELQtSlW/gPTA==} + jsrsasign@11.1.3: + resolution: {integrity: sha512-nPnK5D/4lv0Dwr7TlzrKtAd8JlLZwFTqTUUB3NQCbtdobcRcohGFxjbPySDVh74iWUudcCsapYT6OxoyhJLhhA==} jwa@2.0.1: resolution: {integrity: sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==} @@ -10473,7 +10473,7 @@ snapshots: json-schema: 0.4.0 verror: 1.10.0 - jsrsasign@11.1.2: {} + jsrsasign@11.1.3: {} jwa@2.0.1: dependencies: From 72afd23ccb5c96ce1e18e0c32b72987590d8d4e8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Apr 2026 08:53:21 +0000 Subject: [PATCH 208/439] chore(deps): bump @scalar/hono-api-reference from 0.10.8 to 0.10.9 (#21777) Bumps [@scalar/hono-api-reference](https://github.com/scalar/scalar/tree/HEAD/integrations/hono) from 0.10.8 to 0.10.9. - [Release notes](https://github.com/scalar/scalar/releases) - [Changelog](https://github.com/scalar/scalar/blob/main/integrations/hono/CHANGELOG.md) - [Commits](https://github.com/scalar/scalar/commits/HEAD/integrations/hono) --- updated-dependencies: - dependency-name: "@scalar/hono-api-reference" dependency-version: 0.10.9 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 53 +++++++++++++++++++++++++------------------------- 2 files changed, 27 insertions(+), 28 deletions(-) diff --git a/package.json b/package.json index 417147c78637..f193fe7d067f 100644 --- a/package.json +++ b/package.json @@ -72,7 +72,7 @@ "@opentelemetry/sdk-trace-base": "2.6.1", "@opentelemetry/semantic-conventions": "1.40.0", "@rss3/sdk": "0.0.25", - "@scalar/hono-api-reference": "0.10.8", + "@scalar/hono-api-reference": "0.10.9", "@sentry/node": "10.49.0", "aes-js": "3.1.2", "cheerio": "1.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5d3aee73ad7b..a9d03d9c17dd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -80,8 +80,8 @@ importers: specifier: 0.0.25 version: 0.0.25 '@scalar/hono-api-reference': - specifier: 0.10.8 - version: 0.10.8(hono@4.12.14) + specifier: 0.10.9 + version: 0.10.9(hono@4.12.14) '@sentry/node': specifier: 10.49.0 version: 10.49.0(@opentelemetry/exporter-trace-otlp-http@0.214.0(@opentelemetry/api@1.9.1)) @@ -2566,26 +2566,22 @@ packages: '@rss3/sdk@0.0.25': resolution: {integrity: sha512-jyXT4YTwefxxRZ0tt5xjbnw8e7zPg2OGdo/0xb+h/7qWnMNhLtWpc95DsYs/1C/I0rIyiDpZBhLI2DieQ9y+tw==} - '@scalar/client-side-rendering@0.1.1': - resolution: {integrity: sha512-ACASA/nQAC6HXQTIkkBlvCFxUN9xfCy3Zdgo75rw8jzUqsxRIpTuucR7r9VW1bO/N4qsgEQumC4hK4ESCMdZmQ==} + '@scalar/client-side-rendering@0.1.2': + resolution: {integrity: sha512-gX2QIc+lpErO9RWkJmt02sBZoCOjyZ7EiLLEyGj7x9UKkk7E4zj6Wbk1eUPo6i3oIwhtZ+Vybj/xzexCK2bxwA==} engines: {node: '>=22'} - '@scalar/core@0.5.1': - resolution: {integrity: sha512-LvH4m502KjEICn7d6lG28fU2TT5AIAJN/czpnx1wusLei2EAgVeEfy0Gkr/kQy+lU215fockVngcvOktYb6KrA==} + '@scalar/helpers@0.5.1': + resolution: {integrity: sha512-9VvPfv8b+YZVIFwR3SWeq4Y8ij/kU3/kf2M6NKcbf2iVyh63d8s0ssap5m/nOhiz/Puidv/29MAJlJCA0LRssA==} engines: {node: '>=22'} - '@scalar/helpers@0.5.0': - resolution: {integrity: sha512-S7m46UWqngUmDXuihUerNKS58vlUqF/qaXle3QREfc8Xh9wperAKxFmmxrnulAayrcCQ/fTJyGu5oSM2STlxkA==} - engines: {node: '>=22'} - - '@scalar/hono-api-reference@0.10.8': - resolution: {integrity: sha512-/8Pfg1ijyiL0gypc85geh7xFl0+iLUQS0tcqrX5cdao7pRO+aiDreMxYOBcRD9MJRD++nFUVYla97nmNwoTRTQ==} + '@scalar/hono-api-reference@0.10.9': + resolution: {integrity: sha512-XLsdXGp8ta7fjYgcwD8xyopsF5KfO5h1qJMoNTjb4Tm1giu+TEkH+m+aBS3cv5FN9LA91Uym8SLWJm8yhgkdOA==} engines: {node: '>=22'} peerDependencies: hono: ^4.12.5 - '@scalar/types@0.9.0': - resolution: {integrity: sha512-SJNI2f2ZEsN+Cp7o4rAjPu2nFRFXdSkO1ocG9rzynhJhbMBniHnbkCAe19QT/iHMvSCXfj8J8qDOn2S+TnMymg==} + '@scalar/types@0.9.1': + resolution: {integrity: sha512-3EbkhtQc+XuDE8Ur1MPosM3YTACFIFNba4M3vGulqv8jcvhMXT+KWPvGUJxq0CDvySqjGa8cE6w85v8T+MjDng==} engines: {node: '>=22'} '@scure/base@2.0.0': @@ -6034,6 +6030,10 @@ packages: resolution: {integrity: sha512-PlBfpQwiUvGViBNX84Yxwjsdhd1TUlXr6zjX7eoirtCPIr08NAmxwa+fcYBTeRQxHo9YC9wwF3m9i700sHma8g==} engines: {node: '>=20'} + type-fest@5.6.0: + resolution: {integrity: sha512-8ZiHFm91orbSAe2PSAiSVBVko18pbhbiB3U9GglSzF/zCGkR+rxpHx6sEMCUm4kxY4LjDIUGgCfUMtwfZfjfUA==} + engines: {node: '>=20'} + type@2.7.3: resolution: {integrity: sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==} @@ -8185,27 +8185,22 @@ snapshots: '@rss3/api-core': 0.0.25 '@rss3/api-utils': 0.0.25 - '@scalar/client-side-rendering@0.1.1': - dependencies: - '@scalar/types': 0.9.0 - - '@scalar/core@0.5.1': + '@scalar/client-side-rendering@0.1.2': dependencies: - '@scalar/client-side-rendering': 0.1.1 - '@scalar/types': 0.9.0 + '@scalar/types': 0.9.1 - '@scalar/helpers@0.5.0': {} + '@scalar/helpers@0.5.1': {} - '@scalar/hono-api-reference@0.10.8(hono@4.12.14)': + '@scalar/hono-api-reference@0.10.9(hono@4.12.14)': dependencies: - '@scalar/core': 0.5.1 + '@scalar/client-side-rendering': 0.1.2 hono: 4.12.14 - '@scalar/types@0.9.0': + '@scalar/types@0.9.1': dependencies: - '@scalar/helpers': 0.5.0 + '@scalar/helpers': 0.5.1 nanoid: 5.1.9 - type-fest: 5.5.0 + type-fest: 5.6.0 zod: 4.3.6 '@scure/base@2.0.0': {} @@ -12160,6 +12155,10 @@ snapshots: dependencies: tagged-tag: 1.0.0 + type-fest@5.6.0: + dependencies: + tagged-tag: 1.0.0 + type@2.7.3: {} typed-query-selector@2.12.1: {} From 4d9d497f9540fa02085a65d612549267df53053e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Apr 2026 08:58:51 +0000 Subject: [PATCH 209/439] chore(deps-dev): bump eslint from 10.2.0 to 10.2.1 in the eslint group (#21770) Bumps the eslint group with 1 update: [eslint](https://github.com/eslint/eslint). Updates `eslint` from 10.2.0 to 10.2.1 - [Release notes](https://github.com/eslint/eslint/releases) - [Commits](https://github.com/eslint/eslint/compare/v10.2.0...v10.2.1) --- updated-dependencies: - dependency-name: eslint dependency-version: 10.2.1 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: eslint ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 199 ++++++++++++++++++++++++++----------------------- 2 files changed, 105 insertions(+), 96 deletions(-) diff --git a/package.json b/package.json index f193fe7d067f..83bf5074649c 100644 --- a/package.json +++ b/package.json @@ -175,7 +175,7 @@ "@vitest/coverage-v8": "4.1.4", "discord-api-types": "0.38.47", "domhandler": "6.0.1", - "eslint": "10.2.0", + "eslint": "10.2.1", "eslint-nibble": "9.1.1", "eslint-plugin-import-x": "4.16.2", "eslint-plugin-n": "17.24.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a9d03d9c17dd..31023e8855f5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -310,13 +310,13 @@ importers: version: 3.3.5 '@eslint/js': specifier: 10.0.1 - version: 10.0.1(eslint@10.2.0(jiti@2.6.1)) + version: 10.0.1(eslint@10.2.1(jiti@2.6.1)) '@oxlint/plugins': specifier: 1.60.0 version: 1.60.0 '@stylistic/eslint-plugin': specifier: 5.10.0 - version: 5.10.0(eslint@10.2.0(jiti@2.6.1)) + version: 5.10.0(eslint@10.2.1(jiti@2.6.1)) '@types/aes-js': specifier: 3.1.4 version: 3.1.4 @@ -367,10 +367,10 @@ importers: version: 2.16.1 '@typescript-eslint/eslint-plugin': specifier: 8.58.2 - version: 8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3) + version: 8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3))(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: 8.58.2 - version: 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3) + version: 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) '@vercel/nft': specifier: 1.5.0 version: 1.5.0(rollup@4.60.2) @@ -384,26 +384,26 @@ importers: specifier: 6.0.1 version: 6.0.1 eslint: - specifier: 10.2.0 - version: 10.2.0(jiti@2.6.1) + specifier: 10.2.1 + version: 10.2.1(jiti@2.6.1) eslint-nibble: specifier: 9.1.1 - version: 9.1.1(@types/node@25.6.0)(eslint@10.2.0(jiti@2.6.1)) + version: 9.1.1(@types/node@25.6.0)(eslint@10.2.1(jiti@2.6.1)) eslint-plugin-import-x: specifier: 4.16.2 - version: 4.16.2(@typescript-eslint/utils@8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.2.0(jiti@2.6.1)) + version: 4.16.2(@typescript-eslint/utils@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.2.1(jiti@2.6.1)) eslint-plugin-n: specifier: 17.24.0 - version: 17.24.0(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3) + version: 17.24.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) eslint-plugin-simple-import-sort: specifier: 13.0.0 - version: 13.0.0(eslint@10.2.0(jiti@2.6.1)) + version: 13.0.0(eslint@10.2.1(jiti@2.6.1)) eslint-plugin-unicorn: specifier: 64.0.0 - version: 64.0.0(eslint@10.2.0(jiti@2.6.1)) + version: 64.0.0(eslint@10.2.1(jiti@2.6.1)) eslint-plugin-yml: specifier: 3.3.1 - version: 3.3.1(eslint@10.2.0(jiti@2.6.1)) + version: 3.3.1(eslint@10.2.1(jiti@2.6.1)) fs-extra: specifier: 11.3.4 version: 11.3.4 @@ -1192,20 +1192,20 @@ packages: resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.23.4': - resolution: {integrity: sha512-lf19F24LSMfF8weXvW5QEtnLqW70u7kgit5e9PSx0MsHAFclGd1T9ynvWEMDT1w5J4Qt54tomGeAhdoAku1Xow==} + '@eslint/config-array@0.23.5': + resolution: {integrity: sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/config-helpers@0.5.4': - resolution: {integrity: sha512-jJhqiY3wPMlWWO3370M86CPJ7pt8GmEwSLglMfQhjXal07RCvhmU0as4IuUEW5SJeunfItiEetHmSxCCe9lDBg==} + '@eslint/config-helpers@0.5.5': + resolution: {integrity: sha512-eIJYKTCECbP/nsKaaruF6LW967mtbQbsw4JTtSVkUQc9MneSkbrgPJAbKl9nWr0ZeowV8BfsarBmPpBzGelA2w==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} '@eslint/core@1.1.1': resolution: {integrity: sha512-QUPblTtE51/7/Zhfv8BDwO0qkkzQL7P/aWWbqcf4xWLEYn1oKjdO0gglQBB4GAsu7u6wjijbCmzsUTy6mnk6oQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/core@1.2.0': - resolution: {integrity: sha512-8FTGbNzTvmSlc4cZBaShkC6YvFMG0riksYWRFKXztqVdXaQbcZLXlFbSpC05s70sGEsXAw0qwhx69JiW7hQS7A==} + '@eslint/core@1.2.1': + resolution: {integrity: sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} '@eslint/eslintrc@3.3.5': @@ -1221,16 +1221,16 @@ packages: eslint: optional: true - '@eslint/object-schema@3.0.4': - resolution: {integrity: sha512-55lO/7+Yp0ISKRP0PsPtNTeNGapXaO085aELZmWCVc5SH3jfrqpuU6YgOdIxMS99ZHkQN1cXKE+cdIqwww9ptw==} + '@eslint/object-schema@3.0.5': + resolution: {integrity: sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} '@eslint/plugin-kit@0.6.1': resolution: {integrity: sha512-iH1B076HoAshH1mLpHMgwdGeTs0CYwL0SPMkGuSebZrwBp16v415e9NZXg2jtrqPVQjf6IANe2Vtlr5KswtcZQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/plugin-kit@0.7.0': - resolution: {integrity: sha512-ejvBr8MQCbVsWNZnCwDXjUKq40MDmHalq7cJ6e9s/qzTUFIIo/afzt1Vui9T97FM/V/pN4YsFVoed5NIa96RDg==} + '@eslint/plugin-kit@0.7.1': + resolution: {integrity: sha512-rZAP3aVgB9ds9KOeUSL+zZ21hPmo8dh6fnIFwRQj5EAZl9gzR7wxYbYXYysAM8CTqGmUGyp2S4kUdV17MnGuWQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} '@exodus/bytes@1.15.0': @@ -1275,12 +1275,16 @@ packages: hono: '>=3.9.0' zod: ^3.25.0 || ^4.0.0 - '@humanfs/core@0.19.1': - resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} + '@humanfs/core@0.19.2': + resolution: {integrity: sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==} engines: {node: '>=18.18.0'} - '@humanfs/node@0.16.7': - resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==} + '@humanfs/node@0.16.8': + resolution: {integrity: sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==} + engines: {node: '>=18.18.0'} + + '@humanfs/types@0.15.0': + resolution: {integrity: sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==} engines: {node: '>=18.18.0'} '@humanwhocodes/module-importer@1.0.1': @@ -3269,8 +3273,8 @@ packages: brace-expansion@1.1.13: resolution: {integrity: sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==} - brace-expansion@2.0.3: - resolution: {integrity: sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==} + brace-expansion@2.1.0: + resolution: {integrity: sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==} brace-expansion@5.0.5: resolution: {integrity: sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==} @@ -3950,8 +3954,8 @@ packages: resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - eslint@10.2.0: - resolution: {integrity: sha512-+L0vBFYGIpSNIt/KWTpFonPrqYvgKw1eUI5Vn7mEogrQcWtWYtNQ7dNqC+px/J0idT3BAkiWrhfS7k+Tum8TUA==} + eslint@10.2.1: + resolution: {integrity: sha512-wiyGaKsDgqXvF40P8mDwiUp/KQjE1FdrIEJsM8PZ3XCiniTMXS3OHWWUe5FI5agoCnr8x4xPrTDZuxsBlNHl+Q==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} hasBin: true peerDependencies: @@ -6990,30 +6994,30 @@ snapshots: '@esbuild/win32-x64@0.27.7': optional: true - '@eslint-community/eslint-utils@4.9.1(eslint@10.2.0(jiti@2.6.1))': + '@eslint-community/eslint-utils@4.9.1(eslint@10.2.1(jiti@2.6.1))': dependencies: - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.2': {} - '@eslint/config-array@0.23.4': + '@eslint/config-array@0.23.5': dependencies: - '@eslint/object-schema': 3.0.4 + '@eslint/object-schema': 3.0.5 debug: 4.4.3 minimatch: 10.2.5 transitivePeerDependencies: - supports-color - '@eslint/config-helpers@0.5.4': + '@eslint/config-helpers@0.5.5': dependencies: - '@eslint/core': 1.2.0 + '@eslint/core': 1.2.1 '@eslint/core@1.1.1': dependencies: '@types/json-schema': 7.0.15 - '@eslint/core@1.2.0': + '@eslint/core@1.2.1': dependencies: '@types/json-schema': 7.0.15 @@ -7031,20 +7035,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@10.0.1(eslint@10.2.0(jiti@2.6.1))': + '@eslint/js@10.0.1(eslint@10.2.1(jiti@2.6.1))': optionalDependencies: - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) - '@eslint/object-schema@3.0.4': {} + '@eslint/object-schema@3.0.5': {} '@eslint/plugin-kit@0.6.1': dependencies: '@eslint/core': 1.1.1 levn: 0.4.1 - '@eslint/plugin-kit@0.7.0': + '@eslint/plugin-kit@0.7.1': dependencies: - '@eslint/core': 1.2.0 + '@eslint/core': 1.2.1 levn: 0.4.1 '@exodus/bytes@1.15.0(@noble/hashes@2.0.1)': @@ -7089,13 +7093,18 @@ snapshots: hono: 4.12.14 zod: 4.3.6 - '@humanfs/core@0.19.1': {} + '@humanfs/core@0.19.2': + dependencies: + '@humanfs/types': 0.15.0 - '@humanfs/node@0.16.7': + '@humanfs/node@0.16.8': dependencies: - '@humanfs/core': 0.19.1 + '@humanfs/core': 0.19.2 + '@humanfs/types': 0.15.0 '@humanwhocodes/retry': 0.4.3 + '@humanfs/types@0.15.0': {} + '@humanwhocodes/module-importer@1.0.1': {} '@humanwhocodes/retry@0.4.3': {} @@ -8286,11 +8295,11 @@ snapshots: '@standard-schema/spec@1.1.0': {} - '@stylistic/eslint-plugin@5.10.0(eslint@10.2.0(jiti@2.6.1))': + '@stylistic/eslint-plugin@5.10.0(eslint@10.2.1(jiti@2.6.1))': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.1(jiti@2.6.1)) '@typescript-eslint/types': 8.58.0 - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) eslint-visitor-keys: 4.2.1 espree: 10.4.0 estraverse: 5.3.0 @@ -8487,15 +8496,15 @@ snapshots: '@types/node': 25.6.0 optional: true - '@typescript-eslint/eslint-plugin@8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3))(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/scope-manager': 8.58.2 - '@typescript-eslint/type-utils': 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/utils': 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/type-utils': 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/visitor-keys': 8.58.2 - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) ignore: 7.0.5 natural-compare: 1.4.0 ts-api-utils: 2.5.0(typescript@5.9.3) @@ -8503,14 +8512,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/parser@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@typescript-eslint/scope-manager': 8.58.2 '@typescript-eslint/types': 8.58.2 '@typescript-eslint/typescript-estree': 8.58.2(typescript@5.9.3) '@typescript-eslint/visitor-keys': 8.58.2 debug: 4.4.3 - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -8533,13 +8542,13 @@ snapshots: dependencies: typescript: 5.9.3 - '@typescript-eslint/type-utils@8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@typescript-eslint/types': 8.58.2 '@typescript-eslint/typescript-estree': 8.58.2(typescript@5.9.3) - '@typescript-eslint/utils': 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) debug: 4.4.3 - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: @@ -8564,13 +8573,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/utils@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.1(jiti@2.6.1)) '@typescript-eslint/scope-manager': 8.58.2 '@typescript-eslint/types': 8.58.2 '@typescript-eslint/typescript-estree': 8.58.2(typescript@5.9.3) - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -8893,7 +8902,7 @@ snapshots: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@2.0.3: + brace-expansion@2.1.0: dependencies: balanced-match: 1.0.2 @@ -9514,14 +9523,14 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-compat-utils@0.5.1(eslint@10.2.0(jiti@2.6.1)): + eslint-compat-utils@0.5.1(eslint@10.2.1(jiti@2.6.1)): dependencies: - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) semver: 7.7.4 - eslint-filtered-fix@0.3.0(eslint@10.2.0(jiti@2.6.1)): + eslint-filtered-fix@0.3.0(eslint@10.2.1(jiti@2.6.1)): dependencies: - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) optionator: 0.9.4 eslint-import-context@0.1.9(unrs-resolver@1.11.1): @@ -9540,34 +9549,34 @@ snapshots: - supports-color optional: true - eslint-nibble@9.1.1(@types/node@25.6.0)(eslint@10.2.0(jiti@2.6.1)): + eslint-nibble@9.1.1(@types/node@25.6.0)(eslint@10.2.1(jiti@2.6.1)): dependencies: '@babel/code-frame': 7.29.0 '@inquirer/checkbox': 4.3.2(@types/node@25.6.0) '@inquirer/confirm': 5.1.21(@types/node@25.6.0) '@inquirer/select': 4.4.2(@types/node@25.6.0) - eslint: 10.2.0(jiti@2.6.1) - eslint-filtered-fix: 0.3.0(eslint@10.2.0(jiti@2.6.1)) + eslint: 10.2.1(jiti@2.6.1) + eslint-filtered-fix: 0.3.0(eslint@10.2.1(jiti@2.6.1)) optionator: 0.9.4 text-table: 0.2.0 yoctocolors: 2.1.2 transitivePeerDependencies: - '@types/node' - eslint-plugin-es-x@7.8.0(eslint@10.2.0(jiti@2.6.1)): + eslint-plugin-es-x@7.8.0(eslint@10.2.1(jiti@2.6.1)): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.1(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.2 - eslint: 10.2.0(jiti@2.6.1) - eslint-compat-utils: 0.5.1(eslint@10.2.0(jiti@2.6.1)) + eslint: 10.2.1(jiti@2.6.1) + eslint-compat-utils: 0.5.1(eslint@10.2.1(jiti@2.6.1)) - eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.2.0(jiti@2.6.1)): + eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.2.1(jiti@2.6.1)): dependencies: '@package-json/types': 0.0.12 '@typescript-eslint/types': 8.58.0 comment-parser: 1.4.6 debug: 4.4.3 - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) eslint-import-context: 0.1.9(unrs-resolver@1.11.1) is-glob: 4.0.3 minimatch: 10.2.5 @@ -9575,17 +9584,17 @@ snapshots: stable-hash-x: 0.2.0 unrs-resolver: 1.11.1 optionalDependencies: - '@typescript-eslint/utils': 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-n@17.24.0(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3): + eslint-plugin-n@17.24.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.1(jiti@2.6.1)) enhanced-resolve: 5.20.1 - eslint: 10.2.0(jiti@2.6.1) - eslint-plugin-es-x: 7.8.0(eslint@10.2.0(jiti@2.6.1)) + eslint: 10.2.1(jiti@2.6.1) + eslint-plugin-es-x: 7.8.0(eslint@10.2.1(jiti@2.6.1)) get-tsconfig: 4.13.7 globals: 15.15.0 globrex: 0.1.2 @@ -9595,19 +9604,19 @@ snapshots: transitivePeerDependencies: - typescript - eslint-plugin-simple-import-sort@13.0.0(eslint@10.2.0(jiti@2.6.1)): + eslint-plugin-simple-import-sort@13.0.0(eslint@10.2.1(jiti@2.6.1)): dependencies: - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) - eslint-plugin-unicorn@64.0.0(eslint@10.2.0(jiti@2.6.1)): + eslint-plugin-unicorn@64.0.0(eslint@10.2.1(jiti@2.6.1)): dependencies: '@babel/helper-validator-identifier': 7.28.5 - '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.1(jiti@2.6.1)) change-case: 5.4.4 ci-info: 4.4.0 clean-regexp: 1.0.0 core-js-compat: 3.49.0 - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) find-up-simple: 1.0.1 globals: 17.5.0 indent-string: 5.0.0 @@ -9619,7 +9628,7 @@ snapshots: semver: 7.7.4 strip-indent: 4.1.1 - eslint-plugin-yml@3.3.1(eslint@10.2.0(jiti@2.6.1)): + eslint-plugin-yml@3.3.1(eslint@10.2.1(jiti@2.6.1)): dependencies: '@eslint/core': 1.1.1 '@eslint/plugin-kit': 0.6.1 @@ -9627,7 +9636,7 @@ snapshots: debug: 4.4.3 diff-sequences: 29.6.3 escape-string-regexp: 5.0.0 - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) natural-compare: 1.4.0 yaml-eslint-parser: 2.0.0 transitivePeerDependencies: @@ -9646,15 +9655,15 @@ snapshots: eslint-visitor-keys@5.0.1: {} - eslint@10.2.0(jiti@2.6.1): + eslint@10.2.1(jiti@2.6.1): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.1(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.2 - '@eslint/config-array': 0.23.4 - '@eslint/config-helpers': 0.5.4 - '@eslint/core': 1.2.0 - '@eslint/plugin-kit': 0.7.0 - '@humanfs/node': 0.16.7 + '@eslint/config-array': 0.23.5 + '@eslint/config-helpers': 0.5.5 + '@eslint/core': 1.2.1 + '@eslint/plugin-kit': 0.7.1 + '@humanfs/node': 0.16.8 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 '@types/estree': 1.0.8 @@ -10853,7 +10862,7 @@ snapshots: minimatch@9.0.9: dependencies: - brace-expansion: 2.0.3 + brace-expansion: 2.1.0 minipass@7.1.3: {} From 0cc509129421af72cf36c6792704bf9db2a8b1d4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Apr 2026 19:58:40 +0800 Subject: [PATCH 210/439] chore(deps): bump the opentelemetry group with 5 updates (#21773) Bumps the opentelemetry group with 5 updates: | Package | From | To | | --- | --- | --- | | [@opentelemetry/exporter-prometheus](https://github.com/open-telemetry/opentelemetry-js) | `0.214.0` | `0.215.0` | | [@opentelemetry/exporter-trace-otlp-http](https://github.com/open-telemetry/opentelemetry-js) | `0.214.0` | `0.215.0` | | [@opentelemetry/resources](https://github.com/open-telemetry/opentelemetry-js) | `2.6.1` | `2.7.0` | | [@opentelemetry/sdk-metrics](https://github.com/open-telemetry/opentelemetry-js) | `2.6.1` | `2.7.0` | | [@opentelemetry/sdk-trace-base](https://github.com/open-telemetry/opentelemetry-js) | `2.6.1` | `2.7.0` | Updates `@opentelemetry/exporter-prometheus` from 0.214.0 to 0.215.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.214.0...experimental/v0.215.0) Updates `@opentelemetry/exporter-trace-otlp-http` from 0.214.0 to 0.215.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.214.0...experimental/v0.215.0) Updates `@opentelemetry/resources` from 2.6.1 to 2.7.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/v2.6.1...v2.7.0) Updates `@opentelemetry/sdk-metrics` from 2.6.1 to 2.7.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/v2.6.1...v2.7.0) Updates `@opentelemetry/sdk-trace-base` from 2.6.1 to 2.7.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/v2.6.1...v2.7.0) --- updated-dependencies: - dependency-name: "@opentelemetry/exporter-prometheus" dependency-version: 0.215.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: opentelemetry - dependency-name: "@opentelemetry/exporter-trace-otlp-http" dependency-version: 0.215.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: opentelemetry - dependency-name: "@opentelemetry/resources" dependency-version: 2.7.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: opentelemetry - dependency-name: "@opentelemetry/sdk-metrics" dependency-version: 2.7.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: opentelemetry - dependency-name: "@opentelemetry/sdk-trace-base" dependency-version: 2.7.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: opentelemetry ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 10 +-- pnpm-lock.yaml | 178 ++++++++++++++++++++++++++++++------------------- 2 files changed, 113 insertions(+), 75 deletions(-) diff --git a/package.json b/package.json index 83bf5074649c..dd36f4e1316a 100644 --- a/package.json +++ b/package.json @@ -65,11 +65,11 @@ "@jocmp/mercury-parser": "3.0.7", "@notionhq/client": "5.18.0", "@opentelemetry/api": "1.9.1", - "@opentelemetry/exporter-prometheus": "0.214.0", - "@opentelemetry/exporter-trace-otlp-http": "0.214.0", - "@opentelemetry/resources": "2.6.1", - "@opentelemetry/sdk-metrics": "2.6.1", - "@opentelemetry/sdk-trace-base": "2.6.1", + "@opentelemetry/exporter-prometheus": "0.215.0", + "@opentelemetry/exporter-trace-otlp-http": "0.215.0", + "@opentelemetry/resources": "2.7.0", + "@opentelemetry/sdk-metrics": "2.7.0", + "@opentelemetry/sdk-trace-base": "2.7.0", "@opentelemetry/semantic-conventions": "1.40.0", "@rss3/sdk": "0.0.25", "@scalar/hono-api-reference": "0.10.9", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 31023e8855f5..a05a78e7828e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -59,20 +59,20 @@ importers: specifier: 1.9.1 version: 1.9.1 '@opentelemetry/exporter-prometheus': - specifier: 0.214.0 - version: 0.214.0(@opentelemetry/api@1.9.1) + specifier: 0.215.0 + version: 0.215.0(@opentelemetry/api@1.9.1) '@opentelemetry/exporter-trace-otlp-http': - specifier: 0.214.0 - version: 0.214.0(@opentelemetry/api@1.9.1) + specifier: 0.215.0 + version: 0.215.0(@opentelemetry/api@1.9.1) '@opentelemetry/resources': - specifier: 2.6.1 - version: 2.6.1(@opentelemetry/api@1.9.1) + specifier: 2.7.0 + version: 2.7.0(@opentelemetry/api@1.9.1) '@opentelemetry/sdk-metrics': - specifier: 2.6.1 - version: 2.6.1(@opentelemetry/api@1.9.1) + specifier: 2.7.0 + version: 2.7.0(@opentelemetry/api@1.9.1) '@opentelemetry/sdk-trace-base': - specifier: 2.6.1 - version: 2.6.1(@opentelemetry/api@1.9.1) + specifier: 2.7.0 + version: 2.7.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': specifier: 1.40.0 version: 1.40.0 @@ -84,7 +84,7 @@ importers: version: 0.10.9(hono@4.12.14) '@sentry/node': specifier: 10.49.0 - version: 10.49.0(@opentelemetry/exporter-trace-otlp-http@0.214.0(@opentelemetry/api@1.9.1)) + version: 10.49.0(@opentelemetry/exporter-trace-otlp-http@0.215.0(@opentelemetry/api@1.9.1)) aes-js: specifier: 3.1.2 version: 3.1.2 @@ -1710,6 +1710,10 @@ packages: resolution: {integrity: sha512-40lSJeqYO8Uz2Yj7u94/SJWE/wONa7rmMKjI1ZcIjgf3MHNHv1OZUCrCETGuaRF62d5pQD1wKIW+L4lmSMTzZA==} engines: {node: '>=8.0.0'} + '@opentelemetry/api-logs@0.215.0': + resolution: {integrity: sha512-xrFlqhdhUyO8wSRn6DjE0145/HPWSJ5Nm0C7vWua6TdL/FSEAZvEyvdsa9CRXuxo9ebb7j/NEPhEcO62IJ0qUA==} + engines: {node: '>=8.0.0'} + '@opentelemetry/api@1.9.1': resolution: {integrity: sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q==} engines: {node: '>=8.0.0'} @@ -1720,14 +1724,20 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/exporter-prometheus@0.214.0': - resolution: {integrity: sha512-4TGYoZKebUWVuYkV6r5wS2dUF4zH7EbWFw/Uqz1ZM1tGHQeFT9wzHGXq3iSIXMUrwu5jRdxjfMaXrYejPu2kpQ==} + '@opentelemetry/core@2.7.0': + resolution: {integrity: sha512-DT12SXVwV2eoJrGf4nnsvZojxxeQo+LlNAsoYGRRObPWTeN6APiqZ2+nqDCQDvQX40eLi1AePONS0onoASp3yQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/exporter-prometheus@0.215.0': + resolution: {integrity: sha512-7ghCl1G84jccmxG3B8UwUMZ1OlequBzB1jt5tZ4DDiAyVKeA4Roz5D6VK8SQ0ZyBQffVyX/rtXrpVXKVzRCGfg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/exporter-trace-otlp-http@0.214.0': - resolution: {integrity: sha512-kIN8nTBMgV2hXzV/a20BCFilPZdAIMYYJGSgfMMRm/Xa+07y5hRDS2Vm12A/z8Cdu3Sq++ZvJfElokX2rkgGgw==} + '@opentelemetry/exporter-trace-otlp-http@0.215.0': + resolution: {integrity: sha512-k4J9ISeGpb0Bm/wCrlcrbroMFTkiWMrdhNxQGrlktxLy127Yzd4/7nrTawn5d/ApktYTknvdixsE6++34Qfi1w==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -1876,14 +1886,14 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/otlp-exporter-base@0.214.0': - resolution: {integrity: sha512-u1Gdv0/E9wP+apqWf7Wv2npXmgJtxsW2XL0TEv9FZloTZRuMBKmu8cYVXwS4Hm3q/f/3FuCnPTgiwYvIqRSpRg==} + '@opentelemetry/otlp-exporter-base@0.215.0': + resolution: {integrity: sha512-lHrfbmeLSmesGSkkHiqDwOzfaEMSWXdc7q6UoLfbW8byONCb+bE/zkAr0kapN4US1baT/2nbpNT7Cn9XoB96Vg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/otlp-transformer@0.214.0': - resolution: {integrity: sha512-DSaYcuBRh6uozfsWN3R8HsN0yDhCuWP7tOFdkUOVaWD1KVJg8m4qiLUsg/tNhTLS9HUYUcwNpwL2eroLtsZZ/w==} + '@opentelemetry/otlp-transformer@0.215.0': + resolution: {integrity: sha512-cWwBvaV+vkXHkSoTYR8hGw+AW03UlgTr6xtrUKOMeum3T+8vffYXIfXu6KY5MLu8O9QtoBKqaKWw9I5xoOepng==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -1892,26 +1902,26 @@ packages: resolution: {integrity: sha512-1BCcU93iwSRZvDAgwUxC/DV4T/406SkMfxGqu5ojc3AvNI+I9GhV7v0J1HljsczuuhcnFLYqD5VmwVXfCGHzxA==} engines: {node: ^18.19.0 || >=20.6.0} - '@opentelemetry/resources@2.6.1': - resolution: {integrity: sha512-lID/vxSuKWXM55XhAKNoYXu9Cutoq5hFdkbTdI/zDKQktXzcWBVhNsOkiZFTMU9UtEWuGRNe0HUgmsFldIdxVA==} + '@opentelemetry/resources@2.7.0': + resolution: {integrity: sha512-K+oi0hNMv94EpZbnW3eyu2X6SGVpD3O5DhG2NIp65Hc7lhAj9brRXTAVzh3wB82+q3ThakEf7Zd7RsFUqcTc7A==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' - '@opentelemetry/sdk-logs@0.214.0': - resolution: {integrity: sha512-zf6acnScjhsaBUU22zXZ/sLWim1dfhUAbGXdMmHmNG3LfBnQ3DKsOCITb2IZwoUsNNMTogqFKBnlIPPftUgGwA==} + '@opentelemetry/sdk-logs@0.215.0': + resolution: {integrity: sha512-y3ucOmphzc4vgBTyIGchs+N/1rkACmoka8QalT2z1LBNM232Z17zMYayHcMl+dgMoOadZ0b72UZv7mDtqy1cFA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.4.0 <1.10.0' - '@opentelemetry/sdk-metrics@2.6.1': - resolution: {integrity: sha512-9t9hJHX15meBy2NmTJxL+NJfXmnausR2xUDvE19XQce0Qi/GBtDGamU8nS1RMbdgDmhgpm3VaOu2+fiS/SfTpQ==} + '@opentelemetry/sdk-metrics@2.7.0': + resolution: {integrity: sha512-Vd7h95av/LYRsAVN7wbprvvJnHkq7swMXAo7Uad0Uxf9jl6NSReLa0JNivrcc5BVIx/vl2t+cgdVQQbnVhsR9w==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.9.0 <1.10.0' - '@opentelemetry/sdk-trace-base@2.6.1': - resolution: {integrity: sha512-r86ut4T1e8vNwB35CqCcKd45yzqH6/6Wzvpk2/cZB8PsPLlZFTvrh8yfOS3CYZYcUmAx4hHTZJ8AO8Dj8nrdhw==} + '@opentelemetry/sdk-trace-base@2.7.0': + resolution: {integrity: sha512-Yg9zEXJB50DLVLpsKPk7NmNqlPlS+OvqhJGh0A8oawIOTPOwlm4eXs9BMJV7L79lvEwI+dWtAj+YjTyddV336A==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' @@ -5336,6 +5346,10 @@ packages: resolution: {integrity: sha512-3wY1AxV+VBNW8Yypfd1yQY9pXnqTAN+KwQxL8iYm3/BjKYMNg4i0owhEe26PWDOMaIrzeeF98Lqd5NGz4omiIg==} engines: {node: '>=12.0.0'} + protobufjs@8.0.1: + resolution: {integrity: sha512-NWWCCscLjs+cOKF/s/XVNFRW7Yih0fdH+9brffR5NZCy8k42yRdl5KlWKMVXuI1vfCoy4o1z80XR/W/QUb3V3w==} + engines: {node: '>=12.0.0'} + proxy-agent@6.5.0: resolution: {integrity: sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==} engines: {node: '>= 14'} @@ -7474,6 +7488,10 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.1 + '@opentelemetry/api-logs@0.215.0': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/api@1.9.1': {} '@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1)': @@ -7481,22 +7499,27 @@ snapshots: '@opentelemetry/api': 1.9.1 '@opentelemetry/semantic-conventions': 1.40.0 - '@opentelemetry/exporter-prometheus@0.214.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/core@2.7.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) - '@opentelemetry/resources': 2.6.1(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-metrics': 2.6.1(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 - '@opentelemetry/exporter-trace-otlp-http@0.214.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/exporter-prometheus@0.215.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) - '@opentelemetry/otlp-exporter-base': 0.214.0(@opentelemetry/api@1.9.1) - '@opentelemetry/otlp-transformer': 0.214.0(@opentelemetry/api@1.9.1) - '@opentelemetry/resources': 2.6.1(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-trace-base': 2.6.1(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-metrics': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.40.0 + + '@opentelemetry/exporter-trace-otlp-http@0.215.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-exporter-base': 0.215.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.215.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-base': 2.7.0(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation-amqplib@0.61.0(@opentelemetry/api@1.9.1)': dependencies: @@ -7707,50 +7730,50 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/otlp-exporter-base@0.214.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/otlp-exporter-base@0.215.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) - '@opentelemetry/otlp-transformer': 0.214.0(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.215.0(@opentelemetry/api@1.9.1) - '@opentelemetry/otlp-transformer@0.214.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/otlp-transformer@0.215.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/api-logs': 0.214.0 - '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) - '@opentelemetry/resources': 2.6.1(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-logs': 0.214.0(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-metrics': 2.6.1(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-trace-base': 2.6.1(@opentelemetry/api@1.9.1) - protobufjs: 7.5.5 + '@opentelemetry/api-logs': 0.215.0 + '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-logs': 0.215.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-metrics': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-base': 2.7.0(@opentelemetry/api@1.9.1) + protobufjs: 8.0.1 '@opentelemetry/redis-common@0.38.2': {} - '@opentelemetry/resources@2.6.1(@opentelemetry/api@1.9.1)': + '@opentelemetry/resources@2.7.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 - '@opentelemetry/sdk-logs@0.214.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/sdk-logs@0.215.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/api-logs': 0.214.0 - '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) - '@opentelemetry/resources': 2.6.1(@opentelemetry/api@1.9.1) + '@opentelemetry/api-logs': 0.215.0 + '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.7.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 - '@opentelemetry/sdk-metrics@2.6.1(@opentelemetry/api@1.9.1)': + '@opentelemetry/sdk-metrics@2.7.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) - '@opentelemetry/resources': 2.6.1(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.7.0(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-trace-base@2.6.1(@opentelemetry/api@1.9.1)': + '@opentelemetry/sdk-trace-base@2.7.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) - '@opentelemetry/resources': 2.6.1(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.7.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 '@opentelemetry/semantic-conventions@1.40.0': {} @@ -8223,20 +8246,20 @@ snapshots: '@sentry/core@10.49.0': {} - '@sentry/node-core@10.49.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/exporter-trace-otlp-http@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0)': + '@sentry/node-core@10.49.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/exporter-trace-otlp-http@0.215.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0)': dependencies: '@sentry/core': 10.49.0 - '@sentry/opentelemetry': 10.49.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) + '@sentry/opentelemetry': 10.49.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) import-in-the-middle: 3.0.1 optionalDependencies: '@opentelemetry/api': 1.9.1 '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) - '@opentelemetry/exporter-trace-otlp-http': 0.214.0(@opentelemetry/api@1.9.1) + '@opentelemetry/exporter-trace-otlp-http': 0.215.0(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-trace-base': 2.6.1(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-base': 2.7.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 - '@sentry/node@10.49.0(@opentelemetry/exporter-trace-otlp-http@0.214.0(@opentelemetry/api@1.9.1))': + '@sentry/node@10.49.0(@opentelemetry/exporter-trace-otlp-http@0.215.0(@opentelemetry/api@1.9.1))': dependencies: '@fastify/otel': 0.18.0(@opentelemetry/api@1.9.1) '@opentelemetry/api': 1.9.1 @@ -8263,22 +8286,22 @@ snapshots: '@opentelemetry/instrumentation-redis': 0.62.0(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation-tedious': 0.33.0(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation-undici': 0.24.0(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-trace-base': 2.6.1(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-base': 2.7.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 '@prisma/instrumentation': 7.6.0(@opentelemetry/api@1.9.1) '@sentry/core': 10.49.0 - '@sentry/node-core': 10.49.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/exporter-trace-otlp-http@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) - '@sentry/opentelemetry': 10.49.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) + '@sentry/node-core': 10.49.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/exporter-trace-otlp-http@0.215.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) + '@sentry/opentelemetry': 10.49.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) import-in-the-middle: 3.0.1 transitivePeerDependencies: - '@opentelemetry/exporter-trace-otlp-http' - supports-color - '@sentry/opentelemetry@10.49.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0)': + '@sentry/opentelemetry@10.49.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0)': dependencies: '@opentelemetry/api': 1.9.1 '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-trace-base': 2.6.1(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-base': 2.7.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 '@sentry/core': 10.49.0 @@ -11350,6 +11373,21 @@ snapshots: '@types/node': 25.6.0 long: 5.3.2 + protobufjs@8.0.1: + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/base64': 1.1.2 + '@protobufjs/codegen': 2.0.4 + '@protobufjs/eventemitter': 1.1.0 + '@protobufjs/fetch': 1.1.0 + '@protobufjs/float': 1.0.2 + '@protobufjs/inquire': 1.1.0 + '@protobufjs/path': 1.1.2 + '@protobufjs/pool': 1.1.0 + '@protobufjs/utf8': 1.1.0 + '@types/node': 25.6.0 + long: 5.3.2 + proxy-agent@6.5.0: dependencies: agent-base: 7.1.4 From df904c0ecca8b991d518ace60e258ffe7232e558 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Apr 2026 20:02:43 +0800 Subject: [PATCH 211/439] chore(deps): bump pnpm/action-setup from 5.0.0 to 6.0.1 (#21771) Bumps [pnpm/action-setup](https://github.com/pnpm/action-setup) from 5.0.0 to 6.0.1. - [Release notes](https://github.com/pnpm/action-setup/releases) - [Commits](https://github.com/pnpm/action-setup/compare/fc06bc1257f339d1d5d8b3a19a8cae5388b55320...078e9d416474b29c0c387560859308974f7e9c53) --- updated-dependencies: - dependency-name: pnpm/action-setup dependency-version: 6.0.1 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build-assets.yml | 2 +- .github/workflows/comment-on-issue.yml | 2 +- .github/workflows/docker-test-cont.yml | 2 +- .github/workflows/format.yml | 2 +- .github/workflows/issue-command.yml | 2 +- .github/workflows/lint.yml | 2 +- .github/workflows/npm-publish.yml | 2 +- .github/workflows/test-full-routes.yml | 2 +- .github/workflows/test.yml | 6 +++--- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build-assets.yml b/.github/workflows/build-assets.yml index ef70c99a17b9..c611fc5347f0 100644 --- a/.github/workflows/build-assets.yml +++ b/.github/workflows/build-assets.yml @@ -20,7 +20,7 @@ jobs: - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Install pnpm - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 + uses: pnpm/action-setup@078e9d416474b29c0c387560859308974f7e9c53 # v6.0.1 - name: Use Node.js Active LTS uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: diff --git a/.github/workflows/comment-on-issue.yml b/.github/workflows/comment-on-issue.yml index 6547a42dec32..05082ec2a60d 100644 --- a/.github/workflows/comment-on-issue.yml +++ b/.github/workflows/comment-on-issue.yml @@ -14,7 +14,7 @@ jobs: if: github.event.sender.login != 'issuehunt-oss[bot]' steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 + - uses: pnpm/action-setup@078e9d416474b29c0c387560859308974f7e9c53 # v6.0.1 - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: node-version: lts/* diff --git a/.github/workflows/docker-test-cont.yml b/.github/workflows/docker-test-cont.yml index cf21c04eec82..e8981c2a5dfc 100644 --- a/.github/workflows/docker-test-cont.yml +++ b/.github/workflows/docker-test-cont.yml @@ -42,7 +42,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 + - uses: pnpm/action-setup@078e9d416474b29c0c387560859308974f7e9c53 # v6.0.1 - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml index 361cea5ecdaa..e98b8c2eca81 100644 --- a/.github/workflows/format.yml +++ b/.github/workflows/format.yml @@ -15,7 +15,7 @@ jobs: steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 + - uses: pnpm/action-setup@078e9d416474b29c0c387560859308974f7e9c53 # v6.0.1 - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: node-version: lts/* diff --git a/.github/workflows/issue-command.yml b/.github/workflows/issue-command.yml index 654dfc7b01b5..52dcb7ed2b0d 100644 --- a/.github/workflows/issue-command.yml +++ b/.github/workflows/issue-command.yml @@ -111,7 +111,7 @@ jobs: ref: ${{ fromJson(steps.pr-data.outputs.data).head.ref }} - name: Install pnpm - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 + uses: pnpm/action-setup@078e9d416474b29c0c387560859308974f7e9c53 # v6.0.1 - name: Use Node.js Active LTS uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 7e7f3994e90e..e2a054b0b584 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -21,7 +21,7 @@ jobs: security-events: write steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 + - uses: pnpm/action-setup@078e9d416474b29c0c387560859308974f7e9c53 # v6.0.1 - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: node-version: lts/* diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index b5f8ff59c763..493b20cb6a94 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -23,7 +23,7 @@ jobs: HUSKY: 0 steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 + - uses: pnpm/action-setup@078e9d416474b29c0c387560859308974f7e9c53 # v6.0.1 - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: node-version: lts/* diff --git a/.github/workflows/test-full-routes.yml b/.github/workflows/test-full-routes.yml index 6085888c65f0..bef20bd1c1a2 100644 --- a/.github/workflows/test-full-routes.yml +++ b/.github/workflows/test-full-routes.yml @@ -16,7 +16,7 @@ jobs: - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Install pnpm - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 + uses: pnpm/action-setup@078e9d416474b29c0c387560859308974f7e9c53 # v6.0.1 - name: Use Node.js Active LTS uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 48921d91a8c2..6b0f75d637ab 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -31,7 +31,7 @@ jobs: name: Vitest on Node ${{ matrix.node-version }} steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 + - uses: pnpm/action-setup@078e9d416474b29c0c387560859308974f7e9c53 # v6.0.1 - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: node-version: ${{ matrix.node-version }} @@ -76,7 +76,7 @@ jobs: name: Vitest puppeteer on Node ${{ matrix.node-version }} with ${{ matrix.chromium.name }} steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 + - uses: pnpm/action-setup@078e9d416474b29c0c387560859308974f7e9c53 # v6.0.1 - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: node-version: ${{ matrix.node-version }} @@ -123,7 +123,7 @@ jobs: name: Build radar and maintainer on Node ${{ matrix.node-version }} steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 + - uses: pnpm/action-setup@078e9d416474b29c0c387560859308974f7e9c53 # v6.0.1 - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: node-version: ${{ matrix.node-version }} From cbd369a27225544d664ea41df907b2e3e79dbe75 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 20 Apr 2026 12:03:56 +0000 Subject: [PATCH 212/439] style: auto format --- pnpm-lock.yaml | 94 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a05a78e7828e..9150bbf0b0a2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,3 +1,97 @@ +--- +lockfileVersion: '9.0' + +importers: + + .: + configDependencies: {} + packageManagerDependencies: + '@pnpm/exe': + specifier: 10.33.0 + version: 10.33.0 + pnpm: + specifier: 10.33.0 + version: 10.33.0 + +packages: + + '@pnpm/exe@10.33.0': + resolution: {integrity: sha512-sGsjztJBelzVMd0RhceDJ3p8Hk7eBcpu4G/TF6REzIvNdkKyxDT0czc1BWyo8Kbg+U0OBtK/TAGXN7Art4rTdg==} + hasBin: true + + '@pnpm/linux-arm64@10.33.0': + resolution: {integrity: sha512-oYb5NxEyImqaTkLVX/7jL59m9Vfmd07iLWzr4Pg2LIk4XEtAllNcnksNHcp5Uf+lFk/BggtpOdvC84TG3VnbFw==} + cpu: [arm64] + os: [linux] + hasBin: true + + '@pnpm/linux-x64@10.33.0': + resolution: {integrity: sha512-JYD2GXDF2roKpvTg5s032lYcUcT9lMedYlzxoqitWTjKlkMhl2gXRYpiDHdi2mWC5nFOJYlgYbUuy6jh3rXhng==} + cpu: [x64] + os: [linux] + hasBin: true + + '@pnpm/macos-arm64@10.33.0': + resolution: {integrity: sha512-3w9Pqpw0swnAbnEdAKumMuKj+TPaGratnqC49bC41vjR1pNs0UMwVdOxiIROUMQy5OHKPx0IH/wOOP0hkhJd+g==} + cpu: [arm64] + os: [darwin] + hasBin: true + + '@pnpm/macos-x64@10.33.0': + resolution: {integrity: sha512-SBeiLjU/9ORMIXAMsD6+Ltaaesniwh49FeFcG6kA64Zxr30U9SyzeZDnNOyWCGFjHeCmGfzCnSpNEN4VNo827g==} + cpu: [x64] + os: [darwin] + hasBin: true + + '@pnpm/win-arm64@10.33.0': + resolution: {integrity: sha512-8X3NQqmfNVZ+dCu+EfD7ZkAgDgIKKdAgBBKcvhvMoMJq/nWHOfqDLxewE9TQ7qzVLuUKG/9b/xBVRVjdtDOm0w==} + cpu: [arm64] + os: [win32] + hasBin: true + + '@pnpm/win-x64@10.33.0': + resolution: {integrity: sha512-wiPVvxmTuB6FFn+rZ4FfSk1WTn+cxiQ7MTJEEz1k9VZLN/yZujGrv/WLYH2JcwzVTgObfmQuBKeNgEUavEL0Qg==} + cpu: [x64] + os: [win32] + hasBin: true + + pnpm@10.33.0: + resolution: {integrity: sha512-EFaLtKavtYyes2MNqQzJUWQXq+vT+rvmc58K55VyjaFJHp21pUTHatjrdXD1xLs9bGN7LLQb/c20f6gjyGSTGQ==} + engines: {node: '>=18.12'} + hasBin: true + +snapshots: + + '@pnpm/exe@10.33.0': + optionalDependencies: + '@pnpm/linux-arm64': 10.33.0 + '@pnpm/linux-x64': 10.33.0 + '@pnpm/macos-arm64': 10.33.0 + '@pnpm/macos-x64': 10.33.0 + '@pnpm/win-arm64': 10.33.0 + '@pnpm/win-x64': 10.33.0 + + '@pnpm/linux-arm64@10.33.0': + optional: true + + '@pnpm/linux-x64@10.33.0': + optional: true + + '@pnpm/macos-arm64@10.33.0': + optional: true + + '@pnpm/macos-x64@10.33.0': + optional: true + + '@pnpm/win-arm64@10.33.0': + optional: true + + '@pnpm/win-x64@10.33.0': + optional: true + + pnpm@10.33.0: {} + +--- lockfileVersion: '9.0' settings: From f3c5c4cc0170477990d656d74356388bbc07c997 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Apr 2026 20:33:15 +0800 Subject: [PATCH 213/439] chore(deps): bump imapflow from 1.3.1 to 1.3.2 (#21778) Bumps [imapflow](https://github.com/postalsys/imapflow) from 1.3.1 to 1.3.2. - [Release notes](https://github.com/postalsys/imapflow/releases) - [Changelog](https://github.com/postalsys/imapflow/blob/master/CHANGELOG.md) - [Commits](https://github.com/postalsys/imapflow/compare/v1.3.1...v1.3.2) --- updated-dependencies: - dependency-name: imapflow dependency-version: 1.3.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 21 +++++++++++++++------ 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index dd36f4e1316a..a5f901cf6425 100644 --- a/package.json +++ b/package.json @@ -94,7 +94,7 @@ "http-cookie-agent": "7.0.3", "https-proxy-agent": "9.0.0", "iconv-lite": "0.7.2", - "imapflow": "1.3.1", + "imapflow": "1.3.2", "instagram-private-api": "1.46.1", "ioredis": "5.10.1", "ip-regex": "5.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9150bbf0b0a2..1d16e4cd9718 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -240,8 +240,8 @@ importers: specifier: 0.7.2 version: 0.7.2 imapflow: - specifier: 1.3.1 - version: 1.3.1 + specifier: 1.3.2 + version: 1.3.2 instagram-private-api: specifier: 1.46.1 version: 1.46.1 @@ -3148,6 +3148,9 @@ packages: '@zone-eu/mailsplit@5.4.8': resolution: {integrity: sha512-eEyACj4JZ7sjzRvy26QhLgKEMWwQbsw1+QZnlLX+/gihcNH07lVPOcnwf5U6UAL7gkc//J3jVd76o/WS+taUiA==} + '@zone-eu/mailsplit@5.4.9': + resolution: {integrity: sha512-Qq7k6FzA5SmGf5HFPcr17gE7M+O1gttlmWn7tlGUlhGsbbjUaBL/4cEWIwExeCzqu5+kyZJ91mcBZbQ9zEwwYA==} + abbrev@2.0.0: resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -4498,8 +4501,8 @@ packages: engines: {node: '>=6.9.0'} hasBin: true - imapflow@1.3.1: - resolution: {integrity: sha512-DKwpMDR1EWXpV5T7adqQAccN7n684AX3poEZ5F3YoPlm2MyGeKavpRgNr3qptdEQaK+x5SlZ9jigT+cMs4geBA==} + imapflow@1.3.2: + resolution: {integrity: sha512-lIhVpjAf+o/1SELeR34vqeoEjAyBOMd6xq2Vdx2E4XIRwDi5sfqfBqqr5YkTwp7G/Q3f5ACpU7/zuGklJeCj9Q==} import-fresh@3.3.1: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} @@ -8846,6 +8849,12 @@ snapshots: libmime: 5.3.7 libqp: 2.1.1 + '@zone-eu/mailsplit@5.4.9': + dependencies: + libbase64: 1.3.0 + libmime: 5.3.8 + libqp: 2.1.1 + abbrev@2.0.0: {} abbrev@3.0.1: {} @@ -10322,9 +10331,9 @@ snapshots: image-size@0.7.5: {} - imapflow@1.3.1: + imapflow@1.3.2: dependencies: - '@zone-eu/mailsplit': 5.4.8 + '@zone-eu/mailsplit': 5.4.9 encoding-japanese: 2.2.0 iconv-lite: 0.7.2 libbase64: 1.3.0 From e293635143b06e324bdd01fdf48dcc0102616ddf Mon Sep 17 00:00:00 2001 From: Tony Date: Mon, 20 Apr 2026 20:36:05 +0800 Subject: [PATCH 214/439] revert: "chore(deps): bump pnpm/action-setup from 5.0.0 to 6.0.1 (#21771)" (#21784) This reverts commit df904c0ecca8b991d518ace60e258ffe7232e558. --- .github/workflows/build-assets.yml | 2 +- .github/workflows/comment-on-issue.yml | 2 +- .github/workflows/docker-test-cont.yml | 2 +- .github/workflows/format.yml | 2 +- .github/workflows/issue-command.yml | 2 +- .github/workflows/lint.yml | 2 +- .github/workflows/npm-publish.yml | 2 +- .github/workflows/test-full-routes.yml | 2 +- .github/workflows/test.yml | 6 +++--- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build-assets.yml b/.github/workflows/build-assets.yml index c611fc5347f0..ef70c99a17b9 100644 --- a/.github/workflows/build-assets.yml +++ b/.github/workflows/build-assets.yml @@ -20,7 +20,7 @@ jobs: - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Install pnpm - uses: pnpm/action-setup@078e9d416474b29c0c387560859308974f7e9c53 # v6.0.1 + uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 - name: Use Node.js Active LTS uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: diff --git a/.github/workflows/comment-on-issue.yml b/.github/workflows/comment-on-issue.yml index 05082ec2a60d..6547a42dec32 100644 --- a/.github/workflows/comment-on-issue.yml +++ b/.github/workflows/comment-on-issue.yml @@ -14,7 +14,7 @@ jobs: if: github.event.sender.login != 'issuehunt-oss[bot]' steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@078e9d416474b29c0c387560859308974f7e9c53 # v6.0.1 + - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: node-version: lts/* diff --git a/.github/workflows/docker-test-cont.yml b/.github/workflows/docker-test-cont.yml index e8981c2a5dfc..cf21c04eec82 100644 --- a/.github/workflows/docker-test-cont.yml +++ b/.github/workflows/docker-test-cont.yml @@ -42,7 +42,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - uses: pnpm/action-setup@078e9d416474b29c0c387560859308974f7e9c53 # v6.0.1 + - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml index e98b8c2eca81..361cea5ecdaa 100644 --- a/.github/workflows/format.yml +++ b/.github/workflows/format.yml @@ -15,7 +15,7 @@ jobs: steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@078e9d416474b29c0c387560859308974f7e9c53 # v6.0.1 + - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: node-version: lts/* diff --git a/.github/workflows/issue-command.yml b/.github/workflows/issue-command.yml index 52dcb7ed2b0d..654dfc7b01b5 100644 --- a/.github/workflows/issue-command.yml +++ b/.github/workflows/issue-command.yml @@ -111,7 +111,7 @@ jobs: ref: ${{ fromJson(steps.pr-data.outputs.data).head.ref }} - name: Install pnpm - uses: pnpm/action-setup@078e9d416474b29c0c387560859308974f7e9c53 # v6.0.1 + uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 - name: Use Node.js Active LTS uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index e2a054b0b584..7e7f3994e90e 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -21,7 +21,7 @@ jobs: security-events: write steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@078e9d416474b29c0c387560859308974f7e9c53 # v6.0.1 + - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: node-version: lts/* diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index 493b20cb6a94..b5f8ff59c763 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -23,7 +23,7 @@ jobs: HUSKY: 0 steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@078e9d416474b29c0c387560859308974f7e9c53 # v6.0.1 + - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: node-version: lts/* diff --git a/.github/workflows/test-full-routes.yml b/.github/workflows/test-full-routes.yml index bef20bd1c1a2..6085888c65f0 100644 --- a/.github/workflows/test-full-routes.yml +++ b/.github/workflows/test-full-routes.yml @@ -16,7 +16,7 @@ jobs: - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Install pnpm - uses: pnpm/action-setup@078e9d416474b29c0c387560859308974f7e9c53 # v6.0.1 + uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 - name: Use Node.js Active LTS uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 6b0f75d637ab..48921d91a8c2 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -31,7 +31,7 @@ jobs: name: Vitest on Node ${{ matrix.node-version }} steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@078e9d416474b29c0c387560859308974f7e9c53 # v6.0.1 + - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: node-version: ${{ matrix.node-version }} @@ -76,7 +76,7 @@ jobs: name: Vitest puppeteer on Node ${{ matrix.node-version }} with ${{ matrix.chromium.name }} steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@078e9d416474b29c0c387560859308974f7e9c53 # v6.0.1 + - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: node-version: ${{ matrix.node-version }} @@ -123,7 +123,7 @@ jobs: name: Build radar and maintainer on Node ${{ matrix.node-version }} steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@078e9d416474b29c0c387560859308974f7e9c53 # v6.0.1 + - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: node-version: ${{ matrix.node-version }} From 317421be280754cae37b8d531d0794c9c1fb4d4b Mon Sep 17 00:00:00 2001 From: TonyRL Date: Mon, 20 Apr 2026 12:40:36 +0000 Subject: [PATCH 215/439] revert: "style: auto format" This reverts commit cbd369a27225544d664ea41df907b2e3e79dbe75. --- pnpm-lock.yaml | 94 -------------------------------------------------- 1 file changed, 94 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1d16e4cd9718..353585375be9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,97 +1,3 @@ ---- -lockfileVersion: '9.0' - -importers: - - .: - configDependencies: {} - packageManagerDependencies: - '@pnpm/exe': - specifier: 10.33.0 - version: 10.33.0 - pnpm: - specifier: 10.33.0 - version: 10.33.0 - -packages: - - '@pnpm/exe@10.33.0': - resolution: {integrity: sha512-sGsjztJBelzVMd0RhceDJ3p8Hk7eBcpu4G/TF6REzIvNdkKyxDT0czc1BWyo8Kbg+U0OBtK/TAGXN7Art4rTdg==} - hasBin: true - - '@pnpm/linux-arm64@10.33.0': - resolution: {integrity: sha512-oYb5NxEyImqaTkLVX/7jL59m9Vfmd07iLWzr4Pg2LIk4XEtAllNcnksNHcp5Uf+lFk/BggtpOdvC84TG3VnbFw==} - cpu: [arm64] - os: [linux] - hasBin: true - - '@pnpm/linux-x64@10.33.0': - resolution: {integrity: sha512-JYD2GXDF2roKpvTg5s032lYcUcT9lMedYlzxoqitWTjKlkMhl2gXRYpiDHdi2mWC5nFOJYlgYbUuy6jh3rXhng==} - cpu: [x64] - os: [linux] - hasBin: true - - '@pnpm/macos-arm64@10.33.0': - resolution: {integrity: sha512-3w9Pqpw0swnAbnEdAKumMuKj+TPaGratnqC49bC41vjR1pNs0UMwVdOxiIROUMQy5OHKPx0IH/wOOP0hkhJd+g==} - cpu: [arm64] - os: [darwin] - hasBin: true - - '@pnpm/macos-x64@10.33.0': - resolution: {integrity: sha512-SBeiLjU/9ORMIXAMsD6+Ltaaesniwh49FeFcG6kA64Zxr30U9SyzeZDnNOyWCGFjHeCmGfzCnSpNEN4VNo827g==} - cpu: [x64] - os: [darwin] - hasBin: true - - '@pnpm/win-arm64@10.33.0': - resolution: {integrity: sha512-8X3NQqmfNVZ+dCu+EfD7ZkAgDgIKKdAgBBKcvhvMoMJq/nWHOfqDLxewE9TQ7qzVLuUKG/9b/xBVRVjdtDOm0w==} - cpu: [arm64] - os: [win32] - hasBin: true - - '@pnpm/win-x64@10.33.0': - resolution: {integrity: sha512-wiPVvxmTuB6FFn+rZ4FfSk1WTn+cxiQ7MTJEEz1k9VZLN/yZujGrv/WLYH2JcwzVTgObfmQuBKeNgEUavEL0Qg==} - cpu: [x64] - os: [win32] - hasBin: true - - pnpm@10.33.0: - resolution: {integrity: sha512-EFaLtKavtYyes2MNqQzJUWQXq+vT+rvmc58K55VyjaFJHp21pUTHatjrdXD1xLs9bGN7LLQb/c20f6gjyGSTGQ==} - engines: {node: '>=18.12'} - hasBin: true - -snapshots: - - '@pnpm/exe@10.33.0': - optionalDependencies: - '@pnpm/linux-arm64': 10.33.0 - '@pnpm/linux-x64': 10.33.0 - '@pnpm/macos-arm64': 10.33.0 - '@pnpm/macos-x64': 10.33.0 - '@pnpm/win-arm64': 10.33.0 - '@pnpm/win-x64': 10.33.0 - - '@pnpm/linux-arm64@10.33.0': - optional: true - - '@pnpm/linux-x64@10.33.0': - optional: true - - '@pnpm/macos-arm64@10.33.0': - optional: true - - '@pnpm/macos-x64@10.33.0': - optional: true - - '@pnpm/win-arm64@10.33.0': - optional: true - - '@pnpm/win-x64@10.33.0': - optional: true - - pnpm@10.33.0: {} - ---- lockfileVersion: '9.0' settings: From 8ad244145f1a0b3258d10ee8ee9ad98576d93e78 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Apr 2026 20:45:26 +0800 Subject: [PATCH 216/439] chore(deps): bump devenv from `d7aba90` to `878c73c` (#21780) Bumps [devenv](https://github.com/cachix/devenv) from `d7aba90` to `878c73c`. - [Release notes](https://github.com/cachix/devenv/releases) - [Commits](https://github.com/cachix/devenv/compare/d7aba90c41ee261d215cbe09cf92393cc0ff2606...878c73c0b232d47b5fb79b4c6dbc2cdf3aaa3f76) --- updated-dependencies: - dependency-name: devenv dependency-version: 878c73c0b232d47b5fb79b4c6dbc2cdf3aaa3f76 dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- flake.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/flake.lock b/flake.lock index 1a9c8b8f2b0d..13f91fb61ad8 100644 --- a/flake.lock +++ b/flake.lock @@ -163,11 +163,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1776354588, - "narHash": "sha256-NOsJcVAG63emvdlQSpSGQjvHHxcGDfBHd/cgtpduerw=", + "lastModified": 1776537207, + "narHash": "sha256-CmDPLGo5rK02AV8d0SegYwQA+6aWPFWym6mYKqOzRT0=", "owner": "cachix", "repo": "devenv", - "rev": "d7aba90c41ee261d215cbe09cf92393cc0ff2606", + "rev": "878c73c0b232d47b5fb79b4c6dbc2cdf3aaa3f76", "type": "github" }, "original": { @@ -581,11 +581,11 @@ ] }, "locked": { - "lastModified": 1775984952, - "narHash": "sha256-FciKF0weMXVirN+ZBSniR4wpKx168cBa9IXhuaLOkkU=", + "lastModified": 1776511668, + "narHash": "sha256-g2KEBuHpc3a56c+jPcg0+w6LSuIj6f+zzdztLCOyIhc=", "owner": "cachix", "repo": "nix", - "rev": "e671135fc5b783798c444e4ece101f6b15ff0c46", + "rev": "42d4b7de21c15f28c568410f4383fa06a8458a40", "type": "github" }, "original": { From 52370bb9dd7becadf0547edf0ec35f4972c3160f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Apr 2026 20:48:10 +0800 Subject: [PATCH 217/439] chore(deps): bump @notionhq/client from 5.18.0 to 5.19.0 (#21779) Bumps [@notionhq/client](https://github.com/makenotion/notion-sdk-js) from 5.18.0 to 5.19.0. - [Release notes](https://github.com/makenotion/notion-sdk-js/releases) - [Commits](https://github.com/makenotion/notion-sdk-js/compare/v5.18.0...v5.19.0) --- updated-dependencies: - dependency-name: "@notionhq/client" dependency-version: 5.19.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index a5f901cf6425..2af80cc326a3 100644 --- a/package.json +++ b/package.json @@ -63,7 +63,7 @@ "@hono/node-server": "1.19.14", "@hono/zod-openapi": "1.3.0", "@jocmp/mercury-parser": "3.0.7", - "@notionhq/client": "5.18.0", + "@notionhq/client": "5.19.0", "@opentelemetry/api": "1.9.1", "@opentelemetry/exporter-prometheus": "0.215.0", "@opentelemetry/exporter-trace-otlp-http": "0.215.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 353585375be9..f9f861bc857e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -53,8 +53,8 @@ importers: specifier: 3.0.7 version: 3.0.7 '@notionhq/client': - specifier: 5.18.0 - version: 5.18.0 + specifier: 5.19.0 + version: 5.19.0 '@opentelemetry/api': specifier: 1.9.1 version: 1.9.1 @@ -1637,8 +1637,8 @@ packages: resolution: {integrity: sha512-y3SvzjuY1ygnzWA4Krwx/WaJAsTMP11DN+e21A8Fa8PW1oDtVB5NSRW7LWurAiS2oKRkuCgcjTYMkBuBkcPCRg==} engines: {node: '>=12.4.0'} - '@notionhq/client@5.18.0': - resolution: {integrity: sha512-iOd1VJb1ZJl4p0bnjtMC3hGXCcngSUK9bDhAjpAAKSKSL7UD9GTiXJJyCTBTbqHXsfM4D8mBG3NdAiEYD+TfVA==} + '@notionhq/client@5.19.0': + resolution: {integrity: sha512-9R93Yt6/OB3MP5h29WhnvIBWYVq4mzxOYn9oh0Ut642NWxOTTouv7vkwKnMj5LGAYTlot0fhmL8OK5Su5zEzCw==} engines: {node: '>=18'} '@octokit/auth-token@6.0.0': @@ -7412,7 +7412,7 @@ snapshots: '@nolyfill/side-channel@1.0.44': {} - '@notionhq/client@5.18.0': {} + '@notionhq/client@5.19.0': {} '@octokit/auth-token@6.0.0': {} From 76e7641d51162bf3714816667f9816ac4d70b0d1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Apr 2026 21:01:29 +0800 Subject: [PATCH 218/439] chore(deps): bump actions/setup-node from 6.3.0 to 6.4.0 (#21772) Bumps [actions/setup-node](https://github.com/actions/setup-node) from 6.3.0 to 6.4.0. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](https://github.com/actions/setup-node/compare/53b83947a5a98c8d113130e565377fae1a50d02f...48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e) --- updated-dependencies: - dependency-name: actions/setup-node dependency-version: 6.4.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build-assets.yml | 2 +- .github/workflows/comment-on-issue.yml | 2 +- .github/workflows/docker-test-cont.yml | 2 +- .github/workflows/format.yml | 2 +- .github/workflows/issue-command.yml | 2 +- .github/workflows/lint.yml | 2 +- .github/workflows/npm-publish.yml | 2 +- .github/workflows/test-full-routes.yml | 2 +- .github/workflows/test.yml | 6 +++--- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build-assets.yml b/.github/workflows/build-assets.yml index ef70c99a17b9..999f8c0f3e49 100644 --- a/.github/workflows/build-assets.yml +++ b/.github/workflows/build-assets.yml @@ -22,7 +22,7 @@ jobs: - name: Install pnpm uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 - name: Use Node.js Active LTS - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: lts/* cache: 'pnpm' diff --git a/.github/workflows/comment-on-issue.yml b/.github/workflows/comment-on-issue.yml index 6547a42dec32..9800568e2769 100644 --- a/.github/workflows/comment-on-issue.yml +++ b/.github/workflows/comment-on-issue.yml @@ -15,7 +15,7 @@ jobs: steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 - - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 + - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: lts/* cache: 'pnpm' diff --git a/.github/workflows/docker-test-cont.yml b/.github/workflows/docker-test-cont.yml index cf21c04eec82..359886e04826 100644 --- a/.github/workflows/docker-test-cont.yml +++ b/.github/workflows/docker-test-cont.yml @@ -44,7 +44,7 @@ jobs: - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 - - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 + - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: lts/* cache: 'pnpm' diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml index 361cea5ecdaa..6e040636613c 100644 --- a/.github/workflows/format.yml +++ b/.github/workflows/format.yml @@ -16,7 +16,7 @@ jobs: steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 - - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 + - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: lts/* cache: 'pnpm' diff --git a/.github/workflows/issue-command.yml b/.github/workflows/issue-command.yml index 654dfc7b01b5..890a0d3fb173 100644 --- a/.github/workflows/issue-command.yml +++ b/.github/workflows/issue-command.yml @@ -114,7 +114,7 @@ jobs: uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 - name: Use Node.js Active LTS - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: lts/* cache: 'pnpm' diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 7e7f3994e90e..8a34ed609468 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -22,7 +22,7 @@ jobs: steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 - - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 + - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: lts/* cache: 'pnpm' diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index b5f8ff59c763..2e8da7419f6b 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -24,7 +24,7 @@ jobs: steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 - - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 + - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: lts/* cache: 'pnpm' diff --git a/.github/workflows/test-full-routes.yml b/.github/workflows/test-full-routes.yml index 6085888c65f0..239f6ccc2829 100644 --- a/.github/workflows/test-full-routes.yml +++ b/.github/workflows/test-full-routes.yml @@ -18,7 +18,7 @@ jobs: - name: Install pnpm uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 - name: Use Node.js Active LTS - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: lts/* cache: 'pnpm' diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 48921d91a8c2..1c28b64680fa 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -32,7 +32,7 @@ jobs: steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 - - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 + - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: ${{ matrix.node-version }} cache: 'pnpm' @@ -77,7 +77,7 @@ jobs: steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 - - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 + - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: ${{ matrix.node-version }} cache: 'pnpm' @@ -124,7 +124,7 @@ jobs: steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 - - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 + - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: ${{ matrix.node-version }} cache: 'pnpm' From 1ce42ee210a9e601ad69757f583a1934544a46eb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Apr 2026 22:34:08 +0800 Subject: [PATCH 219/439] chore(deps): bump uuid from 13.0.0 to 14.0.0 (#21774) Bumps [uuid](https://github.com/uuidjs/uuid) from 13.0.0 to 14.0.0. - [Release notes](https://github.com/uuidjs/uuid/releases) - [Changelog](https://github.com/uuidjs/uuid/blob/main/CHANGELOG.md) - [Commits](https://github.com/uuidjs/uuid/compare/v13.0.0...v14.0.0) --- updated-dependencies: - dependency-name: uuid dependency-version: 14.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 2af80cc326a3..f4ec24736508 100644 --- a/package.json +++ b/package.json @@ -135,7 +135,7 @@ "twitter-api-v2": "1.29.0", "ufo": "1.6.3", "undici": "7.25.0", - "uuid": "13.0.0", + "uuid": "14.0.0", "winston": "3.19.0", "xxhash-wasm": "1.1.0", "youtube-caption-extractor": "1.9.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f9f861bc857e..aad7f384df4f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -269,8 +269,8 @@ importers: specifier: 7.25.0 version: 7.25.0 uuid: - specifier: 13.0.0 - version: 13.0.0 + specifier: 14.0.0 + version: 14.0.0 winston: specifier: 3.19.0 version: 3.19.0 @@ -6183,8 +6183,8 @@ packages: resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==} engines: {node: '>= 4'} - uuid@13.0.0: - resolution: {integrity: sha512-XQegIaBTVUjSHliKqcnFqYypAd4S+WCYt5NIeRs6w/UAry7z8Y9j5ZwRRL4kzq9U3sD6v+85er9FvkEaBpji2w==} + uuid@14.0.0: + resolution: {integrity: sha512-Qo+uWgilfSmAhXCMav1uYFynlQO7fMFiMVZsQqZRMIXp0O7rR7qjkj+cPvBHLgBqi960QCoo/PH2/6ZtVqKvrg==} hasBin: true uuid@3.4.0: @@ -12347,7 +12347,7 @@ snapshots: utility-types@3.11.0: {} - uuid@13.0.0: {} + uuid@14.0.0: {} uuid@3.4.0: {} From 79a2817e2d20c8624c56e9a8c45367fa73f072ea Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Apr 2026 08:30:26 +0000 Subject: [PATCH 220/439] chore(deps-dev): bump got from 15.0.2 to 15.0.3 (#21791) Bumps [got](https://github.com/sindresorhus/got) from 15.0.2 to 15.0.3. - [Release notes](https://github.com/sindresorhus/got/releases) - [Commits](https://github.com/sindresorhus/got/compare/v15.0.2...v15.0.3) --- updated-dependencies: - dependency-name: got dependency-version: 15.0.3 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 20 +++++++++++++------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index f4ec24736508..694de2ea37f1 100644 --- a/package.json +++ b/package.json @@ -184,7 +184,7 @@ "eslint-plugin-yml": "3.3.1", "fs-extra": "11.3.4", "globals": "17.5.0", - "got": "15.0.2", + "got": "15.0.3", "husky": "9.1.7", "js-beautify": "1.15.4", "lint-staged": "16.4.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index aad7f384df4f..a4d9f1165e7d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -411,8 +411,8 @@ importers: specifier: 17.5.0 version: 17.5.0 got: - specifier: 15.0.2 - version: 15.0.2 + specifier: 15.0.3 + version: 15.0.3 husky: specifier: 9.1.7 version: 9.1.7 @@ -2656,6 +2656,10 @@ packages: resolution: {integrity: sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==} engines: {node: '>=18'} + '@sindresorhus/is@8.0.0': + resolution: {integrity: sha512-YvOsokBE5NsyHuXMnwEVB7lgFk6lX8F4OXCruYVgFII0hUHof0RGUvhMoabVt9hRqbg+qVzayzEG24RCcxcYeA==} + engines: {node: '>=22'} + '@so-ric/colorspace@1.1.6': resolution: {integrity: sha512-/KiKkpHNOBgkFJwu9sh48LkHSMYGyuTcSFK/qMBdnOAlrRJzRSXAOFB5qwzaVQuDl8wAvHVMkaASQDReTahxuw==} @@ -4265,8 +4269,8 @@ packages: resolution: {integrity: sha512-QLV1qeYSo5l13mQzWgP/y0LbMr5Plr5fJilgAIwgnwseproEbtNym8xpLsDzeZ6MWXgNE6kdWGBjdh3zT/Qerg==} engines: {node: '>=20'} - got@15.0.2: - resolution: {integrity: sha512-opPIdoQSTOGqX3h0d8QQoqCX0oF728V1PFxbPqquAFSeWPUOlPQ3Gi6IKIqGm6NMcDl+DWUwQb2RR+xvuEJOQQ==} + got@15.0.3: + resolution: {integrity: sha512-630of5aMTYM6g6epok5nuqvctP8InJISvt39iNt7y0r27rcGCdiPv9Cc6EbwfnkyT1g/shBoVhvDjtXZUbn/Rw==} engines: {node: '>=22'} graceful-fs@4.2.11: @@ -8312,6 +8316,8 @@ snapshots: '@sindresorhus/is@7.2.0': {} + '@sindresorhus/is@8.0.0': {} + '@so-ric/colorspace@1.1.6': dependencies: color: 5.0.3 @@ -10076,9 +10082,9 @@ snapshots: responselike: 4.0.2 type-fest: 4.41.0 - got@15.0.2: + got@15.0.3: dependencies: - '@sindresorhus/is': 7.2.0 + '@sindresorhus/is': 8.0.0 byte-counter: 0.1.0 cacheable-lookup: 7.0.0 cacheable-request: 13.0.18 @@ -10088,7 +10094,7 @@ snapshots: keyv: 5.6.0 lowercase-keys: 4.0.1 responselike: 4.0.2 - type-fest: 5.5.0 + type-fest: 5.6.0 uint8array-extras: 1.5.0 graceful-fs@4.2.11: {} From f12c1f10a851f96ab75a3c92f862e60d1c914cca Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Apr 2026 08:32:18 +0000 Subject: [PATCH 221/439] chore(deps-dev): bump node-network-devtools from 1.0.29 to 1.0.30 (#21794) Bumps [node-network-devtools](https://github.com/GrinZero/node-network-devtools) from 1.0.29 to 1.0.30. - [Release notes](https://github.com/GrinZero/node-network-devtools/releases) - [Commits](https://github.com/GrinZero/node-network-devtools/commits/v1.0.30) --- updated-dependencies: - dependency-name: node-network-devtools dependency-version: 1.0.30 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 694de2ea37f1..397f36aa5682 100644 --- a/package.json +++ b/package.json @@ -191,7 +191,7 @@ "magic-string": "0.30.21", "mockdate": "3.0.5", "msw": "2.13.4", - "node-network-devtools": "1.0.29", + "node-network-devtools": "1.0.30", "oxfmt": "0.45.0", "oxlint": "1.60.0", "oxlint-plugin-eslint": "1.60.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a4d9f1165e7d..1f52d3ebe032 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -432,8 +432,8 @@ importers: specifier: 2.13.4 version: 2.13.4(@types/node@25.6.0)(typescript@5.9.3) node-network-devtools: - specifier: 1.0.29 - version: 1.0.29(undici@7.25.0)(utf-8-validate@5.0.10) + specifier: 1.0.30 + version: 1.0.30(undici@7.25.0)(utf-8-validate@5.0.10) oxfmt: specifier: 0.45.0 version: 0.45.0 @@ -5051,8 +5051,8 @@ packages: resolution: {integrity: sha512-vv8fJuOUCCvSPjDjBLlMqYMHob4aGjkmrkaE42/mZr0VT+ZAU10jRF8oTnX9+pgU9/vYJ8P7YT3Vd6ajkmzSCw==} engines: {node: '>=0.12'} - node-network-devtools@1.0.29: - resolution: {integrity: sha512-Cz5aqlga55yZjJ1nAUYdjwh3njGUNJmUPrbCGBKuEQ+w/yQqXeGwRQCH3IBlzWuHC19Y1/kNlg6tzgqSubimRA==} + node-network-devtools@1.0.30: + resolution: {integrity: sha512-KgB5X7RklW1G3hE1pT+kRfG1yqvhF1h+feyYBMbFsA9wlqk4WhiWAJrNVcCAgTl2dKSCmA5FaYxYcp37aCh2/Q==} peerDependencies: undici: ^6 @@ -10993,10 +10993,10 @@ snapshots: dependencies: write-file-atomic: 1.3.4 - node-network-devtools@1.0.29(undici@7.25.0)(utf-8-validate@5.0.10): + node-network-devtools@1.0.30(undici@7.25.0)(utf-8-validate@5.0.10): dependencies: bufferutil: 4.1.0 - iconv-lite: 0.6.3 + iconv-lite: 0.7.2 inspector: 0.5.0 open: 8.4.2 undici: 7.25.0 From 92de79191122578456639f277f1c380d83d46382 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Apr 2026 21:18:49 +0800 Subject: [PATCH 222/439] chore(deps): bump @notionhq/client from 5.19.0 to 5.20.0 (#21793) Bumps [@notionhq/client](https://github.com/makenotion/notion-sdk-js) from 5.19.0 to 5.20.0. - [Release notes](https://github.com/makenotion/notion-sdk-js/releases) - [Commits](https://github.com/makenotion/notion-sdk-js/compare/v5.19.0...v5.20.0) --- updated-dependencies: - dependency-name: "@notionhq/client" dependency-version: 5.20.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 397f36aa5682..be83c762333d 100644 --- a/package.json +++ b/package.json @@ -63,7 +63,7 @@ "@hono/node-server": "1.19.14", "@hono/zod-openapi": "1.3.0", "@jocmp/mercury-parser": "3.0.7", - "@notionhq/client": "5.19.0", + "@notionhq/client": "5.20.0", "@opentelemetry/api": "1.9.1", "@opentelemetry/exporter-prometheus": "0.215.0", "@opentelemetry/exporter-trace-otlp-http": "0.215.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1f52d3ebe032..db5291b0d2b2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -53,8 +53,8 @@ importers: specifier: 3.0.7 version: 3.0.7 '@notionhq/client': - specifier: 5.19.0 - version: 5.19.0 + specifier: 5.20.0 + version: 5.20.0 '@opentelemetry/api': specifier: 1.9.1 version: 1.9.1 @@ -1637,8 +1637,8 @@ packages: resolution: {integrity: sha512-y3SvzjuY1ygnzWA4Krwx/WaJAsTMP11DN+e21A8Fa8PW1oDtVB5NSRW7LWurAiS2oKRkuCgcjTYMkBuBkcPCRg==} engines: {node: '>=12.4.0'} - '@notionhq/client@5.19.0': - resolution: {integrity: sha512-9R93Yt6/OB3MP5h29WhnvIBWYVq4mzxOYn9oh0Ut642NWxOTTouv7vkwKnMj5LGAYTlot0fhmL8OK5Su5zEzCw==} + '@notionhq/client@5.20.0': + resolution: {integrity: sha512-MS0DFSfHPLZ0wi+e9mOP16gCCYbWAkaiMuu/rVK9KxDlKac4oAgHReOfTglcd77g/nlg78snp+KB7fNWP75bEw==} engines: {node: '>=18'} '@octokit/auth-token@6.0.0': @@ -7416,7 +7416,7 @@ snapshots: '@nolyfill/side-channel@1.0.44': {} - '@notionhq/client@5.19.0': {} + '@notionhq/client@5.20.0': {} '@octokit/auth-token@6.0.0': {} From 57d9769e920f5284a906b88c71807126fdd11cb6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Apr 2026 21:25:13 +0800 Subject: [PATCH 223/439] chore(deps-dev): bump the typescript-eslint group with 2 updates (#21790) Bumps the typescript-eslint group with 2 updates: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) and [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser). Updates `@typescript-eslint/eslint-plugin` from 8.58.2 to 8.59.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.59.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.58.2 to 8.59.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.59.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-version: 8.59.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: typescript-eslint - dependency-name: "@typescript-eslint/parser" dependency-version: 8.59.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: typescript-eslint ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 4 +- pnpm-lock.yaml | 124 ++++++++++++++++++++++++------------------------- 2 files changed, 64 insertions(+), 64 deletions(-) diff --git a/package.json b/package.json index be83c762333d..2beae81cb1e1 100644 --- a/package.json +++ b/package.json @@ -169,8 +169,8 @@ "@types/module-alias": "2.0.4", "@types/node": "25.6.0", "@types/sanitize-html": "2.16.1", - "@typescript-eslint/eslint-plugin": "8.58.2", - "@typescript-eslint/parser": "8.58.2", + "@typescript-eslint/eslint-plugin": "8.59.0", + "@typescript-eslint/parser": "8.59.0", "@vercel/nft": "1.5.0", "@vitest/coverage-v8": "4.1.4", "discord-api-types": "0.38.47", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index db5291b0d2b2..d911385e9ba8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -366,11 +366,11 @@ importers: specifier: 2.16.1 version: 2.16.1 '@typescript-eslint/eslint-plugin': - specifier: 8.58.2 - version: 8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3))(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) + specifier: 8.59.0 + version: 8.59.0(@typescript-eslint/parser@8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3))(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: 8.58.2 - version: 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) + specifier: 8.59.0 + version: 8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) '@vercel/nft': specifier: 1.5.0 version: 1.5.0(rollup@4.60.2) @@ -391,7 +391,7 @@ importers: version: 9.1.1(@types/node@25.6.0)(eslint@10.2.1(jiti@2.6.1)) eslint-plugin-import-x: specifier: 4.16.2 - version: 4.16.2(@typescript-eslint/utils@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.2.1(jiti@2.6.1)) + version: 4.16.2(@typescript-eslint/utils@8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.2.1(jiti@2.6.1)) eslint-plugin-n: specifier: 17.24.0 version: 17.24.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) @@ -2846,39 +2846,39 @@ packages: '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - '@typescript-eslint/eslint-plugin@8.58.2': - resolution: {integrity: sha512-aC2qc5thQahutKjP+cl8cgN9DWe3ZUqVko30CMSZHnFEHyhOYoZSzkGtAI2mcwZ38xeImDucI4dnqsHiOYuuCw==} + '@typescript-eslint/eslint-plugin@8.59.0': + resolution: {integrity: sha512-HyAZtpdkgZwpq8Sz3FSUvCR4c+ScbuWa9AksK2Jweub7w4M3yTz4O11AqVJzLYjy/B9ZWPyc81I+mOdJU/bDQw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.58.2 + '@typescript-eslint/parser': ^8.59.0 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/parser@8.58.2': - resolution: {integrity: sha512-/Zb/xaIDfxeJnvishjGdcR4jmr7S+bda8PKNhRGdljDM+elXhlvN0FyPSsMnLmJUrVG9aPO6dof80wjMawsASg==} + '@typescript-eslint/parser@8.59.0': + resolution: {integrity: sha512-TI1XGwKbDpo9tRW8UDIXCOeLk55qe9ZFGs8MTKU6/M08HWTw52DD/IYhfQtOEhEdPhLMT26Ka/x7p70nd3dzDg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/project-service@8.58.2': - resolution: {integrity: sha512-Cq6UfpZZk15+r87BkIh5rDpi38W4b+Sjnb8wQCPPDDweS/LRCFjCyViEbzHk5Ck3f2QDfgmlxqSa7S7clDtlfg==} + '@typescript-eslint/project-service@8.59.0': + resolution: {integrity: sha512-Lw5ITrR5s5TbC19YSvlr63ZfLaJoU6vtKTHyB0GQOpX0W7d5/Ir6vUahWi/8Sps/nOukZQ0IB3SmlxZnjaKVnw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/scope-manager@8.58.2': - resolution: {integrity: sha512-SgmyvDPexWETQek+qzZnrG6844IaO02UVyOLhI4wpo82dpZJY9+6YZCKAMFzXb7qhx37mFK1QcPQ18tud+vo6Q==} + '@typescript-eslint/scope-manager@8.59.0': + resolution: {integrity: sha512-UzR16Ut8IpA3Mc4DbgAShlPPkVm8xXMWafXxB0BocaVRHs8ZGakAxGRskF7FId3sdk9lgGD73GSFaWmWFDE4dg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.58.2': - resolution: {integrity: sha512-3SR+RukipDvkkKp/d0jP0dyzuls3DbGmwDpVEc5wqk5f38KFThakqAAO0XMirWAE+kT00oTauTbzMFGPoAzB0A==} + '@typescript-eslint/tsconfig-utils@8.59.0': + resolution: {integrity: sha512-91Sbl3s4Kb3SybliIY6muFBmHVv+pYXfybC4Oolp3dvk8BvIE3wOPc+403CWIT7mJNkfQRGtdqghzs2+Z91Tqg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/type-utils@8.58.2': - resolution: {integrity: sha512-Z7EloNR/B389FvabdGeTo2XMs4W9TjtPiO9DAsmT0yom0bwlPyRjkJ1uCdW1DvrrrYP50AJZ9Xc3sByZA9+dcg==} + '@typescript-eslint/type-utils@8.59.0': + resolution: {integrity: sha512-3TRiZaQSltGqGeNrJzzr1+8YcEobKH9rHnqIp/1psfKFmhRQDNMGP5hBufanYTGznwShzVLs3Mz+gDN7HkWfXg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -2888,25 +2888,25 @@ packages: resolution: {integrity: sha512-O9CjxypDT89fbHxRfETNoAnHj/i6IpRK0CvbVN3qibxlLdo5p5hcLmUuCCrHMpxiWSwKyI8mCP7qRNYuOJ0Uww==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.58.2': - resolution: {integrity: sha512-9TukXyATBQf/Jq9AMQXfvurk+G5R2MwfqQGDR2GzGz28HvY/lXNKGhkY+6IOubwcquikWk5cjlgPvD2uAA7htQ==} + '@typescript-eslint/types@8.59.0': + resolution: {integrity: sha512-nLzdsT1gdOgFxxxwrlNVUBzSNBEEHJ86bblmk4QAS6stfig7rcJzWKqCyxFy3YRRHXDWEkb2NralA1nOYkkm/A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.58.2': - resolution: {integrity: sha512-ELGuoofuhhoCvNbQjFFiobFcGgcDCEm0ThWdmO4Z0UzLqPXS3KFvnEZ+SHewwOYHjM09tkzOWXNTv9u6Gqtyuw==} + '@typescript-eslint/typescript-estree@8.59.0': + resolution: {integrity: sha512-O9Re9P1BmBLFJyikRbQpLku/QA3/AueZNO9WePLBwQrvkixTmDe8u76B6CYUAITRl/rHawggEqUGn5QIkVRLMw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/utils@8.58.2': - resolution: {integrity: sha512-QZfjHNEzPY8+l0+fIXMvuQ2sJlplB4zgDZvA+NmvZsZv3EQwOcc1DuIU1VJUTWZ/RKouBMhDyNaBMx4sWvrzRA==} + '@typescript-eslint/utils@8.59.0': + resolution: {integrity: sha512-I1R/K7V07XsMJ12Oaxg/O9GfrysGTmCRhvZJBv0RE0NcULMzjqVpR5kRRQjHsz3J/bElU7HwCO7zkqL+MSUz+g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/visitor-keys@8.58.2': - resolution: {integrity: sha512-f1WO2Lx8a9t8DARmcWAUPJbu0G20bJlj8L4z72K00TMeJAoyLr/tHhI/pzYBLrR4dXWkcxO1cWYZEOX8DKHTqA==} + '@typescript-eslint/visitor-keys@8.59.0': + resolution: {integrity: sha512-/uejZt4dSere1bx12WLlPfv8GktzcaDtuJ7s42/HEZ5zGj9oxRaD4bj7qwSunXkf+pbAhFt2zjpHYUiT5lHf0Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@unrs/resolver-binding-android-arm-eabi@1.11.1': @@ -8528,14 +8528,14 @@ snapshots: '@types/node': 25.6.0 optional: true - '@typescript-eslint/eslint-plugin@8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3))(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.59.0(@typescript-eslint/parser@8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3))(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.58.2 - '@typescript-eslint/type-utils': 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/utils': 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.58.2 + '@typescript-eslint/parser': 8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.59.0 + '@typescript-eslint/type-utils': 8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.59.0 eslint: 10.2.1(jiti@2.6.1) ignore: 7.0.5 natural-compare: 1.4.0 @@ -8544,41 +8544,41 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/parser@8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 8.58.2 - '@typescript-eslint/types': 8.58.2 - '@typescript-eslint/typescript-estree': 8.58.2(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.58.2 + '@typescript-eslint/scope-manager': 8.59.0 + '@typescript-eslint/types': 8.59.0 + '@typescript-eslint/typescript-estree': 8.59.0(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.59.0 debug: 4.4.3 eslint: 10.2.1(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.58.2(typescript@5.9.3)': + '@typescript-eslint/project-service@8.59.0(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.58.2(typescript@5.9.3) - '@typescript-eslint/types': 8.58.2 + '@typescript-eslint/tsconfig-utils': 8.59.0(typescript@5.9.3) + '@typescript-eslint/types': 8.59.0 debug: 4.4.3 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.58.2': + '@typescript-eslint/scope-manager@8.59.0': dependencies: - '@typescript-eslint/types': 8.58.2 - '@typescript-eslint/visitor-keys': 8.58.2 + '@typescript-eslint/types': 8.59.0 + '@typescript-eslint/visitor-keys': 8.59.0 - '@typescript-eslint/tsconfig-utils@8.58.2(typescript@5.9.3)': + '@typescript-eslint/tsconfig-utils@8.59.0(typescript@5.9.3)': dependencies: typescript: 5.9.3 - '@typescript-eslint/type-utils@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.58.2 - '@typescript-eslint/typescript-estree': 8.58.2(typescript@5.9.3) - '@typescript-eslint/utils': 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/types': 8.59.0 + '@typescript-eslint/typescript-estree': 8.59.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) debug: 4.4.3 eslint: 10.2.1(jiti@2.6.1) ts-api-utils: 2.5.0(typescript@5.9.3) @@ -8588,14 +8588,14 @@ snapshots: '@typescript-eslint/types@8.58.0': {} - '@typescript-eslint/types@8.58.2': {} + '@typescript-eslint/types@8.59.0': {} - '@typescript-eslint/typescript-estree@8.58.2(typescript@5.9.3)': + '@typescript-eslint/typescript-estree@8.59.0(typescript@5.9.3)': dependencies: - '@typescript-eslint/project-service': 8.58.2(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.58.2(typescript@5.9.3) - '@typescript-eslint/types': 8.58.2 - '@typescript-eslint/visitor-keys': 8.58.2 + '@typescript-eslint/project-service': 8.59.0(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.59.0(typescript@5.9.3) + '@typescript-eslint/types': 8.59.0 + '@typescript-eslint/visitor-keys': 8.59.0 debug: 4.4.3 minimatch: 10.2.5 semver: 7.7.4 @@ -8605,20 +8605,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/utils@8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.1(jiti@2.6.1)) - '@typescript-eslint/scope-manager': 8.58.2 - '@typescript-eslint/types': 8.58.2 - '@typescript-eslint/typescript-estree': 8.58.2(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.59.0 + '@typescript-eslint/types': 8.59.0 + '@typescript-eslint/typescript-estree': 8.59.0(typescript@5.9.3) eslint: 10.2.1(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.58.2': + '@typescript-eslint/visitor-keys@8.59.0': dependencies: - '@typescript-eslint/types': 8.58.2 + '@typescript-eslint/types': 8.59.0 eslint-visitor-keys: 5.0.1 '@unrs/resolver-binding-android-arm-eabi@1.11.1': @@ -9608,7 +9608,7 @@ snapshots: eslint: 10.2.1(jiti@2.6.1) eslint-compat-utils: 0.5.1(eslint@10.2.1(jiti@2.6.1)) - eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.2.1(jiti@2.6.1)): + eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.2.1(jiti@2.6.1)): dependencies: '@package-json/types': 0.0.12 '@typescript-eslint/types': 8.58.0 @@ -9622,7 +9622,7 @@ snapshots: stable-hash-x: 0.2.0 unrs-resolver: 1.11.1 optionalDependencies: - '@typescript-eslint/utils': 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color From c3dfd40b525ff3cffcfd23578bd960bf04f87df4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Apr 2026 21:26:25 +0800 Subject: [PATCH 224/439] chore(deps): bump devenv from `878c73c` to `034b677` (#21796) Bumps [devenv](https://github.com/cachix/devenv) from `878c73c` to `034b677`. - [Release notes](https://github.com/cachix/devenv/releases) - [Commits](https://github.com/cachix/devenv/compare/878c73c0b232d47b5fb79b4c6dbc2cdf3aaa3f76...034b677ee035a29a077ecbaadfb2908719272919) --- updated-dependencies: - dependency-name: devenv dependency-version: 034b677ee035a29a077ecbaadfb2908719272919 dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 13f91fb61ad8..2be09f2c7bd9 100644 --- a/flake.lock +++ b/flake.lock @@ -163,11 +163,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1776537207, - "narHash": "sha256-CmDPLGo5rK02AV8d0SegYwQA+6aWPFWym6mYKqOzRT0=", + "lastModified": 1776718099, + "narHash": "sha256-JAR6x8Au4xxk6X7ijhlYETQg0F0OS0ihZ5ARiguDclc=", "owner": "cachix", "repo": "devenv", - "rev": "878c73c0b232d47b5fb79b4c6dbc2cdf3aaa3f76", + "rev": "034b677ee035a29a077ecbaadfb2908719272919", "type": "github" }, "original": { From fcd938a95d9141bfa19310cf9616fd274acd689d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 21 Apr 2026 13:28:24 +0000 Subject: [PATCH 225/439] chore(nix): update dependencies hash to sha256-DgK1fX3szNShujIYu4bqYzU69xuvKiO80nooHIHTKEU= --- flake.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flake.nix b/flake.nix index b3518dd7d3c7..21ff4627abaa 100644 --- a/flake.nix +++ b/flake.nix @@ -16,7 +16,7 @@ deps = pkgs.fetchPnpmDeps { pname = "rsshub"; src = ./.; - hash = "sha256-ReWfQhFBGvq3C14bRhLihTiP9MeEAWbfe0A5fIwBMkw="; + hash = "sha256-DgK1fX3szNShujIYu4bqYzU69xuvKiO80nooHIHTKEU="; fetcherVersion = 2; }; in From 6e2f02e253701a21e5ce1380063126118fa73f93 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Apr 2026 21:49:22 +0800 Subject: [PATCH 226/439] chore(deps): bump nixpkgs from `4bd9165` to `b12141e` (#21795) Bumps [nixpkgs](https://github.com/NixOS/nixpkgs) from `4bd9165` to `b12141e`. - [Commits](https://github.com/NixOS/nixpkgs/compare/4bd9165a9165d7b5e33ae57f3eecbcb28fb231c9...b12141ef619e0a9c1c84dc8c684040326f27cdcc) --- updated-dependencies: - dependency-name: nixpkgs dependency-version: b12141ef619e0a9c1c84dc8c684040326f27cdcc dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 2be09f2c7bd9..68a3ecf01407 100644 --- a/flake.lock +++ b/flake.lock @@ -739,11 +739,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1776169885, - "narHash": "sha256-l/iNYDZ4bGOAFQY2q8y5OAfBBtrDAaPuRQqWaFHVRXM=", + "lastModified": 1776548001, + "narHash": "sha256-ZSK0NL4a1BwVbbTBoSnWgbJy9HeZFXLYQizjb2DPF24=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "4bd9165a9165d7b5e33ae57f3eecbcb28fb231c9", + "rev": "b12141ef619e0a9c1c84dc8c684040326f27cdcc", "type": "github" }, "original": { From 4335d6583d6c77573427eb73635ffd34d1daf030 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Apr 2026 21:54:05 +0800 Subject: [PATCH 227/439] chore(deps-dev): bump the oxc group with 4 updates (#21789) Bumps the oxc group with 4 updates: [@oxlint/plugins](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint-plugins), [oxfmt](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt), [oxlint](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint) and [oxlint-plugin-eslint](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint-plugin-eslint). Updates `@oxlint/plugins` from 1.60.0 to 1.61.0 - [Release notes](https://github.com/oxc-project/oxc/releases) - [Changelog](https://github.com/oxc-project/oxc/blob/main/CHANGELOG.md) - [Commits](https://github.com/oxc-project/oxc/commits/apps_v1.61.0/npm/oxlint-plugins) Updates `oxfmt` from 0.45.0 to 0.46.0 - [Release notes](https://github.com/oxc-project/oxc/releases) - [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxfmt/CHANGELOG.md) - [Commits](https://github.com/oxc-project/oxc/commits/oxfmt_v0.46.0/npm/oxfmt) Updates `oxlint` from 1.60.0 to 1.61.0 - [Release notes](https://github.com/oxc-project/oxc/releases) - [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxlint/CHANGELOG.md) - [Commits](https://github.com/oxc-project/oxc/commits/oxlint_v1.61.0/npm/oxlint) Updates `oxlint-plugin-eslint` from 1.60.0 to 1.61.0 - [Release notes](https://github.com/oxc-project/oxc/releases) - [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxlint-plugin-eslint/CHANGELOG.md) - [Commits](https://github.com/oxc-project/oxc/commits/apps_v1.61.0/npm/oxlint-plugin-eslint) --- updated-dependencies: - dependency-name: "@oxlint/plugins" dependency-version: 1.61.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: oxc - dependency-name: oxfmt dependency-version: 0.46.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: oxc - dependency-name: oxlint dependency-version: 1.61.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: oxc - dependency-name: oxlint-plugin-eslint dependency-version: 1.61.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: oxc ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 8 +- pnpm-lock.yaml | 346 ++++++++++++++++++++++++------------------------- 2 files changed, 177 insertions(+), 177 deletions(-) diff --git a/package.json b/package.json index 2beae81cb1e1..ad1db35d7462 100644 --- a/package.json +++ b/package.json @@ -151,7 +151,7 @@ "@cloudflare/workers-types": "4.20260417.1", "@eslint/eslintrc": "3.3.5", "@eslint/js": "10.0.1", - "@oxlint/plugins": "1.60.0", + "@oxlint/plugins": "1.61.0", "@stylistic/eslint-plugin": "5.10.0", "@types/aes-js": "3.1.4", "@types/babel__preset-env": "7.10.0", @@ -192,9 +192,9 @@ "mockdate": "3.0.5", "msw": "2.13.4", "node-network-devtools": "1.0.30", - "oxfmt": "0.45.0", - "oxlint": "1.60.0", - "oxlint-plugin-eslint": "1.60.0", + "oxfmt": "0.46.0", + "oxlint": "1.61.0", + "oxlint-plugin-eslint": "1.61.0", "oxlint-tsgolint": "0.21.1", "remark-parse": "11.0.0", "tsdown": "0.21.9", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d911385e9ba8..f38b307f7715 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -312,8 +312,8 @@ importers: specifier: 10.0.1 version: 10.0.1(eslint@10.2.1(jiti@2.6.1)) '@oxlint/plugins': - specifier: 1.60.0 - version: 1.60.0 + specifier: 1.61.0 + version: 1.61.0 '@stylistic/eslint-plugin': specifier: 5.10.0 version: 5.10.0(eslint@10.2.1(jiti@2.6.1)) @@ -435,14 +435,14 @@ importers: specifier: 1.0.30 version: 1.0.30(undici@7.25.0)(utf-8-validate@5.0.10) oxfmt: - specifier: 0.45.0 - version: 0.45.0 + specifier: 0.46.0 + version: 0.46.0 oxlint: - specifier: 1.60.0 - version: 1.60.0(oxlint-tsgolint@0.21.1) + specifier: 1.61.0 + version: 1.61.0(oxlint-tsgolint@0.21.1) oxlint-plugin-eslint: - specifier: 1.60.0 - version: 1.60.0 + specifier: 1.61.0 + version: 1.61.0 oxlint-tsgolint: specifier: 0.21.1 version: 0.21.1 @@ -1961,124 +1961,124 @@ packages: '@oxc-project/types@0.126.0': resolution: {integrity: sha512-oGfVtjAgwQVVpfBrbtk4e1XDyWHRFta6BS3GWVzrF8xYBT2VGQAk39yJS/wFSMrZqoiCU4oghT3Ch0HaHGIHcQ==} - '@oxfmt/binding-android-arm-eabi@0.45.0': - resolution: {integrity: sha512-A/UMxFob1fefCuMeGxQBulGfFE38g2Gm23ynr3u6b+b7fY7/ajGbNsa3ikMIkGMLJW/TRoQaMoP1kME7S+815w==} + '@oxfmt/binding-android-arm-eabi@0.46.0': + resolution: {integrity: sha512-b1doV4WRcJU+BESSlCvCjV+5CEr/T6h0frArAdV26Nir+gGNFNaylvDiiMPfF1pxeV0txZEs38ojzJaxBYg+ng==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@oxfmt/binding-android-arm64@0.45.0': - resolution: {integrity: sha512-L63z4uZmHjgvvqvMJD7mwff8aSBkM0+X4uFr6l6U5t6+Qc9DCLVZWIunJ7Gm4fn4zHPdSq6FFQnhu9yqqobxIg==} + '@oxfmt/binding-android-arm64@0.46.0': + resolution: {integrity: sha512-v6+HhjsoV3GO0u2u9jLSAZrvWfTraDxKofUIQ7/ktS7tzS+epVsxdHmeM+XxuNcAY/nWxxU1Sg4JcGTNRXraBA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxfmt/binding-darwin-arm64@0.45.0': - resolution: {integrity: sha512-UV34dd623FzqT+outIGndsCA/RBB+qgB3XVQhgmmJ9PJwa37NzPC9qzgKeOhPKxVk2HW+JKldQrVL54zs4Noww==} + '@oxfmt/binding-darwin-arm64@0.46.0': + resolution: {integrity: sha512-3eeooJGrqGIlI5MyryDZsAcKXSmKIgAD4yYtfRrRJzXZ0UTFZtiSveIur56YPrGMYZwT4XyVhHsMqrNwr1XeFA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxfmt/binding-darwin-x64@0.45.0': - resolution: {integrity: sha512-pMNJv0CMa1pDefVPeNbuQxibh8ITpWDFEhMC/IBB9Zlu76EbgzYwrzI4Cb11mqX2+rIYN70UTrh3z06TM59ptQ==} + '@oxfmt/binding-darwin-x64@0.46.0': + resolution: {integrity: sha512-QG8BDM0CXWbu84k2SKmCqfEddPQPFiBicwtYnLqHRWZZl57HbtOLRMac/KTq2NO4AEc4ICCBpFxJIV9zcqYfkQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxfmt/binding-freebsd-x64@0.45.0': - resolution: {integrity: sha512-xTcRoxbbo61sW2+ZRPeH+vp/o9G8gkdhiVumFU+TpneiPm14c79l6GFlxPXlCE9bNWikigbsrvJw46zCVAQFfg==} + '@oxfmt/binding-freebsd-x64@0.46.0': + resolution: {integrity: sha512-9DdCqS/n2ncu/Chazvt3cpgAjAmIGQDz7hFKSrNItMApyV/Ja9mz3hD4JakIE3nS8PW9smEbPWnb389QLBY4nw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxfmt/binding-linux-arm-gnueabihf@0.45.0': - resolution: {integrity: sha512-hWL8Hdni+3U1mPFx1UtWeGp3tNb6EhBAUHRMbKUxVkOp3WwoJbpVO2bfUVbS4PfpledviXXNHSTl1veTa6FhkQ==} + '@oxfmt/binding-linux-arm-gnueabihf@0.46.0': + resolution: {integrity: sha512-Dgs7VeE2jT0LHMhw6tPEt0xQYe54kBqHEovmWsv4FVQlegCOvlIJNx0S8n4vj8WUtpT+Z6BD2HhKJPLglLxvZg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxfmt/binding-linux-arm-musleabihf@0.45.0': - resolution: {integrity: sha512-6Blt/0OBT7vvfQpqYuYbpbFLPqSiaYpEJzUUWhinPEuADypDbtV1+LdjM0vYBNGPvnj85ex7lTerEX6JGcPt9w==} + '@oxfmt/binding-linux-arm-musleabihf@0.46.0': + resolution: {integrity: sha512-Zxn3adhTH13JKnU4xXJj8FeEfF680XjXh3gSShKl57HCMBRde2tUJTgogV/1MSHA80PJEVrDa7r66TLVq3Ia7Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxfmt/binding-linux-arm64-gnu@0.45.0': - resolution: {integrity: sha512-jLjoLfe+hGfjhA8hNBSdw85yCA8ePKq7ME4T+g6P9caQXvmt6IhE2X7iVjnVdkmYUWEzZrxlh4p6RkDmAMJY/A==} + '@oxfmt/binding-linux-arm64-gnu@0.46.0': + resolution: {integrity: sha512-+TWipjrgVM8D7aIdDD0tlr3teLTTvQTn7QTE5BpT10H1Fj82gfdn9X6nn2sDgx/MepuSCfSnzFNJq2paLL0OiA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-arm64-musl@0.45.0': - resolution: {integrity: sha512-XQKXZIKYJC3GQJ8FnD3iMntpw69Wd9kDDK/Xt79p6xnFYlGGxSNv2vIBvRTDg5CKByWFWWZLCRDOXoP/m6YN4g==} + '@oxfmt/binding-linux-arm64-musl@0.46.0': + resolution: {integrity: sha512-aAUPBWJ1lGwwnxZUEDLJ94+Iy6MuwJwPxUgO4sCA5mEEyDk7b+cDQ+JpX1VR150Zoyd+D49gsrUzpUK5h587Eg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@oxfmt/binding-linux-ppc64-gnu@0.45.0': - resolution: {integrity: sha512-+g5RiG+xOkdrCWkKodv407nTvMq4vYM18Uox2MhZBm/YoqFxxJpWKsloskFFG5NU13HGPw1wzYjjOVcyd9moCA==} + '@oxfmt/binding-linux-ppc64-gnu@0.46.0': + resolution: {integrity: sha512-ufBCJukyFX/UDrokP/r6BGDoTInnsDs7bxyzKAgMiZlt2Qu8GPJSJ6Zm6whIiJzKk0naxA8ilwmbO1LMw6Htxw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-riscv64-gnu@0.45.0': - resolution: {integrity: sha512-V7dXKoSyEbWAkkSF4JJNtF+NJZDmJoSarSoP30WCsB3X636Rehd3CvxBj49FIJxEBFWhvcUjGSHVeU8Erck1bQ==} + '@oxfmt/binding-linux-riscv64-gnu@0.46.0': + resolution: {integrity: sha512-eqtlC2YmPqjun76R1gVfGLuKWx7NuEnLEAudZ7n6ipSKbCZTqIKSs1b5Y8K/JHZsRpLkeSmAAjig5HOIg8fQzQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-riscv64-musl@0.45.0': - resolution: {integrity: sha512-Vdelft1sAEYojVGgcODEFXSWYQYlIvoyIGWebKCuUibd1tvS1TjTx413xG2ZLuHpYj45CkN/ztMLMX6jrgqpgg==} + '@oxfmt/binding-linux-riscv64-musl@0.46.0': + resolution: {integrity: sha512-yccVOO2nMXkQLGgy0He3EQEwKD7NF0zEk+/OWmroznkqXyJdN6bfK0LtNnr6/14Bh3FjpYq7bP33l/VloCnxpA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [musl] - '@oxfmt/binding-linux-s390x-gnu@0.45.0': - resolution: {integrity: sha512-RR7xKgNpqwENnK0aYCGYg0JycY2n93J0reNjHyes+I9Gq52dH95x+CBlnlAQHCPfz6FGnKA9HirgUl14WO6o7w==} + '@oxfmt/binding-linux-s390x-gnu@0.46.0': + resolution: {integrity: sha512-aAf7fG23OQCey6VRPj9IeCraoYtpgtx0ZyJ1CXkPyT1wjzBE7c3xtuxHe/AdHaJfVVb/SXpSk8Gl1LzyQupSqw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-x64-gnu@0.45.0': - resolution: {integrity: sha512-U/QQ0+BQNSHxjuXR/utvXnQ50Vu5kUuqEomZvQ1/3mhgbBiMc2WU9q5kZ5WwLp3gnFIx9ibkveoRSe2EZubkqg==} + '@oxfmt/binding-linux-x64-gnu@0.46.0': + resolution: {integrity: sha512-q0JPsTMyJNjYrBvYFDz4WbVsafNZaPCZv4RnFypRotLqpKROtBZcEaXQW4eb9YmvLU3NckVemLJnzkSZSdmOxw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-x64-musl@0.45.0': - resolution: {integrity: sha512-o5TLOUCF0RWQjsIS06yVC+kFgp092/yLe6qBGSUvtnmTVw9gxjpdQSXc3VN5Cnive4K11HNstEZF8ROKHfDFSw==} + '@oxfmt/binding-linux-x64-musl@0.46.0': + resolution: {integrity: sha512-7LsLY9Cw57GPkhSR+duI3mt9baRczK/DtHYSldQ4BEU92da9igBQNl4z7Vq5U9NNPsh1FmpKvv1q9WDtiUQR1A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@oxfmt/binding-openharmony-arm64@0.45.0': - resolution: {integrity: sha512-RnGcV3HgPuOjsGx/k9oyRNKmOp+NBLGzZTdPDYbc19r7NGeYPplnUU/BfU35bX2Y/O4ejvHxcfkvW2WoYL/gsg==} + '@oxfmt/binding-openharmony-arm64@0.46.0': + resolution: {integrity: sha512-lHiBOz8Duaku7JtRNLlps3j++eOaICPZSd8FCVmTDM4DFOPT71Bjn7g6iar1z7StXlKRweUKxWUs4sA+zWGDXg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@oxfmt/binding-win32-arm64-msvc@0.45.0': - resolution: {integrity: sha512-v3Vj7iKKsUFwt9w5hsqIIoErKVoENC6LoqfDlteOQ5QMDCXihlqLoxpmviUhXnNncg4zV6U9BPwlBbwa+qm4wg==} + '@oxfmt/binding-win32-arm64-msvc@0.46.0': + resolution: {integrity: sha512-/5ktYUliP89RhgC37DBH1x20U5zPSZMy3cMEcO0j3793rbHP9MWsknBwQB6eozRzWmYrh0IFM/p20EbPvDlYlg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxfmt/binding-win32-ia32-msvc@0.45.0': - resolution: {integrity: sha512-N8yotPBX6ph0H3toF4AEpdCeVPrdcSetj+8eGiZGsrLsng3bs/Q5HPu4bbSxip5GBPx5hGbGHrZwH4+rcrjhHA==} + '@oxfmt/binding-win32-ia32-msvc@0.46.0': + resolution: {integrity: sha512-3WTnoiuIr8XvV0DIY7SN+1uJSwKf4sPpcbHfobcRT9JutGcLaef/miyBB87jxd3aqH+mS0+G5lsgHuXLUwjjpQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@oxfmt/binding-win32-x64-msvc@0.45.0': - resolution: {integrity: sha512-w5MMTRCK1dpQeRA+HHqXQXyN33DlG/N2LOYxJmaT4fJjcmZrbNnqw7SmIk7I2/a2493PPLZ+2E/Ar6t2iKVMug==} + '@oxfmt/binding-win32-x64-msvc@0.46.0': + resolution: {integrity: sha512-IXxiQpkYnOwNfP23vzwSfhdpxJzyiPTY7eTn6dn3DsriKddESzM8i6kfq9R7CD/PUJwCvQT22NgtygBeug3KoA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -2113,130 +2113,130 @@ packages: cpu: [x64] os: [win32] - '@oxlint/binding-android-arm-eabi@1.60.0': - resolution: {integrity: sha512-YdeJKaZckDQL1qa62a1aKq/goyq48aX3yOxaaWqWb4sau4Ee4IiLbamftNLU3zbePky6QsDj6thnSSzHRBjDfA==} + '@oxlint/binding-android-arm-eabi@1.61.0': + resolution: {integrity: sha512-6eZBPgiigK5txqoVgRqxbaxiom4lM8AP8CyKPPvpzKnQ3iFRFOIDc+0AapF+qsUSwjOzr5SGk4SxQDpQhkSJMQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@oxlint/binding-android-arm64@1.60.0': - resolution: {integrity: sha512-7ANS7PpXCfq84xZQ8E5WPs14gwcuPcl+/8TFNXfpSu0CQBXz3cUo2fDpHT8v8HJN+Ut02eacvMAzTnc9s6X4tw==} + '@oxlint/binding-android-arm64@1.61.0': + resolution: {integrity: sha512-CkwLR69MUnyv5wjzebvbbtTSUwqLxM35CXE79bHqDIK+NtKmPEUpStTcLQRZMCo4MP0qRT6TXIQVpK0ZVScnMA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxlint/binding-darwin-arm64@1.60.0': - resolution: {integrity: sha512-pJsgd9AfplLGBm1fIr25V6V14vMrayhx4uIQvlfH7jWs2SZwSrvi3TfgfJySB8T+hvyEH8K2zXljQiUnkgUnfQ==} + '@oxlint/binding-darwin-arm64@1.61.0': + resolution: {integrity: sha512-8JbefTkbmvqkqWjmQrHke+MdpgT2UghhD/ktM4FOQSpGeCgbMToJEKdl9zwhr/YWTl92i4QI1KiTwVExpcUN8A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxlint/binding-darwin-x64@1.60.0': - resolution: {integrity: sha512-Ue1aXHX49ivwflKqGJc7zcd/LeLgbhaTcDCQStgx5x06AXgjEAZmvrlMuIkWd4AL4FHQe6QJ9f33z04Cg448VQ==} + '@oxlint/binding-darwin-x64@1.61.0': + resolution: {integrity: sha512-uWpoxDT47hTnDLcdEh5jVbso8rlTTu5o0zuqa9J8E0JAKmIWn7kGFEIB03Pycn2hd2vKxybPGLhjURy/9We5FQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxlint/binding-freebsd-x64@1.60.0': - resolution: {integrity: sha512-YCyQzsQtusQw+gNRW9rRTifSO+Dt/+dtCl2NHoDMZqJlRTEZ/Oht9YnuporI9yiTx7+cB+eqzX3MtHHVHGIWhg==} + '@oxlint/binding-freebsd-x64@1.61.0': + resolution: {integrity: sha512-K/o4hEyW7flfMel0iBVznmMBt7VIMHGdjADocHKpK1DUF9erpWnJ+BSSWd2W0c8K3mPtpph+CuHzRU6CI3l9jQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxlint/binding-linux-arm-gnueabihf@1.60.0': - resolution: {integrity: sha512-c7dxM2Zksa45Qw16i2iGY3Fti2NirJ38FrsBsKw+qcJ0OtqTsBgKJLF0xV+yLG56UH01Z8WRPgsw31e0MoRoGQ==} + '@oxlint/binding-linux-arm-gnueabihf@1.61.0': + resolution: {integrity: sha512-P6040ZkcyweJ0Po9yEFqJCdvZnf3VNCGs1SIHgXDf8AAQNC6ID/heXQs9iSgo2FH7gKaKq32VWc59XZwL34C5Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxlint/binding-linux-arm-musleabihf@1.60.0': - resolution: {integrity: sha512-ZWALoA42UYqBEP1Tbw9OWURgFGS1nWj2AAvLdY6ZcGx/Gj93qVCBKjcvwXMupZibYwFbi9s/rzqkZseb/6gVtQ==} + '@oxlint/binding-linux-arm-musleabihf@1.61.0': + resolution: {integrity: sha512-bwxrGCzTZkuB+THv2TQ1aTkVEfv5oz8sl+0XZZCpoYzErJD8OhPQOTA0ENPd1zJz8QsVdSzSrS2umKtPq4/JXg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxlint/binding-linux-arm64-gnu@1.60.0': - resolution: {integrity: sha512-tpy+1w4p9hN5CicMCxqNy6ymfRtV5ayE573vFNjp1k1TN/qhLFgflveZoE/0++RlkHikBz2vY545NWm/hp7big==} + '@oxlint/binding-linux-arm64-gnu@1.61.0': + resolution: {integrity: sha512-vkhb9/wKguMkLlrm3FoJW/Xmdv31GgYAE+x8lxxQ+7HeOxXUySI0q36a3NTVIuQUdLzxCI1zzMGsk1o37FOe3w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-arm64-musl@1.60.0': - resolution: {integrity: sha512-eDYDXZGhQAXyn6GwtwiX/qcLS0HlOLPJ/+iiIY8RYr+3P8oKBmgKxADLlniL6FtWfE7pPk7IGN9/xvDEvDvFeg==} + '@oxlint/binding-linux-arm64-musl@1.61.0': + resolution: {integrity: sha512-bl1dQh8LnVqsj6oOQAcxwbuOmNJkwc4p6o//HTBZhNTzJy21TLDwAviMqUFNUxDHkPGpmdKTSN4tWTjLryP8xg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@oxlint/binding-linux-ppc64-gnu@1.60.0': - resolution: {integrity: sha512-nxehly5XYBHUWI9VJX1bqCf9j/B43DaK/aS/T1fcxCpX3PA4Rm9BB54nPD1CKayT8xg6REN1ao+01hSRNgy8OA==} + '@oxlint/binding-linux-ppc64-gnu@1.61.0': + resolution: {integrity: sha512-QoOX6KB2IiEpyOj/HKqaxi+NQHPnOgNgnr22n9N4ANJCzXkUlj1UmeAbFb4PpqdlHIzvGDM5xZ0OKtcLq9RhiQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-riscv64-gnu@1.60.0': - resolution: {integrity: sha512-j1qf/NaUfOWQutjeoooNG1Q0zsK0XGmSu1uDLq3cctquRF3j7t9Hxqf/76ehCc5GEUAanth2W4Fa+XT1RFg/nw==} + '@oxlint/binding-linux-riscv64-gnu@1.61.0': + resolution: {integrity: sha512-1TGcTerjY6p152wCof3oKElccq3xHljS/Mucp04gV/4ATpP6nO7YNnp7opEg6SHkv2a57/b4b8Ndm9znJ1/qAw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-riscv64-musl@1.60.0': - resolution: {integrity: sha512-YELKPRefQ/q/h3RUmeRfPCUhh2wBvgV1RyZ/F9M9u8cDyXsQW2ojv1DeWQTt466yczDITjZnIOg/s05pk7Ve2A==} + '@oxlint/binding-linux-riscv64-musl@1.61.0': + resolution: {integrity: sha512-65wXEmZIrX2ADwC8i/qFL4EWLSbeuBpAm3suuX1vu4IQkKd+wLT/HU/BOl84kp91u2SxPkPDyQgu4yrqp8vwVA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [musl] - '@oxlint/binding-linux-s390x-gnu@1.60.0': - resolution: {integrity: sha512-JkO3C6Gki7Y6h/MiIkFKvHFOz98/YWvQ4WYbK9DLXACMP2rjULzkeGyAzorJE5S1dzLQGFgeqvN779kSFwoV1g==} + '@oxlint/binding-linux-s390x-gnu@1.61.0': + resolution: {integrity: sha512-TVvhgMvor7Qa6COeXxCJ7ENOM+lcAOGsQ0iUdPSCv2hxb9qSHLQ4XF1h50S6RE1gBOJ0WV3rNukg4JJJP1LWRA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@oxlint/binding-linux-x64-gnu@1.60.0': - resolution: {integrity: sha512-XjKHdFVCpZZZSWBCKyyqCq65s2AKXykMXkjLoKYODrD+f5toLhlwsMESscu8FbgnJQ4Y/dpR/zdazsahmgBJIA==} + '@oxlint/binding-linux-x64-gnu@1.61.0': + resolution: {integrity: sha512-SjpS5uYuFoDnDdZPwZE59ndF95AsY47R5MliuneTWR1pDm2CxGJaYXbKULI71t5TVfLQUWmrHEGRL9xvuq6dnA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-x64-musl@1.60.0': - resolution: {integrity: sha512-js29ZWIuPhNWzY8NC7KoffEMEeWG105vbmm+8EOJsC+T/jHBiKIJEUF78+F/IrgEWMMP9N0kRND4Pp75+xAhKg==} + '@oxlint/binding-linux-x64-musl@1.61.0': + resolution: {integrity: sha512-gGfAeGD4sNJGILZbc/yKcIimO9wQnPMoYp9swAaKeEtwsSQAbU+rsdQze5SBtIP6j0QDzeYd4XSSUCRCF+LIeQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@oxlint/binding-openharmony-arm64@1.60.0': - resolution: {integrity: sha512-H+PUITKHk04stFpWj3x3Kg08Afp/bcXSBi0EhasR5a0Vw7StXHTzdl655PUI0fB4qdh2Wsu6Dsi+3ACxPoyQnA==} + '@oxlint/binding-openharmony-arm64@1.61.0': + resolution: {integrity: sha512-OlVT0LrG/ct33EVtWRyR+B/othwmDWeRxfi13wUdPeb3lAT5TgTcFDcfLfarZtzB4W1nWF/zICMgYdkggX2WmQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@oxlint/binding-win32-arm64-msvc@1.60.0': - resolution: {integrity: sha512-WA/yc7f7ZfCefBXVzNHn1Ztulb1EFwNBb4jMZ6pjML0zz6pHujlF3Q3jySluz3XHl/GNeMTntG1seUBWVMlMag==} + '@oxlint/binding-win32-arm64-msvc@1.61.0': + resolution: {integrity: sha512-vI//NZPJk6DToiovPtaiwD4iQ7kO1r5ReWQD0sOOyKRtP3E2f6jxin4uvwi3OvDzHA2EFfd7DcZl5dtkQh7g1w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxlint/binding-win32-ia32-msvc@1.60.0': - resolution: {integrity: sha512-33YxL1sqwYNZXtn3MD/4dno6s0xeedXOJlT1WohkVD565WvohClZUr7vwKdAk954n4xiEWJkewiCr+zLeq7AeA==} + '@oxlint/binding-win32-ia32-msvc@1.61.0': + resolution: {integrity: sha512-0ySj4/4zd2XjePs3XAQq7IigIstN4LPQZgCyigX5/ERMLjdWAJfnxcTsrtxZxuij8guJW8foXuHmhGxW0H4dDA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@oxlint/binding-win32-x64-msvc@1.60.0': - resolution: {integrity: sha512-JOro4ZcfBLamJCyfURQmOQByoorgOdx3ZjAkSqnb/CyG/i+lN3KoV5LAgk5ZAW6DPq7/Cx7n23f8DuTWXTWgyQ==} + '@oxlint/binding-win32-x64-msvc@1.61.0': + resolution: {integrity: sha512-0xgSiyeqDLDZxXoe9CVJrOx3TUVsfyoOY7cNi03JbItNcC9WCZqrSNdrAbHONxhSPaVh/lzfnDcON1RqSUMhHw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] - '@oxlint/plugins@1.60.0': - resolution: {integrity: sha512-wxEoVVAS5FQAXiA8jPY+NWTOTKTzbSViMfW7yU5OQ7+f34W0KYfy2iuSLC9o1fiYn5xt3LQLxZBREFJtDlQLRw==} + '@oxlint/plugins@1.61.0': + resolution: {integrity: sha512-nkOyZEF1vH527CkdQtOp1HMrVFEM4ResURvI2JFeGoup+h+43J/k/FgdOR9b9Isxg+Yae7qVDa7y3nssE8b3TQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} '@package-json/types@0.0.12': @@ -5149,21 +5149,21 @@ packages: resolution: {integrity: sha512-dD4UpyBh/9m4X2NVjA+73/ZPBRF+uF4zIMFvvQsabMiEK8x41L3rQ8EENOi35kyyoaJwNxEeJcP6Fj1H4U409Q==} engines: {node: '>=12'} - oxfmt@0.45.0: - resolution: {integrity: sha512-0o/COoN9fY50bjVeM7PQsNgbhndKurBIeTIcspW033OumksjJJmIVDKjAk5HMwU/GHTxSOdGDdhJ6BRzGPmsHg==} + oxfmt@0.46.0: + resolution: {integrity: sha512-CopwJOwPAjZ9p76fCvz+mSOJTw9/NY3cSksZK3VO/bUQ8UoEcketNgUuYS0UB3p+R9XnXe7wGGXUmyFxc7QxJA==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true - oxlint-plugin-eslint@1.60.0: - resolution: {integrity: sha512-gAqkU8vYI1i8EoS0KSCCtrH/pCwDvDEs4Eu4Z1wnmcVMl9hSk4Dgs1udtrehw2vofW8VhrtJDbJfmkcM56TpMQ==} + oxlint-plugin-eslint@1.61.0: + resolution: {integrity: sha512-3vpLeQdH3kPQsOzALgeoodvxxLD1D7KrM8lEBPELAqfkNhS1uMvqcPA7y3pJ8rEEfhUDyQJlRU5yZRw6wq1S2A==} engines: {node: ^20.19.0 || >=22.12.0} oxlint-tsgolint@0.21.1: resolution: {integrity: sha512-O2hxiT14C2HJkwzBU6CQBFPoagSd/IcV+Tt3e3UUaXFwbW4BO5DSDPSSboc3UM5MIDY+MLyepvtQwBQafNxWdw==} hasBin: true - oxlint@1.60.0: - resolution: {integrity: sha512-tnRzTWiWJ9pg3ftRWnD0+Oqh78L6ZSwcEudvCZaER0PIqiAnNyXj5N1dPwjmNpDalkKS9m/WMLN1CTPUBPmsgw==} + oxlint@1.61.0: + resolution: {integrity: sha512-ZC0ALuhDZ6ivOFG+sy0D0pEDN49EvsId98zVlmYdkcXHsEM14m/qTNUEsUpiFiCVbpIxYtVBmmLE87nsbUHohQ==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -7821,61 +7821,61 @@ snapshots: '@oxc-project/types@0.126.0': {} - '@oxfmt/binding-android-arm-eabi@0.45.0': + '@oxfmt/binding-android-arm-eabi@0.46.0': optional: true - '@oxfmt/binding-android-arm64@0.45.0': + '@oxfmt/binding-android-arm64@0.46.0': optional: true - '@oxfmt/binding-darwin-arm64@0.45.0': + '@oxfmt/binding-darwin-arm64@0.46.0': optional: true - '@oxfmt/binding-darwin-x64@0.45.0': + '@oxfmt/binding-darwin-x64@0.46.0': optional: true - '@oxfmt/binding-freebsd-x64@0.45.0': + '@oxfmt/binding-freebsd-x64@0.46.0': optional: true - '@oxfmt/binding-linux-arm-gnueabihf@0.45.0': + '@oxfmt/binding-linux-arm-gnueabihf@0.46.0': optional: true - '@oxfmt/binding-linux-arm-musleabihf@0.45.0': + '@oxfmt/binding-linux-arm-musleabihf@0.46.0': optional: true - '@oxfmt/binding-linux-arm64-gnu@0.45.0': + '@oxfmt/binding-linux-arm64-gnu@0.46.0': optional: true - '@oxfmt/binding-linux-arm64-musl@0.45.0': + '@oxfmt/binding-linux-arm64-musl@0.46.0': optional: true - '@oxfmt/binding-linux-ppc64-gnu@0.45.0': + '@oxfmt/binding-linux-ppc64-gnu@0.46.0': optional: true - '@oxfmt/binding-linux-riscv64-gnu@0.45.0': + '@oxfmt/binding-linux-riscv64-gnu@0.46.0': optional: true - '@oxfmt/binding-linux-riscv64-musl@0.45.0': + '@oxfmt/binding-linux-riscv64-musl@0.46.0': optional: true - '@oxfmt/binding-linux-s390x-gnu@0.45.0': + '@oxfmt/binding-linux-s390x-gnu@0.46.0': optional: true - '@oxfmt/binding-linux-x64-gnu@0.45.0': + '@oxfmt/binding-linux-x64-gnu@0.46.0': optional: true - '@oxfmt/binding-linux-x64-musl@0.45.0': + '@oxfmt/binding-linux-x64-musl@0.46.0': optional: true - '@oxfmt/binding-openharmony-arm64@0.45.0': + '@oxfmt/binding-openharmony-arm64@0.46.0': optional: true - '@oxfmt/binding-win32-arm64-msvc@0.45.0': + '@oxfmt/binding-win32-arm64-msvc@0.46.0': optional: true - '@oxfmt/binding-win32-ia32-msvc@0.45.0': + '@oxfmt/binding-win32-ia32-msvc@0.46.0': optional: true - '@oxfmt/binding-win32-x64-msvc@0.45.0': + '@oxfmt/binding-win32-x64-msvc@0.46.0': optional: true '@oxlint-tsgolint/darwin-arm64@0.21.1': @@ -7896,64 +7896,64 @@ snapshots: '@oxlint-tsgolint/win32-x64@0.21.1': optional: true - '@oxlint/binding-android-arm-eabi@1.60.0': + '@oxlint/binding-android-arm-eabi@1.61.0': optional: true - '@oxlint/binding-android-arm64@1.60.0': + '@oxlint/binding-android-arm64@1.61.0': optional: true - '@oxlint/binding-darwin-arm64@1.60.0': + '@oxlint/binding-darwin-arm64@1.61.0': optional: true - '@oxlint/binding-darwin-x64@1.60.0': + '@oxlint/binding-darwin-x64@1.61.0': optional: true - '@oxlint/binding-freebsd-x64@1.60.0': + '@oxlint/binding-freebsd-x64@1.61.0': optional: true - '@oxlint/binding-linux-arm-gnueabihf@1.60.0': + '@oxlint/binding-linux-arm-gnueabihf@1.61.0': optional: true - '@oxlint/binding-linux-arm-musleabihf@1.60.0': + '@oxlint/binding-linux-arm-musleabihf@1.61.0': optional: true - '@oxlint/binding-linux-arm64-gnu@1.60.0': + '@oxlint/binding-linux-arm64-gnu@1.61.0': optional: true - '@oxlint/binding-linux-arm64-musl@1.60.0': + '@oxlint/binding-linux-arm64-musl@1.61.0': optional: true - '@oxlint/binding-linux-ppc64-gnu@1.60.0': + '@oxlint/binding-linux-ppc64-gnu@1.61.0': optional: true - '@oxlint/binding-linux-riscv64-gnu@1.60.0': + '@oxlint/binding-linux-riscv64-gnu@1.61.0': optional: true - '@oxlint/binding-linux-riscv64-musl@1.60.0': + '@oxlint/binding-linux-riscv64-musl@1.61.0': optional: true - '@oxlint/binding-linux-s390x-gnu@1.60.0': + '@oxlint/binding-linux-s390x-gnu@1.61.0': optional: true - '@oxlint/binding-linux-x64-gnu@1.60.0': + '@oxlint/binding-linux-x64-gnu@1.61.0': optional: true - '@oxlint/binding-linux-x64-musl@1.60.0': + '@oxlint/binding-linux-x64-musl@1.61.0': optional: true - '@oxlint/binding-openharmony-arm64@1.60.0': + '@oxlint/binding-openharmony-arm64@1.61.0': optional: true - '@oxlint/binding-win32-arm64-msvc@1.60.0': + '@oxlint/binding-win32-arm64-msvc@1.61.0': optional: true - '@oxlint/binding-win32-ia32-msvc@1.60.0': + '@oxlint/binding-win32-ia32-msvc@1.61.0': optional: true - '@oxlint/binding-win32-x64-msvc@1.60.0': + '@oxlint/binding-win32-x64-msvc@1.61.0': optional: true - '@oxlint/plugins@1.60.0': {} + '@oxlint/plugins@1.61.0': {} '@package-json/types@0.0.12': {} @@ -11109,31 +11109,31 @@ snapshots: lodash.isequal: 4.5.0 vali-date: 1.0.0 - oxfmt@0.45.0: + oxfmt@0.46.0: dependencies: tinypool: 2.1.0 optionalDependencies: - '@oxfmt/binding-android-arm-eabi': 0.45.0 - '@oxfmt/binding-android-arm64': 0.45.0 - '@oxfmt/binding-darwin-arm64': 0.45.0 - '@oxfmt/binding-darwin-x64': 0.45.0 - '@oxfmt/binding-freebsd-x64': 0.45.0 - '@oxfmt/binding-linux-arm-gnueabihf': 0.45.0 - '@oxfmt/binding-linux-arm-musleabihf': 0.45.0 - '@oxfmt/binding-linux-arm64-gnu': 0.45.0 - '@oxfmt/binding-linux-arm64-musl': 0.45.0 - '@oxfmt/binding-linux-ppc64-gnu': 0.45.0 - '@oxfmt/binding-linux-riscv64-gnu': 0.45.0 - '@oxfmt/binding-linux-riscv64-musl': 0.45.0 - '@oxfmt/binding-linux-s390x-gnu': 0.45.0 - '@oxfmt/binding-linux-x64-gnu': 0.45.0 - '@oxfmt/binding-linux-x64-musl': 0.45.0 - '@oxfmt/binding-openharmony-arm64': 0.45.0 - '@oxfmt/binding-win32-arm64-msvc': 0.45.0 - '@oxfmt/binding-win32-ia32-msvc': 0.45.0 - '@oxfmt/binding-win32-x64-msvc': 0.45.0 - - oxlint-plugin-eslint@1.60.0: {} + '@oxfmt/binding-android-arm-eabi': 0.46.0 + '@oxfmt/binding-android-arm64': 0.46.0 + '@oxfmt/binding-darwin-arm64': 0.46.0 + '@oxfmt/binding-darwin-x64': 0.46.0 + '@oxfmt/binding-freebsd-x64': 0.46.0 + '@oxfmt/binding-linux-arm-gnueabihf': 0.46.0 + '@oxfmt/binding-linux-arm-musleabihf': 0.46.0 + '@oxfmt/binding-linux-arm64-gnu': 0.46.0 + '@oxfmt/binding-linux-arm64-musl': 0.46.0 + '@oxfmt/binding-linux-ppc64-gnu': 0.46.0 + '@oxfmt/binding-linux-riscv64-gnu': 0.46.0 + '@oxfmt/binding-linux-riscv64-musl': 0.46.0 + '@oxfmt/binding-linux-s390x-gnu': 0.46.0 + '@oxfmt/binding-linux-x64-gnu': 0.46.0 + '@oxfmt/binding-linux-x64-musl': 0.46.0 + '@oxfmt/binding-openharmony-arm64': 0.46.0 + '@oxfmt/binding-win32-arm64-msvc': 0.46.0 + '@oxfmt/binding-win32-ia32-msvc': 0.46.0 + '@oxfmt/binding-win32-x64-msvc': 0.46.0 + + oxlint-plugin-eslint@1.61.0: {} oxlint-tsgolint@0.21.1: optionalDependencies: @@ -11144,27 +11144,27 @@ snapshots: '@oxlint-tsgolint/win32-arm64': 0.21.1 '@oxlint-tsgolint/win32-x64': 0.21.1 - oxlint@1.60.0(oxlint-tsgolint@0.21.1): + oxlint@1.61.0(oxlint-tsgolint@0.21.1): optionalDependencies: - '@oxlint/binding-android-arm-eabi': 1.60.0 - '@oxlint/binding-android-arm64': 1.60.0 - '@oxlint/binding-darwin-arm64': 1.60.0 - '@oxlint/binding-darwin-x64': 1.60.0 - '@oxlint/binding-freebsd-x64': 1.60.0 - '@oxlint/binding-linux-arm-gnueabihf': 1.60.0 - '@oxlint/binding-linux-arm-musleabihf': 1.60.0 - '@oxlint/binding-linux-arm64-gnu': 1.60.0 - '@oxlint/binding-linux-arm64-musl': 1.60.0 - '@oxlint/binding-linux-ppc64-gnu': 1.60.0 - '@oxlint/binding-linux-riscv64-gnu': 1.60.0 - '@oxlint/binding-linux-riscv64-musl': 1.60.0 - '@oxlint/binding-linux-s390x-gnu': 1.60.0 - '@oxlint/binding-linux-x64-gnu': 1.60.0 - '@oxlint/binding-linux-x64-musl': 1.60.0 - '@oxlint/binding-openharmony-arm64': 1.60.0 - '@oxlint/binding-win32-arm64-msvc': 1.60.0 - '@oxlint/binding-win32-ia32-msvc': 1.60.0 - '@oxlint/binding-win32-x64-msvc': 1.60.0 + '@oxlint/binding-android-arm-eabi': 1.61.0 + '@oxlint/binding-android-arm64': 1.61.0 + '@oxlint/binding-darwin-arm64': 1.61.0 + '@oxlint/binding-darwin-x64': 1.61.0 + '@oxlint/binding-freebsd-x64': 1.61.0 + '@oxlint/binding-linux-arm-gnueabihf': 1.61.0 + '@oxlint/binding-linux-arm-musleabihf': 1.61.0 + '@oxlint/binding-linux-arm64-gnu': 1.61.0 + '@oxlint/binding-linux-arm64-musl': 1.61.0 + '@oxlint/binding-linux-ppc64-gnu': 1.61.0 + '@oxlint/binding-linux-riscv64-gnu': 1.61.0 + '@oxlint/binding-linux-riscv64-musl': 1.61.0 + '@oxlint/binding-linux-s390x-gnu': 1.61.0 + '@oxlint/binding-linux-x64-gnu': 1.61.0 + '@oxlint/binding-linux-x64-musl': 1.61.0 + '@oxlint/binding-openharmony-arm64': 1.61.0 + '@oxlint/binding-win32-arm64-msvc': 1.61.0 + '@oxlint/binding-win32-ia32-msvc': 1.61.0 + '@oxlint/binding-win32-x64-msvc': 1.61.0 oxlint-tsgolint: 0.21.1 p-cancelable@4.0.1: {} From 73ef6efca0d80a6a59eb0f4d059d9e3f8d23749b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Apr 2026 22:01:09 +0800 Subject: [PATCH 228/439] chore(deps): bump @hono/node-server from 1.19.14 to 2.0.0 (#21792) Bumps [@hono/node-server](https://github.com/honojs/node-server) from 1.19.14 to 2.0.0. - [Release notes](https://github.com/honojs/node-server/releases) - [Commits](https://github.com/honojs/node-server/compare/v1.19.14...v2.0.0) --- updated-dependencies: - dependency-name: "@hono/node-server" dependency-version: 2.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index ad1db35d7462..08dd58399649 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,7 @@ "@bbob/plugin-helper": "4.3.1", "@bbob/preset-html5": "4.3.1", "@honeybadger-io/js": "6.12.3", - "@hono/node-server": "1.19.14", + "@hono/node-server": "2.0.0", "@hono/zod-openapi": "1.3.0", "@jocmp/mercury-parser": "3.0.7", "@notionhq/client": "5.20.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f38b307f7715..b76c7c92ab2a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -44,8 +44,8 @@ importers: specifier: 6.12.3 version: 6.12.3 '@hono/node-server': - specifier: 1.19.14 - version: 1.19.14(hono@4.12.14) + specifier: 2.0.0 + version: 2.0.0(hono@4.12.14) '@hono/zod-openapi': specifier: 1.3.0 version: 1.3.0(hono@4.12.14)(zod@4.3.6) @@ -1256,9 +1256,9 @@ packages: engines: {node: '>=14'} hasBin: true - '@hono/node-server@1.19.14': - resolution: {integrity: sha512-GwtvgtXxnWsucXvbQXkRgqksiH2Qed37H9xHZocE5sA3N8O8O8/8FA3uclQXxXVzc9XBZuEOMK7+r02FmSpHtw==} - engines: {node: '>=18.14.1'} + '@hono/node-server@2.0.0': + resolution: {integrity: sha512-n3GfHwwCvHCkGmOwKfxUPOlbfzuO64Sbc5XC4NGPIXxkuOnJrdgExdRKmHfF924r914WRJPT397GdqLvdYTeyQ==} + engines: {node: '>=20'} peerDependencies: hono: ^4 @@ -7097,7 +7097,7 @@ snapshots: '@types/aws-lambda': 8.10.161 '@types/express': 5.0.6 - '@hono/node-server@1.19.14(hono@4.12.14)': + '@hono/node-server@2.0.0(hono@4.12.14)': dependencies: hono: 4.12.14 From 73f406a07bf42003444e6a34f6890b946b3e01b8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 22 Apr 2026 08:16:51 +0000 Subject: [PATCH 229/439] chore(deps-dev): bump the vitest group with 2 updates (#21803) Bumps the vitest group with 2 updates: [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) and [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Updates `@vitest/coverage-v8` from 4.1.4 to 4.1.5 - [Release notes](https://github.com/vitest-dev/vitest/releases) - [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.5/packages/coverage-v8) Updates `vitest` from 4.1.4 to 4.1.5 - [Release notes](https://github.com/vitest-dev/vitest/releases) - [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.5/packages/vitest) --- updated-dependencies: - dependency-name: "@vitest/coverage-v8" dependency-version: 4.1.5 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: vitest - dependency-name: vitest dependency-version: 4.1.5 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: vitest ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 4 +- pnpm-lock.yaml | 122 ++++++++++++++++++++++++------------------------- 2 files changed, 63 insertions(+), 63 deletions(-) diff --git a/package.json b/package.json index 08dd58399649..59ba681ed905 100644 --- a/package.json +++ b/package.json @@ -172,7 +172,7 @@ "@typescript-eslint/eslint-plugin": "8.59.0", "@typescript-eslint/parser": "8.59.0", "@vercel/nft": "1.5.0", - "@vitest/coverage-v8": "4.1.4", + "@vitest/coverage-v8": "4.1.5", "discord-api-types": "0.38.47", "domhandler": "6.0.1", "eslint": "10.2.1", @@ -201,7 +201,7 @@ "typescript": "5.9.3", "unified": "11.0.5", "vite-tsconfig-paths": "6.1.1", - "vitest": "4.1.4", + "vitest": "4.1.5", "wrangler": "4.82.2", "yaml-eslint-parser": "2.0.0" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b76c7c92ab2a..8032e4f59169 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -375,8 +375,8 @@ importers: specifier: 1.5.0 version: 1.5.0(rollup@4.60.2) '@vitest/coverage-v8': - specifier: 4.1.4 - version: 4.1.4(vitest@4.1.4) + specifier: 4.1.5 + version: 4.1.5(vitest@4.1.5) discord-api-types: specifier: 0.38.47 version: 0.38.47 @@ -462,8 +462,8 @@ importers: specifier: 6.1.1 version: 6.1.1(typescript@5.9.3)(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)) vitest: - specifier: 4.1.4 - version: 4.1.4(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.4)(jsdom@29.0.2(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)) + specifier: 4.1.5 + version: 4.1.5(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(jsdom@29.0.2(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)) wrangler: specifier: 4.82.2 version: 4.82.2(@cloudflare/workers-types@4.20260417.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10) @@ -3017,20 +3017,20 @@ packages: engines: {node: '>=20'} hasBin: true - '@vitest/coverage-v8@4.1.4': - resolution: {integrity: sha512-x7FptB5oDruxNPDNY2+S8tCh0pcq7ymCe1gTHcsp733jYjrJl8V1gMUlVysuCD9Kz46Xz9t1akkv08dPcYDs1w==} + '@vitest/coverage-v8@4.1.5': + resolution: {integrity: sha512-38C0/Ddb7HcRG0Z4/DUem8x57d2p9jYgp18mkaYswEOQBGsI1CG4f/hjm0ZCeaJfWhSZ4k7jgs29V1Zom7Ki9A==} peerDependencies: - '@vitest/browser': 4.1.4 - vitest: 4.1.4 + '@vitest/browser': 4.1.5 + vitest: 4.1.5 peerDependenciesMeta: '@vitest/browser': optional: true - '@vitest/expect@4.1.4': - resolution: {integrity: sha512-iPBpra+VDuXmBFI3FMKHSFXp3Gx5HfmSCE8X67Dn+bwephCnQCaB7qWK2ldHa+8ncN8hJU8VTMcxjPpyMkUjww==} + '@vitest/expect@4.1.5': + resolution: {integrity: sha512-PWBaRY5JoKuRnHlUHfpV/KohFylaDZTupcXN1H9vYryNLOnitSw60Mw9IAE2r67NbwwzBw/Cc/8q9BK3kIX8Kw==} - '@vitest/mocker@4.1.4': - resolution: {integrity: sha512-R9HTZBhW6yCSGbGQnDnH3QHfJxokKN4KB+Yvk9Q1le7eQNYwiCyKxmLmurSpFy6BzJanSLuEUDrD+j97Q+ZLPg==} + '@vitest/mocker@4.1.5': + resolution: {integrity: sha512-/x2EmFC4mT4NNzqvC3fmesuV97w5FC903KPmey4gsnJiMQ3Be1IlDKVaDaG8iqaLFHqJ2FVEkxZk5VmeLjIItw==} peerDependencies: msw: ^2.4.9 vite: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -3040,20 +3040,20 @@ packages: vite: optional: true - '@vitest/pretty-format@4.1.4': - resolution: {integrity: sha512-ddmDHU0gjEUyEVLxtZa7xamrpIefdEETu3nZjWtHeZX4QxqJ7tRxSteHVXJOcr8jhiLoGAhkK4WJ3WqBpjx42A==} + '@vitest/pretty-format@4.1.5': + resolution: {integrity: sha512-7I3q6l5qr03dVfMX2wCo9FxwSJbPdwKjy2uu/YPpU3wfHvIL4QHwVRp57OfGrDFeUJ8/8QdfBKIV12FTtLn00g==} - '@vitest/runner@4.1.4': - resolution: {integrity: sha512-xTp7VZ5aXP5ZJrn15UtJUWlx6qXLnGtF6jNxHepdPHpMfz/aVPx+htHtgcAL2mDXJgKhpoo2e9/hVJsIeFbytQ==} + '@vitest/runner@4.1.5': + resolution: {integrity: sha512-2D+o7Pr82IEO46YPpoA/YU0neeyr6FTerQb5Ro7BUnBuv6NQtT/kmVnczngiMEBhzgqz2UZYl5gArejsyERDSQ==} - '@vitest/snapshot@4.1.4': - resolution: {integrity: sha512-MCjCFgaS8aZz+m5nTcEcgk/xhWv0rEH4Yl53PPlMXOZ1/Ka2VcZU6CJ+MgYCZbcJvzGhQRjVrGQNZqkGPttIKw==} + '@vitest/snapshot@4.1.5': + resolution: {integrity: sha512-zypXEt4KH/XgKGPUz4eC2AvErYx0My5hfL8oDb1HzGFpEk1P62bxSohdyOmvz+d9UJwanI68MKwr2EquOaOgMQ==} - '@vitest/spy@4.1.4': - resolution: {integrity: sha512-XxNdAsKW7C+FLydqFJLb5KhJtl3PGCMmYwFRfhvIgxJvLSXhhVI1zM8f1qD3Zg7RCjTSzDVyct6sghs9UEgBEQ==} + '@vitest/spy@4.1.5': + resolution: {integrity: sha512-2lNOsh6+R2Idnf1TCZqSwYlKN2E/iDlD8sgU59kYVl+OMDmvldO1VDk39smRfpUNwYpNRVn3w4YfuC7KfbBnkQ==} - '@vitest/utils@4.1.4': - resolution: {integrity: sha512-13QMT+eysM5uVGa1rG4kegGYNp6cnQcsTc67ELFbhNLQO+vgsygtYJx2khvdt4gVQqSSpC/KT5FZZxUpP3Oatw==} + '@vitest/utils@4.1.5': + resolution: {integrity: sha512-76wdkrmfXfqGjueGgnb45ITPyUi1ycZ4IHgC2bhPDUfWHklY/q3MdLOAB+TF1e6xfl8NxNY0ZYaPCFNWSsw3Ug==} '@zone-eu/mailsplit@5.4.8': resolution: {integrity: sha512-eEyACj4JZ7sjzRvy26QhLgKEMWwQbsw1+QZnlLX+/gihcNH07lVPOcnwf5U6UAL7gkc//J3jVd76o/WS+taUiA==} @@ -5732,8 +5732,8 @@ packages: resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} engines: {node: '>= 0.8'} - std-env@4.0.0: - resolution: {integrity: sha512-zUMPtQ/HBY3/50VbpkupYHbRroTRZJPRLvreamgErJVys0ceuzMkD44J/QjqhHjOzK42GQ3QZIeFG1OYfOtKqQ==} + std-env@4.1.0: + resolution: {integrity: sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==} stealthy-require@1.1.1: resolution: {integrity: sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g==} @@ -6259,20 +6259,20 @@ packages: yaml: optional: true - vitest@4.1.4: - resolution: {integrity: sha512-tFuJqTxKb8AvfyqMfnavXdzfy3h3sWZRWwfluGbkeR7n0HUev+FmNgZ8SDrRBTVrVCjgH5cA21qGbCffMNtWvg==} + vitest@4.1.5: + resolution: {integrity: sha512-9Xx1v3/ih3m9hN+SbfkUyy0JAs72ap3r7joc87XL6jwF0jGg6mFBvQ1SrwaX+h8BlkX6Hz9shdd1uo6AF+ZGpg==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@opentelemetry/api': ^1.9.0 '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 - '@vitest/browser-playwright': 4.1.4 - '@vitest/browser-preview': 4.1.4 - '@vitest/browser-webdriverio': 4.1.4 - '@vitest/coverage-istanbul': 4.1.4 - '@vitest/coverage-v8': 4.1.4 - '@vitest/ui': 4.1.4 + '@vitest/browser-playwright': 4.1.5 + '@vitest/browser-preview': 4.1.5 + '@vitest/browser-webdriverio': 4.1.5 + '@vitest/coverage-istanbul': 4.1.5 + '@vitest/coverage-v8': 4.1.5 + '@vitest/ui': 4.1.5 happy-dom: '*' jsdom: '*' vite: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -8699,59 +8699,59 @@ snapshots: - rollup - supports-color - '@vitest/coverage-v8@4.1.4(vitest@4.1.4)': + '@vitest/coverage-v8@4.1.5(vitest@4.1.5)': dependencies: '@bcoe/v8-coverage': 1.0.2 - '@vitest/utils': 4.1.4 + '@vitest/utils': 4.1.5 ast-v8-to-istanbul: 1.0.0 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 istanbul-reports: 3.2.0 magicast: 0.5.2 obug: 2.1.1 - std-env: 4.0.0 + std-env: 4.1.0 tinyrainbow: 3.1.0 - vitest: 4.1.4(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.4)(jsdom@29.0.2(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)) + vitest: 4.1.5(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(jsdom@29.0.2(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)) - '@vitest/expect@4.1.4': + '@vitest/expect@4.1.5': dependencies: '@standard-schema/spec': 1.1.0 '@types/chai': 5.2.3 - '@vitest/spy': 4.1.4 - '@vitest/utils': 4.1.4 + '@vitest/spy': 4.1.5 + '@vitest/utils': 4.1.5 chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.4(msw@2.13.4(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3))': + '@vitest/mocker@4.1.5(msw@2.13.4(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: - '@vitest/spy': 4.1.4 + '@vitest/spy': 4.1.5 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: msw: 2.13.4(@types/node@25.6.0)(typescript@5.9.3) vite: 7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3) - '@vitest/pretty-format@4.1.4': + '@vitest/pretty-format@4.1.5': dependencies: tinyrainbow: 3.1.0 - '@vitest/runner@4.1.4': + '@vitest/runner@4.1.5': dependencies: - '@vitest/utils': 4.1.4 + '@vitest/utils': 4.1.5 pathe: 2.0.3 - '@vitest/snapshot@4.1.4': + '@vitest/snapshot@4.1.5': dependencies: - '@vitest/pretty-format': 4.1.4 - '@vitest/utils': 4.1.4 + '@vitest/pretty-format': 4.1.5 + '@vitest/utils': 4.1.5 magic-string: 0.30.21 pathe: 2.0.3 - '@vitest/spy@4.1.4': {} + '@vitest/spy@4.1.5': {} - '@vitest/utils@4.1.4': + '@vitest/utils@4.1.5': dependencies: - '@vitest/pretty-format': 4.1.4 + '@vitest/pretty-format': 4.1.5 convert-source-map: 2.0.0 tinyrainbow: 3.1.0 @@ -11897,7 +11897,7 @@ snapshots: statuses@2.0.2: {} - std-env@4.0.0: {} + std-env@4.1.0: {} stealthy-require@1.1.1: {} @@ -12402,22 +12402,22 @@ snapshots: tsx: 4.21.0 yaml: 2.8.3 - vitest@4.1.4(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.4)(jsdom@29.0.2(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)): + vitest@4.1.5(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(jsdom@29.0.2(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)): dependencies: - '@vitest/expect': 4.1.4 - '@vitest/mocker': 4.1.4(msw@2.13.4(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)) - '@vitest/pretty-format': 4.1.4 - '@vitest/runner': 4.1.4 - '@vitest/snapshot': 4.1.4 - '@vitest/spy': 4.1.4 - '@vitest/utils': 4.1.4 + '@vitest/expect': 4.1.5 + '@vitest/mocker': 4.1.5(msw@2.13.4(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)) + '@vitest/pretty-format': 4.1.5 + '@vitest/runner': 4.1.5 + '@vitest/snapshot': 4.1.5 + '@vitest/spy': 4.1.5 + '@vitest/utils': 4.1.5 es-module-lexer: 2.0.0 expect-type: 1.3.0 magic-string: 0.30.21 obug: 2.1.1 pathe: 2.0.3 picomatch: 4.0.4 - std-env: 4.0.0 + std-env: 4.1.0 tinybench: 2.9.0 tinyexec: 1.1.1 tinyglobby: 0.2.16 @@ -12428,7 +12428,7 @@ snapshots: '@edge-runtime/vm': 3.2.0 '@opentelemetry/api': 1.9.1 '@types/node': 25.6.0 - '@vitest/coverage-v8': 4.1.4(vitest@4.1.4) + '@vitest/coverage-v8': 4.1.5(vitest@4.1.5) jsdom: 29.0.2(@noble/hashes@2.0.1) transitivePeerDependencies: - msw From c49631affe53783b24d738ac29698d33b7d53735 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 22 Apr 2026 08:20:22 +0000 Subject: [PATCH 230/439] chore(deps-dev): bump @actions/github from 9.1.0 to 9.1.1 (#21806) Bumps [@actions/github](https://github.com/actions/toolkit/tree/HEAD/packages/github) from 9.1.0 to 9.1.1. - [Changelog](https://github.com/actions/toolkit/blob/main/packages/github/RELEASES.md) - [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/github) --- updated-dependencies: - dependency-name: "@actions/github" dependency-version: 9.1.1 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 22 +++++++++++----------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index 59ba681ed905..d51f7d2076ef 100644 --- a/package.json +++ b/package.json @@ -144,7 +144,7 @@ }, "devDependencies": { "@actions/core": "3.0.0", - "@actions/github": "9.1.0", + "@actions/github": "9.1.1", "@bbob/types": "4.3.1", "@cloudflare/containers": "0.3.2", "@cloudflare/puppeteer": "1.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8032e4f59169..21b19ccdd7f4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -291,8 +291,8 @@ importers: specifier: 3.0.0 version: 3.0.0 '@actions/github': - specifier: 9.1.0 - version: 9.1.0 + specifier: 9.1.1 + version: 9.1.1 '@bbob/types': specifier: 4.3.1 version: 4.3.1 @@ -479,8 +479,8 @@ packages: '@actions/exec@3.0.0': resolution: {integrity: sha512-6xH/puSoNBXb72VPlZVm7vQ+svQpFyA96qdDBvhB8eNZOE8LtPf9L4oAsfzK/crCL8YZ+19fKYVnM63Sl+Xzlw==} - '@actions/github@9.1.0': - resolution: {integrity: sha512-u0hDGQeCS+7VNoLA8hYG65RLdPLMaPGfka0sZ0up7P0AiShqfX6xcuXNteGkQ7X7Tod7AMNwHd4p7DS63i8zzA==} + '@actions/github@9.1.1': + resolution: {integrity: sha512-tL5JbYOBZHc0ngEnCsaDcryUizIUIlQyIMwy1Wkx93H5HzbBJ7TbiPx2PnFjBwZW0Vh05JmfFZhecE6gglYegA==} '@actions/http-client@3.0.2': resolution: {integrity: sha512-JP38FYYpyqvUsz+Igqlc/JG6YO9PaKuvqjM3iGvaLqFnJ7TFmcLyy2IDrY0bI0qCQug8E9K+elv5ZNfw62ZJzA==} @@ -6098,8 +6098,8 @@ packages: undici-types@7.24.6: resolution: {integrity: sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==} - undici@6.24.1: - resolution: {integrity: sha512-sC+b0tB1whOCzbtlx20fx3WgCXwkW627p4EA9uM+/tNNPkSS+eSEld6pAs9nDv7WbY1UUljBMYPtu9BCOrCWKA==} + undici@6.25.0: + resolution: {integrity: sha512-ZgpWDC5gmNiuY9CnLVXEH8rl50xhRCuLNA97fAUnKi8RRuV4E6KG31pDTsLVUKnohJE0I3XDrTeEydAXRw47xg==} engines: {node: '>=18.17'} undici@7.24.4: @@ -6535,7 +6535,7 @@ snapshots: dependencies: '@actions/io': 3.0.2 - '@actions/github@9.1.0': + '@actions/github@9.1.1': dependencies: '@actions/http-client': 3.0.2 '@octokit/core': 7.0.6 @@ -6543,17 +6543,17 @@ snapshots: '@octokit/plugin-rest-endpoint-methods': 17.0.0(@octokit/core@7.0.6) '@octokit/request': 10.0.8 '@octokit/request-error': 7.1.0 - undici: 6.24.1 + undici: 6.25.0 '@actions/http-client@3.0.2': dependencies: tunnel: 0.0.6 - undici: 6.24.1 + undici: 6.25.0 '@actions/http-client@4.0.0': dependencies: tunnel: 0.0.6 - undici: 6.24.1 + undici: 6.25.0 '@actions/io@3.0.2': {} @@ -12253,7 +12253,7 @@ snapshots: undici-types@7.24.6: {} - undici@6.24.1: {} + undici@6.25.0: {} undici@7.24.4: {} From d011eb3c6045be4a4bd9aea35577d938208797ce Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 22 Apr 2026 08:33:31 +0000 Subject: [PATCH 231/439] chore(deps-dev): bump @actions/core from 3.0.0 to 3.0.1 (#21805) Bumps [@actions/core](https://github.com/actions/toolkit/tree/HEAD/packages/core) from 3.0.0 to 3.0.1. - [Changelog](https://github.com/actions/toolkit/blob/main/packages/core/RELEASES.md) - [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/core) --- updated-dependencies: - dependency-name: "@actions/core" dependency-version: 3.0.1 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index d51f7d2076ef..481fc6382fb0 100644 --- a/package.json +++ b/package.json @@ -143,7 +143,7 @@ "zod": "4.3.6" }, "devDependencies": { - "@actions/core": "3.0.0", + "@actions/core": "3.0.1", "@actions/github": "9.1.1", "@bbob/types": "4.3.1", "@cloudflare/containers": "0.3.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 21b19ccdd7f4..2ba92eaca36c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -288,8 +288,8 @@ importers: version: 4.3.6 devDependencies: '@actions/core': - specifier: 3.0.0 - version: 3.0.0 + specifier: 3.0.1 + version: 3.0.1 '@actions/github': specifier: 9.1.1 version: 9.1.1 @@ -473,8 +473,8 @@ importers: packages: - '@actions/core@3.0.0': - resolution: {integrity: sha512-zYt6cz+ivnTmiT/ksRVriMBOiuoUpDCJJlZ5KPl2/FRdvwU3f7MPh9qftvbkXJThragzUZieit2nyHUyw53Seg==} + '@actions/core@3.0.1': + resolution: {integrity: sha512-a6d/Nwahm9fliVGRhdhofo40HjHQasUPusmc7vBfyky+7Z+P2A1J68zyFVaNcEclc/Se+eO595oAr5nwEIoIUA==} '@actions/exec@3.0.0': resolution: {integrity: sha512-6xH/puSoNBXb72VPlZVm7vQ+svQpFyA96qdDBvhB8eNZOE8LtPf9L4oAsfzK/crCL8YZ+19fKYVnM63Sl+Xzlw==} @@ -485,8 +485,8 @@ packages: '@actions/http-client@3.0.2': resolution: {integrity: sha512-JP38FYYpyqvUsz+Igqlc/JG6YO9PaKuvqjM3iGvaLqFnJ7TFmcLyy2IDrY0bI0qCQug8E9K+elv5ZNfw62ZJzA==} - '@actions/http-client@4.0.0': - resolution: {integrity: sha512-QuwPsgVMsD6qaPD57GLZi9sqzAZCtiJT8kVBCDpLtxhL5MydQ4gS+DrejtZZPdIYyB1e95uCK9Luyds7ybHI3g==} + '@actions/http-client@4.0.1': + resolution: {integrity: sha512-+Nvd1ImaOZBSoPbsUtEhv+1z99H12xzncCkz0a3RuehINE81FZSe2QTj3uvAPTcJX/SCzUQHQ0D1GrPMbrPitg==} '@actions/io@3.0.2': resolution: {integrity: sha512-nRBchcMM+QK1pdjO7/idu86rbJI5YHUKCvKs0KxnSYbVe3F51UfGxuZX4Qy/fWlp6l7gWFwIkrOzN+oUK03kfw==} @@ -6526,10 +6526,10 @@ packages: snapshots: - '@actions/core@3.0.0': + '@actions/core@3.0.1': dependencies: '@actions/exec': 3.0.0 - '@actions/http-client': 4.0.0 + '@actions/http-client': 4.0.1 '@actions/exec@3.0.0': dependencies: @@ -6550,7 +6550,7 @@ snapshots: tunnel: 0.0.6 undici: 6.25.0 - '@actions/http-client@4.0.0': + '@actions/http-client@4.0.1': dependencies: tunnel: 0.0.6 undici: 6.25.0 From 3e1193c856421bfc533265d0b3bb7b4c2e108f75 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 22 Apr 2026 20:47:13 +0800 Subject: [PATCH 232/439] chore(deps): bump devenv from `034b677` to `91affc7` (#21807) Bumps [devenv](https://github.com/cachix/devenv) from `034b677` to `91affc7`. - [Release notes](https://github.com/cachix/devenv/releases) - [Commits](https://github.com/cachix/devenv/compare/034b677ee035a29a077ecbaadfb2908719272919...91affc7a7b6646852a0079678eadf12ac5029d9d) --- updated-dependencies: - dependency-name: devenv dependency-version: 91affc7a7b6646852a0079678eadf12ac5029d9d dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- flake.lock | 78 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 44 insertions(+), 34 deletions(-) diff --git a/flake.lock b/flake.lock index 68a3ecf01407..81064d57908a 100644 --- a/flake.lock +++ b/flake.lock @@ -19,11 +19,11 @@ ] }, "locked": { - "lastModified": 1767714506, - "narHash": "sha256-WaTs0t1CxhgxbIuvQ97OFhDTVUGd1HA+KzLZUZBhe0s=", + "lastModified": 1774017633, + "narHash": "sha256-CWhnwL2M83/ItapPVeJqCevRoQttesYxJ1h0Mo6ZCXs=", "owner": "cachix", "repo": "cachix", - "rev": "894c649f0daaa38bbcfb21de64be47dfa7cd0ec9", + "rev": "e8be573b417f3daa3dd4cb9052178f848e0c9d1d", "type": "github" }, "original": { @@ -159,15 +159,15 @@ "git-hooks": "git-hooks_3", "nix": "nix", "nixd": "nixd", - "nixpkgs": "nixpkgs_4", + "nixpkgs": "nixpkgs_5", "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1776718099, - "narHash": "sha256-JAR6x8Au4xxk6X7ijhlYETQg0F0OS0ihZ5ARiguDclc=", + "lastModified": 1776802132, + "narHash": "sha256-2yO2SGA7zVFYKe0qyJjdg7WHuMOKNwTQmigL7ydD8hI=", "owner": "cachix", "repo": "devenv", - "rev": "034b677ee035a29a077ecbaadfb2908719272919", + "rev": "91affc7a7b6646852a0079678eadf12ac5029d9d", "type": "github" }, "original": { @@ -318,11 +318,11 @@ ] }, "locked": { - "lastModified": 1772408722, - "narHash": "sha256-rHuJtdcOjK7rAHpHphUb1iCvgkU3GpfvicLMwwnfMT0=", + "lastModified": 1775087534, + "narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "f20dc5d9b8027381c474144ecabc9034d6a839a3", + "rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b", "type": "github" }, "original": { @@ -424,11 +424,11 @@ ] }, "locked": { - "lastModified": 1772893680, - "narHash": "sha256-JDqZMgxUTCq85ObSaFw0HhE+lvdOre1lx9iI6vYyOEs=", + "lastModified": 1775585728, + "narHash": "sha256-8Psjt+TWvE4thRKktJsXfR6PA/fWWsZ04DVaY6PUhr4=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "8baab586afc9c9b57645a734c820e4ac0a604af9", + "rev": "580633fa3fe5fc0379905986543fd7495481913d", "type": "github" }, "original": { @@ -633,18 +633,15 @@ "devenv", "flake-parts" ], - "nixpkgs": [ - "devenv", - "nixpkgs" - ], + "nixpkgs": "nixpkgs_4", "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1773634079, - "narHash": "sha256-49qb4QNMv77VOeEux+sMd0uBhPvvHgVc0r938Bulvbo=", + "lastModified": 1776341634, + "narHash": "sha256-L//ltP2o5+BnuK+KEulbi2gGeDpyyex6SkXLZcGQ/Ac=", "owner": "nix-community", "repo": "nixd", - "rev": "8ecf93d4d93745e05ea53534e8b94f5e9506e6bd", + "rev": "951e98e2025c47614f5249556ecf509b0ea35b51", "type": "github" }, "original": { @@ -672,11 +669,11 @@ "nixpkgs-src": { "flake": false, "locked": { - "lastModified": 1773597492, - "narHash": "sha256-hQ284SkIeNaeyud+LS0WVLX+WL2rxcVZLFEaK0e03zg=", + "lastModified": 1775888245, + "narHash": "sha256-nwASzrRDD1JBEu/o8ekKYEXm/oJW6EMCzCRdrwcLe90=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "a07d4ce6bee67d7c838a8a5796e75dff9caa21ef", + "rev": "13043924aaa7375ce482ebe2494338e058282925", "type": "github" }, "original": { @@ -719,15 +716,28 @@ } }, "nixpkgs_4": { + "locked": { + "lastModified": 1772963539, + "narHash": "sha256-G4+9cEu8XSqEWYUB6iRgDfrg53av6yyRwAKhSeKbUVw=", + "rev": "9dcb002ca1690658be4a04645215baea8b95f31d", + "type": "tarball", + "url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre960399.9dcb002ca169/nixexprs.tar.xz" + }, + "original": { + "type": "tarball", + "url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz" + } + }, + "nixpkgs_5": { "inputs": { "nixpkgs-src": "nixpkgs-src" }, "locked": { - "lastModified": 1773704619, - "narHash": "sha256-LKtmit8Sr81z8+N2vpIaN/fyiQJ8f7XJ6tMSKyDVQ9s=", + "lastModified": 1776771808, + "narHash": "sha256-FRpraDgknF5zoCYTi9CitoIaUYb/XGiXUuVqPg9AYB4=", "owner": "cachix", "repo": "devenv-nixpkgs", - "rev": "906534d75b0e2fe74a719559dfb1ad3563485f43", + "rev": "3a3d4ac6ea3dbf2534ef988086348b7e140b92ad", "type": "github" }, "original": { @@ -737,7 +747,7 @@ "type": "github" } }, - "nixpkgs_5": { + "nixpkgs_6": { "locked": { "lastModified": 1776548001, "narHash": "sha256-ZSK0NL4a1BwVbbTBoSnWgbJy9HeZFXLYQizjb2DPF24=", @@ -815,7 +825,7 @@ "inputs": { "devenv": "devenv", "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs_5" + "nixpkgs": "nixpkgs_6" } }, "rust-overlay": { @@ -826,11 +836,11 @@ ] }, "locked": { - "lastModified": 1773630837, - "narHash": "sha256-zJhgAGnbVKeBMJOb9ctZm4BGS/Rnrz+5lfSXTVah4HQ=", + "lastModified": 1776741231, + "narHash": "sha256-k9G98qzn+7npROUaks8VqCFm7cFtEG8ulQLBBo5lItg=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "f600ea449c7b5bb596fa1cf21c871cc5b9e31316", + "rev": "02061303f7c4c964f7b4584dabd9e985b4cd442b", "type": "github" }, "original": { @@ -863,11 +873,11 @@ ] }, "locked": { - "lastModified": 1772660329, - "narHash": "sha256-IjU1FxYqm+VDe5qIOxoW+pISBlGvVApRjiw/Y/ttJzY=", + "lastModified": 1775636079, + "narHash": "sha256-pc20NRoMdiar8oPQceQT47UUZMBTiMdUuWrYu2obUP0=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "3710e0e1218041bbad640352a0440114b1e10428", + "rev": "790751ff7fd3801feeaf96d7dc416a8d581265ba", "type": "github" }, "original": { From 6a6c347354a37076b7e5ed70876cf7d0bdd2530b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 22 Apr 2026 12:49:06 +0000 Subject: [PATCH 233/439] chore(nix): update dependencies hash to sha256-JSMYPsZo2shfh/f6yQ+dOujhSkS3Ras0DcOo378pej4= --- flake.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flake.nix b/flake.nix index 21ff4627abaa..5f850421f23a 100644 --- a/flake.nix +++ b/flake.nix @@ -16,7 +16,7 @@ deps = pkgs.fetchPnpmDeps { pname = "rsshub"; src = ./.; - hash = "sha256-DgK1fX3szNShujIYu4bqYzU69xuvKiO80nooHIHTKEU="; + hash = "sha256-JSMYPsZo2shfh/f6yQ+dOujhSkS3Ras0DcOo378pej4="; fetcherVersion = 2; }; in From 779d67a76ff4b5dc45f8c9323a9f4ceaa6513919 Mon Sep 17 00:00:00 2001 From: MurphyYi Date: Thu, 23 Apr 2026 06:02:26 +0800 Subject: [PATCH 234/439] =?UTF-8?q?fix(xiaomiyoupin):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E4=BC=97=E7=AD=B9=E8=B7=AF=E7=94=B1=20API=20=E5=A4=B1=E6=95=88?= =?UTF-8?q?=E9=97=AE=E9=A2=98=20(#21785)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(xiaomiyoupin): 修复众筹路由 API 失效问题 - 原依赖 /venue/page 接口返回 query_list,但该接口现已返回空 floors - 改用 homepage/main/v1005 API,无需 sign,长期稳定 - 新增 crowdfunding.tsx 模板,展示更丰富的众筹信息(进度条、支持人数、起止时间等) - 适配新 API 数据结构字段 Signed-off-by: zy84338719 * fix(xiaomiyoupin): 修复众筹路由 API 失效问题 - 原依赖 /venue/page 接口返回 query_list,但该接口现已返回空 floors - 改用 homepage/main/v1005 API,无需 sign,长期稳定 - 新增 crowdfunding.tsx 模板,展示众筹进度、支持人数、起止时间等 - 复用 utils.ts 中的 parseModule helper Signed-off-by: zy84338719 * style: fix lint issues (eqeqeq, no-negated-condition) and add data validation - Replace != with explicit null/undefined checks - Add safe navigation for resp.data.data.homepage - Throw descriptive errors on missing data Signed-off-by: zy84338719 * fix(xiaomiyoupin): simplify fix per maintainer feedback - add accept header only --------- Signed-off-by: zy84338719 --- lib/routes/xiaomiyoupin/crowdfunding.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/routes/xiaomiyoupin/crowdfunding.ts b/lib/routes/xiaomiyoupin/crowdfunding.ts index ae5f4dbc4c72..b3e9d4034949 100644 --- a/lib/routes/xiaomiyoupin/crowdfunding.ts +++ b/lib/routes/xiaomiyoupin/crowdfunding.ts @@ -37,7 +37,11 @@ async function handler() { const sign = urlParams.get('sign'); // 1. fetchPageData - const pageData = await got(`${base_url}/mtop/navi/venue/page?page_id=${pageid}&pdl=jianyu&sign=${sign}`); + const pageData = await got(`${base_url}/mtop/navi/venue/page?page_id=${pageid}&pdl=jianyu&sign=${sign}`, { + headers: { + accept: '*/*', + }, + }); const crowd_funding_floor = pageData.data.data.floors.find((floor) => floor.module_key === 'crowding'); const query_list = crowd_funding_floor.query_list; From 4e7165da199662ded043355450746660fc7c4ca9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 23 Apr 2026 08:13:35 +0000 Subject: [PATCH 235/439] chore(deps): bump cachix/install-nix-action from 31.10.4 to 31.10.5 (#21809) Bumps [cachix/install-nix-action](https://github.com/cachix/install-nix-action) from 31.10.4 to 31.10.5. - [Release notes](https://github.com/cachix/install-nix-action/releases) - [Changelog](https://github.com/cachix/install-nix-action/blob/master/RELEASE.md) - [Commits](https://github.com/cachix/install-nix-action/compare/616559265b40713947b9c190a8ff4b507b5df49b...ab739621df7a23f52766f9ccc97f38da6b7af14f) --- updated-dependencies: - dependency-name: cachix/install-nix-action dependency-version: 31.10.5 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/update-nix-hash.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-nix-hash.yml b/.github/workflows/update-nix-hash.yml index fb9ba223a0b6..55a5a319d908 100644 --- a/.github/workflows/update-nix-hash.yml +++ b/.github/workflows/update-nix-hash.yml @@ -20,7 +20,7 @@ jobs: - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Install Nix - uses: cachix/install-nix-action@616559265b40713947b9c190a8ff4b507b5df49b # v31.10.4 + uses: cachix/install-nix-action@ab739621df7a23f52766f9ccc97f38da6b7af14f # v31.10.5 with: nix_path: nixpkgs=channel:nixos-unstable - name: Cache Nix store From 664495af9d7f131e28b7331b70ccd153262e2396 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 23 Apr 2026 12:06:38 +0000 Subject: [PATCH 236/439] chore(deps): bump devenv from `91affc7` to `863b420` (#21811) Bumps [devenv](https://github.com/cachix/devenv) from `91affc7` to `863b420`. - [Release notes](https://github.com/cachix/devenv/releases) - [Commits](https://github.com/cachix/devenv/compare/91affc7a7b6646852a0079678eadf12ac5029d9d...863b4204725efaeeb73811e376f928232b720646) --- updated-dependencies: - dependency-name: devenv dependency-version: 863b4204725efaeeb73811e376f928232b720646 dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 81064d57908a..3bd737cfd9ee 100644 --- a/flake.lock +++ b/flake.lock @@ -163,11 +163,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1776802132, - "narHash": "sha256-2yO2SGA7zVFYKe0qyJjdg7WHuMOKNwTQmigL7ydD8hI=", + "lastModified": 1776863933, + "narHash": "sha256-v9NoQFSln9n5zqVWUWUc9PajsMaGmga51HOAJqMx7Qw=", "owner": "cachix", "repo": "devenv", - "rev": "91affc7a7b6646852a0079678eadf12ac5029d9d", + "rev": "863b4204725efaeeb73811e376f928232b720646", "type": "github" }, "original": { From 7c2bcf5bdf1e6da934c146b378407ab0cee74c52 Mon Sep 17 00:00:00 2001 From: DIYgod Date: Fri, 24 Apr 2026 11:35:51 +0800 Subject: [PATCH 237/439] feat: add HTTP cache (#21814) --- lib/config.test.ts | 14 +++ lib/config.ts | 12 ++- lib/utils/cache/http.test.ts | 118 ++++++++++++++++++++++++ lib/utils/cache/http.ts | 173 +++++++++++++++++++++++++++++++++++ lib/utils/cache/index.ts | 151 +++++++++++++++++------------- 5 files changed, 402 insertions(+), 66 deletions(-) create mode 100644 lib/utils/cache/http.test.ts create mode 100644 lib/utils/cache/http.ts diff --git a/lib/config.test.ts b/lib/config.test.ts index 02010cb5d417..472f1aefe470 100644 --- a/lib/config.test.ts +++ b/lib/config.test.ts @@ -91,6 +91,20 @@ describe('config', () => { expect(config.isDefaultUA).toBe(true); }); + it('http cache config', async () => { + process.env.CACHE_HTTP_URL = 'https://cache.example.com'; + process.env.CACHE_HTTP_TOKEN = 'token'; + + const { config } = await import('./config'); + expect(config.httpCache).toMatchObject({ + url: 'https://cache.example.com', + token: 'token', + }); + + delete process.env.CACHE_HTTP_URL; + delete process.env.CACHE_HTTP_TOKEN; + }); + it('remote config', async () => { process.env.REMOTE_CONFIG = 'http://rsshub.test/config'; diff --git a/lib/config.ts b/lib/config.ts index b4dca3920db4..fea6a950ee1f 100644 --- a/lib/config.ts +++ b/lib/config.ts @@ -27,6 +27,8 @@ type ConfigEnvKeys = | 'CACHE_CONTENT_EXPIRE' | 'MEMORY_MAX' | 'REDIS_URL' + | 'CACHE_HTTP_URL' + | 'CACHE_HTTP_TOKEN' // Proxy | 'PROXY_URI' | 'PROXY_URIS' @@ -284,6 +286,10 @@ export type Config = { redis: { url: string; }; + httpCache: { + url?: string; + token?: string; + }; // proxy proxyUri?: string; proxyUris?: string[]; @@ -763,7 +769,7 @@ const calculateValue = () => { allowOrigin: envs.ALLOW_ORIGIN, // cache cache: { - type: envs.CACHE_TYPE || (envs.CACHE_TYPE === '' ? '' : 'memory'), // 缓存类型,支持 'memory' 和 'redis',设为空可以禁止缓存 + type: envs.CACHE_TYPE || (envs.CACHE_TYPE === '' ? '' : 'memory'), // Cache type; supports 'memory', 'redis', and 'http'. Set to empty string to disable cache. requestTimeout: toInt(envs.CACHE_REQUEST_TIMEOUT, 60), routeExpire: toInt(envs.CACHE_EXPIRE, 5 * 60), // 路由缓存时间,单位为秒 contentExpire: toInt(envs.CACHE_CONTENT_EXPIRE, 1 * 60 * 60), // 不变内容缓存时间,单位为秒 @@ -775,6 +781,10 @@ const calculateValue = () => { redis: { url: envs.REDIS_URL || 'redis://localhost:6379/', }, + httpCache: { + url: envs.CACHE_HTTP_URL, + token: envs.CACHE_HTTP_TOKEN, + }, // proxy proxyUri: envs.PROXY_URI, proxyUris: envs.PROXY_URIS diff --git a/lib/utils/cache/http.test.ts b/lib/utils/cache/http.test.ts new file mode 100644 index 000000000000..6e663dee4773 --- /dev/null +++ b/lib/utils/cache/http.test.ts @@ -0,0 +1,118 @@ +import { afterEach, describe, expect, it, vi } from 'vitest'; + +const errorSpy = vi.fn(); +const infoSpy = vi.fn(); + +vi.mock('@/utils/logger', () => ({ + default: { + error: errorSpy, + info: infoSpy, + }, +})); + +const setHttpCacheEnv = () => { + process.env.CACHE_HTTP_URL = 'https://cache.example.com/'; + process.env.CACHE_HTTP_TOKEN = 'token'; +}; + +const clearHttpCacheEnv = () => { + delete process.env.CACHE_TYPE; + delete process.env.CACHE_HTTP_URL; + delete process.env.CACHE_HTTP_TOKEN; +}; + +describe('http cache module', () => { + afterEach(() => { + clearHttpCacheEnv(); + vi.unstubAllGlobals(); + vi.resetModules(); + vi.clearAllMocks(); + }); + + it('requires endpoint and token', async () => { + const cache = (await import('@/utils/cache/http')).default; + + cache.init(); + + expect(cache.status.available).toBe(false); + expect(errorSpy).toHaveBeenCalledWith('HTTP cache requires CACHE_HTTP_URL and CACHE_HTTP_TOKEN.'); + }); + + it('sets, gets, refreshes, and checks hashed keys', async () => { + setHttpCacheEnv(); + const requests: Array<{ body?: string; init?: RequestInit; url: string }> = []; + const fetchMock = vi.fn((input: RequestInfo | URL, init?: RequestInit) => { + requests.push({ + body: init?.body?.toString(), + init, + url: input.toString(), + }); + + if (init?.method === 'PUT') { + return new Response(null, { status: 204 }); + } + if (init?.method === 'HEAD') { + return new Response(null, { status: 204 }); + } + + return Response.json({ hit: true, value: 'cached' }); + }); + vi.stubGlobal('fetch', fetchMock); + + const cache = (await import('@/utils/cache/http')).default; + cache.init(); + + await cache.set('mock/key', { ok: true }, 30); + await expect(cache.get('mock/key')).resolves.toBe('cached'); + await expect(cache.get('mock/key', false)).resolves.toBe('cached'); + await expect(cache.has('mock/key')).resolves.toBe(true); + + expect(cache.status.available).toBe(true); + expect(requests[0].url).toMatch(/^https:\/\/cache\.example\.com\/v1\/cache\/rsshub%3Ahttp-cache%3A[a-f0-9]{32}$/); + expect(requests[0].init?.headers).toMatchObject({ + authorization: 'Bearer token', + 'content-type': 'application/json', + }); + expect(JSON.parse(requests[0].body || '{}')).toEqual({ + ttl: 30, + value: '{"ok":true}', + }); + expect(requests[1].url).toMatch(/\?refresh=1$/); + expect(requests[2].url).not.toContain('?refresh=1'); + expect(requests[3].init?.method).toBe('HEAD'); + }); + + it('treats a 404 response as a miss', async () => { + setHttpCacheEnv(); + vi.stubGlobal( + 'fetch', + vi.fn(() => Response.json({ hit: false }, { status: 404 })) + ); + + const cache = (await import('@/utils/cache/http')).default; + cache.init(); + + await expect(cache.get('missing')).resolves.toBe(''); + await expect(cache.has('missing')).resolves.toBe(false); + }); + + it('uses non-refreshing reads for global cache', async () => { + process.env.CACHE_TYPE = 'http'; + setHttpCacheEnv(); + const urls: string[] = []; + vi.stubGlobal( + 'fetch', + vi.fn((input: RequestInfo | URL) => { + urls.push(input.toString()); + return Response.json({ hit: true, value: 'route-cache' }); + }) + ); + + const cache = (await import('@/utils/cache')).default; + + await expect(cache.globalCache.get('route/key')).resolves.toBe('route-cache'); + + expect(cache.status.available).toBe(true); + expect(urls[0]).not.toContain('?refresh=1'); + }); +}); diff --git a/lib/utils/cache/http.ts b/lib/utils/cache/http.ts new file mode 100644 index 000000000000..07e642c68ad4 --- /dev/null +++ b/lib/utils/cache/http.ts @@ -0,0 +1,173 @@ +import { config } from '@/config'; +import logger from '@/utils/logger'; +import md5 from '@/utils/md5'; + +import type CacheModule from './base'; + +type CacheHitResponse = { + hit: true; + value: string; +}; + +const status = { available: false }; + +let baseUrl: string | undefined; +let apiToken: string | undefined; + +const toRemoteKey = (key: string) => `rsshub:http-cache:${md5(key)}`; + +const cacheUrl = (key: string, refresh = false) => { + const url = `${baseUrl}/v1/cache/${encodeURIComponent(toRemoteKey(key))}`; + return refresh ? `${url}?refresh=1` : url; +}; + +const requestSignal = () => (typeof AbortSignal.timeout === 'function' ? AbortSignal.timeout(config.requestTimeout) : undefined); + +const request = async (url: string, init: Omit = {}, headers: Record = {}) => { + if (!status.available || !apiToken) { + return null; + } + + try { + return await fetch(url, { + ...init, + headers: { + authorization: `Bearer ${apiToken}`, + ...headers, + }, + signal: requestSignal(), + }); + } catch (error) { + logger.error('HTTP cache request failed:', error); + return null; + } +}; + +const readResponseText = async (response: Response) => { + try { + return await response.text(); + } catch { + return ''; + } +}; + +const readCacheHitResponse = async (response: Response) => { + try { + return (await response.json()) as CacheHitResponse; + } catch { + return null; + } +}; + +const logUnexpectedResponse = async (operation: string, response: Response) => { + const message = await readResponseText(response); + logger.error(`HTTP cache ${operation} failed with status ${response.status}${message ? `: ${message}` : ''}`); + + if (response.status === 401) { + status.available = false; + } +}; + +export default { + init: () => { + baseUrl = config.httpCache.url?.replace(/\/+$/, ''); + apiToken = config.httpCache.token; + + if (!baseUrl || !apiToken) { + status.available = false; + logger.error('HTTP cache requires CACHE_HTTP_URL and CACHE_HTTP_TOKEN.'); + return; + } + + try { + new URL(baseUrl); + } catch { + status.available = false; + logger.error('HTTP cache URL is invalid.'); + return; + } + + status.available = true; + logger.info('HTTP cache configured.'); + }, + get: async (key: string, refresh = true) => { + if (!key) { + return null; + } + + const response = await request(cacheUrl(key, refresh), { method: 'GET' }); + if (!response) { + return null; + } + + if (response.status === 404) { + return ''; + } + + if (!response.ok) { + await logUnexpectedResponse('get', response); + return null; + } + + const data = await readCacheHitResponse(response); + if (data?.hit === true && typeof data.value === 'string') { + return data.value; + } + + logger.error('HTTP cache get returned an invalid response.'); + return null; + }, + has: async (key: string) => { + if (!key) { + return false; + } + + const response = await request(cacheUrl(key), { method: 'HEAD' }); + if (!response) { + return false; + } + + if (response.status === 204) { + return true; + } + + if (response.status === 404) { + return false; + } + + await logUnexpectedResponse('has', response); + return false; + }, + set: async (key: string, value?: string | Record, maxAge = config.cache.contentExpire) => { + if (!key) { + return; + } + + if (!value || value === 'undefined') { + value = ''; + } + if (typeof value === 'object') { + value = JSON.stringify(value); + } + + const response = await request( + cacheUrl(key), + { + method: 'PUT', + body: JSON.stringify({ + ttl: maxAge, + value, + }), + }, + { + 'content-type': 'application/json', + } + ); + + if (response && response.status !== 204) { + await logUnexpectedResponse('set', response); + } + }, + clients: {}, + status, +} as CacheModule; diff --git a/lib/utils/cache/index.ts b/lib/utils/cache/index.ts index 17e329700548..4d8a04fe6df7 100644 --- a/lib/utils/cache/index.ts +++ b/lib/utils/cache/index.ts @@ -3,6 +3,7 @@ import { isWorker } from '@/utils/is-worker'; import logger from '@/utils/logger'; import type CacheModule from './base'; +import http from './http'; import memory from './memory'; import redis from './redis'; @@ -16,76 +17,96 @@ const globalCache: { set: () => null, }; -let cacheModule: CacheModule; +const noopCacheModule: CacheModule = { + init: () => null, + get: () => null, + has: () => false, + set: () => null, + status: { + available: false, + }, + clients: {}, +}; + +let cacheModule: CacheModule = noopCacheModule; if (isWorker) { // No-op cache for Cloudflare Workers - cacheModule = { - init: () => null, - get: () => null, - has: () => false, - set: () => null, - status: { - available: false, - }, - clients: {}, - }; -} else if (config.cache.type === 'redis') { - cacheModule = redis; - cacheModule.init(); - const { redisClient } = cacheModule.clients; - globalCache.get = async (key) => { - if (key && cacheModule.status.available && redisClient) { - const value = await redisClient.get(key); - return value; - } - }; - globalCache.has = async (key) => { - if (key && cacheModule.status.available && redisClient) { - const result = await redisClient.exists(key); - return result > 0; - } - return false; - }; - globalCache.set = cacheModule.set; -} else if (config.cache.type === 'memory') { - cacheModule = memory; - cacheModule.init(); - const { memoryCache } = cacheModule.clients; - globalCache.get = (key) => { - if (key && cacheModule.status.available && memoryCache) { - return memoryCache.get(key, { updateAgeOnGet: false }) as string | undefined; - } - }; - globalCache.has = (key) => { - if (key && cacheModule.status.available && memoryCache) { - return memoryCache.has(key); - } - return false; - }; - globalCache.set = (key, value, maxAge = config.cache.routeExpire) => { - if (!value || value === 'undefined') { - value = ''; - } - if (typeof value === 'object') { - value = JSON.stringify(value); + cacheModule = noopCacheModule; +} else { + switch (config.cache.type) { + case 'redis': { + cacheModule = redis; + cacheModule.init(); + const { redisClient } = cacheModule.clients; + globalCache.get = async (key) => { + if (key && cacheModule.status.available && redisClient) { + const value = await redisClient.get(key); + return value; + } + }; + globalCache.has = async (key) => { + if (key && cacheModule.status.available && redisClient) { + const result = await redisClient.exists(key); + return result > 0; + } + return false; + }; + globalCache.set = cacheModule.set; + break; } - if (key && memoryCache) { - return memoryCache.set(key, value, { ttl: maxAge * 1000 }); + case 'http': + cacheModule = http; + cacheModule.init(); + globalCache.get = (key) => { + if (key && cacheModule.status.available) { + return cacheModule.get(key, false); + } + }; + globalCache.has = (key) => { + if (key && cacheModule.status.available) { + return cacheModule.has(key); + } + return false; + }; + globalCache.set = (key, value, maxAge = config.cache.routeExpire) => { + if (key && cacheModule.status.available) { + return cacheModule.set(key, value, maxAge); + } + }; + break; + case 'memory': { + cacheModule = memory; + cacheModule.init(); + const { memoryCache } = cacheModule.clients; + globalCache.get = (key) => { + if (key && cacheModule.status.available && memoryCache) { + return memoryCache.get(key, { updateAgeOnGet: false }) as string | undefined; + } + }; + globalCache.has = (key) => { + if (key && cacheModule.status.available && memoryCache) { + return memoryCache.has(key); + } + return false; + }; + globalCache.set = (key, value, maxAge = config.cache.routeExpire) => { + if (!value || value === 'undefined') { + value = ''; + } + if (typeof value === 'object') { + value = JSON.stringify(value); + } + if (key && memoryCache) { + return memoryCache.set(key, value, { ttl: maxAge * 1000 }); + } + }; + break; } - }; -} else { - cacheModule = { - init: () => null, - get: () => null, - has: () => false, - set: () => null, - status: { - available: false, - }, - clients: {}, - }; - logger.error('Cache not available, concurrent requests are not limited. This could lead to bad behavior.'); + default: + cacheModule = noopCacheModule; + logger.error('Cache not available, concurrent requests are not limited. This could lead to bad behavior.'); + } } // only give cache string, as the `!` condition tricky From af81ecac58c0f858ddb5a2fbfc650e5dea1a13a2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 Apr 2026 08:19:33 +0000 Subject: [PATCH 238/439] chore(deps): bump @scalar/hono-api-reference from 0.10.9 to 0.10.10 (#21817) Bumps [@scalar/hono-api-reference](https://github.com/scalar/scalar/tree/HEAD/integrations/hono) from 0.10.9 to 0.10.10. - [Release notes](https://github.com/scalar/scalar/releases) - [Changelog](https://github.com/scalar/scalar/blob/main/integrations/hono/CHANGELOG.md) - [Commits](https://github.com/scalar/scalar/commits/HEAD/integrations/hono) --- updated-dependencies: - dependency-name: "@scalar/hono-api-reference" dependency-version: 0.10.10 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 34 +++++++++++++++++----------------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index 481fc6382fb0..1f5ddc9f86c9 100644 --- a/package.json +++ b/package.json @@ -72,7 +72,7 @@ "@opentelemetry/sdk-trace-base": "2.7.0", "@opentelemetry/semantic-conventions": "1.40.0", "@rss3/sdk": "0.0.25", - "@scalar/hono-api-reference": "0.10.9", + "@scalar/hono-api-reference": "0.10.10", "@sentry/node": "10.49.0", "aes-js": "3.1.2", "cheerio": "1.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2ba92eaca36c..8db4f350b85c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -80,8 +80,8 @@ importers: specifier: 0.0.25 version: 0.0.25 '@scalar/hono-api-reference': - specifier: 0.10.9 - version: 0.10.9(hono@4.12.14) + specifier: 0.10.10 + version: 0.10.10(hono@4.12.14) '@sentry/node': specifier: 10.49.0 version: 10.49.0(@opentelemetry/exporter-trace-otlp-http@0.215.0(@opentelemetry/api@1.9.1)) @@ -2580,22 +2580,22 @@ packages: '@rss3/sdk@0.0.25': resolution: {integrity: sha512-jyXT4YTwefxxRZ0tt5xjbnw8e7zPg2OGdo/0xb+h/7qWnMNhLtWpc95DsYs/1C/I0rIyiDpZBhLI2DieQ9y+tw==} - '@scalar/client-side-rendering@0.1.2': - resolution: {integrity: sha512-gX2QIc+lpErO9RWkJmt02sBZoCOjyZ7EiLLEyGj7x9UKkk7E4zj6Wbk1eUPo6i3oIwhtZ+Vybj/xzexCK2bxwA==} + '@scalar/client-side-rendering@0.1.3': + resolution: {integrity: sha512-rUI5EQA8y0xivzqc/AwExZYW8HRfQSFxPxvvuLjHTCATpKz0xcQBGVJQIPOmp78NJyO8mnQmltE1AxIdtvdPGg==} engines: {node: '>=22'} - '@scalar/helpers@0.5.1': - resolution: {integrity: sha512-9VvPfv8b+YZVIFwR3SWeq4Y8ij/kU3/kf2M6NKcbf2iVyh63d8s0ssap5m/nOhiz/Puidv/29MAJlJCA0LRssA==} + '@scalar/helpers@0.5.2': + resolution: {integrity: sha512-Pi1GAl8jO6ungmGj2sjDfCfqiBNrKW6HXDZmminV94ybGU/KtRLOqHwd0n9FIhY3j0RYGpGC0VCuniCICfQPHg==} engines: {node: '>=22'} - '@scalar/hono-api-reference@0.10.9': - resolution: {integrity: sha512-XLsdXGp8ta7fjYgcwD8xyopsF5KfO5h1qJMoNTjb4Tm1giu+TEkH+m+aBS3cv5FN9LA91Uym8SLWJm8yhgkdOA==} + '@scalar/hono-api-reference@0.10.10': + resolution: {integrity: sha512-fAd+9UeCdF73O7kFFABNkBmpnrDRjX1wW94kgt+OHjqB5Uca4l0HvJTkh1O4k7afjsZx8VavA0x0FQ4Qgu9ZnQ==} engines: {node: '>=22'} peerDependencies: hono: ^4.12.5 - '@scalar/types@0.9.1': - resolution: {integrity: sha512-3EbkhtQc+XuDE8Ur1MPosM3YTACFIFNba4M3vGulqv8jcvhMXT+KWPvGUJxq0CDvySqjGa8cE6w85v8T+MjDng==} + '@scalar/types@0.9.2': + resolution: {integrity: sha512-aLn7QTHafpjrN/whup7U5/CHaoPPaYMNtz4L/2yfN5GDSy3AbDM7kV1q8s3nMQIhvC1uscxfriV+KhEND+xHvA==} engines: {node: '>=22'} '@scure/base@2.0.0': @@ -8224,20 +8224,20 @@ snapshots: '@rss3/api-core': 0.0.25 '@rss3/api-utils': 0.0.25 - '@scalar/client-side-rendering@0.1.2': + '@scalar/client-side-rendering@0.1.3': dependencies: - '@scalar/types': 0.9.1 + '@scalar/types': 0.9.2 - '@scalar/helpers@0.5.1': {} + '@scalar/helpers@0.5.2': {} - '@scalar/hono-api-reference@0.10.9(hono@4.12.14)': + '@scalar/hono-api-reference@0.10.10(hono@4.12.14)': dependencies: - '@scalar/client-side-rendering': 0.1.2 + '@scalar/client-side-rendering': 0.1.3 hono: 4.12.14 - '@scalar/types@0.9.1': + '@scalar/types@0.9.2': dependencies: - '@scalar/helpers': 0.5.1 + '@scalar/helpers': 0.5.2 nanoid: 5.1.9 type-fest: 5.6.0 zod: 4.3.6 From 6528dc0a2fb0bd62817367717879417a107e3a24 Mon Sep 17 00:00:00 2001 From: kjasn Date: Fri, 24 Apr 2026 18:59:58 +0800 Subject: [PATCH 239/439] feat: add token option for zaimanhua route (#21815) * feat: zaimanhua use cookie * feat: zaimanhua recent update and comic update add token option * Update lib/routes/zaimanhua/update.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- lib/config.ts | 8 +++++++- lib/routes/zaimanhua/comic.ts | 37 +++++++++++++++++++++------------- lib/routes/zaimanhua/update.ts | 31 ++++++++++++++++++---------- 3 files changed, 50 insertions(+), 26 deletions(-) diff --git a/lib/config.ts b/lib/config.ts index fea6a950ee1f..095457d681a2 100644 --- a/lib/config.ts +++ b/lib/config.ts @@ -241,6 +241,7 @@ type ConfigEnvKeys = | 'YOUTUBE_CLIENT_SECRET' | 'YOUTUBE_REFRESH_TOKEN' | 'YOUTUBE_VIDEO_EMBED_URL' + | 'ZAIMANHUA_TOKEN' | 'ZHIHU_COOKIES' | 'ZODGAME_COOKIE' | 'ZSXQ_ACCESS_TOKEN' @@ -692,6 +693,9 @@ export type Config = { refreshToken?: string; videoEmbedUrl?: string; }; + zaimanhua: { + token?: string; + }; zhihu: { cookies?: string; }; @@ -1192,6 +1196,9 @@ const calculateValue = () => { refreshToken: envs.YOUTUBE_REFRESH_TOKEN, videoEmbedUrl: envs.YOUTUBE_VIDEO_EMBED_URL || 'https://www.youtube-nocookie.com/embed/', }, + zaimanhua: { + token: envs.ZAIMANHUA_TOKEN, + }, zhihu: { cookies: envs.ZHIHU_COOKIES, }, @@ -1211,7 +1218,6 @@ const calculateValue = () => { } }; calculateValue(); - (async () => { if (envs.REMOTE_CONFIG) { const { default: logger } = await import('@/utils/logger'); diff --git a/lib/routes/zaimanhua/comic.ts b/lib/routes/zaimanhua/comic.ts index 227f1e400f11..420e9d527bde 100644 --- a/lib/routes/zaimanhua/comic.ts +++ b/lib/routes/zaimanhua/comic.ts @@ -12,9 +12,15 @@ export const route: Route = { path: '/comic/:id', categories: ['anime'], parameters: { id: '漫画ID' }, - example: '/zaimanhua/comic/14488', + example: '/zaimanhua/comic/57069', features: { - requireConfig: false, + requireConfig: [ + { + name: 'ZAIMANHUA_TOKEN', + optional: true, + description: '用户登录后,可以从浏览器开发者工具 Network 面板中的请求信息中获取 token,使用请求中的 `Authorization` 的值,完整设置为 `Bearer `,或直接设置 token 并由路由自动补齐 `Bearer ` 前缀。', + }, + ], requirePuppeteer: false, antiCrawler: false, supportBT: false, @@ -30,6 +36,9 @@ export const route: Route = { ], name: '漫画更新', maintainers: ['kjasn'], + description: `::: Warning +未登录用户无法获取到所有漫画,需要设置\`ZAIMANHUA_TOKEN\`环境变量以使用 API 授权访问。 +:::`, handler, }; @@ -38,12 +47,17 @@ async function handler(ctx) { const id = ctx.req.param('id'); const currentComicUrl = `${baseUrl}/api/v1/comic2/comic/detail?id=${id}`; - const response = await ofetch(currentComicUrl, { - headers: { - 'user-agent': config.trueUA, - referer: baseUrl, - }, - }); + const headers: Record = { + 'user-agent': config.trueUA, + referer: baseUrl, + }; + + const token = config.zaimanhua.token; + if (token) { + headers.Authorization = token.startsWith('Bearer ') ? token : `Bearer ${token}`; + } + + const response = await ofetch(currentComicUrl, { headers }); const comicInfo = response.data.comicInfo; const status = comicInfo.chapterList[0].title; // 更新状态 @@ -58,12 +72,7 @@ async function handler(ctx) { return await cache.tryGet(chapterUrl, async () => { // 获取章节内容 - const chapterResponse = await ofetch(chapterUrl, { - headers: { - 'user-agent': config.trueUA, - referer: baseUrl, - }, - }); + const chapterResponse = await ofetch(chapterUrl, { headers }); const chapterData = chapterResponse.data; const description = renderComic(chapterData.chapterInfo.page_url || []); diff --git a/lib/routes/zaimanhua/update.ts b/lib/routes/zaimanhua/update.ts index 32267ebb4649..a856183c3326 100644 --- a/lib/routes/zaimanhua/update.ts +++ b/lib/routes/zaimanhua/update.ts @@ -13,7 +13,13 @@ export const route: Route = { categories: ['anime'], example: '/zaimanhua/update', features: { - requireConfig: false, + requireConfig: [ + { + name: 'ZAIMANHUA_TOKEN', + optional: true, + description: '可从浏览器开发者工具中抓取站点请求头 `Authorization` 的 Bearer token,并配置为环境变量。可设置为完整值 `Bearer `,或仅设置 token 由路由自动补齐 `Bearer ` 前缀。', + }, + ], requirePuppeteer: false, antiCrawler: false, supportBT: false, @@ -29,15 +35,23 @@ export const route: Route = { ], name: '最近更新', maintainers: ['kjasn'], + description: `::: Warning +建议设置\`ZAIMANHUA_TOKEN\`环境变量以使用 API 授权访问。 +:::`, handler: async () => { const baseUrl = 'https://manhua.zaimanhua.com'; const currentUrl = `${baseUrl}/api/v1/comic2/update_list?status&theme&zone&cate&firstLetter&sortType&page=1&size=20`; + const headers: Record = { + 'user-agent': config.trueUA, + referer: baseUrl, + }; + const token = config.zaimanhua.token; + if (token) { + headers.Authorization = token.startsWith('Bearer ') ? token : `Bearer ${token}`; + } const response = await ofetch(currentUrl, { - headers: { - 'user-agent': config.trueUA, - referer: baseUrl, - }, + headers, }); // 近期更新漫画数据 @@ -53,12 +67,7 @@ export const route: Route = { return await cache.tryGet(chapterUrl, async () => { // 获取章节内容 - const chapterResponse = await ofetch(chapterUrl, { - headers: { - 'user-agent': config.trueUA, - referer: baseUrl, - }, - }); + const chapterResponse = await ofetch(chapterUrl, { headers }); const chapterData = chapterResponse.data; const description = renderComic(chapterData.chapterInfo.page_url || []); From 293c9cd8792aabb2ab7dc4911ce271ac90e1b4f1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 Apr 2026 19:03:25 +0800 Subject: [PATCH 240/439] chore(deps): bump re2js from 2.2.0 to 2.2.2 (#21816) Bumps [re2js](https://github.com/le0pard/re2js) from 2.2.0 to 2.2.2. - [Release notes](https://github.com/le0pard/re2js/releases) - [Commits](https://github.com/le0pard/re2js/compare/2.2.0...2.2.2) --- updated-dependencies: - dependency-name: re2js dependency-version: 2.2.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 1f5ddc9f86c9..455aff6a3d64 100644 --- a/package.json +++ b/package.json @@ -118,7 +118,7 @@ "puppeteer-real-browser": "1.4.4", "query-string": "9.3.1", "rate-limiter-flexible": "11.0.1", - "re2js": "2.2.0", + "re2js": "2.2.2", "rebrowser-puppeteer": "24.8.1", "rfc4648": "1.5.4", "rss-parser": "3.13.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8db4f350b85c..eb92353c7aa5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -218,8 +218,8 @@ importers: specifier: 11.0.1 version: 11.0.1 re2js: - specifier: 2.2.0 - version: 2.2.0 + specifier: 2.2.2 + version: 2.2.2 rebrowser-puppeteer: specifier: 24.8.1 version: 24.8.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10) @@ -5442,8 +5442,8 @@ packages: rate-limiter-flexible@11.0.1: resolution: {integrity: sha512-hvyCUefjRund2N6hro2H8Dql7OvB6+B3Qv2FLWWbdsdyQScXf4+N0tM0Bryz11awTtNxx6C1QbHYb1rCiAx7pA==} - re2js@2.2.0: - resolution: {integrity: sha512-IoEpLLg1dljnBkHzFwwHtCKJGEozP1/Qc2i2orS+QA7NNP7ZU3dy7Dzmc8sXlL9KcukZ3EB/go5h48GcF60SVQ==} + re2js@2.2.2: + resolution: {integrity: sha512-DM7coRnfIsNcb66VYpalw9KSWuCAH/l2lBaNgKs6W+Va+6pKup070hS35ysS7hDofHC8tSd5alZ4UpiP83F37w==} readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} @@ -11498,7 +11498,7 @@ snapshots: rate-limiter-flexible@11.0.1: {} - re2js@2.2.0: {} + re2js@2.2.2: {} readable-stream@3.6.2: dependencies: From 11a66114f50ae422c03680a48a1c57ef00d4e69e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 Apr 2026 19:20:48 +0800 Subject: [PATCH 241/439] chore(deps): bump devenv from `863b420` to `c873d21` (#21820) Bumps [devenv](https://github.com/cachix/devenv) from `863b420` to `c873d21`. - [Release notes](https://github.com/cachix/devenv/releases) - [Commits](https://github.com/cachix/devenv/compare/863b4204725efaeeb73811e376f928232b720646...c873d21f80b6b43f121258f5e6fd3b34afa7b930) --- updated-dependencies: - dependency-name: devenv dependency-version: c873d21f80b6b43f121258f5e6fd3b34afa7b930 dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 3bd737cfd9ee..0f4d019d1e9d 100644 --- a/flake.lock +++ b/flake.lock @@ -163,11 +163,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1776863933, - "narHash": "sha256-v9NoQFSln9n5zqVWUWUc9PajsMaGmga51HOAJqMx7Qw=", + "lastModified": 1776968239, + "narHash": "sha256-4kuGE6iwtCrd6BsGMvLBis8Bbn04c0V5T1Yt6Tmmtyc=", "owner": "cachix", "repo": "devenv", - "rev": "863b4204725efaeeb73811e376f928232b720646", + "rev": "c873d21f80b6b43f121258f5e6fd3b34afa7b930", "type": "github" }, "original": { From bd5f3a5b06c48b8b17073fa1cb5efb244178a427 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 24 Apr 2026 11:22:34 +0000 Subject: [PATCH 242/439] chore(nix): update dependencies hash to sha256-ek3LN43FqwmLGh4qk54DZ8FwZZs9DmUKVUPDzwKOj6c= --- flake.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flake.nix b/flake.nix index 5f850421f23a..953bb26a73f4 100644 --- a/flake.nix +++ b/flake.nix @@ -16,7 +16,7 @@ deps = pkgs.fetchPnpmDeps { pname = "rsshub"; src = ./.; - hash = "sha256-JSMYPsZo2shfh/f6yQ+dOujhSkS3Ras0DcOo378pej4="; + hash = "sha256-ek3LN43FqwmLGh4qk54DZ8FwZZs9DmUKVUPDzwKOj6c="; fetcherVersion = 2; }; in From bd31ae13ae4c5d987b9cd1888699a38762f08dcf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 Apr 2026 19:26:22 +0800 Subject: [PATCH 243/439] chore(deps): bump hono from 4.12.14 to 4.12.15 (#21819) Bumps [hono](https://github.com/honojs/hono) from 4.12.14 to 4.12.15. - [Release notes](https://github.com/honojs/hono/releases) - [Commits](https://github.com/honojs/hono/compare/v4.12.14...v4.12.15) --- updated-dependencies: - dependency-name: hono dependency-version: 4.12.15 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 34 +++++++++++++++++----------------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index 455aff6a3d64..ec408a17e709 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,7 @@ "google-play-scraper": "10.1.2", "googleapis": "171.4.0", "header-generator": "2.1.82", - "hono": "4.12.14", + "hono": "4.12.15", "html-to-text": "9.0.5", "http-cookie-agent": "7.0.3", "https-proxy-agent": "9.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index eb92353c7aa5..91346e15adb8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -45,10 +45,10 @@ importers: version: 6.12.3 '@hono/node-server': specifier: 2.0.0 - version: 2.0.0(hono@4.12.14) + version: 2.0.0(hono@4.12.15) '@hono/zod-openapi': specifier: 1.3.0 - version: 1.3.0(hono@4.12.14)(zod@4.3.6) + version: 1.3.0(hono@4.12.15)(zod@4.3.6) '@jocmp/mercury-parser': specifier: 3.0.7 version: 3.0.7 @@ -81,7 +81,7 @@ importers: version: 0.0.25 '@scalar/hono-api-reference': specifier: 0.10.10 - version: 0.10.10(hono@4.12.14) + version: 0.10.10(hono@4.12.15) '@sentry/node': specifier: 10.49.0 version: 10.49.0(@opentelemetry/exporter-trace-otlp-http@0.215.0(@opentelemetry/api@1.9.1)) @@ -131,8 +131,8 @@ importers: specifier: 2.1.82 version: 2.1.82 hono: - specifier: 4.12.14 - version: 4.12.14 + specifier: 4.12.15 + version: 4.12.15 html-to-text: specifier: 9.0.5 version: 9.0.5 @@ -4310,8 +4310,8 @@ packages: hmacsha1@1.0.0: resolution: {integrity: sha512-4FP6J0oI8jqb6gLLl9tSwVdosWJ/AKSGJ+HwYf6Ixe4MUcEkst4uWzpVQrNOCin0fzTRQbXV8ePheU8WiiDYBw==} - hono@4.12.14: - resolution: {integrity: sha512-am5zfg3yu6sqn5yjKBNqhnTX7Cv+m00ox+7jbaKkrLMRJ4rAdldd1xPd/JzbBWspqaQv6RSTrgFN95EsfhC+7w==} + hono@4.12.15: + resolution: {integrity: sha512-qM0jDhFEaCBb4TxoW7f53Qrpv9RBiayUHo0S52JudprkhvpjIrGoU1mnnr29Fvd1U335ZFPZQY1wlkqgfGXyLg==} engines: {node: '>=16.9.0'} hookable@6.1.1: @@ -7097,21 +7097,21 @@ snapshots: '@types/aws-lambda': 8.10.161 '@types/express': 5.0.6 - '@hono/node-server@2.0.0(hono@4.12.14)': + '@hono/node-server@2.0.0(hono@4.12.15)': dependencies: - hono: 4.12.14 + hono: 4.12.15 - '@hono/zod-openapi@1.3.0(hono@4.12.14)(zod@4.3.6)': + '@hono/zod-openapi@1.3.0(hono@4.12.15)(zod@4.3.6)': dependencies: '@asteasolutions/zod-to-openapi': 8.5.0(zod@4.3.6) - '@hono/zod-validator': 0.7.6(hono@4.12.14)(zod@4.3.6) - hono: 4.12.14 + '@hono/zod-validator': 0.7.6(hono@4.12.15)(zod@4.3.6) + hono: 4.12.15 openapi3-ts: 4.5.0 zod: 4.3.6 - '@hono/zod-validator@0.7.6(hono@4.12.14)(zod@4.3.6)': + '@hono/zod-validator@0.7.6(hono@4.12.15)(zod@4.3.6)': dependencies: - hono: 4.12.14 + hono: 4.12.15 zod: 4.3.6 '@humanfs/core@0.19.2': @@ -8230,10 +8230,10 @@ snapshots: '@scalar/helpers@0.5.2': {} - '@scalar/hono-api-reference@0.10.10(hono@4.12.14)': + '@scalar/hono-api-reference@0.10.10(hono@4.12.15)': dependencies: '@scalar/client-side-rendering': 0.1.3 - hono: 4.12.14 + hono: 4.12.15 '@scalar/types@0.9.2': dependencies: @@ -10128,7 +10128,7 @@ snapshots: hmacsha1@1.0.0: {} - hono@4.12.14: {} + hono@4.12.15: {} hookable@6.1.1: {} From 0ddea9ef8695d97a72aec558f04880e84dff4bfd Mon Sep 17 00:00:00 2001 From: Tony Date: Fri, 24 Apr 2026 19:39:30 +0800 Subject: [PATCH 244/439] fix(route): apple apps (#21824) --- lib/routes/apple/apps.ts | 14 ++++++-------- lib/routes/apple/utils.ts | 26 -------------------------- lib/routes/appstore/in-app-purchase.ts | 6 ++---- 3 files changed, 8 insertions(+), 38 deletions(-) delete mode 100644 lib/routes/apple/utils.ts diff --git a/lib/routes/apple/apps.ts b/lib/routes/apple/apps.ts index c9fd61023c3c..c782652a3653 100644 --- a/lib/routes/apple/apps.ts +++ b/lib/routes/apple/apps.ts @@ -3,8 +3,6 @@ import { ViewType } from '@/types'; import ofetch from '@/utils/ofetch'; import { parseDate } from '@/utils/parse-date'; -import { appstoreBearerToken } from './utils'; - const platformIds = { osx: 'macOS', ios: 'iOS', @@ -87,20 +85,20 @@ async function handler(ctx) { const rootUrl = 'https://apps.apple.com'; const currentUrl = new URL(`${country}/app/${id}`, rootUrl).href; - const bearer = await appstoreBearerToken(); - - const response = await ofetch(`https://amp-api-edge.apps.apple.com/v1/catalog/${country}/apps/${id.replace('id', '')}`, { + const response = await ofetch(`https://apps.apple.com/api/apps/v1/catalog/${country}/apps/${id.replace('id', '')}`, { headers: { - authorization: `Bearer ${bearer}`, + authorization: 'Bearer', origin: 'https://apps.apple.com', }, query: { platform: 'iphone', additionalPlatforms: 'appletv,ipad,iphone,mac,realityDevice,watch', - extend: 'accessibility,accessibilityDetails,ageRating,backgroundAssetsInfo,backgroundAssetsInfoWithOptional,customArtwork,customDeepLink,customIconArtwork,customPromotionalText,customScreenshotsByType,customVideoPreviewsByType,description,expectedReleaseDateDisplayFormat,fileSizeByDevice,gameDisplayName,iconArtwork,installSizeByDeviceInBytes,messagesScreenshots,miniGamesDeepLink,minimumOSVersion,privacy,privacyDetails,privacyPolicyUrl,remoteControllerRequirement,requirementsByDeviceFamily,supportURLForLanguage,supportedGameCenterFeatures,supportsFunCamera,supportsSharePlay,versionHistory,websiteUrl', + extend: 'accessibility,accessibilityDetails,ageRating,backgroundAssetsInfo,backgroundAssetsInfoWithOptional,customArtwork,customDeepLink,customIconArtwork,customPromotionalText,customScreenshotsByType,customVideoPreviewsByType,description,expectedReleaseDateDisplayFormat,fileSizeByDevice,gameDisplayName,iconArtwork,installSizeByDeviceInBytes,macRequiredCapabilities,medicalDeviceInfo,messagesScreenshots,miniGamesDeepLink,minimumOSVersion,privacy,privacyDetails,privacyPolicyUrl,remoteControllerRequirement,requirementsByDeviceFamily,supportURLForLanguage,supportedGameCenterFeatures,supportsFunCamera,supportsSharePlay,versionHistory,websiteUrl', + 'extend[apps]': 'distributionKind,isVerifiedForAppleSiliconMac', 'extend[app-events]': 'description,productArtwork,productVideo', - include: 'alternate-apps,app-bundles,customers-also-bought-apps,developer,developer-other-apps,merchandised-in-apps,related-editorial-items,reviews,top-in-apps', + include: 'alternate-apps,app-bundles,customers-also-bought-apps,developer,developer-other-apps,merchandised-in-apps,related-editorial-items,reviews', 'include[apps]': 'app-events', + views: 'top-in-app-purchasables', 'availableIn[app-events]': 'future', 'sparseLimit[apps:customers-also-bought-apps]': 40, 'sparseLimit[apps:developer-other-apps]': 40, diff --git a/lib/routes/apple/utils.ts b/lib/routes/apple/utils.ts deleted file mode 100644 index 04cbf4b86776..000000000000 --- a/lib/routes/apple/utils.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { load } from 'cheerio'; - -import { config } from '@/config'; -import cache from '@/utils/cache'; -import ofetch from '@/utils/ofetch'; - -// App Store and Podcast use different bearer tokens -export const appstoreBearerToken = () => - cache.tryGet( - 'apple:podcast:bearer', - async () => { - const baseUrl = 'https://apps.apple.com'; - const response = await ofetch(`${baseUrl}/us/iphone/today`); - const $ = load(response); - - const moduleAddress = new URL($('head script[type="module"]').attr('src'), baseUrl).href; - const modulesResponse = await ofetch(moduleAddress, { - parseResponse: (txt) => txt, - }); - const bearerToken = modulesResponse.match(/="(eyJhbGci.*?)"/)[1]; - - return bearerToken as string; - }, - config.cache.contentExpire, - false - ); diff --git a/lib/routes/appstore/in-app-purchase.ts b/lib/routes/appstore/in-app-purchase.ts index 94688010f0c4..6e1ef782539f 100644 --- a/lib/routes/appstore/in-app-purchase.ts +++ b/lib/routes/appstore/in-app-purchase.ts @@ -1,6 +1,5 @@ import { load } from 'cheerio'; -import { appstoreBearerToken } from '@/routes/apple/utils'; import type { Route } from '@/types'; import ofetch from '@/utils/ofetch'; @@ -33,11 +32,10 @@ async function handler(ctx) { const res = await ofetch(link); const $ = load(res); const lang = $('html').attr('lang'); - const mediaToken = await appstoreBearerToken(); - const apiResponse = await ofetch(`https://amp-api-edge.apps.apple.com/v1/catalog/${country}/apps/${id.replace('id', '')}`, { + const apiResponse = await ofetch(`https://apps.apple.com/api/apps/v1/catalog/${country}/apps/${id.replace('id', '')}`, { headers: { - authorization: `Bearer ${mediaToken}`, + authorization: 'Bearer', origin: 'https://apps.apple.com', }, query: { From 7602dd22d2b8c6aca4005c4761da071a22eb7177 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 Apr 2026 23:39:11 +0800 Subject: [PATCH 245/439] chore(deps): bump @sentry/node from 10.49.0 to 10.50.0 (#21818) Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 10.49.0 to 10.50.0. - [Release notes](https://github.com/getsentry/sentry-javascript/releases) - [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-javascript/compare/10.49.0...10.50.0) --- updated-dependencies: - dependency-name: "@sentry/node" dependency-version: 10.50.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 90 +++++++++++++++++++++----------------------------- 2 files changed, 38 insertions(+), 54 deletions(-) diff --git a/package.json b/package.json index ec408a17e709..efa8eb3ab04b 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,7 @@ "@opentelemetry/semantic-conventions": "1.40.0", "@rss3/sdk": "0.0.25", "@scalar/hono-api-reference": "0.10.10", - "@sentry/node": "10.49.0", + "@sentry/node": "10.50.0", "aes-js": "3.1.2", "cheerio": "1.2.0", "city-timezones": "1.3.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 91346e15adb8..ab7ae898a2b1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -83,8 +83,8 @@ importers: specifier: 0.10.10 version: 0.10.10(hono@4.12.15) '@sentry/node': - specifier: 10.49.0 - version: 10.49.0(@opentelemetry/exporter-trace-otlp-http@0.215.0(@opentelemetry/api@1.9.1)) + specifier: 10.50.0 + version: 10.50.0(@opentelemetry/exporter-trace-otlp-http@0.215.0(@opentelemetry/api@1.9.1)) aes-js: specifier: 3.1.2 version: 3.1.2 @@ -1862,12 +1862,6 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-undici@0.24.0': - resolution: {integrity: sha512-oKzZ3uvqP17sV0EsoQcJgjEfIp0kiZRbYu/eD8p13Cbahumf8lb/xpYeNr/hfAJ4owzEtIDcGIjprfLcYbIKBQ==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.7.0 - '@opentelemetry/instrumentation@0.207.0': resolution: {integrity: sha512-y6eeli9+TLKnznrR8AZlQMSJT7wILpXH+6EYq5Vf/4Ao+huI7EedxQHwRgVUOMLFbe7VFDvHJrX9/f4lcwnJsA==} engines: {node: ^18.19.0 || >=20.6.0} @@ -1898,8 +1892,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/redis-common@0.38.2': - resolution: {integrity: sha512-1BCcU93iwSRZvDAgwUxC/DV4T/406SkMfxGqu5ojc3AvNI+I9GhV7v0J1HljsczuuhcnFLYqD5VmwVXfCGHzxA==} + '@opentelemetry/redis-common@0.38.3': + resolution: {integrity: sha512-VCghU1JYs/4gP6Gqf/xro9MEsZ7LrMv2uONVsaESKL38ZOB9BqnI98FfS23wjMnHlpuE+TTaWSoAVNpTwYXzjw==} engines: {node: ^18.19.0 || >=20.6.0} '@opentelemetry/resources@2.7.0': @@ -2607,12 +2601,12 @@ packages: '@selderee/plugin-htmlparser2@0.11.0': resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==} - '@sentry/core@10.49.0': - resolution: {integrity: sha512-UaFeum3LUM1mB0d67jvKnqId1yWQjyqmaDV6kWngG03x+jqXb08tJdGpSoxjXZe13jFBbiBL/wKDDYIK7rCK4g==} + '@sentry/core@10.50.0': + resolution: {integrity: sha512-J4A+vzUO3adl0TkFCjaN1+4miamrjHiEIYuLHiuu1lmAjq5WIVw32ObvAh4yMwNtxyaEMosTrrh5M6f12XSJFg==} engines: {node: '>=18'} - '@sentry/node-core@10.49.0': - resolution: {integrity: sha512-7WO0KuCDPSq3G54TVUSI1CKFJwB67LasG+n/gDMBqbrarzs/Yh/s34OOMU5gfVQpncxQAmQsy4nEboQms8iNqA==} + '@sentry/node-core@10.50.0': + resolution: {integrity: sha512-Eb1BYf4Lc7ZYmdX3acKP6SgyGikrBA370gbGHaWI5jRu7G7vig8sIu1ghPmY5AlvqBPOetado7GniXr6fAXbTw==} engines: {node: '>=18'} peerDependencies: '@opentelemetry/api': ^1.9.0 @@ -2635,12 +2629,12 @@ packages: '@opentelemetry/semantic-conventions': optional: true - '@sentry/node@10.49.0': - resolution: {integrity: sha512-xr+HXABCiO5mgAJRQxsXRdNOLO0+Ee6CvXAAIqovL2A1GlhxNWc5ooPWeIrrLDJ/KGyT8zI91O5scpVXdXs0uQ==} + '@sentry/node@10.50.0': + resolution: {integrity: sha512-TvwzFQu8MGKzMQ2/tqxcNzFA8UG2kKTB+GDmA4uOzx3+GT849YZRRSJzEXCmYhk1teVd2fbmgqyYY2nyLF5a+Q==} engines: {node: '>=18'} - '@sentry/opentelemetry@10.49.0': - resolution: {integrity: sha512-XNLm4dXmtegXQf+EEE2Cs84Ymlo/f5wMx+lg2S2XS4qLbXaPN/HttjhwKftd8D+8iUNfmH+xNMCSshx4s1B/1w==} + '@sentry/opentelemetry@10.50.0': + resolution: {integrity: sha512-axn3pgDPveGdaMUC0abMCmFN7ux2pA5ebPufCef4lMIsyg7BBQvaEJ+vE19wjstMaBCAJGsdZlL3eeP2rtgRMw==} engines: {node: '>=18'} peerDependencies: '@opentelemetry/api': ^1.9.0 @@ -7079,7 +7073,7 @@ snapshots: '@fastify/otel@0.18.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation': 0.212.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 minimatch: 10.2.5 @@ -7531,7 +7525,7 @@ snapshots: '@opentelemetry/instrumentation-amqplib@0.61.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 transitivePeerDependencies: @@ -7540,7 +7534,7 @@ snapshots: '@opentelemetry/instrumentation-connect@0.57.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 '@types/connect': 3.4.38 @@ -7557,7 +7551,7 @@ snapshots: '@opentelemetry/instrumentation-fs@0.33.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) transitivePeerDependencies: - supports-color @@ -7579,7 +7573,7 @@ snapshots: '@opentelemetry/instrumentation-hapi@0.60.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 transitivePeerDependencies: @@ -7599,7 +7593,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.1 '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) - '@opentelemetry/redis-common': 0.38.2 + '@opentelemetry/redis-common': 0.38.3 '@opentelemetry/semantic-conventions': 1.40.0 transitivePeerDependencies: - supports-color @@ -7623,7 +7617,7 @@ snapshots: '@opentelemetry/instrumentation-koa@0.62.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 transitivePeerDependencies: @@ -7647,7 +7641,7 @@ snapshots: '@opentelemetry/instrumentation-mongoose@0.60.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 transitivePeerDependencies: @@ -7674,7 +7668,7 @@ snapshots: '@opentelemetry/instrumentation-pg@0.66.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 '@opentelemetry/sql-common': 0.41.2(@opentelemetry/api@1.9.1) @@ -7687,7 +7681,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.1 '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) - '@opentelemetry/redis-common': 0.38.2 + '@opentelemetry/redis-common': 0.38.3 '@opentelemetry/semantic-conventions': 1.40.0 transitivePeerDependencies: - supports-color @@ -7701,15 +7695,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-undici@0.24.0(@opentelemetry/api@1.9.1)': - dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.40.0 - transitivePeerDependencies: - - supports-color - '@opentelemetry/instrumentation@0.207.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 @@ -7754,7 +7739,7 @@ snapshots: '@opentelemetry/sdk-trace-base': 2.7.0(@opentelemetry/api@1.9.1) protobufjs: 8.0.1 - '@opentelemetry/redis-common@0.38.2': {} + '@opentelemetry/redis-common@0.38.3': {} '@opentelemetry/resources@2.7.0(@opentelemetry/api@1.9.1)': dependencies: @@ -7788,7 +7773,7 @@ snapshots: '@opentelemetry/sql-common@0.41.2(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) '@ota-meshi/ast-token-store@0.3.0': {} @@ -8251,26 +8236,26 @@ snapshots: domhandler: 5.0.3 selderee: 0.11.0 - '@sentry/core@10.49.0': {} + '@sentry/core@10.50.0': {} - '@sentry/node-core@10.49.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/exporter-trace-otlp-http@0.215.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0)': + '@sentry/node-core@10.50.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/exporter-trace-otlp-http@0.215.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0)': dependencies: - '@sentry/core': 10.49.0 - '@sentry/opentelemetry': 10.49.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) + '@sentry/core': 10.50.0 + '@sentry/opentelemetry': 10.50.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) import-in-the-middle: 3.0.1 optionalDependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) '@opentelemetry/exporter-trace-otlp-http': 0.215.0(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) '@opentelemetry/sdk-trace-base': 2.7.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 - '@sentry/node@10.49.0(@opentelemetry/exporter-trace-otlp-http@0.215.0(@opentelemetry/api@1.9.1))': + '@sentry/node@10.50.0(@opentelemetry/exporter-trace-otlp-http@0.215.0(@opentelemetry/api@1.9.1))': dependencies: '@fastify/otel': 0.18.0(@opentelemetry/api@1.9.1) '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation-amqplib': 0.61.0(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation-connect': 0.57.0(@opentelemetry/api@1.9.1) @@ -8292,25 +8277,24 @@ snapshots: '@opentelemetry/instrumentation-pg': 0.66.0(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation-redis': 0.62.0(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation-tedious': 0.33.0(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation-undici': 0.24.0(@opentelemetry/api@1.9.1) '@opentelemetry/sdk-trace-base': 2.7.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 '@prisma/instrumentation': 7.6.0(@opentelemetry/api@1.9.1) - '@sentry/core': 10.49.0 - '@sentry/node-core': 10.49.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/exporter-trace-otlp-http@0.215.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) - '@sentry/opentelemetry': 10.49.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) + '@sentry/core': 10.50.0 + '@sentry/node-core': 10.50.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/exporter-trace-otlp-http@0.215.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) + '@sentry/opentelemetry': 10.50.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) import-in-the-middle: 3.0.1 transitivePeerDependencies: - '@opentelemetry/exporter-trace-otlp-http' - supports-color - '@sentry/opentelemetry@10.49.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0)': + '@sentry/opentelemetry@10.50.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) '@opentelemetry/sdk-trace-base': 2.7.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 - '@sentry/core': 10.49.0 + '@sentry/core': 10.50.0 '@sindresorhus/is@4.6.0': {} From 2ead222fbc235f9faa23bca90802fb916853f2bb Mon Sep 17 00:00:00 2001 From: Tony Date: Sat, 25 Apr 2026 20:18:54 +0800 Subject: [PATCH 246/439] chore: auto close broken PR --- .github/workflows/docker-test-cont.yml | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/.github/workflows/docker-test-cont.yml b/.github/workflows/docker-test-cont.yml index 359886e04826..104eb9326991 100644 --- a/.github/workflows/docker-test-cont.yml +++ b/.github/workflows/docker-test-cont.yml @@ -28,7 +28,7 @@ jobs: # Query the PR number by repo + branch, then assign to step output: run: | gh api "repos/${PR_TARGET_REPO}/pulls" \ - --method GET -f head="${PR_BRANCH}" -f state=open \ + --method GET -f head="${PR_BRANCH}" -f state=all \ --jq '.[0] | "number=\(.number)"' \ >> "${GITHUB_OUTPUT}" @@ -172,8 +172,8 @@ jobs: # Query the PR number by repo + branch, then assign to step output: run: | gh api "repos/${PR_TARGET_REPO}/pulls" \ - --method GET -f head="${PR_BRANCH}" -f state=open \ - --jq '.[0] | "number=\(.number)"' \ + --method GET -f head="${PR_BRANCH}" -f state=all \ + --jq '.[0] | "number=\(.number)\nauthor_association=\(.author_association)"' \ >> "${GITHUB_OUTPUT}" - name: Pull Request Labeler @@ -183,3 +183,11 @@ jobs: token: ${{ secrets.GITHUB_TOKEN }} issue-number: ${{ steps.source-run-info.outputs.number }} labels: 'auto: DO NOT merge' + + - name: Close broken PR + if: ${{ steps.source-run-info.outputs.author_association != 'OWNER' && steps.source-run-info.outputs.author_association != 'COLLABORATOR' && steps.source-run-info.outputs.author_association != 'MEMBER' }} + uses: actions-cool/issues-helper@200c78641dbf33838311e5a1e0c31bbdb92d7cf0 # v3.8.0 + with: + actions: 'close-issue' + token: ${{ secrets.GITHUB_TOKEN }} + issue-number: ${{ steps.source-run-info.outputs.number }} From be87dfd52394604d57593eabc2221002eab23241 Mon Sep 17 00:00:00 2001 From: Volundio <37572185+Volundio@users.noreply.github.com> Date: Sat, 25 Apr 2026 20:21:21 +0800 Subject: [PATCH 247/439] docs: edit zaimanhua description. (#21829) --- lib/routes/zaimanhua/comic.ts | 1 + lib/routes/zaimanhua/update.ts | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/routes/zaimanhua/comic.ts b/lib/routes/zaimanhua/comic.ts index 420e9d527bde..752525fab48e 100644 --- a/lib/routes/zaimanhua/comic.ts +++ b/lib/routes/zaimanhua/comic.ts @@ -38,6 +38,7 @@ export const route: Route = { maintainers: ['kjasn'], description: `::: Warning 未登录用户无法获取到所有漫画,需要设置\`ZAIMANHUA_TOKEN\`环境变量以使用 API 授权访问。 +且由于源网站本身的限制,建议尽量在部署于中国大陆网络内的 RSSHub 节点中使用本路由。若在海外网络环境中使用,即使设置了\`ZAIMANHUA_TOKEN\`环境变量,也可能无法获取全部漫画。 :::`, handler, }; diff --git a/lib/routes/zaimanhua/update.ts b/lib/routes/zaimanhua/update.ts index a856183c3326..fd166a1f1108 100644 --- a/lib/routes/zaimanhua/update.ts +++ b/lib/routes/zaimanhua/update.ts @@ -36,7 +36,7 @@ export const route: Route = { name: '最近更新', maintainers: ['kjasn'], description: `::: Warning -建议设置\`ZAIMANHUA_TOKEN\`环境变量以使用 API 授权访问。 +建议设置\`ZAIMANHUA_TOKEN\`环境变量以使用 API 授权访问。且由于源网站本身的限制,建议尽量在部署于中国大陆网络内的 RSSHub 节点中使用本路由。若在海外网络环境中使用,即使设置了\`ZAIMANHUA_TOKEN\`环境变量,也可能无法获取全部漫画。 :::`, handler: async () => { const baseUrl = 'https://manhua.zaimanhua.com'; From 7c6fe1c854a74dff6fc1c395e1c75f45caa59a52 Mon Sep 17 00:00:00 2001 From: Tony Date: Sat, 25 Apr 2026 20:39:07 +0800 Subject: [PATCH 248/439] chore: auto close broken PR Co-authored-by: Copilot --- .github/workflows/stale.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index dbb88ca6ff90..33c12c4e41d3 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -3,6 +3,7 @@ name: 'Close stale issues and PRs' on: schedule: - cron: '31 23 * * *' + workflow_dispatch: permissions: issues: write @@ -25,6 +26,19 @@ jobs: exempt-issue-labels: 'wait for upstream' exempt-pr-labels: 'wait for upstream' any-of-issue-labels: 'more data required' + + - name: Close Broken PRs + uses: actions/stale@b5d41d4e1d5dceea10e7104786b73624c18a190f # v10.2.0 + with: + days-before-issue-stale: -1 + days-before-issue-close: -1 + days-before-pr-stale: 1 + days-before-pr-close: 0 + only-pr-labels: 'auto: DO NOT merge' + stale-pr-label: 'Stale' + remove-pr-stale-when-updated: true + close-pr-message: > + This PR is being auto-closed because it has a broken Docker build without any fixes. Push a fix and reopen when ready. lock: runs-on: ubuntu-slim steps: From 5b4fe8e68de4015dcaa10a8ca2fa5f644a394e7e Mon Sep 17 00:00:00 2001 From: Lukas Wolfsteiner Date: Sun, 26 Apr 2026 21:04:25 +0200 Subject: [PATCH 249/439] feat(route): add user likes activity for Hugging Face (#21838) Introduces a new route to fetch and display user likes activity from Hugging Face, including links to liked repositories and their types. The route is accessible via '/activity/:user/likes' and supports various repository types such as datasets, spaces, papers, and collections. This is done by parsing the JSON provided through the HuggingFace API. E.g.: `https://huggingface.co/api/users/dotwee/likes` --- lib/routes/huggingface/user-likes.ts | 80 ++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 lib/routes/huggingface/user-likes.ts diff --git a/lib/routes/huggingface/user-likes.ts b/lib/routes/huggingface/user-likes.ts new file mode 100644 index 000000000000..173292853436 --- /dev/null +++ b/lib/routes/huggingface/user-likes.ts @@ -0,0 +1,80 @@ +import type { Route } from '@/types'; +import ofetch from '@/utils/ofetch'; +import { parseDate } from '@/utils/parse-date'; + +interface LikedRepo { + name: string; + type: string; +} + +interface UserLike { + createdAt: string; + repo: LikedRepo; +} + +const getRepoLink = (repo: LikedRepo): string => { + switch (repo.type) { + case 'dataset': + return `https://huggingface.co/datasets/${repo.name}`; + case 'space': + return `https://huggingface.co/spaces/${repo.name}`; + case 'paper': + return `https://huggingface.co/papers/${repo.name}`; + case 'collection': + return `https://huggingface.co/collections/${repo.name}`; + default: + return `https://huggingface.co/${repo.name}`; + } +}; + +export const route: Route = { + path: '/activity/:user/likes', + categories: ['programming'], + example: '/huggingface/activity/dotwee/likes', + parameters: { + user: 'Hugging Face username', + }, + features: { + requireConfig: false, + requirePuppeteer: false, + antiCrawler: false, + supportBT: false, + supportPodcast: false, + supportScihub: false, + }, + radar: [ + { + source: ['huggingface.co/:user/activity/likes'], + target: '/activity/:user/likes', + }, + ], + name: 'User Likes Activity', + maintainers: ['dotwee'], + handler, + url: 'huggingface.co', +}; + +async function handler(ctx) { + const { user } = ctx.req.param(); + const link = `https://huggingface.co/${user}/activity/likes`; + + const likes = await ofetch(`https://huggingface.co/api/users/${user}/likes`); + + const items = likes.map((like) => { + const repoType = like.repo.type || 'model'; + + return { + title: `${user} liked ${like.repo.name}`, + link: getRepoLink(like.repo), + description: `${user} liked this ${repoType}.`, + category: [repoType], + pubDate: parseDate(like.createdAt), + }; + }); + + return { + title: `${user} - Likes Activity`, + link, + item: items, + }; +} From 37ddfe9497df714517a8cfd799af19b2704c2484 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Apr 2026 08:50:44 +0000 Subject: [PATCH 250/439] chore(deps): bump re2js from 2.2.2 to 2.2.3 (#21842) Bumps [re2js](https://github.com/le0pard/re2js) from 2.2.2 to 2.2.3. - [Release notes](https://github.com/le0pard/re2js/releases) - [Commits](https://github.com/le0pard/re2js/compare/2.2.2...2.2.3) --- updated-dependencies: - dependency-name: re2js dependency-version: 2.2.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 22 ++++++++++++++++------ 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index efa8eb3ab04b..97fdf7d24f3f 100644 --- a/package.json +++ b/package.json @@ -118,7 +118,7 @@ "puppeteer-real-browser": "1.4.4", "query-string": "9.3.1", "rate-limiter-flexible": "11.0.1", - "re2js": "2.2.2", + "re2js": "2.2.3", "rebrowser-puppeteer": "24.8.1", "rfc4648": "1.5.4", "rss-parser": "3.13.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ab7ae898a2b1..4b2f94a31d7d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -218,8 +218,8 @@ importers: specifier: 11.0.1 version: 11.0.1 re2js: - specifier: 2.2.2 - version: 2.2.2 + specifier: 2.2.3 + version: 2.2.3 rebrowser-puppeteer: specifier: 24.8.1 version: 24.8.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10) @@ -5309,6 +5309,10 @@ packages: resolution: {integrity: sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ==} engines: {node: ^10 || ^12 || >=14} + postcss@8.5.12: + resolution: {integrity: sha512-W62t/Se6rA0Az3DfCL0AqJwXuKwBeYg6nOaIgzP+xZ7N5BFCI7DYi1qs6ygUYT6rvfi6t9k65UMLJC+PHZpDAA==} + engines: {node: ^10 || ^12 || >=14} + postgres-array@2.0.0: resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} engines: {node: '>=4'} @@ -5436,8 +5440,8 @@ packages: rate-limiter-flexible@11.0.1: resolution: {integrity: sha512-hvyCUefjRund2N6hro2H8Dql7OvB6+B3Qv2FLWWbdsdyQScXf4+N0tM0Bryz11awTtNxx6C1QbHYb1rCiAx7pA==} - re2js@2.2.2: - resolution: {integrity: sha512-DM7coRnfIsNcb66VYpalw9KSWuCAH/l2lBaNgKs6W+Va+6pKup070hS35ysS7hDofHC8tSd5alZ4UpiP83F37w==} + re2js@2.2.3: + resolution: {integrity: sha512-knY6jtTYhe38js7At+qsP9+KL9/gy8ZC2G/jOF3ocqbqj3qGaafqxWtDIjous+trwztsPJj6ezCczUPRN7+6oA==} readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} @@ -11314,6 +11318,12 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + postcss@8.5.12: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + postgres-array@2.0.0: {} postgres-bytea@1.0.1: {} @@ -11482,7 +11492,7 @@ snapshots: rate-limiter-flexible@11.0.1: {} - re2js@2.2.2: {} + re2js@2.2.3: {} readable-stream@3.6.2: dependencies: @@ -12376,7 +12386,7 @@ snapshots: esbuild: 0.27.7 fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 - postcss: 8.5.10 + postcss: 8.5.12 rollup: 4.60.2 tinyglobby: 0.2.16 optionalDependencies: From 9895f4f4ed12d041734c62d0274c4a6029d01b01 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Apr 2026 20:47:19 +0800 Subject: [PATCH 251/439] chore(deps): bump devenv from `c873d21` to `d31845d` (#21845) Bumps [devenv](https://github.com/cachix/devenv) from `c873d21` to `d31845d`. - [Release notes](https://github.com/cachix/devenv/releases) - [Commits](https://github.com/cachix/devenv/compare/c873d21f80b6b43f121258f5e6fd3b34afa7b930...d31845dd5d9573ed611686c1f368eb8af41010ee) --- updated-dependencies: - dependency-name: devenv dependency-version: d31845dd5d9573ed611686c1f368eb8af41010ee dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- flake.lock | 187 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 179 insertions(+), 8 deletions(-) diff --git a/flake.lock b/flake.lock index 0f4d019d1e9d..6be25c1bff2b 100644 --- a/flake.lock +++ b/flake.lock @@ -156,18 +156,19 @@ "crate2nix": "crate2nix", "flake-compat": "flake-compat_3", "flake-parts": "flake-parts_3", + "ghostty": "ghostty", "git-hooks": "git-hooks_3", "nix": "nix", "nixd": "nixd", - "nixpkgs": "nixpkgs_5", + "nixpkgs": "nixpkgs_6", "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1776968239, - "narHash": "sha256-4kuGE6iwtCrd6BsGMvLBis8Bbn04c0V5T1Yt6Tmmtyc=", + "lastModified": 1777273559, + "narHash": "sha256-k1yiflgtLJJAN0u1qlJC3gmf4rxnO+5U9rwVIlq3ebM=", "owner": "cachix", "repo": "devenv", - "rev": "c873d21f80b6b43f121258f5e6fd3b34afa7b930", + "rev": "d31845dd5d9573ed611686c1f368eb8af41010ee", "type": "github" }, "original": { @@ -265,6 +266,22 @@ "type": "github" } }, + "flake-compat_4": { + "flake": false, + "locked": { + "lastModified": 1761588595, + "narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, "flake-parts": { "inputs": { "nixpkgs-lib": [ @@ -333,7 +350,7 @@ }, "flake-utils": { "inputs": { - "systems": "systems" + "systems": "systems_2" }, "locked": { "lastModified": 1731533236, @@ -349,6 +366,30 @@ "type": "github" } }, + "ghostty": { + "inputs": { + "flake-compat": "flake-compat_4", + "home-manager": "home-manager", + "nixpkgs": "nixpkgs_4", + "systems": "systems", + "zig": "zig", + "zon2nix": "zon2nix" + }, + "locked": { + "lastModified": 1776365871, + "narHash": "sha256-lAFTUeJy7AT4V+t8/HlMM7O5z6W+G4eUhzRoh3ZdZu8=", + "owner": "cachix", + "repo": "ghostty", + "rev": "d882f9106d15c213239b8916083835263d4fb9bc", + "type": "github" + }, + "original": { + "owner": "cachix", + "ref": "cachix-upstream", + "repo": "ghostty", + "type": "github" + } + }, "git-hooks": { "inputs": { "flake-compat": [ @@ -555,6 +596,28 @@ "type": "github" } }, + "home-manager": { + "inputs": { + "nixpkgs": [ + "devenv", + "ghostty", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1770586272, + "narHash": "sha256-Ucci8mu8QfxwzyfER2DQDbvW9t1BnTUJhBmY7ybralo=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "b1f916ba052341edc1f80d4b2399f1092a4873ca", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, "nix": { "inputs": { "flake-compat": [ @@ -633,7 +696,7 @@ "devenv", "flake-parts" ], - "nixpkgs": "nixpkgs_4", + "nixpkgs": "nixpkgs_5", "treefmt-nix": "treefmt-nix" }, "locked": { @@ -729,6 +792,19 @@ } }, "nixpkgs_5": { + "locked": { + "lastModified": 1772963539, + "narHash": "sha256-G4+9cEu8XSqEWYUB6iRgDfrg53av6yyRwAKhSeKbUVw=", + "rev": "9dcb002ca1690658be4a04645215baea8b95f31d", + "type": "tarball", + "url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre960399.9dcb002ca169/nixexprs.tar.xz" + }, + "original": { + "type": "tarball", + "url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz" + } + }, + "nixpkgs_6": { "inputs": { "nixpkgs-src": "nixpkgs-src" }, @@ -747,7 +823,7 @@ "type": "github" } }, - "nixpkgs_6": { + "nixpkgs_7": { "locked": { "lastModified": 1776548001, "narHash": "sha256-ZSK0NL4a1BwVbbTBoSnWgbJy9HeZFXLYQizjb2DPF24=", @@ -825,7 +901,7 @@ "inputs": { "devenv": "devenv", "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs_6" + "nixpkgs": "nixpkgs_7" } }, "rust-overlay": { @@ -850,6 +926,22 @@ } }, "systems": { + "flake": false, + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_2": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -885,6 +977,85 @@ "repo": "treefmt-nix", "type": "github" } + }, + "zig": { + "inputs": { + "flake-compat": [ + "devenv", + "ghostty", + "flake-compat" + ], + "nixpkgs": [ + "devenv", + "ghostty", + "nixpkgs" + ], + "systems": [ + "devenv", + "ghostty", + "systems" + ] + }, + "locked": { + "lastModified": 1773145353, + "narHash": "sha256-dE8zx8WA54TRmFFQBvA48x/sXGDTP7YaDmY6nNKMAYw=", + "owner": "mitchellh", + "repo": "zig-overlay", + "rev": "8666155d83bf792956a7c40915508e6d4b2b8716", + "type": "github" + }, + "original": { + "owner": "mitchellh", + "repo": "zig-overlay", + "type": "github" + } + }, + "zig_2": { + "inputs": { + "nixpkgs": [ + "devenv", + "ghostty", + "zon2nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1776208985, + "narHash": "sha256-IOuRFpbeQ9jSk54OURX5yvjoC759ujgSNjkMKpChdDA=", + "ref": "refs/heads/main", + "rev": "e8ee348125247e7bd74932cc42ac92df90961d5b", + "revCount": 1666, + "type": "git", + "url": "https://codeberg.org/jcollie/zig-overlay.git" + }, + "original": { + "type": "git", + "url": "https://codeberg.org/jcollie/zig-overlay.git" + } + }, + "zon2nix": { + "inputs": { + "nixpkgs": [ + "devenv", + "ghostty", + "nixpkgs" + ], + "zig": "zig_2" + }, + "locked": { + "lastModified": 1776269939, + "narHash": "sha256-tOGsI1d1Xk1PYapQJ/ByG0utbWXJasIna/fUib+/b5A=", + "owner": "jcollie", + "repo": "zon2nix", + "rev": "cc467a77c2ebcd9aab84024196abfc37eaf1007d", + "type": "github" + }, + "original": { + "owner": "jcollie", + "ref": "main", + "repo": "zon2nix", + "type": "github" + } } }, "root": "root", From 866453bfda11b3faf7762b406befe5a46574525d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 27 Apr 2026 12:49:06 +0000 Subject: [PATCH 252/439] chore(nix): update dependencies hash to sha256-HO3OeUzttaFf/Z1rNgwYIqdSkuG1DTjbt0qgyVTWVDk= --- flake.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flake.nix b/flake.nix index 953bb26a73f4..dbb307c62adc 100644 --- a/flake.nix +++ b/flake.nix @@ -16,7 +16,7 @@ deps = pkgs.fetchPnpmDeps { pname = "rsshub"; src = ./.; - hash = "sha256-ek3LN43FqwmLGh4qk54DZ8FwZZs9DmUKVUPDzwKOj6c="; + hash = "sha256-HO3OeUzttaFf/Z1rNgwYIqdSkuG1DTjbt0qgyVTWVDk="; fetcherVersion = 2; }; in From 6c59d80fa20df991cf0df156897047d317389174 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Apr 2026 20:51:56 +0800 Subject: [PATCH 253/439] chore(deps): bump jsdom from 29.0.2 to 29.1.0 (#21843) Bumps [jsdom](https://github.com/jsdom/jsdom) from 29.0.2 to 29.1.0. - [Release notes](https://github.com/jsdom/jsdom/releases) - [Commits](https://github.com/jsdom/jsdom/compare/v29.0.2...v29.1.0) --- updated-dependencies: - dependency-name: jsdom dependency-version: 29.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 78 ++++++++++++++++++++++++++++---------------------- 2 files changed, 44 insertions(+), 36 deletions(-) diff --git a/package.json b/package.json index 97fdf7d24f3f..9140286daa89 100644 --- a/package.json +++ b/package.json @@ -98,7 +98,7 @@ "instagram-private-api": "1.46.1", "ioredis": "5.10.1", "ip-regex": "5.0.0", - "jsdom": "29.0.2", + "jsdom": "29.1.0", "json-bigint": "1.0.0", "jsonpath-plus": "10.4.0", "jsrsasign": "11.1.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4b2f94a31d7d..94183f0b9f36 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -158,8 +158,8 @@ importers: specifier: 5.0.0 version: 5.0.0 jsdom: - specifier: 29.0.2 - version: 29.0.2(@noble/hashes@2.0.1) + specifier: 29.1.0 + version: 29.1.0(@noble/hashes@2.0.1) json-bigint: specifier: 1.0.0 version: 1.0.0 @@ -463,7 +463,7 @@ importers: version: 6.1.1(typescript@5.9.3)(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)) vitest: specifier: 4.1.5 - version: 4.1.5(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(jsdom@29.0.2(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.5(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(jsdom@29.1.0(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)) wrangler: specifier: 4.82.2 version: 4.82.2(@cloudflare/workers-types@4.20260417.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10) @@ -491,12 +491,16 @@ packages: '@actions/io@3.0.2': resolution: {integrity: sha512-nRBchcMM+QK1pdjO7/idu86rbJI5YHUKCvKs0KxnSYbVe3F51UfGxuZX4Qy/fWlp6l7gWFwIkrOzN+oUK03kfw==} - '@asamuzakjp/css-color@5.1.6': - resolution: {integrity: sha512-BXWCh8dHs9GOfpo/fWGDJtDmleta2VePN9rn6WQt3GjEbxzutVF4t0x2pmH+7dbMCLtuv3MlwqRsAuxlzFXqFg==} + '@asamuzakjp/css-color@5.1.11': + resolution: {integrity: sha512-KVw6qIiCTUQhByfTd78h2yD1/00waTmm9uy/R7Ck/ctUyAPj+AEDLkQIdJW0T8+qGgj3j5bpNKK7Q3G+LedJWg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - '@asamuzakjp/dom-selector@7.0.7': - resolution: {integrity: sha512-d2BgqDUOS1Hfp4IzKUZqCNz+Kg3Y88AkaBvJK/ZVSQPU1f7OpPNi7nQTH6/oI47Dkdg+Z3e8Yp6ynOu4UMINAQ==} + '@asamuzakjp/dom-selector@7.1.1': + resolution: {integrity: sha512-67RZDnYRc8H/8MLDgQCDE//zoqVFwajkepHZgmXrbwybzXOEwOWGPYGmALYl9J2DOLfFPPs6kKCqmbzV895hTQ==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + + '@asamuzakjp/generational-cache@1.0.1': + resolution: {integrity: sha512-wajfB8KqzMCN2KGNFdLkReeHncd0AslUSrvHVvvYWuU8ghncRJoA50kT3zP9MVL0+9g4/67H+cdvBskj9THPzg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} '@asamuzakjp/nwsapi@2.3.9': @@ -653,15 +657,15 @@ packages: resolution: {integrity: sha512-LMGQLS9EuADloEFkcTBR3BwV/CGHV7zyDxVRtVDTwdI2Ca4it0CCVTT9wCkxSgokjE5Ho41hEPgb8OEUwoXr6Q==} engines: {node: '>=20.19.0'} - '@csstools/css-calc@3.1.1': - resolution: {integrity: sha512-HJ26Z/vmsZQqs/o3a6bgKslXGFAungXGbinULZO3eMsOyNJHeBBZfup5FiZInOghgoM4Hwnmw+OgbJCNg1wwUQ==} + '@csstools/css-calc@3.2.0': + resolution: {integrity: sha512-bR9e6o2BDB12jzN/gIbjHa5wLJ4UjD1CB9pM7ehlc0ddk6EBz+yYS1EV2MF55/HUxrHcB/hehAyt5vhsA3hx7w==} engines: {node: '>=20.19.0'} peerDependencies: '@csstools/css-parser-algorithms': ^4.0.0 '@csstools/css-tokenizer': ^4.0.0 - '@csstools/css-color-parser@4.0.2': - resolution: {integrity: sha512-0GEfbBLmTFf0dJlpsNU7zwxRIH0/BGEMuXLTCvFYxuL1tNhqzTbtnFICyJLTNK4a+RechKP75e7w42ClXSnJQw==} + '@csstools/css-color-parser@4.1.0': + resolution: {integrity: sha512-U0KhLYmy2GVj6q4T3WaAe6NPuFYCPQoE3b0dRGxejWDgcPp8TP7S5rVdM5ZrFaqu4N67X8YaPBw14dQSYx3IyQ==} engines: {node: '>=20.19.0'} peerDependencies: '@csstools/css-parser-algorithms': ^4.0.0 @@ -673,8 +677,8 @@ packages: peerDependencies: '@csstools/css-tokenizer': ^4.0.0 - '@csstools/css-syntax-patches-for-csstree@1.1.2': - resolution: {integrity: sha512-5GkLzz4prTIpoyeUiIu3iV6CSG3Plo7xRVOFPKI7FVEJ3mZ0A8SwK0XU3Gl7xAkiQ+mDyam+NNp875/C5y+jSA==} + '@csstools/css-syntax-patches-for-csstree@1.1.3': + resolution: {integrity: sha512-SH60bMfrRCJF3morcdk57WklujF4Jr/EsQUzqkarfHXEFcAR1gg7fS/chAE922Sehgzc1/+Tz5H3Ypa1HiEKrg==} peerDependencies: css-tree: ^3.2.1 peerDependenciesMeta: @@ -4598,8 +4602,8 @@ packages: jsbn@0.1.1: resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} - jsdom@29.0.2: - resolution: {integrity: sha512-9VnGEBosc/ZpwyOsJBCQ/3I5p7Q5ngOY14a9bf5btenAORmZfDse1ZEheMiWcJ3h81+Fv7HmJFdS0szo/waF2w==} + jsdom@29.1.0: + resolution: {integrity: sha512-YNUc7fB9QuvSSQWfrH0xF+TyABkxUwx8sswgIDaCrw4Hol8BghdZDkITtZheRJeMtzWlnTfsM3bBBusRvpO1wg==} engines: {node: ^20.19.0 || ^22.13.0 || >=24.0.0} peerDependencies: canvas: ^3.0.0 @@ -5226,8 +5230,8 @@ packages: parse5@7.3.0: resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} - parse5@8.0.0: - resolution: {integrity: sha512-9m4m5GSgXjL4AjumKzq1Fgfp3Z8rsvjRNbnkVwfu2ImRqE5D0LnY2QfDen18FSY9C573YU5XxSapdHZTZ2WolA==} + parse5@8.0.1: + resolution: {integrity: sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==} parseley@0.12.1: resolution: {integrity: sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==} @@ -6555,20 +6559,24 @@ snapshots: '@actions/io@3.0.2': {} - '@asamuzakjp/css-color@5.1.6': + '@asamuzakjp/css-color@5.1.11': dependencies: - '@csstools/css-calc': 3.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) - '@csstools/css-color-parser': 4.0.2(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) + '@asamuzakjp/generational-cache': 1.0.1 + '@csstools/css-calc': 3.2.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) + '@csstools/css-color-parser': 4.1.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) '@csstools/css-tokenizer': 4.0.0 - '@asamuzakjp/dom-selector@7.0.7': + '@asamuzakjp/dom-selector@7.1.1': dependencies: + '@asamuzakjp/generational-cache': 1.0.1 '@asamuzakjp/nwsapi': 2.3.9 bidi-js: 1.0.3 css-tree: 3.2.1 is-potential-custom-element-name: 1.0.1 + '@asamuzakjp/generational-cache@1.0.1': {} + '@asamuzakjp/nwsapi@2.3.9': {} '@asteasolutions/zod-to-openapi@8.5.0(zod@4.3.6)': @@ -6714,15 +6722,15 @@ snapshots: '@csstools/color-helpers@6.0.2': {} - '@csstools/css-calc@3.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': + '@csstools/css-calc@3.2.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': dependencies: '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) '@csstools/css-tokenizer': 4.0.0 - '@csstools/css-color-parser@4.0.2(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': + '@csstools/css-color-parser@4.1.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': dependencies: '@csstools/color-helpers': 6.0.2 - '@csstools/css-calc': 3.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) + '@csstools/css-calc': 3.2.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) '@csstools/css-tokenizer': 4.0.0 @@ -6730,7 +6738,7 @@ snapshots: dependencies: '@csstools/css-tokenizer': 4.0.0 - '@csstools/css-syntax-patches-for-csstree@1.1.2(css-tree@3.2.1)': + '@csstools/css-syntax-patches-for-csstree@1.1.3(css-tree@3.2.1)': optionalDependencies: css-tree: 3.2.1 @@ -8699,7 +8707,7 @@ snapshots: obug: 2.1.1 std-env: 4.1.0 tinyrainbow: 3.1.0 - vitest: 4.1.5(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(jsdom@29.0.2(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)) + vitest: 4.1.5(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(jsdom@29.1.0(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)) '@vitest/expect@4.1.5': dependencies: @@ -10427,12 +10435,12 @@ snapshots: jsbn@0.1.1: {} - jsdom@29.0.2(@noble/hashes@2.0.1): + jsdom@29.1.0(@noble/hashes@2.0.1): dependencies: - '@asamuzakjp/css-color': 5.1.6 - '@asamuzakjp/dom-selector': 7.0.7 + '@asamuzakjp/css-color': 5.1.11 + '@asamuzakjp/dom-selector': 7.1.1 '@bramus/specificity': 2.4.2 - '@csstools/css-syntax-patches-for-csstree': 1.1.2(css-tree@3.2.1) + '@csstools/css-syntax-patches-for-csstree': 1.1.3(css-tree@3.2.1) '@exodus/bytes': 1.15.0(@noble/hashes@2.0.1) css-tree: 3.2.1 data-urls: 7.0.0(@noble/hashes@2.0.1) @@ -10440,7 +10448,7 @@ snapshots: html-encoding-sniffer: 6.0.0(@noble/hashes@2.0.1) is-potential-custom-element-name: 1.0.1 lru-cache: 11.3.5 - parse5: 8.0.0 + parse5: 8.0.1 saxes: 6.0.0 symbol-tree: 3.2.4 tough-cookie: 6.0.1 @@ -11234,9 +11242,9 @@ snapshots: dependencies: entities: 6.0.1 - parse5@8.0.0: + parse5@8.0.1: dependencies: - entities: 6.0.1 + entities: 8.0.0 parseley@0.12.1: dependencies: @@ -12396,7 +12404,7 @@ snapshots: tsx: 4.21.0 yaml: 2.8.3 - vitest@4.1.5(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(jsdom@29.0.2(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)): + vitest@4.1.5(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(jsdom@29.1.0(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)): dependencies: '@vitest/expect': 4.1.5 '@vitest/mocker': 4.1.5(msw@2.13.4(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)) @@ -12423,7 +12431,7 @@ snapshots: '@opentelemetry/api': 1.9.1 '@types/node': 25.6.0 '@vitest/coverage-v8': 4.1.5(vitest@4.1.5) - jsdom: 29.0.2(@noble/hashes@2.0.1) + jsdom: 29.1.0(@noble/hashes@2.0.1) transitivePeerDependencies: - msw From 4c6b83087764690465f74af403101359816887a5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Apr 2026 20:57:14 +0800 Subject: [PATCH 254/439] chore(deps-dev): bump oxlint-tsgolint in the oxc group (#21841) Bumps the oxc group with 1 update: [oxlint-tsgolint](https://github.com/oxc-project/tsgolint). Updates `oxlint-tsgolint` from 0.21.1 to 0.22.0 - [Release notes](https://github.com/oxc-project/tsgolint/releases) - [Commits](https://github.com/oxc-project/tsgolint/compare/v0.21.1...v0.22.0) --- updated-dependencies: - dependency-name: oxlint-tsgolint dependency-version: 0.22.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: oxc ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 66 +++++++++++++++++++++++++------------------------- 2 files changed, 34 insertions(+), 34 deletions(-) diff --git a/package.json b/package.json index 9140286daa89..24fe6805d572 100644 --- a/package.json +++ b/package.json @@ -195,7 +195,7 @@ "oxfmt": "0.46.0", "oxlint": "1.61.0", "oxlint-plugin-eslint": "1.61.0", - "oxlint-tsgolint": "0.21.1", + "oxlint-tsgolint": "0.22.0", "remark-parse": "11.0.0", "tsdown": "0.21.9", "typescript": "5.9.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 94183f0b9f36..bb0ae36db0e8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -439,13 +439,13 @@ importers: version: 0.46.0 oxlint: specifier: 1.61.0 - version: 1.61.0(oxlint-tsgolint@0.21.1) + version: 1.61.0(oxlint-tsgolint@0.22.0) oxlint-plugin-eslint: specifier: 1.61.0 version: 1.61.0 oxlint-tsgolint: - specifier: 0.21.1 - version: 0.21.1 + specifier: 0.22.0 + version: 0.22.0 remark-parse: specifier: 11.0.0 version: 11.0.0 @@ -2081,33 +2081,33 @@ packages: cpu: [x64] os: [win32] - '@oxlint-tsgolint/darwin-arm64@0.21.1': - resolution: {integrity: sha512-7TLjyWe4wG9saJc992VWmaHq2hwKfOEEVTjheReXJXaDhavMZI4X9a6nKhbEng4IVkYtzjD2jw16vw2WFXLYLw==} + '@oxlint-tsgolint/darwin-arm64@0.22.0': + resolution: {integrity: sha512-/exgXceakHbQrzaHTtKOe7MuDATaWMCCWpsCDQCZKeYhLGXzComipTrCYnHzAXrdnNBb5r5K+RRf5A6ormrhMA==} cpu: [arm64] os: [darwin] - '@oxlint-tsgolint/darwin-x64@0.21.1': - resolution: {integrity: sha512-7wf9Wf75nTzA7zpL9myhFe2RKvfuqGUOADNvUooCjEWvh7hmPz3lSEqTMh5Z/VQhzsG04mM9ACyghxhRzq7zFw==} + '@oxlint-tsgolint/darwin-x64@0.22.0': + resolution: {integrity: sha512-xFGdIahlmUbK+/MpZ5y08D0ewMGLDbd2Vki5wxVFYg50lSrtgPAtdDl+kqKZLNaFu0zpMar8n9wv1le05sL/jw==} cpu: [x64] os: [darwin] - '@oxlint-tsgolint/linux-arm64@0.21.1': - resolution: {integrity: sha512-IPuQN/Vd0Rjklg/cCGBbQyUuRBp2f6LQXpZYwk5ivOR6V/+CgiYsv8pn/PVY7gjeyoNvPQrXB7xMjHUO2YZbdw==} + '@oxlint-tsgolint/linux-arm64@0.22.0': + resolution: {integrity: sha512-53RvC9f77eUo+V1dfQNwGVnsIfPJFMibRR0ee128EUpYNDOZe/ojmCfuXJeU7cY91V7r7fZSm42KPJocXUX8og==} cpu: [arm64] os: [linux] - '@oxlint-tsgolint/linux-x64@0.21.1': - resolution: {integrity: sha512-d1niGuTbh2qiv7dR7tqkbOcM5cIR63of0lMBFdEQavL1KrJV8zuRdwdi68K7MNGdgoR+J5A9ajpGGvsHwp1bPg==} + '@oxlint-tsgolint/linux-x64@0.22.0': + resolution: {integrity: sha512-evZcJAZ9hjNyuN69RnXwbt+U2pAOcYt+yvqukgugiCkRm4iBZ0R0CvpY1tgfG2XcGUhEPh8dljO+nPZTEVGpCQ==} cpu: [x64] os: [linux] - '@oxlint-tsgolint/win32-arm64@0.21.1': - resolution: {integrity: sha512-ICu9y2JLnFPvFqstnWPPNqBM8LK8BWw2OTeaR0UgEMm4hOSbrZAKv1/hwZYyiLqnCNjBL87AGSQIgTHCYlsipw==} + '@oxlint-tsgolint/win32-arm64@0.22.0': + resolution: {integrity: sha512-7jTO+k1mr5BxRAI2fxc1NRcE3MAbHNZ0Vef9SD1yAR6d1E6qEv5D/D7yuHpQpw6AO3qoecSVo2Jzr+JirN61+w==} cpu: [arm64] os: [win32] - '@oxlint-tsgolint/win32-x64@0.21.1': - resolution: {integrity: sha512-cTEFCFjCj6iXfrSHcvajSPNqhEA4TxSzU3gFxbdGSAUTNXGToU99IbdhWAPSbhcucoym0XE4Zl7E41NiSkNTug==} + '@oxlint-tsgolint/win32-x64@0.22.0': + resolution: {integrity: sha512-7lbl9XFcqO+scsynxMzTQdl0XUe6sBUCyY/oGWvCB+JmV4U+70vzSyZJdTEzzxtkZiNnUVFFh9RJLmoiQSne+w==} cpu: [x64] os: [win32] @@ -5156,8 +5156,8 @@ packages: resolution: {integrity: sha512-3vpLeQdH3kPQsOzALgeoodvxxLD1D7KrM8lEBPELAqfkNhS1uMvqcPA7y3pJ8rEEfhUDyQJlRU5yZRw6wq1S2A==} engines: {node: ^20.19.0 || >=22.12.0} - oxlint-tsgolint@0.21.1: - resolution: {integrity: sha512-O2hxiT14C2HJkwzBU6CQBFPoagSd/IcV+Tt3e3UUaXFwbW4BO5DSDPSSboc3UM5MIDY+MLyepvtQwBQafNxWdw==} + oxlint-tsgolint@0.22.0: + resolution: {integrity: sha512-ku4MecLmCQIj1ScCtzNAqTuyl0BJQ02B36fJT+c5XQihHpYSFak+FC3GYO5fPyYk4oDwi0w0S7hTvrpNzuZhig==} hasBin: true oxlint@1.61.0: @@ -7875,22 +7875,22 @@ snapshots: '@oxfmt/binding-win32-x64-msvc@0.46.0': optional: true - '@oxlint-tsgolint/darwin-arm64@0.21.1': + '@oxlint-tsgolint/darwin-arm64@0.22.0': optional: true - '@oxlint-tsgolint/darwin-x64@0.21.1': + '@oxlint-tsgolint/darwin-x64@0.22.0': optional: true - '@oxlint-tsgolint/linux-arm64@0.21.1': + '@oxlint-tsgolint/linux-arm64@0.22.0': optional: true - '@oxlint-tsgolint/linux-x64@0.21.1': + '@oxlint-tsgolint/linux-x64@0.22.0': optional: true - '@oxlint-tsgolint/win32-arm64@0.21.1': + '@oxlint-tsgolint/win32-arm64@0.22.0': optional: true - '@oxlint-tsgolint/win32-x64@0.21.1': + '@oxlint-tsgolint/win32-x64@0.22.0': optional: true '@oxlint/binding-android-arm-eabi@1.61.0': @@ -11131,16 +11131,16 @@ snapshots: oxlint-plugin-eslint@1.61.0: {} - oxlint-tsgolint@0.21.1: + oxlint-tsgolint@0.22.0: optionalDependencies: - '@oxlint-tsgolint/darwin-arm64': 0.21.1 - '@oxlint-tsgolint/darwin-x64': 0.21.1 - '@oxlint-tsgolint/linux-arm64': 0.21.1 - '@oxlint-tsgolint/linux-x64': 0.21.1 - '@oxlint-tsgolint/win32-arm64': 0.21.1 - '@oxlint-tsgolint/win32-x64': 0.21.1 - - oxlint@1.61.0(oxlint-tsgolint@0.21.1): + '@oxlint-tsgolint/darwin-arm64': 0.22.0 + '@oxlint-tsgolint/darwin-x64': 0.22.0 + '@oxlint-tsgolint/linux-arm64': 0.22.0 + '@oxlint-tsgolint/linux-x64': 0.22.0 + '@oxlint-tsgolint/win32-arm64': 0.22.0 + '@oxlint-tsgolint/win32-x64': 0.22.0 + + oxlint@1.61.0(oxlint-tsgolint@0.22.0): optionalDependencies: '@oxlint/binding-android-arm-eabi': 1.61.0 '@oxlint/binding-android-arm64': 1.61.0 @@ -11161,7 +11161,7 @@ snapshots: '@oxlint/binding-win32-arm64-msvc': 1.61.0 '@oxlint/binding-win32-ia32-msvc': 1.61.0 '@oxlint/binding-win32-x64-msvc': 1.61.0 - oxlint-tsgolint: 0.21.1 + oxlint-tsgolint: 0.22.0 p-cancelable@4.0.1: {} From b2334d46ade87adf5db41b3996d5a6e657569769 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Apr 2026 21:33:53 +0800 Subject: [PATCH 255/439] chore(deps): bump nixpkgs from `b12141e` to `0726a0e` (#21844) Bumps [nixpkgs](https://github.com/NixOS/nixpkgs) from `b12141e` to `0726a0e`. - [Commits](https://github.com/NixOS/nixpkgs/compare/b12141ef619e0a9c1c84dc8c684040326f27cdcc...0726a0ecb6d4e08f6adced58726b95db924cef57) --- updated-dependencies: - dependency-name: nixpkgs dependency-version: 0726a0ecb6d4e08f6adced58726b95db924cef57 dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 6be25c1bff2b..c289d243a9c7 100644 --- a/flake.lock +++ b/flake.lock @@ -825,11 +825,11 @@ }, "nixpkgs_7": { "locked": { - "lastModified": 1776548001, - "narHash": "sha256-ZSK0NL4a1BwVbbTBoSnWgbJy9HeZFXLYQizjb2DPF24=", + "lastModified": 1776877367, + "narHash": "sha256-EHq1/OX139R1RvBzOJ0aMRT3xnWyqtHBRUBuO1gFzjI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b12141ef619e0a9c1c84dc8c684040326f27cdcc", + "rev": "0726a0ecb6d4e08f6adced58726b95db924cef57", "type": "github" }, "original": { From add0734e0f8c88af8e81e80f0d4ab70ad9ed920e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 27 Apr 2026 13:35:39 +0000 Subject: [PATCH 256/439] chore(nix): update dependencies hash to sha256-jXH+lqvTUjWfOWt6MwuF7wM4RV1JgRFyr/O614PsqJ0= --- flake.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flake.nix b/flake.nix index dbb307c62adc..7413605f2580 100644 --- a/flake.nix +++ b/flake.nix @@ -16,7 +16,7 @@ deps = pkgs.fetchPnpmDeps { pname = "rsshub"; src = ./.; - hash = "sha256-HO3OeUzttaFf/Z1rNgwYIqdSkuG1DTjbt0qgyVTWVDk="; + hash = "sha256-jXH+lqvTUjWfOWt6MwuF7wM4RV1JgRFyr/O614PsqJ0="; fetcherVersion = 2; }; in From ec5fb92f8ad0c440b1e76780118952b191ac5ebd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Apr 2026 08:20:34 +0000 Subject: [PATCH 257/439] chore(deps): bump re2js from 2.2.3 to 2.3.1 (#21849) Bumps [re2js](https://github.com/le0pard/re2js) from 2.2.3 to 2.3.1. - [Release notes](https://github.com/le0pard/re2js/releases) - [Commits](https://github.com/le0pard/re2js/compare/2.2.3...2.3.1) --- updated-dependencies: - dependency-name: re2js dependency-version: 2.3.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 24fe6805d572..7fabc707cfa5 100644 --- a/package.json +++ b/package.json @@ -118,7 +118,7 @@ "puppeteer-real-browser": "1.4.4", "query-string": "9.3.1", "rate-limiter-flexible": "11.0.1", - "re2js": "2.2.3", + "re2js": "2.3.1", "rebrowser-puppeteer": "24.8.1", "rfc4648": "1.5.4", "rss-parser": "3.13.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bb0ae36db0e8..f4364058ef7c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -218,8 +218,8 @@ importers: specifier: 11.0.1 version: 11.0.1 re2js: - specifier: 2.2.3 - version: 2.2.3 + specifier: 2.3.1 + version: 2.3.1 rebrowser-puppeteer: specifier: 24.8.1 version: 24.8.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10) @@ -5444,8 +5444,8 @@ packages: rate-limiter-flexible@11.0.1: resolution: {integrity: sha512-hvyCUefjRund2N6hro2H8Dql7OvB6+B3Qv2FLWWbdsdyQScXf4+N0tM0Bryz11awTtNxx6C1QbHYb1rCiAx7pA==} - re2js@2.2.3: - resolution: {integrity: sha512-knY6jtTYhe38js7At+qsP9+KL9/gy8ZC2G/jOF3ocqbqj3qGaafqxWtDIjous+trwztsPJj6ezCczUPRN7+6oA==} + re2js@2.3.1: + resolution: {integrity: sha512-gU5mI8ROXhrWXElqRzTnyN/MnnTFfddOTATd34ZTsZdRZs4g1PXLfp+thVF2AQSwiGQnDtOmNYCXRCctr2MsXw==} readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} @@ -11500,7 +11500,7 @@ snapshots: rate-limiter-flexible@11.0.1: {} - re2js@2.2.3: {} + re2js@2.3.1: {} readable-stream@3.6.2: dependencies: From 1f6aafb6210d726a8a56bb508d4d96c1650c21ba Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Apr 2026 08:21:50 +0000 Subject: [PATCH 258/439] chore(deps): bump @scalar/hono-api-reference from 0.10.10 to 0.10.11 (#21850) Bumps [@scalar/hono-api-reference](https://github.com/scalar/scalar/tree/HEAD/integrations/hono) from 0.10.10 to 0.10.11. - [Release notes](https://github.com/scalar/scalar/releases) - [Changelog](https://github.com/scalar/scalar/blob/main/integrations/hono/CHANGELOG.md) - [Commits](https://github.com/scalar/scalar/commits/HEAD/integrations/hono) --- updated-dependencies: - dependency-name: "@scalar/hono-api-reference" dependency-version: 0.10.11 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 34 +++++++++++++++++----------------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index 7fabc707cfa5..c83a73f59e66 100644 --- a/package.json +++ b/package.json @@ -72,7 +72,7 @@ "@opentelemetry/sdk-trace-base": "2.7.0", "@opentelemetry/semantic-conventions": "1.40.0", "@rss3/sdk": "0.0.25", - "@scalar/hono-api-reference": "0.10.10", + "@scalar/hono-api-reference": "0.10.11", "@sentry/node": "10.50.0", "aes-js": "3.1.2", "cheerio": "1.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f4364058ef7c..a3ff5620cdae 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -80,8 +80,8 @@ importers: specifier: 0.0.25 version: 0.0.25 '@scalar/hono-api-reference': - specifier: 0.10.10 - version: 0.10.10(hono@4.12.15) + specifier: 0.10.11 + version: 0.10.11(hono@4.12.15) '@sentry/node': specifier: 10.50.0 version: 10.50.0(@opentelemetry/exporter-trace-otlp-http@0.215.0(@opentelemetry/api@1.9.1)) @@ -2578,22 +2578,22 @@ packages: '@rss3/sdk@0.0.25': resolution: {integrity: sha512-jyXT4YTwefxxRZ0tt5xjbnw8e7zPg2OGdo/0xb+h/7qWnMNhLtWpc95DsYs/1C/I0rIyiDpZBhLI2DieQ9y+tw==} - '@scalar/client-side-rendering@0.1.3': - resolution: {integrity: sha512-rUI5EQA8y0xivzqc/AwExZYW8HRfQSFxPxvvuLjHTCATpKz0xcQBGVJQIPOmp78NJyO8mnQmltE1AxIdtvdPGg==} + '@scalar/client-side-rendering@0.1.4': + resolution: {integrity: sha512-xriPrHrKs/FNQbMJTPWiP7bIualAobbJlzrDM5Tl+7nSgKMUUgpR60IcOphCsJ+iFcdOU/VTmjufBcOaVigDPg==} engines: {node: '>=22'} - '@scalar/helpers@0.5.2': - resolution: {integrity: sha512-Pi1GAl8jO6ungmGj2sjDfCfqiBNrKW6HXDZmminV94ybGU/KtRLOqHwd0n9FIhY3j0RYGpGC0VCuniCICfQPHg==} + '@scalar/helpers@0.5.3': + resolution: {integrity: sha512-PgQmhuV0oRoHtaqH0OhyCcSY9t35qm8ThNeuUMEAKeN+hW1ijBnJiUADpxaIfXPbLrpN9sjyYza0A16WFbLttg==} engines: {node: '>=22'} - '@scalar/hono-api-reference@0.10.10': - resolution: {integrity: sha512-fAd+9UeCdF73O7kFFABNkBmpnrDRjX1wW94kgt+OHjqB5Uca4l0HvJTkh1O4k7afjsZx8VavA0x0FQ4Qgu9ZnQ==} + '@scalar/hono-api-reference@0.10.11': + resolution: {integrity: sha512-iU3VVhI5ulzwVOaF3Qxswyvd/K3/56k2/420nOSu6me3zP4OqdvA4Xt9/7vkkRu0yOxjkq68GCVVB/R/5AkLuQ==} engines: {node: '>=22'} peerDependencies: hono: ^4.12.5 - '@scalar/types@0.9.2': - resolution: {integrity: sha512-aLn7QTHafpjrN/whup7U5/CHaoPPaYMNtz4L/2yfN5GDSy3AbDM7kV1q8s3nMQIhvC1uscxfriV+KhEND+xHvA==} + '@scalar/types@0.9.3': + resolution: {integrity: sha512-/cEFjVa8PxRIDyhcWKh7McT8pm5O0kbafzd1jvpVq69sgIIq0gJ0P1sCcPye6qJ2k478PK7VmpK9FxZcr6D4Kw==} engines: {node: '>=22'} '@scure/base@2.0.0': @@ -8221,20 +8221,20 @@ snapshots: '@rss3/api-core': 0.0.25 '@rss3/api-utils': 0.0.25 - '@scalar/client-side-rendering@0.1.3': + '@scalar/client-side-rendering@0.1.4': dependencies: - '@scalar/types': 0.9.2 + '@scalar/types': 0.9.3 - '@scalar/helpers@0.5.2': {} + '@scalar/helpers@0.5.3': {} - '@scalar/hono-api-reference@0.10.10(hono@4.12.15)': + '@scalar/hono-api-reference@0.10.11(hono@4.12.15)': dependencies: - '@scalar/client-side-rendering': 0.1.3 + '@scalar/client-side-rendering': 0.1.4 hono: 4.12.15 - '@scalar/types@0.9.2': + '@scalar/types@0.9.3': dependencies: - '@scalar/helpers': 0.5.2 + '@scalar/helpers': 0.5.3 nanoid: 5.1.9 type-fest: 5.6.0 zod: 4.3.6 From 672834c84eaecc6afd14e9c30c971be49c7b4d89 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Apr 2026 16:37:56 +0800 Subject: [PATCH 259/439] chore(deps): bump devenv from `d31845d` to `fb3d8df` (#21851) Bumps [devenv](https://github.com/cachix/devenv) from `d31845d` to `fb3d8df`. - [Release notes](https://github.com/cachix/devenv/releases) - [Commits](https://github.com/cachix/devenv/compare/d31845dd5d9573ed611686c1f368eb8af41010ee...fb3d8df47420022c47a42151c26e5cdaee6c641d) --- updated-dependencies: - dependency-name: devenv dependency-version: fb3d8df47420022c47a42151c26e5cdaee6c641d dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index c289d243a9c7..ea7ca1b1a640 100644 --- a/flake.lock +++ b/flake.lock @@ -164,11 +164,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1777273559, - "narHash": "sha256-k1yiflgtLJJAN0u1qlJC3gmf4rxnO+5U9rwVIlq3ebM=", + "lastModified": 1777321427, + "narHash": "sha256-EV/mIQur/dvCFwHzBjL7LBAgyhT0l3wQBgFjjY6zucg=", "owner": "cachix", "repo": "devenv", - "rev": "d31845dd5d9573ed611686c1f368eb8af41010ee", + "rev": "fb3d8df47420022c47a42151c26e5cdaee6c641d", "type": "github" }, "original": { From 8f1e11203d786dba7b12721fe0fc408ba3b5df8c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 28 Apr 2026 08:39:39 +0000 Subject: [PATCH 260/439] chore(nix): update dependencies hash to sha256-WpN4jgLZFkKBZJBhfp8zTjAwJzhTHmELVamsgeB7U0M= --- flake.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flake.nix b/flake.nix index 7413605f2580..7267be14d585 100644 --- a/flake.nix +++ b/flake.nix @@ -16,7 +16,7 @@ deps = pkgs.fetchPnpmDeps { pname = "rsshub"; src = ./.; - hash = "sha256-jXH+lqvTUjWfOWt6MwuF7wM4RV1JgRFyr/O614PsqJ0="; + hash = "sha256-WpN4jgLZFkKBZJBhfp8zTjAwJzhTHmELVamsgeB7U0M="; fetcherVersion = 2; }; in From 7a7453d2d2eb29aa02bf554113b201674b45cb7a Mon Sep 17 00:00:00 2001 From: DIYgod Date: Tue, 28 Apr 2026 21:09:55 +0800 Subject: [PATCH 261/439] fix(twitter): handle unavailable quoted tweets --- lib/routes/twitter/api/web-api/utils.ts | 46 +++++++------- lib/routes/twitter/utils.ts | 19 +++--- lib/twitter-web-api-utils.test.ts | 83 +++++++++++++++++++++++++ 3 files changed, 116 insertions(+), 32 deletions(-) create mode 100644 lib/twitter-web-api-utils.test.ts diff --git a/lib/routes/twitter/api/web-api/utils.ts b/lib/routes/twitter/api/web-api/utils.ts index 560211aabce4..522cdb147d13 100644 --- a/lib/routes/twitter/api/web-api/utils.ts +++ b/lib/routes/twitter/api/web-api/utils.ts @@ -298,6 +298,26 @@ export const paginationTweets = async (endpoint: string, userId: number | undefi return gridEntries || moduleItems || entries || []; }; +const getLegacyUser = (tweet: any) => tweet.core?.user_result?.result?.legacy || tweet.core?.user_results?.result?.legacy; + +const getCoreUser = (tweet: any) => tweet.core?.user_result?.result?.core || tweet.core?.user_results?.result?.core; + +const hydrateLegacyUser = (legacy: any, tweet: any) => { + legacy.user = getLegacyUser(tweet); + + const coreUser = getCoreUser(tweet); + if (!legacy.user || !coreUser) { + return; + } + + if (coreUser.name) { + legacy.user.name = coreUser.name; + } + if (coreUser.screen_name) { + legacy.user.screen_name = coreUser.screen_name; + } +}; + export function gatherLegacyFromData(entries: any[], filterNested?: string[], userId?: number | string) { const tweets: any[] = []; const filteredEntries: any[] = []; @@ -327,32 +347,12 @@ export function gatherLegacyFromData(entries: any[], filterNested?: string[], us if (!t?.legacy) { continue; } - t.legacy.user = t.core?.user_result?.result?.legacy || t.core?.user_results?.result?.legacy; - // Add name and screen_name from core to maintain compatibility - if (t.legacy.user && t.core?.user_results?.result?.core) { - const coreUser = t.core.user_results.result.core; - if (coreUser.name) { - t.legacy.user.name = coreUser.name; - } - if (coreUser.screen_name) { - t.legacy.user.screen_name = coreUser.screen_name; - } - } + hydrateLegacyUser(t.legacy, t); t.legacy.id_str = t.rest_id; // avoid falling back to conversation_id_str elsewhere const quote = t.quoted_status_result?.result?.tweet || t.quoted_status_result?.result; - if (quote) { + if (quote?.legacy) { t.legacy.quoted_status = quote.legacy; - t.legacy.quoted_status.user = quote.core.user_result?.result?.legacy || quote.core.user_results?.result?.legacy; - // Add name and screen_name from core for quoted status user - if (t.legacy.quoted_status.user && quote.core?.user_results?.result?.core) { - const quoteCoreUser = quote.core.user_results.result.core; - if (quoteCoreUser.name) { - t.legacy.quoted_status.user.name = quoteCoreUser.name; - } - if (quoteCoreUser.screen_name) { - t.legacy.quoted_status.user.screen_name = quoteCoreUser.screen_name; - } - } + hydrateLegacyUser(t.legacy.quoted_status, quote); } if (t.note_tweet) { const tmp = t.note_tweet.note_tweet_results.result; diff --git a/lib/routes/twitter/utils.ts b/lib/routes/twitter/utils.ts index e1de97426f14..9eee3dfcc9ce 100644 --- a/lib/routes/twitter/utils.ts +++ b/lib/routes/twitter/utils.ts @@ -210,7 +210,7 @@ const ProcessFeed = (ctx, { data = [] }, params = {}) => { if (item.is_quote_status) { const quoteData = item.quoted_status; - if (quoteData) { + if (quoteData?.user) { quoteData.full_text = quoteData.full_text || quoteData.text; const author = quoteData.user; quote += '
    '; @@ -416,14 +416,15 @@ const ProcessFeed = (ctx, { data = [] }, params = {}) => { }, ], }) || - (item.is_quote_status && { - links: [ - { - url: `https://x.com/${item.quoted_status?.user?.screen_name}/status/${item.quoted_status?.id_str || item.quoted_status?.conversation_id_str}`, - type: 'quote', - }, - ], - }) || + (item.is_quote_status && + item.quoted_status?.user && { + links: [ + { + url: `https://x.com/${item.quoted_status?.user?.screen_name}/status/${item.quoted_status?.id_str || item.quoted_status?.conversation_id_str}`, + type: 'quote', + }, + ], + }) || (item.in_reply_to_screen_name && item.in_reply_to_status_id_str && { links: [ diff --git a/lib/twitter-web-api-utils.test.ts b/lib/twitter-web-api-utils.test.ts new file mode 100644 index 000000000000..555b3b7941bf --- /dev/null +++ b/lib/twitter-web-api-utils.test.ts @@ -0,0 +1,83 @@ +import { describe, expect, it } from 'vitest'; + +import { gatherLegacyFromData } from './routes/twitter/api/web-api/utils'; + +const buildUser = (name: string, screenName: string) => ({ + core: { + name, + screen_name: screenName, + }, + legacy: { + name: `${name} legacy`, + profile_image_url_https: `https://example.com/${screenName}.jpg`, + screen_name: `${screenName}_legacy`, + }, +}); + +const buildTweetEntry = (id: string, quotedResult?: Record) => ({ + entryId: `tweet-${id}`, + content: { + itemContent: { + tweet_results: { + result: { + __typename: 'Tweet', + core: { + user_results: { + result: buildUser('Author', 'author'), + }, + }, + is_quote_status: Boolean(quotedResult), + legacy: { + conversation_id_str: id, + created_at: 'Sun Apr 26 14:01:56 +0000 2026', + entities: { + urls: [], + }, + full_text: `tweet ${id}`, + is_quote_status: Boolean(quotedResult), + }, + quoted_status_result: quotedResult && { + result: quotedResult, + }, + rest_id: id, + }, + }, + }, + }, +}); + +describe('gatherLegacyFromData', () => { + it('skips quoted tombstones without dropping the timeline', () => { + const normalQuote = { + __typename: 'Tweet', + core: { + user_results: { + result: buildUser('Quoted', 'quoted'), + }, + }, + legacy: { + conversation_id_str: '10', + created_at: 'Sun Apr 26 13:00:00 +0000 2026', + entities: { + urls: [], + }, + full_text: 'quoted tweet', + }, + rest_id: '10', + }; + const tombstoneQuote = { + __typename: 'TweetTombstone', + tombstone: { + text: { + text: 'This post is unavailable.', + }, + }, + }; + + const tweets = gatherLegacyFromData([buildTweetEntry('1', normalQuote), buildTweetEntry('2', tombstoneQuote)]); + + expect(tweets).toHaveLength(2); + expect(tweets[0].quoted_status.user.screen_name).toBe('quoted'); + expect(tweets[1].quoted_status).toBeUndefined(); + }); +}); From 6a9213566f38771a3bab29aa73a3f398e1253999 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Apr 2026 22:48:15 +0800 Subject: [PATCH 262/439] chore(deps-dev): bump the typescript-eslint group with 2 updates (#21848) Bumps the typescript-eslint group with 2 updates: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) and [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser). Updates `@typescript-eslint/eslint-plugin` from 8.59.0 to 8.59.1 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.59.1/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.59.0 to 8.59.1 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.59.1/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-version: 8.59.1 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: typescript-eslint - dependency-name: "@typescript-eslint/parser" dependency-version: 8.59.1 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: typescript-eslint ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 4 +- pnpm-lock.yaml | 124 ++++++++++++++++++++++++------------------------- 2 files changed, 64 insertions(+), 64 deletions(-) diff --git a/package.json b/package.json index c83a73f59e66..cef8a9d80f64 100644 --- a/package.json +++ b/package.json @@ -169,8 +169,8 @@ "@types/module-alias": "2.0.4", "@types/node": "25.6.0", "@types/sanitize-html": "2.16.1", - "@typescript-eslint/eslint-plugin": "8.59.0", - "@typescript-eslint/parser": "8.59.0", + "@typescript-eslint/eslint-plugin": "8.59.1", + "@typescript-eslint/parser": "8.59.1", "@vercel/nft": "1.5.0", "@vitest/coverage-v8": "4.1.5", "discord-api-types": "0.38.47", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a3ff5620cdae..ab5af80d37ab 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -366,11 +366,11 @@ importers: specifier: 2.16.1 version: 2.16.1 '@typescript-eslint/eslint-plugin': - specifier: 8.59.0 - version: 8.59.0(@typescript-eslint/parser@8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3))(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) + specifier: 8.59.1 + version: 8.59.1(@typescript-eslint/parser@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3))(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: 8.59.0 - version: 8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) + specifier: 8.59.1 + version: 8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) '@vercel/nft': specifier: 1.5.0 version: 1.5.0(rollup@4.60.2) @@ -391,7 +391,7 @@ importers: version: 9.1.1(@types/node@25.6.0)(eslint@10.2.1(jiti@2.6.1)) eslint-plugin-import-x: specifier: 4.16.2 - version: 4.16.2(@typescript-eslint/utils@8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.2.1(jiti@2.6.1)) + version: 4.16.2(@typescript-eslint/utils@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.2.1(jiti@2.6.1)) eslint-plugin-n: specifier: 17.24.0 version: 17.24.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) @@ -2844,39 +2844,39 @@ packages: '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - '@typescript-eslint/eslint-plugin@8.59.0': - resolution: {integrity: sha512-HyAZtpdkgZwpq8Sz3FSUvCR4c+ScbuWa9AksK2Jweub7w4M3yTz4O11AqVJzLYjy/B9ZWPyc81I+mOdJU/bDQw==} + '@typescript-eslint/eslint-plugin@8.59.1': + resolution: {integrity: sha512-BOziFIfE+6osHO9FoJG4zjoHUcvI7fTNBSpdAwrNH0/TLvzjsk2oo8XSSOT2HhqUyhZPfHv4UOffoJ9oEEQ7Ag==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.59.0 + '@typescript-eslint/parser': ^8.59.1 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/parser@8.59.0': - resolution: {integrity: sha512-TI1XGwKbDpo9tRW8UDIXCOeLk55qe9ZFGs8MTKU6/M08HWTw52DD/IYhfQtOEhEdPhLMT26Ka/x7p70nd3dzDg==} + '@typescript-eslint/parser@8.59.1': + resolution: {integrity: sha512-HDQH9O/47Dxi1ceDhBXdaldtf/WV9yRYMjbjCuNk3qnaTD564qwv61Y7+gTxwxRKzSrgO5uhtw584igXVuuZkA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/project-service@8.59.0': - resolution: {integrity: sha512-Lw5ITrR5s5TbC19YSvlr63ZfLaJoU6vtKTHyB0GQOpX0W7d5/Ir6vUahWi/8Sps/nOukZQ0IB3SmlxZnjaKVnw==} + '@typescript-eslint/project-service@8.59.1': + resolution: {integrity: sha512-+MuHQlHiEr00Of/IQbE/MmEoi44znZHbR/Pz7Opq4HryUOlRi+/44dro9Ycy8Fyo+/024IWtw8m4JUMCGTYxDg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/scope-manager@8.59.0': - resolution: {integrity: sha512-UzR16Ut8IpA3Mc4DbgAShlPPkVm8xXMWafXxB0BocaVRHs8ZGakAxGRskF7FId3sdk9lgGD73GSFaWmWFDE4dg==} + '@typescript-eslint/scope-manager@8.59.1': + resolution: {integrity: sha512-LwuHQI4pDOYVKvmH2dkaJo6YZCSgouVgnS/z7yBPKBMvgtBvyLqiLy9Z6b7+m/TRcX1NFYUqZetI5Y+aT4GEfg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.59.0': - resolution: {integrity: sha512-91Sbl3s4Kb3SybliIY6muFBmHVv+pYXfybC4Oolp3dvk8BvIE3wOPc+403CWIT7mJNkfQRGtdqghzs2+Z91Tqg==} + '@typescript-eslint/tsconfig-utils@8.59.1': + resolution: {integrity: sha512-/0nEyPbX7gRsk0Uwfe4ALwwgxuA66d/l2mhRDNlAvaj4U3juhUtJNq0DsY8M2AYwwb9rEq2hrC3IcIcEt++iJA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/type-utils@8.59.0': - resolution: {integrity: sha512-3TRiZaQSltGqGeNrJzzr1+8YcEobKH9rHnqIp/1psfKFmhRQDNMGP5hBufanYTGznwShzVLs3Mz+gDN7HkWfXg==} + '@typescript-eslint/type-utils@8.59.1': + resolution: {integrity: sha512-klWPBR2ciQHS3f++ug/mVnWKPjBUo7icEL3FAO1lhAR1Z1i5NQYZ1EannMSRYcq5qCv5wNALlXr6fksRHyYl7w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -2886,25 +2886,25 @@ packages: resolution: {integrity: sha512-O9CjxypDT89fbHxRfETNoAnHj/i6IpRK0CvbVN3qibxlLdo5p5hcLmUuCCrHMpxiWSwKyI8mCP7qRNYuOJ0Uww==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.59.0': - resolution: {integrity: sha512-nLzdsT1gdOgFxxxwrlNVUBzSNBEEHJ86bblmk4QAS6stfig7rcJzWKqCyxFy3YRRHXDWEkb2NralA1nOYkkm/A==} + '@typescript-eslint/types@8.59.1': + resolution: {integrity: sha512-ZDCjgccSdYPw5Bxh+my4Z0lJU96ZDN7jbBzvmEn0FZx3RtU1C7VWl6NbDx94bwY3V5YsgwRzJPOgeY2Q/nLG8A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.59.0': - resolution: {integrity: sha512-O9Re9P1BmBLFJyikRbQpLku/QA3/AueZNO9WePLBwQrvkixTmDe8u76B6CYUAITRl/rHawggEqUGn5QIkVRLMw==} + '@typescript-eslint/typescript-estree@8.59.1': + resolution: {integrity: sha512-OUd+vJS05sSkOip+BkZ/2NS8RMxrAAJemsC6vU3kmfLyeaJT0TftHkV9mcx2107MmsBVXXexhVu4F0TZXyMl4g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/utils@8.59.0': - resolution: {integrity: sha512-I1R/K7V07XsMJ12Oaxg/O9GfrysGTmCRhvZJBv0RE0NcULMzjqVpR5kRRQjHsz3J/bElU7HwCO7zkqL+MSUz+g==} + '@typescript-eslint/utils@8.59.1': + resolution: {integrity: sha512-3pIeoXhCeYH9FSCBI8P3iNwJlGuzPlYKkTlen2O9T1DSeeg8UG8jstq6BLk+Mda0qup7mgk4z4XL4OzRaxZ8LA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/visitor-keys@8.59.0': - resolution: {integrity: sha512-/uejZt4dSere1bx12WLlPfv8GktzcaDtuJ7s42/HEZ5zGj9oxRaD4bj7qwSunXkf+pbAhFt2zjpHYUiT5lHf0Q==} + '@typescript-eslint/visitor-keys@8.59.1': + resolution: {integrity: sha512-LdDNl6C5iJExcM0Yh0PwAIBb9PrSiCsWamF/JyEZawm3kFDnRoaq3LGE4bpyRao/fWeGKKyw7icx0YxrLFC5Cg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@unrs/resolver-binding-android-arm-eabi@1.11.1': @@ -8524,14 +8524,14 @@ snapshots: '@types/node': 25.6.0 optional: true - '@typescript-eslint/eslint-plugin@8.59.0(@typescript-eslint/parser@8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3))(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.59.1(@typescript-eslint/parser@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3))(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.59.0 - '@typescript-eslint/type-utils': 8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/utils': 8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.59.0 + '@typescript-eslint/parser': 8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.59.1 + '@typescript-eslint/type-utils': 8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.59.1 eslint: 10.2.1(jiti@2.6.1) ignore: 7.0.5 natural-compare: 1.4.0 @@ -8540,41 +8540,41 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/parser@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 8.59.0 - '@typescript-eslint/types': 8.59.0 - '@typescript-eslint/typescript-estree': 8.59.0(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.59.0 + '@typescript-eslint/scope-manager': 8.59.1 + '@typescript-eslint/types': 8.59.1 + '@typescript-eslint/typescript-estree': 8.59.1(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.59.1 debug: 4.4.3 eslint: 10.2.1(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.59.0(typescript@5.9.3)': + '@typescript-eslint/project-service@8.59.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.59.0(typescript@5.9.3) - '@typescript-eslint/types': 8.59.0 + '@typescript-eslint/tsconfig-utils': 8.59.1(typescript@5.9.3) + '@typescript-eslint/types': 8.59.1 debug: 4.4.3 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.59.0': + '@typescript-eslint/scope-manager@8.59.1': dependencies: - '@typescript-eslint/types': 8.59.0 - '@typescript-eslint/visitor-keys': 8.59.0 + '@typescript-eslint/types': 8.59.1 + '@typescript-eslint/visitor-keys': 8.59.1 - '@typescript-eslint/tsconfig-utils@8.59.0(typescript@5.9.3)': + '@typescript-eslint/tsconfig-utils@8.59.1(typescript@5.9.3)': dependencies: typescript: 5.9.3 - '@typescript-eslint/type-utils@8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.59.0 - '@typescript-eslint/typescript-estree': 8.59.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/types': 8.59.1 + '@typescript-eslint/typescript-estree': 8.59.1(typescript@5.9.3) + '@typescript-eslint/utils': 8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) debug: 4.4.3 eslint: 10.2.1(jiti@2.6.1) ts-api-utils: 2.5.0(typescript@5.9.3) @@ -8584,14 +8584,14 @@ snapshots: '@typescript-eslint/types@8.58.0': {} - '@typescript-eslint/types@8.59.0': {} + '@typescript-eslint/types@8.59.1': {} - '@typescript-eslint/typescript-estree@8.59.0(typescript@5.9.3)': + '@typescript-eslint/typescript-estree@8.59.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/project-service': 8.59.0(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.59.0(typescript@5.9.3) - '@typescript-eslint/types': 8.59.0 - '@typescript-eslint/visitor-keys': 8.59.0 + '@typescript-eslint/project-service': 8.59.1(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.59.1(typescript@5.9.3) + '@typescript-eslint/types': 8.59.1 + '@typescript-eslint/visitor-keys': 8.59.1 debug: 4.4.3 minimatch: 10.2.5 semver: 7.7.4 @@ -8601,20 +8601,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/utils@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.1(jiti@2.6.1)) - '@typescript-eslint/scope-manager': 8.59.0 - '@typescript-eslint/types': 8.59.0 - '@typescript-eslint/typescript-estree': 8.59.0(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.59.1 + '@typescript-eslint/types': 8.59.1 + '@typescript-eslint/typescript-estree': 8.59.1(typescript@5.9.3) eslint: 10.2.1(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.59.0': + '@typescript-eslint/visitor-keys@8.59.1': dependencies: - '@typescript-eslint/types': 8.59.0 + '@typescript-eslint/types': 8.59.1 eslint-visitor-keys: 5.0.1 '@unrs/resolver-binding-android-arm-eabi@1.11.1': @@ -9604,7 +9604,7 @@ snapshots: eslint: 10.2.1(jiti@2.6.1) eslint-compat-utils: 0.5.1(eslint@10.2.1(jiti@2.6.1)) - eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.2.1(jiti@2.6.1)): + eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.2.1(jiti@2.6.1)): dependencies: '@package-json/types': 0.0.12 '@typescript-eslint/types': 8.58.0 @@ -9618,7 +9618,7 @@ snapshots: stable-hash-x: 0.2.0 unrs-resolver: 1.11.1 optionalDependencies: - '@typescript-eslint/utils': 8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color From d811d053b24b2cbb80dd3916a2c4ec80c3ea1060 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 29 Apr 2026 03:49:51 +0800 Subject: [PATCH 263/439] chore(deps-dev): bump the oxc group with 5 updates (#21847) * chore(deps-dev): bump the oxc group with 5 updates Bumps the oxc group with 5 updates: | Package | From | To | | --- | --- | --- | | [@oxlint/plugins](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint-plugins) | `1.61.0` | `1.62.0` | | [oxfmt](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt) | `0.46.0` | `0.47.0` | | [oxlint](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint) | `1.61.0` | `1.62.0` | | [oxlint-plugin-eslint](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint-plugin-eslint) | `1.61.0` | `1.62.0` | | [oxlint-tsgolint](https://github.com/oxc-project/tsgolint) | `0.22.0` | `0.22.1` | Updates `@oxlint/plugins` from 1.61.0 to 1.62.0 - [Release notes](https://github.com/oxc-project/oxc/releases) - [Changelog](https://github.com/oxc-project/oxc/blob/main/CHANGELOG.md) - [Commits](https://github.com/oxc-project/oxc/commits/apps_v1.62.0/npm/oxlint-plugins) Updates `oxfmt` from 0.46.0 to 0.47.0 - [Release notes](https://github.com/oxc-project/oxc/releases) - [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxfmt/CHANGELOG.md) - [Commits](https://github.com/oxc-project/oxc/commits/oxfmt_v0.47.0/npm/oxfmt) Updates `oxlint` from 1.61.0 to 1.62.0 - [Release notes](https://github.com/oxc-project/oxc/releases) - [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxlint/CHANGELOG.md) - [Commits](https://github.com/oxc-project/oxc/commits/oxlint_v1.62.0/npm/oxlint) Updates `oxlint-plugin-eslint` from 1.61.0 to 1.62.0 - [Release notes](https://github.com/oxc-project/oxc/releases) - [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxlint-plugin-eslint/CHANGELOG.md) - [Commits](https://github.com/oxc-project/oxc/commits/apps_v1.62.0/npm/oxlint-plugin-eslint) Updates `oxlint-tsgolint` from 0.22.0 to 0.22.1 - [Release notes](https://github.com/oxc-project/tsgolint/releases) - [Commits](https://github.com/oxc-project/tsgolint/compare/v0.22.0...v0.22.1) --- updated-dependencies: - dependency-name: "@oxlint/plugins" dependency-version: 1.62.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: oxc - dependency-name: oxfmt dependency-version: 0.47.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: oxc - dependency-name: oxlint dependency-version: 1.62.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: oxc - dependency-name: oxlint-plugin-eslint dependency-version: 1.62.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: oxc - dependency-name: oxlint-tsgolint dependency-version: 0.22.1 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: oxc ... Signed-off-by: dependabot[bot] * chore: ignore eslint-disable on ci * chore: bump pnpm --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/lint.yml | 2 +- .oxlintrc.ci.json | 7 + lib/twitter-web-api-utils.test.ts | 83 ------ package.json | 12 +- pnpm-lock.yaml | 410 +++++++++++++++--------------- 5 files changed, 219 insertions(+), 295 deletions(-) create mode 100644 .oxlintrc.ci.json delete mode 100644 lib/twitter-web-api-utils.test.ts diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 8a34ed609468..09c39af98014 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -30,7 +30,7 @@ jobs: - name: Install oxlint to SARIF converter run: pnpm i -g oxlint-json-to-sarif - name: Lint - run: pnpm exec oxlint --type-aware + run: pnpm exec oxlint --type-aware --config=.oxlintrc.ci.json --format=json | oxlint-json-to-sarif > oxlint-results.sarif continue-on-error: true - name: Upload analysis results to GitHub diff --git a/.oxlintrc.ci.json b/.oxlintrc.ci.json new file mode 100644 index 000000000000..cd2d7c49f838 --- /dev/null +++ b/.oxlintrc.ci.json @@ -0,0 +1,7 @@ +{ + "$schema": "./node_modules/oxlint/configuration_schema.json", + "extends": ["./.oxlintrc.json"], + "options": { + "respectEslintDisableDirectives": false + } +} diff --git a/lib/twitter-web-api-utils.test.ts b/lib/twitter-web-api-utils.test.ts deleted file mode 100644 index 555b3b7941bf..000000000000 --- a/lib/twitter-web-api-utils.test.ts +++ /dev/null @@ -1,83 +0,0 @@ -import { describe, expect, it } from 'vitest'; - -import { gatherLegacyFromData } from './routes/twitter/api/web-api/utils'; - -const buildUser = (name: string, screenName: string) => ({ - core: { - name, - screen_name: screenName, - }, - legacy: { - name: `${name} legacy`, - profile_image_url_https: `https://example.com/${screenName}.jpg`, - screen_name: `${screenName}_legacy`, - }, -}); - -const buildTweetEntry = (id: string, quotedResult?: Record) => ({ - entryId: `tweet-${id}`, - content: { - itemContent: { - tweet_results: { - result: { - __typename: 'Tweet', - core: { - user_results: { - result: buildUser('Author', 'author'), - }, - }, - is_quote_status: Boolean(quotedResult), - legacy: { - conversation_id_str: id, - created_at: 'Sun Apr 26 14:01:56 +0000 2026', - entities: { - urls: [], - }, - full_text: `tweet ${id}`, - is_quote_status: Boolean(quotedResult), - }, - quoted_status_result: quotedResult && { - result: quotedResult, - }, - rest_id: id, - }, - }, - }, - }, -}); - -describe('gatherLegacyFromData', () => { - it('skips quoted tombstones without dropping the timeline', () => { - const normalQuote = { - __typename: 'Tweet', - core: { - user_results: { - result: buildUser('Quoted', 'quoted'), - }, - }, - legacy: { - conversation_id_str: '10', - created_at: 'Sun Apr 26 13:00:00 +0000 2026', - entities: { - urls: [], - }, - full_text: 'quoted tweet', - }, - rest_id: '10', - }; - const tombstoneQuote = { - __typename: 'TweetTombstone', - tombstone: { - text: { - text: 'This post is unavailable.', - }, - }, - }; - - const tweets = gatherLegacyFromData([buildTweetEntry('1', normalQuote), buildTweetEntry('2', tombstoneQuote)]); - - expect(tweets).toHaveLength(2); - expect(tweets[0].quoted_status.user.screen_name).toBe('quoted'); - expect(tweets[1].quoted_status).toBeUndefined(); - }); -}); diff --git a/package.json b/package.json index cef8a9d80f64..70cedb0efc78 100644 --- a/package.json +++ b/package.json @@ -151,7 +151,7 @@ "@cloudflare/workers-types": "4.20260417.1", "@eslint/eslintrc": "3.3.5", "@eslint/js": "10.0.1", - "@oxlint/plugins": "1.61.0", + "@oxlint/plugins": "1.62.0", "@stylistic/eslint-plugin": "5.10.0", "@types/aes-js": "3.1.4", "@types/babel__preset-env": "7.10.0", @@ -192,10 +192,10 @@ "mockdate": "3.0.5", "msw": "2.13.4", "node-network-devtools": "1.0.30", - "oxfmt": "0.46.0", - "oxlint": "1.61.0", - "oxlint-plugin-eslint": "1.61.0", - "oxlint-tsgolint": "0.22.0", + "oxfmt": "0.47.0", + "oxlint": "1.62.0", + "oxlint-plugin-eslint": "1.62.0", + "oxlint-tsgolint": "0.22.1", "remark-parse": "11.0.0", "tsdown": "0.21.9", "typescript": "5.9.3", @@ -222,7 +222,7 @@ "engines": { "node": "^22.20.0 || ^24" }, - "packageManager": "pnpm@10.33.0+sha512.10568bb4a6afb58c9eb3630da90cc9516417abebd3fabbe6739f0ae795728da1491e9db5a544c76ad8eb7570f5c4bb3d6c637b2cb41bfdcdb47fa823c8649319", + "packageManager": "pnpm@10.33.2+sha512.a90faf6feeab71ad6c6e57f94e0fe1a12f5dcc22cd754db40ae9593eb6a3e0b6b12e3540218bb37ae083404b1f2ce6db2a4121e979829b4aff94b99f49da1cf8", "pnpm": { "onlyBuiltDependencies": [ "bufferutil", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ab5af80d37ab..c48a714ef652 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -312,8 +312,8 @@ importers: specifier: 10.0.1 version: 10.0.1(eslint@10.2.1(jiti@2.6.1)) '@oxlint/plugins': - specifier: 1.61.0 - version: 1.61.0 + specifier: 1.62.0 + version: 1.62.0 '@stylistic/eslint-plugin': specifier: 5.10.0 version: 5.10.0(eslint@10.2.1(jiti@2.6.1)) @@ -435,17 +435,17 @@ importers: specifier: 1.0.30 version: 1.0.30(undici@7.25.0)(utf-8-validate@5.0.10) oxfmt: - specifier: 0.46.0 - version: 0.46.0 + specifier: 0.47.0 + version: 0.47.0 oxlint: - specifier: 1.61.0 - version: 1.61.0(oxlint-tsgolint@0.22.0) + specifier: 1.62.0 + version: 1.62.0(oxlint-tsgolint@0.22.1) oxlint-plugin-eslint: - specifier: 1.61.0 - version: 1.61.0 + specifier: 1.62.0 + version: 1.62.0 oxlint-tsgolint: - specifier: 0.22.0 - version: 0.22.0 + specifier: 0.22.1 + version: 0.22.1 remark-parse: specifier: 11.0.0 version: 11.0.0 @@ -1959,282 +1959,282 @@ packages: '@oxc-project/types@0.126.0': resolution: {integrity: sha512-oGfVtjAgwQVVpfBrbtk4e1XDyWHRFta6BS3GWVzrF8xYBT2VGQAk39yJS/wFSMrZqoiCU4oghT3Ch0HaHGIHcQ==} - '@oxfmt/binding-android-arm-eabi@0.46.0': - resolution: {integrity: sha512-b1doV4WRcJU+BESSlCvCjV+5CEr/T6h0frArAdV26Nir+gGNFNaylvDiiMPfF1pxeV0txZEs38ojzJaxBYg+ng==} + '@oxfmt/binding-android-arm-eabi@0.47.0': + resolution: {integrity: sha512-KrMQRdMi/upr81qT4ijK6X6BNp6jqpMY7FwILQnwIy9QLc3qpnhUx5rsCLGzn4ewsCQ0CNAspN2ogmP1GXLyLw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@oxfmt/binding-android-arm64@0.46.0': - resolution: {integrity: sha512-v6+HhjsoV3GO0u2u9jLSAZrvWfTraDxKofUIQ7/ktS7tzS+epVsxdHmeM+XxuNcAY/nWxxU1Sg4JcGTNRXraBA==} + '@oxfmt/binding-android-arm64@0.47.0': + resolution: {integrity: sha512-r4ixS/PeUpAFKgrpDoZ5pSkthjZzVzKd95525Aazj+aOv9H4ulK5zYHGb7wFY5n5kZxHK8TbOJUZgoEb1ohddQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxfmt/binding-darwin-arm64@0.46.0': - resolution: {integrity: sha512-3eeooJGrqGIlI5MyryDZsAcKXSmKIgAD4yYtfRrRJzXZ0UTFZtiSveIur56YPrGMYZwT4XyVhHsMqrNwr1XeFA==} + '@oxfmt/binding-darwin-arm64@0.47.0': + resolution: {integrity: sha512-CLWxiKpMl+195cm09CuaWEhJK0CirRkoMa07aR9+9AFPat2LfIKtwx1JqxZM0MTvcMe6+adlJNdVL6jdInvq3g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxfmt/binding-darwin-x64@0.46.0': - resolution: {integrity: sha512-QG8BDM0CXWbu84k2SKmCqfEddPQPFiBicwtYnLqHRWZZl57HbtOLRMac/KTq2NO4AEc4ICCBpFxJIV9zcqYfkQ==} + '@oxfmt/binding-darwin-x64@0.47.0': + resolution: {integrity: sha512-Xq5fjTYDC50faUeLSm0rZdBqoTgleXEdD7NpJdARtQIczkCJn3xNjMUSQQkUmh4CtxkKTNL68lytcOK3e/osgg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxfmt/binding-freebsd-x64@0.46.0': - resolution: {integrity: sha512-9DdCqS/n2ncu/Chazvt3cpgAjAmIGQDz7hFKSrNItMApyV/Ja9mz3hD4JakIE3nS8PW9smEbPWnb389QLBY4nw==} + '@oxfmt/binding-freebsd-x64@0.47.0': + resolution: {integrity: sha512-QOU9ZIJ52p5askcEC0QJvvr8trHAWoonul8bgISo6gYUL3s50zkqafBYcNAr9LJZQbsZtPfIWHk9+5+nUp1qJQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxfmt/binding-linux-arm-gnueabihf@0.46.0': - resolution: {integrity: sha512-Dgs7VeE2jT0LHMhw6tPEt0xQYe54kBqHEovmWsv4FVQlegCOvlIJNx0S8n4vj8WUtpT+Z6BD2HhKJPLglLxvZg==} + '@oxfmt/binding-linux-arm-gnueabihf@0.47.0': + resolution: {integrity: sha512-oJxDM1aBhPvz9gmElBv8UpxyiqhwfjcbrSxT5F0xtuUzY6dQI27/AQPIt3eu3Z5Yvn0kQl5R7MA3Z+MbnRvCBw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxfmt/binding-linux-arm-musleabihf@0.46.0': - resolution: {integrity: sha512-Zxn3adhTH13JKnU4xXJj8FeEfF680XjXh3gSShKl57HCMBRde2tUJTgogV/1MSHA80PJEVrDa7r66TLVq3Ia7Q==} + '@oxfmt/binding-linux-arm-musleabihf@0.47.0': + resolution: {integrity: sha512-g8Lh50VS4ibGz2q6v7r9UZY4D0dM16SdrFYOMzhqIoCwGcai8VMIRUAcqn1/jlCsOOzUXJ741+kCeJt0cofakQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxfmt/binding-linux-arm64-gnu@0.46.0': - resolution: {integrity: sha512-+TWipjrgVM8D7aIdDD0tlr3teLTTvQTn7QTE5BpT10H1Fj82gfdn9X6nn2sDgx/MepuSCfSnzFNJq2paLL0OiA==} + '@oxfmt/binding-linux-arm64-gnu@0.47.0': + resolution: {integrity: sha512-YrNT1vQ0asaXoRbrvYENPqmBfOQ9Xr8enPNOULeYfg44VjCcrUowFy5QZr+WawE0zyP8cH9e9Gxxg0fDEFzhcg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-arm64-musl@0.46.0': - resolution: {integrity: sha512-aAUPBWJ1lGwwnxZUEDLJ94+Iy6MuwJwPxUgO4sCA5mEEyDk7b+cDQ+JpX1VR150Zoyd+D49gsrUzpUK5h587Eg==} + '@oxfmt/binding-linux-arm64-musl@0.47.0': + resolution: {integrity: sha512-IxtQC/sbBi4ubbY+MdwdanRWrG9InQJVZqyMsBa5IUaQcnSg86gQme574HxXMC1p4bo4YhV99zQ+wNnGCvEgzw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@oxfmt/binding-linux-ppc64-gnu@0.46.0': - resolution: {integrity: sha512-ufBCJukyFX/UDrokP/r6BGDoTInnsDs7bxyzKAgMiZlt2Qu8GPJSJ6Zm6whIiJzKk0naxA8ilwmbO1LMw6Htxw==} + '@oxfmt/binding-linux-ppc64-gnu@0.47.0': + resolution: {integrity: sha512-EWXEhOMbWO0q6eJSbu0QLkU8cKi0ljlYLngeDs2Ocu/pm1rrLwyQiYzlFbdnMRURI4w9ndr1sI9rSbhlJ5o23Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-riscv64-gnu@0.46.0': - resolution: {integrity: sha512-eqtlC2YmPqjun76R1gVfGLuKWx7NuEnLEAudZ7n6ipSKbCZTqIKSs1b5Y8K/JHZsRpLkeSmAAjig5HOIg8fQzQ==} + '@oxfmt/binding-linux-riscv64-gnu@0.47.0': + resolution: {integrity: sha512-tZrjS11TUiDuEpRaqdk8K9F9xETRyKXfuZKmdeW+Gj7coBnm7+8sBEfyt033EAFEQSlkniAXvBLh+Qja2ioGBQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-riscv64-musl@0.46.0': - resolution: {integrity: sha512-yccVOO2nMXkQLGgy0He3EQEwKD7NF0zEk+/OWmroznkqXyJdN6bfK0LtNnr6/14Bh3FjpYq7bP33l/VloCnxpA==} + '@oxfmt/binding-linux-riscv64-musl@0.47.0': + resolution: {integrity: sha512-KBFy+2CFKUCZzYwX2ZOPQKck1vjQbz+hextuc19G4r0WRJwadfAeuQMQRQvB+Ivc8brlbOVg7et8K7E467440g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [musl] - '@oxfmt/binding-linux-s390x-gnu@0.46.0': - resolution: {integrity: sha512-aAf7fG23OQCey6VRPj9IeCraoYtpgtx0ZyJ1CXkPyT1wjzBE7c3xtuxHe/AdHaJfVVb/SXpSk8Gl1LzyQupSqw==} + '@oxfmt/binding-linux-s390x-gnu@0.47.0': + resolution: {integrity: sha512-REUPFKVGSiK99B+9eaPhluEVglzaoj/SMykNC5SUiV2RSsBfV5lWN7Y0iCIc251Wz3GaeAGZsJ/zj3gjarxdFg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-x64-gnu@0.46.0': - resolution: {integrity: sha512-q0JPsTMyJNjYrBvYFDz4WbVsafNZaPCZv4RnFypRotLqpKROtBZcEaXQW4eb9YmvLU3NckVemLJnzkSZSdmOxw==} + '@oxfmt/binding-linux-x64-gnu@0.47.0': + resolution: {integrity: sha512-KVftVSVEDeIfRW3TIeLe3aNI/iY4m1fu5mDwHcisKMZSCMKLkrhFsjowC7o9RoqNPxbbglm2+/6KAKBIts2t0Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-x64-musl@0.46.0': - resolution: {integrity: sha512-7LsLY9Cw57GPkhSR+duI3mt9baRczK/DtHYSldQ4BEU92da9igBQNl4z7Vq5U9NNPsh1FmpKvv1q9WDtiUQR1A==} + '@oxfmt/binding-linux-x64-musl@0.47.0': + resolution: {integrity: sha512-DTsmGEaA2860Aq5VUyDO8/MT9NFxwVL93RnRYmpMwK6DsSkThmvEpqoUDDljziEpAedMRG19SCogrNbINSbLUQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@oxfmt/binding-openharmony-arm64@0.46.0': - resolution: {integrity: sha512-lHiBOz8Duaku7JtRNLlps3j++eOaICPZSd8FCVmTDM4DFOPT71Bjn7g6iar1z7StXlKRweUKxWUs4sA+zWGDXg==} + '@oxfmt/binding-openharmony-arm64@0.47.0': + resolution: {integrity: sha512-8r5BDro7fLOBoq1JXHLVSs55OlrxQhEso4HVo0TcY7OXJUPYfjPoOaYL5us+yIwqyP9rQwN+rxuiNFSmaxSuOQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@oxfmt/binding-win32-arm64-msvc@0.46.0': - resolution: {integrity: sha512-/5ktYUliP89RhgC37DBH1x20U5zPSZMy3cMEcO0j3793rbHP9MWsknBwQB6eozRzWmYrh0IFM/p20EbPvDlYlg==} + '@oxfmt/binding-win32-arm64-msvc@0.47.0': + resolution: {integrity: sha512-qtz/gzm8IjSPUlseZ0ofW8zyHLoZsuP5HTfcGGkWkUblB89JT8GNYH3ICqjbDsqsGqXum0/ZndXTFplSdXFIcg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxfmt/binding-win32-ia32-msvc@0.46.0': - resolution: {integrity: sha512-3WTnoiuIr8XvV0DIY7SN+1uJSwKf4sPpcbHfobcRT9JutGcLaef/miyBB87jxd3aqH+mS0+G5lsgHuXLUwjjpQ==} + '@oxfmt/binding-win32-ia32-msvc@0.47.0': + resolution: {integrity: sha512-5vIcdcIDE7nCx+MXN6sm8kbC4zajDB31E86rez4i45iHNH/2NjdKlJ720xcHTr3eeiMcttCGPHPhE1TjtBDGZw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@oxfmt/binding-win32-x64-msvc@0.46.0': - resolution: {integrity: sha512-IXxiQpkYnOwNfP23vzwSfhdpxJzyiPTY7eTn6dn3DsriKddESzM8i6kfq9R7CD/PUJwCvQT22NgtygBeug3KoA==} + '@oxfmt/binding-win32-x64-msvc@0.47.0': + resolution: {integrity: sha512-Sr59Y5ms54ONBjxFeWhVlGyQcHXxcl9DxC23f6yXlRkcos7LXBLoO+KDfxexjHIOZh7cWqrWduzvUjJ+pHp8cQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] - '@oxlint-tsgolint/darwin-arm64@0.22.0': - resolution: {integrity: sha512-/exgXceakHbQrzaHTtKOe7MuDATaWMCCWpsCDQCZKeYhLGXzComipTrCYnHzAXrdnNBb5r5K+RRf5A6ormrhMA==} + '@oxlint-tsgolint/darwin-arm64@0.22.1': + resolution: {integrity: sha512-4150Lpgc1YM09GcjA6GSrra1JoPjC7aOpfywLjWEY4vW0Sd1qKzqHF1WRaiw0/qUZ40OATYdv3aRd7ipPkWQbw==} cpu: [arm64] os: [darwin] - '@oxlint-tsgolint/darwin-x64@0.22.0': - resolution: {integrity: sha512-xFGdIahlmUbK+/MpZ5y08D0ewMGLDbd2Vki5wxVFYg50lSrtgPAtdDl+kqKZLNaFu0zpMar8n9wv1le05sL/jw==} + '@oxlint-tsgolint/darwin-x64@0.22.1': + resolution: {integrity: sha512-vFWcPWYOgZs4HWcgS1EjUZg33NLcNfEYU49KGImmCfZWkflENrmBYV4HN/C0YeAPum6ZZ/goPSvQrB/cOD+NfA==} cpu: [x64] os: [darwin] - '@oxlint-tsgolint/linux-arm64@0.22.0': - resolution: {integrity: sha512-53RvC9f77eUo+V1dfQNwGVnsIfPJFMibRR0ee128EUpYNDOZe/ojmCfuXJeU7cY91V7r7fZSm42KPJocXUX8og==} + '@oxlint-tsgolint/linux-arm64@0.22.1': + resolution: {integrity: sha512-6LiUpP0Zir3+29FvBm7Y28q/dBjSHqTZ5MhG1Ckw4fGhI4cAvbcwXaKvbjx1TP7rRmBNOoq/M5xdpHjTb+GAew==} cpu: [arm64] os: [linux] - '@oxlint-tsgolint/linux-x64@0.22.0': - resolution: {integrity: sha512-evZcJAZ9hjNyuN69RnXwbt+U2pAOcYt+yvqukgugiCkRm4iBZ0R0CvpY1tgfG2XcGUhEPh8dljO+nPZTEVGpCQ==} + '@oxlint-tsgolint/linux-x64@0.22.1': + resolution: {integrity: sha512-fuX1hEQfpHauUbXADsfqVhRzrUrGabzGXbj5wsp2vKhV5uk/Rze8Mba9GdjFGECzvXudMGqHqxB4r6jGRdhxVA==} cpu: [x64] os: [linux] - '@oxlint-tsgolint/win32-arm64@0.22.0': - resolution: {integrity: sha512-7jTO+k1mr5BxRAI2fxc1NRcE3MAbHNZ0Vef9SD1yAR6d1E6qEv5D/D7yuHpQpw6AO3qoecSVo2Jzr+JirN61+w==} + '@oxlint-tsgolint/win32-arm64@0.22.1': + resolution: {integrity: sha512-8SZidAj+jrbZf9ZjBEYW0tiNZ+KasqB2zgW26qdiPpQSF/DzURnPmXz651IeA9YsmbVdHGIooEHUmev6QJdquA==} cpu: [arm64] os: [win32] - '@oxlint-tsgolint/win32-x64@0.22.0': - resolution: {integrity: sha512-7lbl9XFcqO+scsynxMzTQdl0XUe6sBUCyY/oGWvCB+JmV4U+70vzSyZJdTEzzxtkZiNnUVFFh9RJLmoiQSne+w==} + '@oxlint-tsgolint/win32-x64@0.22.1': + resolution: {integrity: sha512-QweSk9H5lFh5Y+WUf2Kq/OAN88V6+62ZwGhP38gqdRotI90luXSMkruFTj7Q2rYrzH4ZVNaSqx7NY8JpSfIzqg==} cpu: [x64] os: [win32] - '@oxlint/binding-android-arm-eabi@1.61.0': - resolution: {integrity: sha512-6eZBPgiigK5txqoVgRqxbaxiom4lM8AP8CyKPPvpzKnQ3iFRFOIDc+0AapF+qsUSwjOzr5SGk4SxQDpQhkSJMQ==} + '@oxlint/binding-android-arm-eabi@1.62.0': + resolution: {integrity: sha512-pKsthNECyvJh8lPTICz6VcwVy2jOqdhhsp1rlxCkhgZR47aKvXPmaRWQDv+zlXpRae4qm1MaaTnutkaOk5aofg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@oxlint/binding-android-arm64@1.61.0': - resolution: {integrity: sha512-CkwLR69MUnyv5wjzebvbbtTSUwqLxM35CXE79bHqDIK+NtKmPEUpStTcLQRZMCo4MP0qRT6TXIQVpK0ZVScnMA==} + '@oxlint/binding-android-arm64@1.62.0': + resolution: {integrity: sha512-b1AUNViByvgmR2xJDubvLIr+dSuu3uraG7bsAoKo+xrpspPvu6RIn6Fhr2JUhobfep3jwUTy18Huco6GkwdvGQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxlint/binding-darwin-arm64@1.61.0': - resolution: {integrity: sha512-8JbefTkbmvqkqWjmQrHke+MdpgT2UghhD/ktM4FOQSpGeCgbMToJEKdl9zwhr/YWTl92i4QI1KiTwVExpcUN8A==} + '@oxlint/binding-darwin-arm64@1.62.0': + resolution: {integrity: sha512-iG+Tvf70UJ6otfwFYIHk36Sjq9cpPP5YLxkoggANNRtzgi3Tj3g8q6Ybqi6AtkU3+yg9QwF7bDCkCS6bbL4PCg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxlint/binding-darwin-x64@1.61.0': - resolution: {integrity: sha512-uWpoxDT47hTnDLcdEh5jVbso8rlTTu5o0zuqa9J8E0JAKmIWn7kGFEIB03Pycn2hd2vKxybPGLhjURy/9We5FQ==} + '@oxlint/binding-darwin-x64@1.62.0': + resolution: {integrity: sha512-oOWI6YPPr5AJUx+yIDlxmuUbQjS5gZX3OH3QisawYvsZgLiQVvZtR0rPBcJTxLWqt2ClrWg0DlSrlUiG5SQNHg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxlint/binding-freebsd-x64@1.61.0': - resolution: {integrity: sha512-K/o4hEyW7flfMel0iBVznmMBt7VIMHGdjADocHKpK1DUF9erpWnJ+BSSWd2W0c8K3mPtpph+CuHzRU6CI3l9jQ==} + '@oxlint/binding-freebsd-x64@1.62.0': + resolution: {integrity: sha512-dLP33T7VLCmLVv4cvjkVX+rmkcwNk2UfxmsZPNur/7BQHoQR60zJ7XLiRvNUawlzn0u8ngCa3itjEG73MAMa/w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxlint/binding-linux-arm-gnueabihf@1.61.0': - resolution: {integrity: sha512-P6040ZkcyweJ0Po9yEFqJCdvZnf3VNCGs1SIHgXDf8AAQNC6ID/heXQs9iSgo2FH7gKaKq32VWc59XZwL34C5Q==} + '@oxlint/binding-linux-arm-gnueabihf@1.62.0': + resolution: {integrity: sha512-fl//LWNks6qo9chNY60UDYyIwtp7a5cEx4Y/rHPjaarhuwqx6jtbzEpD5V5AqmdL4a6Y5D8zeXg5HF2Cr0QmSQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxlint/binding-linux-arm-musleabihf@1.61.0': - resolution: {integrity: sha512-bwxrGCzTZkuB+THv2TQ1aTkVEfv5oz8sl+0XZZCpoYzErJD8OhPQOTA0ENPd1zJz8QsVdSzSrS2umKtPq4/JXg==} + '@oxlint/binding-linux-arm-musleabihf@1.62.0': + resolution: {integrity: sha512-i5vkAuxvueTODV3J2dL61/TXewDHhMFKvtD156cIsk7GsdfiAu7zW7kY0NJXhKeFHeiMZIh7eFNjkPYH6J47HQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxlint/binding-linux-arm64-gnu@1.61.0': - resolution: {integrity: sha512-vkhb9/wKguMkLlrm3FoJW/Xmdv31GgYAE+x8lxxQ+7HeOxXUySI0q36a3NTVIuQUdLzxCI1zzMGsk1o37FOe3w==} + '@oxlint/binding-linux-arm64-gnu@1.62.0': + resolution: {integrity: sha512-QwN19LLuIGuOjEflSeJkZmOTfBdBMlTmW8xbMf8TZhjd//cxVNYQPq75q7oKZBJc6hRx3gY7sX0Egc8cEIFZYg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-arm64-musl@1.61.0': - resolution: {integrity: sha512-bl1dQh8LnVqsj6oOQAcxwbuOmNJkwc4p6o//HTBZhNTzJy21TLDwAviMqUFNUxDHkPGpmdKTSN4tWTjLryP8xg==} + '@oxlint/binding-linux-arm64-musl@1.62.0': + resolution: {integrity: sha512-8eCy3FCDuWUM5hWujAv6heMvfZPbcCOU3SdQUAkixZLu5bSzOkNfirJiLGoQFO943xceOKkiQRMQNzH++jM3WA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@oxlint/binding-linux-ppc64-gnu@1.61.0': - resolution: {integrity: sha512-QoOX6KB2IiEpyOj/HKqaxi+NQHPnOgNgnr22n9N4ANJCzXkUlj1UmeAbFb4PpqdlHIzvGDM5xZ0OKtcLq9RhiQ==} + '@oxlint/binding-linux-ppc64-gnu@1.62.0': + resolution: {integrity: sha512-NjQ7K7tpTPDe9J+yq8p/s/J0E7lRCkK2uDBDqvT4XIT6f4Z0tlnr59OBg/WcrmVHER1AbrcfyxhGTXgcG8ytWg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-riscv64-gnu@1.61.0': - resolution: {integrity: sha512-1TGcTerjY6p152wCof3oKElccq3xHljS/Mucp04gV/4ATpP6nO7YNnp7opEg6SHkv2a57/b4b8Ndm9znJ1/qAw==} + '@oxlint/binding-linux-riscv64-gnu@1.62.0': + resolution: {integrity: sha512-oKZed9gmSwze29dEt3/Wnsv6l/Ygw/FUst+8Kfpv2SGeS/glEoTGZAMQw37SVyzFV76UTHJN2snGgxK2t2+8ow==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-riscv64-musl@1.61.0': - resolution: {integrity: sha512-65wXEmZIrX2ADwC8i/qFL4EWLSbeuBpAm3suuX1vu4IQkKd+wLT/HU/BOl84kp91u2SxPkPDyQgu4yrqp8vwVA==} + '@oxlint/binding-linux-riscv64-musl@1.62.0': + resolution: {integrity: sha512-gBjBxQ+9lGpAYq+ELqw0w8QXsBnkZclFc7GRX2r0LnEVn3ZTEqeIKpKcGjucmp76Q53bvJD0i4qBWBhcfhSfGA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [musl] - '@oxlint/binding-linux-s390x-gnu@1.61.0': - resolution: {integrity: sha512-TVvhgMvor7Qa6COeXxCJ7ENOM+lcAOGsQ0iUdPSCv2hxb9qSHLQ4XF1h50S6RE1gBOJ0WV3rNukg4JJJP1LWRA==} + '@oxlint/binding-linux-s390x-gnu@1.62.0': + resolution: {integrity: sha512-Ew2Kxs9EQ9/mbAIJ2hvocMC0wsOu6YKzStI2eFBDt+Td5O8seVC/oxgRIHqCcl5sf5ratA1nozQBAuv7tphkHg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@oxlint/binding-linux-x64-gnu@1.61.0': - resolution: {integrity: sha512-SjpS5uYuFoDnDdZPwZE59ndF95AsY47R5MliuneTWR1pDm2CxGJaYXbKULI71t5TVfLQUWmrHEGRL9xvuq6dnA==} + '@oxlint/binding-linux-x64-gnu@1.62.0': + resolution: {integrity: sha512-5z25jcAA0gfKyVwz71A0VXgaPlocPoTAxhlv/hgoK6tlCrfoNuw7haWbDHvGMfjXhdic4EqVXGRv5XsTqFnbRQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-x64-musl@1.61.0': - resolution: {integrity: sha512-gGfAeGD4sNJGILZbc/yKcIimO9wQnPMoYp9swAaKeEtwsSQAbU+rsdQze5SBtIP6j0QDzeYd4XSSUCRCF+LIeQ==} + '@oxlint/binding-linux-x64-musl@1.62.0': + resolution: {integrity: sha512-IWpHmMB6ZDllPvqWDkG6AmXrN7JF5e/c4g/0PuURsmlK+vHoYZPB70rr4u1bn3I4LsKCSpqqfveyx6UCOC8wdg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@oxlint/binding-openharmony-arm64@1.61.0': - resolution: {integrity: sha512-OlVT0LrG/ct33EVtWRyR+B/othwmDWeRxfi13wUdPeb3lAT5TgTcFDcfLfarZtzB4W1nWF/zICMgYdkggX2WmQ==} + '@oxlint/binding-openharmony-arm64@1.62.0': + resolution: {integrity: sha512-fjlSxxrD5pA594vkyikCS9MnPRjQawW6/BLgyTYkO+73wwPlYjkcZ7LSd974l0Q2zkHQmu4DPvJFLYA7o8xrxQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@oxlint/binding-win32-arm64-msvc@1.61.0': - resolution: {integrity: sha512-vI//NZPJk6DToiovPtaiwD4iQ7kO1r5ReWQD0sOOyKRtP3E2f6jxin4uvwi3OvDzHA2EFfd7DcZl5dtkQh7g1w==} + '@oxlint/binding-win32-arm64-msvc@1.62.0': + resolution: {integrity: sha512-EiFXr8loNS0Ul3Gu80+9nr1T8jRmnKocqmHHg16tj5ZqTgUXyb97l2rrspVHdDluyFn9JfR4PoJFdNzw4paHww==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxlint/binding-win32-ia32-msvc@1.61.0': - resolution: {integrity: sha512-0ySj4/4zd2XjePs3XAQq7IigIstN4LPQZgCyigX5/ERMLjdWAJfnxcTsrtxZxuij8guJW8foXuHmhGxW0H4dDA==} + '@oxlint/binding-win32-ia32-msvc@1.62.0': + resolution: {integrity: sha512-IgOFvL73li1bFgab+hThXYA0N2Xms2kV2MvZN95cebV+fmrZ9AVui1JSxfeeqRLo3CpPxKZlzhyq4G0cnaAvIw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@oxlint/binding-win32-x64-msvc@1.61.0': - resolution: {integrity: sha512-0xgSiyeqDLDZxXoe9CVJrOx3TUVsfyoOY7cNi03JbItNcC9WCZqrSNdrAbHONxhSPaVh/lzfnDcON1RqSUMhHw==} + '@oxlint/binding-win32-x64-msvc@1.62.0': + resolution: {integrity: sha512-6hMpyDWQ2zGA1OXFKBrdYMUveUCO8UJhkO6JdwZPd78xIdHZNhjx+pib+4fC2Cljuhjyl0QwA2F3df/bs4Bp6A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] - '@oxlint/plugins@1.61.0': - resolution: {integrity: sha512-nkOyZEF1vH527CkdQtOp1HMrVFEM4ResURvI2JFeGoup+h+43J/k/FgdOR9b9Isxg+Yae7qVDa7y3nssE8b3TQ==} + '@oxlint/plugins@1.62.0': + resolution: {integrity: sha512-BgKRw631mImmxuGuRoWaRT8AvNSJCfJvR7lDzP1jR3sBAa7q8P/Ii+lcEOEFZsfcfpkXLyUKGEQLYXWqb60wvw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} '@package-json/types@0.0.12': @@ -5147,21 +5147,21 @@ packages: resolution: {integrity: sha512-dD4UpyBh/9m4X2NVjA+73/ZPBRF+uF4zIMFvvQsabMiEK8x41L3rQ8EENOi35kyyoaJwNxEeJcP6Fj1H4U409Q==} engines: {node: '>=12'} - oxfmt@0.46.0: - resolution: {integrity: sha512-CopwJOwPAjZ9p76fCvz+mSOJTw9/NY3cSksZK3VO/bUQ8UoEcketNgUuYS0UB3p+R9XnXe7wGGXUmyFxc7QxJA==} + oxfmt@0.47.0: + resolution: {integrity: sha512-OFbkbzxKCpooQEnRmpTDnuwTX8KHXzZTQ4Df/hz85fpS67Pl+lxPEFvUtin56HIIS0B1k4X8oIzTXRZPufA2CA==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true - oxlint-plugin-eslint@1.61.0: - resolution: {integrity: sha512-3vpLeQdH3kPQsOzALgeoodvxxLD1D7KrM8lEBPELAqfkNhS1uMvqcPA7y3pJ8rEEfhUDyQJlRU5yZRw6wq1S2A==} + oxlint-plugin-eslint@1.62.0: + resolution: {integrity: sha512-O3P73cvhqepcccIscD0PJ0/JaJG/WJYm9Z7R3JUS0jcQggUSGTWE0ybNKMrZfsTsW+16qZ6etHPXn1Ce6ZLELQ==} engines: {node: ^20.19.0 || >=22.12.0} - oxlint-tsgolint@0.22.0: - resolution: {integrity: sha512-ku4MecLmCQIj1ScCtzNAqTuyl0BJQ02B36fJT+c5XQihHpYSFak+FC3GYO5fPyYk4oDwi0w0S7hTvrpNzuZhig==} + oxlint-tsgolint@0.22.1: + resolution: {integrity: sha512-YUSGSLUnoolsu8gxISEDio3q1rtsCozwfOzASUn3DT2mR2EeQ93uEEnen7s+6LpF+lyTQFln1pQfqwBh/fsVEg==} hasBin: true - oxlint@1.61.0: - resolution: {integrity: sha512-ZC0ALuhDZ6ivOFG+sy0D0pEDN49EvsId98zVlmYdkcXHsEM14m/qTNUEsUpiFiCVbpIxYtVBmmLE87nsbUHohQ==} + oxlint@1.62.0: + resolution: {integrity: sha512-1uFkg6HakjsGIpW9wNdeW4/2LOHW9MEkoWjZUTUfQtIHyLIZPYt00w3Sg+H3lH+206FgBPHBbW5dVE5l2ExECQ==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -7818,139 +7818,139 @@ snapshots: '@oxc-project/types@0.126.0': {} - '@oxfmt/binding-android-arm-eabi@0.46.0': + '@oxfmt/binding-android-arm-eabi@0.47.0': optional: true - '@oxfmt/binding-android-arm64@0.46.0': + '@oxfmt/binding-android-arm64@0.47.0': optional: true - '@oxfmt/binding-darwin-arm64@0.46.0': + '@oxfmt/binding-darwin-arm64@0.47.0': optional: true - '@oxfmt/binding-darwin-x64@0.46.0': + '@oxfmt/binding-darwin-x64@0.47.0': optional: true - '@oxfmt/binding-freebsd-x64@0.46.0': + '@oxfmt/binding-freebsd-x64@0.47.0': optional: true - '@oxfmt/binding-linux-arm-gnueabihf@0.46.0': + '@oxfmt/binding-linux-arm-gnueabihf@0.47.0': optional: true - '@oxfmt/binding-linux-arm-musleabihf@0.46.0': + '@oxfmt/binding-linux-arm-musleabihf@0.47.0': optional: true - '@oxfmt/binding-linux-arm64-gnu@0.46.0': + '@oxfmt/binding-linux-arm64-gnu@0.47.0': optional: true - '@oxfmt/binding-linux-arm64-musl@0.46.0': + '@oxfmt/binding-linux-arm64-musl@0.47.0': optional: true - '@oxfmt/binding-linux-ppc64-gnu@0.46.0': + '@oxfmt/binding-linux-ppc64-gnu@0.47.0': optional: true - '@oxfmt/binding-linux-riscv64-gnu@0.46.0': + '@oxfmt/binding-linux-riscv64-gnu@0.47.0': optional: true - '@oxfmt/binding-linux-riscv64-musl@0.46.0': + '@oxfmt/binding-linux-riscv64-musl@0.47.0': optional: true - '@oxfmt/binding-linux-s390x-gnu@0.46.0': + '@oxfmt/binding-linux-s390x-gnu@0.47.0': optional: true - '@oxfmt/binding-linux-x64-gnu@0.46.0': + '@oxfmt/binding-linux-x64-gnu@0.47.0': optional: true - '@oxfmt/binding-linux-x64-musl@0.46.0': + '@oxfmt/binding-linux-x64-musl@0.47.0': optional: true - '@oxfmt/binding-openharmony-arm64@0.46.0': + '@oxfmt/binding-openharmony-arm64@0.47.0': optional: true - '@oxfmt/binding-win32-arm64-msvc@0.46.0': + '@oxfmt/binding-win32-arm64-msvc@0.47.0': optional: true - '@oxfmt/binding-win32-ia32-msvc@0.46.0': + '@oxfmt/binding-win32-ia32-msvc@0.47.0': optional: true - '@oxfmt/binding-win32-x64-msvc@0.46.0': + '@oxfmt/binding-win32-x64-msvc@0.47.0': optional: true - '@oxlint-tsgolint/darwin-arm64@0.22.0': + '@oxlint-tsgolint/darwin-arm64@0.22.1': optional: true - '@oxlint-tsgolint/darwin-x64@0.22.0': + '@oxlint-tsgolint/darwin-x64@0.22.1': optional: true - '@oxlint-tsgolint/linux-arm64@0.22.0': + '@oxlint-tsgolint/linux-arm64@0.22.1': optional: true - '@oxlint-tsgolint/linux-x64@0.22.0': + '@oxlint-tsgolint/linux-x64@0.22.1': optional: true - '@oxlint-tsgolint/win32-arm64@0.22.0': + '@oxlint-tsgolint/win32-arm64@0.22.1': optional: true - '@oxlint-tsgolint/win32-x64@0.22.0': + '@oxlint-tsgolint/win32-x64@0.22.1': optional: true - '@oxlint/binding-android-arm-eabi@1.61.0': + '@oxlint/binding-android-arm-eabi@1.62.0': optional: true - '@oxlint/binding-android-arm64@1.61.0': + '@oxlint/binding-android-arm64@1.62.0': optional: true - '@oxlint/binding-darwin-arm64@1.61.0': + '@oxlint/binding-darwin-arm64@1.62.0': optional: true - '@oxlint/binding-darwin-x64@1.61.0': + '@oxlint/binding-darwin-x64@1.62.0': optional: true - '@oxlint/binding-freebsd-x64@1.61.0': + '@oxlint/binding-freebsd-x64@1.62.0': optional: true - '@oxlint/binding-linux-arm-gnueabihf@1.61.0': + '@oxlint/binding-linux-arm-gnueabihf@1.62.0': optional: true - '@oxlint/binding-linux-arm-musleabihf@1.61.0': + '@oxlint/binding-linux-arm-musleabihf@1.62.0': optional: true - '@oxlint/binding-linux-arm64-gnu@1.61.0': + '@oxlint/binding-linux-arm64-gnu@1.62.0': optional: true - '@oxlint/binding-linux-arm64-musl@1.61.0': + '@oxlint/binding-linux-arm64-musl@1.62.0': optional: true - '@oxlint/binding-linux-ppc64-gnu@1.61.0': + '@oxlint/binding-linux-ppc64-gnu@1.62.0': optional: true - '@oxlint/binding-linux-riscv64-gnu@1.61.0': + '@oxlint/binding-linux-riscv64-gnu@1.62.0': optional: true - '@oxlint/binding-linux-riscv64-musl@1.61.0': + '@oxlint/binding-linux-riscv64-musl@1.62.0': optional: true - '@oxlint/binding-linux-s390x-gnu@1.61.0': + '@oxlint/binding-linux-s390x-gnu@1.62.0': optional: true - '@oxlint/binding-linux-x64-gnu@1.61.0': + '@oxlint/binding-linux-x64-gnu@1.62.0': optional: true - '@oxlint/binding-linux-x64-musl@1.61.0': + '@oxlint/binding-linux-x64-musl@1.62.0': optional: true - '@oxlint/binding-openharmony-arm64@1.61.0': + '@oxlint/binding-openharmony-arm64@1.62.0': optional: true - '@oxlint/binding-win32-arm64-msvc@1.61.0': + '@oxlint/binding-win32-arm64-msvc@1.62.0': optional: true - '@oxlint/binding-win32-ia32-msvc@1.61.0': + '@oxlint/binding-win32-ia32-msvc@1.62.0': optional: true - '@oxlint/binding-win32-x64-msvc@1.61.0': + '@oxlint/binding-win32-x64-msvc@1.62.0': optional: true - '@oxlint/plugins@1.61.0': {} + '@oxlint/plugins@1.62.0': {} '@package-json/types@0.0.12': {} @@ -11105,63 +11105,63 @@ snapshots: lodash.isequal: 4.5.0 vali-date: 1.0.0 - oxfmt@0.46.0: + oxfmt@0.47.0: dependencies: tinypool: 2.1.0 optionalDependencies: - '@oxfmt/binding-android-arm-eabi': 0.46.0 - '@oxfmt/binding-android-arm64': 0.46.0 - '@oxfmt/binding-darwin-arm64': 0.46.0 - '@oxfmt/binding-darwin-x64': 0.46.0 - '@oxfmt/binding-freebsd-x64': 0.46.0 - '@oxfmt/binding-linux-arm-gnueabihf': 0.46.0 - '@oxfmt/binding-linux-arm-musleabihf': 0.46.0 - '@oxfmt/binding-linux-arm64-gnu': 0.46.0 - '@oxfmt/binding-linux-arm64-musl': 0.46.0 - '@oxfmt/binding-linux-ppc64-gnu': 0.46.0 - '@oxfmt/binding-linux-riscv64-gnu': 0.46.0 - '@oxfmt/binding-linux-riscv64-musl': 0.46.0 - '@oxfmt/binding-linux-s390x-gnu': 0.46.0 - '@oxfmt/binding-linux-x64-gnu': 0.46.0 - '@oxfmt/binding-linux-x64-musl': 0.46.0 - '@oxfmt/binding-openharmony-arm64': 0.46.0 - '@oxfmt/binding-win32-arm64-msvc': 0.46.0 - '@oxfmt/binding-win32-ia32-msvc': 0.46.0 - '@oxfmt/binding-win32-x64-msvc': 0.46.0 - - oxlint-plugin-eslint@1.61.0: {} - - oxlint-tsgolint@0.22.0: + '@oxfmt/binding-android-arm-eabi': 0.47.0 + '@oxfmt/binding-android-arm64': 0.47.0 + '@oxfmt/binding-darwin-arm64': 0.47.0 + '@oxfmt/binding-darwin-x64': 0.47.0 + '@oxfmt/binding-freebsd-x64': 0.47.0 + '@oxfmt/binding-linux-arm-gnueabihf': 0.47.0 + '@oxfmt/binding-linux-arm-musleabihf': 0.47.0 + '@oxfmt/binding-linux-arm64-gnu': 0.47.0 + '@oxfmt/binding-linux-arm64-musl': 0.47.0 + '@oxfmt/binding-linux-ppc64-gnu': 0.47.0 + '@oxfmt/binding-linux-riscv64-gnu': 0.47.0 + '@oxfmt/binding-linux-riscv64-musl': 0.47.0 + '@oxfmt/binding-linux-s390x-gnu': 0.47.0 + '@oxfmt/binding-linux-x64-gnu': 0.47.0 + '@oxfmt/binding-linux-x64-musl': 0.47.0 + '@oxfmt/binding-openharmony-arm64': 0.47.0 + '@oxfmt/binding-win32-arm64-msvc': 0.47.0 + '@oxfmt/binding-win32-ia32-msvc': 0.47.0 + '@oxfmt/binding-win32-x64-msvc': 0.47.0 + + oxlint-plugin-eslint@1.62.0: {} + + oxlint-tsgolint@0.22.1: optionalDependencies: - '@oxlint-tsgolint/darwin-arm64': 0.22.0 - '@oxlint-tsgolint/darwin-x64': 0.22.0 - '@oxlint-tsgolint/linux-arm64': 0.22.0 - '@oxlint-tsgolint/linux-x64': 0.22.0 - '@oxlint-tsgolint/win32-arm64': 0.22.0 - '@oxlint-tsgolint/win32-x64': 0.22.0 - - oxlint@1.61.0(oxlint-tsgolint@0.22.0): + '@oxlint-tsgolint/darwin-arm64': 0.22.1 + '@oxlint-tsgolint/darwin-x64': 0.22.1 + '@oxlint-tsgolint/linux-arm64': 0.22.1 + '@oxlint-tsgolint/linux-x64': 0.22.1 + '@oxlint-tsgolint/win32-arm64': 0.22.1 + '@oxlint-tsgolint/win32-x64': 0.22.1 + + oxlint@1.62.0(oxlint-tsgolint@0.22.1): optionalDependencies: - '@oxlint/binding-android-arm-eabi': 1.61.0 - '@oxlint/binding-android-arm64': 1.61.0 - '@oxlint/binding-darwin-arm64': 1.61.0 - '@oxlint/binding-darwin-x64': 1.61.0 - '@oxlint/binding-freebsd-x64': 1.61.0 - '@oxlint/binding-linux-arm-gnueabihf': 1.61.0 - '@oxlint/binding-linux-arm-musleabihf': 1.61.0 - '@oxlint/binding-linux-arm64-gnu': 1.61.0 - '@oxlint/binding-linux-arm64-musl': 1.61.0 - '@oxlint/binding-linux-ppc64-gnu': 1.61.0 - '@oxlint/binding-linux-riscv64-gnu': 1.61.0 - '@oxlint/binding-linux-riscv64-musl': 1.61.0 - '@oxlint/binding-linux-s390x-gnu': 1.61.0 - '@oxlint/binding-linux-x64-gnu': 1.61.0 - '@oxlint/binding-linux-x64-musl': 1.61.0 - '@oxlint/binding-openharmony-arm64': 1.61.0 - '@oxlint/binding-win32-arm64-msvc': 1.61.0 - '@oxlint/binding-win32-ia32-msvc': 1.61.0 - '@oxlint/binding-win32-x64-msvc': 1.61.0 - oxlint-tsgolint: 0.22.0 + '@oxlint/binding-android-arm-eabi': 1.62.0 + '@oxlint/binding-android-arm64': 1.62.0 + '@oxlint/binding-darwin-arm64': 1.62.0 + '@oxlint/binding-darwin-x64': 1.62.0 + '@oxlint/binding-freebsd-x64': 1.62.0 + '@oxlint/binding-linux-arm-gnueabihf': 1.62.0 + '@oxlint/binding-linux-arm-musleabihf': 1.62.0 + '@oxlint/binding-linux-arm64-gnu': 1.62.0 + '@oxlint/binding-linux-arm64-musl': 1.62.0 + '@oxlint/binding-linux-ppc64-gnu': 1.62.0 + '@oxlint/binding-linux-riscv64-gnu': 1.62.0 + '@oxlint/binding-linux-riscv64-musl': 1.62.0 + '@oxlint/binding-linux-s390x-gnu': 1.62.0 + '@oxlint/binding-linux-x64-gnu': 1.62.0 + '@oxlint/binding-linux-x64-musl': 1.62.0 + '@oxlint/binding-openharmony-arm64': 1.62.0 + '@oxlint/binding-win32-arm64-msvc': 1.62.0 + '@oxlint/binding-win32-ia32-msvc': 1.62.0 + '@oxlint/binding-win32-x64-msvc': 1.62.0 + oxlint-tsgolint: 0.22.1 p-cancelable@4.0.1: {} From 796bbf1ecfdfb3f692709971dba25cb3beadac35 Mon Sep 17 00:00:00 2001 From: Tony Date: Wed, 29 Apr 2026 04:00:53 +0800 Subject: [PATCH 264/439] fix(route/yahoo): fix providers (#21852) * fix(yahoo): fix getProviderList * fix(yahoo): fix region config * fix: typo --- lib/routes/yahoo/namespace.ts | 4 +- lib/routes/yahoo/news/index.ts | 28 ++-- lib/routes/yahoo/news/listid.ts | 7 +- lib/routes/yahoo/news/provider-helper.ts | 3 +- lib/routes/yahoo/news/provider.ts | 7 +- lib/routes/yahoo/news/utils.tsx | 155 ++++++++++++++++------- 6 files changed, 131 insertions(+), 73 deletions(-) diff --git a/lib/routes/yahoo/namespace.ts b/lib/routes/yahoo/namespace.ts index fc2da8e81d75..fa507dec371a 100644 --- a/lib/routes/yahoo/namespace.ts +++ b/lib/routes/yahoo/namespace.ts @@ -2,6 +2,6 @@ import type { Namespace } from '@/types'; export const namespace: Namespace = { name: 'Yahoo', - url: 'hk.news.yahoo.com', - lang: 'zh-HK', + url: 'news.yahoo.com', + lang: 'en-us', }; diff --git a/lib/routes/yahoo/news/index.ts b/lib/routes/yahoo/news/index.ts index 58b6a44f6761..c8a2fd8cca10 100644 --- a/lib/routes/yahoo/news/index.ts +++ b/lib/routes/yahoo/news/index.ts @@ -1,9 +1,8 @@ import InvalidParameterError from '@/errors/types/invalid-parameter'; import type { Route } from '@/types'; -import cache from '@/utils/cache'; import parser from '@/utils/rss-parser'; -import { getArchive, getCategories, parseItem, parseList } from './utils'; +import { getArchive, parseItem, parseList, regionConfig } from './utils'; export const route: Route = { path: '/news/:region/:category?', @@ -47,9 +46,9 @@ Category for hk.news.yahoo.com (hongkong) Category for tw.news.yahoo.com (taiwan) -| 全部 | 政治 | 財經 | 娛樂 | 運動 | 社會地方 | 國際 | 生活 | 健康 | 科技 | 品味 | -| ------- | -------- | ------- | ------------- | ------ | -------- | ----- | --------- | ------ | ---------- | ----- | -| (empty) | politics | finance | entertainment | sports | society | world | lifestyle | health | technology | style | +| 全部 | 政治 | 財經 | 娛樂 | 運動 | 社會地方 | 國際 | 生活 | 健康 | 科技 | +| ------- | -------- | ------- | ------------- | ------ | -------- | ----- | --------- | ------ | ---------- | +| (empty) | politics | finance | entertainment | sports | society | world | lifestyle | health | technology | Other Yahoo news is fetched from the RSS provided by Yahoo. Please refer to the categories displayed on the pages of *.news.yahoo.com (for example, "world"), and try to access *.news.yahoo.com/rss/world to see if it is accessible and contains recent news (some categories exist but are not updated). If it is accessible and has recent news, then that category can be used on the corresponding site. For example, the available categories for news.yahoo.com are as follows @@ -87,9 +86,9 @@ hk.news.yahoo.com (香港) 所支持的分类 tw.news.yahoo.com (台湾) 所支持的分类 -| 全部 | 政治 | 財經 | 娛樂 | 運動 | 社會地方 | 國際 | 生活 | 健康 | 科技 | 品味 | -| ------- | -------- | ------- | ------------- | ------ | -------- | ----- | --------- | ------ | ---------- | ----- | -| (留空) | politics | finance | entertainment | sports | society | world | lifestyle | health | technology | style | +| 全部 | 政治 | 財經 | 娛樂 | 運動 | 社會地方 | 國際 | 生活 | 健康 | 科技 | +| ------- | -------- | ------- | ------------- | ------ | -------- | ----- | --------- | ------ | ---------- | +| (留空) | politics | finance | entertainment | sports | society | world | lifestyle | health | technology | 其他雅虎新闻读取自 yahoo 提供的 RSS, 请根据 *.news.yahoo.com 的页面上展示的分类(例如 world ), 尝试 *.news.yahoo.com/rss/world 能否访问并且有近期的新闻(有些分类存在但未更新), 如果可以的话则该分类可以用在相应站点, 例如 news.yahoo.com 可用的分类如下 @@ -120,13 +119,16 @@ async function handler(ctx) { const limit = ctx.req.query('limit') ? Number.parseInt(ctx.req.query('limit'), 10) : 20; if (['hk', 'tw'].includes(region)) { - const categoryMap = await getCategories(region, cache.tryGet); - const tag = category ? categoryMap[category].yctMap : null; + const { categoryMap } = regionConfig[region]; + if (category && !categoryMap[category]) { + throw new InvalidParameterError(`Unknown category for ${region}: ${category}`); + } + const tags = category ? categoryMap[category].tags : undefined; - const response = await getArchive(region, limit, tag); + const response = await getArchive(region, limit, tags); const list = parseList(region, response); - const items = await Promise.all(list.map((item) => parseItem(item, cache.tryGet))); + const items = await Promise.all(list.map((item) => parseItem(item))); return { title: `Yahoo 新聞 ${region.toUpperCase()} - ${category ? categoryMap[category].name : '所有類別'}`, @@ -138,7 +140,7 @@ async function handler(ctx) { const rssUrl = `https://${region ? `${region}.` : ''}news.yahoo.com/rss/${category ? `${category}/` : ''}`; const feed = await parser.parseURL(rssUrl); const filteredItems = feed.items.filter((item) => item?.link && !item.link.includes('promotions') && new URL(item.link).hostname.match(/.*\.yahoo\.com$/)); - const items = await Promise.all(filteredItems.map((item) => parseItem(item, cache.tryGet))); + const items = await Promise.all(filteredItems.map((item) => parseItem(item))); return { title: `Yahoo News ${region.toUpperCase()} - ${category ? category.toUpperCase() : 'All'}`, diff --git a/lib/routes/yahoo/news/listid.ts b/lib/routes/yahoo/news/listid.ts index 074d68b4419c..003fae95d87a 100644 --- a/lib/routes/yahoo/news/listid.ts +++ b/lib/routes/yahoo/news/listid.ts @@ -1,6 +1,5 @@ import InvalidParameterError from '@/errors/types/invalid-parameter'; import type { Route } from '@/types'; -import cache from '@/utils/cache'; import { getList, parseItem, parseList } from './utils'; @@ -55,11 +54,11 @@ async function handler(ctx) { // console.log('Is response an array?', Array.isArray(response.stream_items)); const list = parseList(region, response.stream_items); - const items = await Promise.all(list.map((item) => parseItem(item, cache.tryGet))); + const items = await Promise.all(list.map((item) => parseItem(item))); const author = items[0].author; - const atIndex = author.indexOf('@'); // fing '@' - const source = atIndex === -1 ? author : author.slice(atIndex + 1).trim(); + const atIndex = author?.indexOf('@'); // fing '@' + const source = atIndex === -1 ? author : author?.slice(atIndex + 1).trim(); // console.log(source); return { diff --git a/lib/routes/yahoo/news/provider-helper.ts b/lib/routes/yahoo/news/provider-helper.ts index 13d4fd3de885..d02bfc31945f 100644 --- a/lib/routes/yahoo/news/provider-helper.ts +++ b/lib/routes/yahoo/news/provider-helper.ts @@ -1,6 +1,5 @@ import InvalidParameterError from '@/errors/types/invalid-parameter'; import type { Route } from '@/types'; -import cache from '@/utils/cache'; import { getProviderList } from './utils'; @@ -36,7 +35,7 @@ async function handler(ctx) { throw new InvalidParameterError(`Unknown region: ${region}`); } - const providerList = await getProviderList(region, cache.tryGet); + const providerList = await getProviderList(region); const items = providerList.map((provider) => ({ ...provider, diff --git a/lib/routes/yahoo/news/provider.ts b/lib/routes/yahoo/news/provider.ts index 8e4010ddda73..8a567a0e1a16 100644 --- a/lib/routes/yahoo/news/provider.ts +++ b/lib/routes/yahoo/news/provider.ts @@ -1,6 +1,5 @@ import InvalidParameterError from '@/errors/types/invalid-parameter'; import type { Route } from '@/types'; -import cache from '@/utils/cache'; import { getArchive, getProviderList, parseItem, parseList } from './utils'; @@ -50,13 +49,13 @@ async function handler(ctx) { } const limit = ctx.req.query('limit') ? Number.parseInt(ctx.req.query('limit'), 10) : 20; - const providerList = await getProviderList(region, cache.tryGet); + const providerList = await getProviderList(region); const provider = providerList.find((p) => p.key === providerId); - const response = await getArchive(region, limit, null, providerId); + const response = await getArchive(region, limit, [], providerId); const list = parseList(region, response); - const items = await Promise.all(list.map((item) => parseItem(item, cache.tryGet))); + const items = await Promise.all(list.map((item) => parseItem(item))); return { title: `Yahoo 新聞 - ${provider?.title ?? ''}`, diff --git a/lib/routes/yahoo/news/utils.tsx b/lib/routes/yahoo/news/utils.tsx index d735c3a61a58..474c5cf9dcd9 100644 --- a/lib/routes/yahoo/news/utils.tsx +++ b/lib/routes/yahoo/news/utils.tsx @@ -2,24 +2,67 @@ import { load } from 'cheerio'; import { renderToString } from 'hono/jsx/dom/server'; import { config } from '@/config'; +import cache from '@/utils/cache'; import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; -const getArchive = async (region, limit, tag, providerId?) => { - const { data: response } = await got( - `https://${region}.news.yahoo.com/_td-news/api/resource/NCPListService;api=archive;ncpParams=${encodeURIComponent( - JSON.stringify({ - query: { - count: limit, - // imageSizes: '220x128', - start: 0, - providerid: providerId, - tag, - }, - }) - )}` - ); - return response; +const regionConfig = { + hk: { + spaceId: '2143854493', + lang: 'zh-Hant-HK', + categoryMap: { + business: { name: '財經', tags: ['yct:001000298', 'yct:001000123', 'yct:001000721'] }, + entertainment: { name: '娛樂', tags: ['yct:001000031'] }, + health: { name: '健康', tags: ['yct:001000395'] }, + 'hong-kong': { name: '港聞', tags: ['yct:001000661'] }, + parenting: { name: '親子', tags: ['yct:001000267'] }, + sports: { name: '體育', tags: ['yct:001000001'] }, + supplement: { name: '副刊', tags: ['yct:001000560', 'yct:001000780', 'yct:001000931', 'yct:001001039', 'yct:001000374'] }, + world: { name: '兩岸國際', tags: ['yct:001000680'] }, + }, + }, + tw: { + spaceId: '2144446726', + lang: 'zh-Hant-TW', + categoryMap: { + entertainment: { name: '娛樂', tags: ['yct:001000031'] }, + finance: { name: '財經', tags: ['yct:001000298', 'yct:001000123'] }, + health: { name: '健康', tags: ['yct:001000395'] }, + lifestyle: { name: '生活', tags: ['ymedia:category=000000126', 'yct:001000560', 'yct:001000374', 'yct:001001117', 'yct:001000659', 'yct:001000616'] }, + politics: { name: '政治', tags: ['yct:001000661'] }, + society: { name: '社會地方', tags: ['ymedia:category=000000179', 'yct:001000798', 'yct:001000667'] }, + sports: { name: '運動', tags: ['yct:001000001'] }, + technology: { name: '科技', tags: ['yct:001000931', 'yct:001000742', 'ymedia:category=000000175'] }, + world: { name: '國際', tags: ['ymedia:category=000000030', 'ymedia:category=000000032'] }, + }, + }, +}; + +const getArchive = async (region, limit, tags?: string[], providerId?) => { + const { spaceId, lang } = regionConfig[region]; + const params = new URLSearchParams({ + count: limit, + device: 'desktop', + documentType: 'article,video', + id: 'search', + lang, + namespace: 'news', + region: region.toUpperCase(), + site: 'news', + start: '0', + version: 'v1', + imageSizes: '498x280,100x100', + providerid: providerId ?? '', + spaceId, + }); + if (tags) { + for (const tag of tags) { + params.append('tag', tag); + } + } + + const { data: response } = await got(`https://tw-gw-news.media.yahoo.com/api/v1/gql/saved_query?${params.toString()}`); + return response.data.stream.contents; }; const getList = async (region, listId) => { @@ -27,9 +70,9 @@ const getList = async (region, listId) => { return response; }; -const getCategories = (region, tryGet) => - tryGet(`yahoo:${region}:categoryMap`, async () => { - const { PageStore } = await getStores(region, tryGet); +const getCategories = (region) => + cache.tryGet(`yahoo:${region}:categoryMap`, async () => { + const { PageStore } = await getStores(region); const { Col1: col1 } = PageStore.pagesConfigRaw.base.section.regions; const { categoryMap } = col1.find((c) => c.name === 'ArchiveFilterBar').props; @@ -43,43 +86,59 @@ const getCategories = (region, tryGet) => return categoryMap; }); -const getProviderList = (region, tryGet) => - tryGet(`yahoo:${region}:providerList`, async () => { - const { ProviderListStore } = await getStores(region, tryGet); +const getProviderList = async (region) => { + const stores = await getStores(region); + return stores.providerList.map((provider) => ({ + title: provider.title, + key: provider.key, + link: new URL(`${provider.key}--所有類別/archive`, `https://${region}.news.yahoo.com`).href, + })); +}; - return ProviderListStore.providerList.flatMap((list) => - list.providers.map((provider) => ({ - title: `${list.title} - ${provider.title}`, - key: provider.key, - link: new URL(provider.url, `https://${region}.news.yahoo.com`).href, - })) - ); - }); +const findStoresObject = (node) => { + if (!node || typeof node !== 'object') { + return null; + } + if ('breakingNews' in node) { + return node; + } + for (const value of Object.values(node)) { + const found = findStoresObject(value); + if (found) { + return found; + } + } + return null; +}; -const getStores = (region, tryGet) => - tryGet(`yahoo:${region}:stores`, async () => { +const getStores = (region) => + cache.tryGet(`yahoo:${region}:stores`, async () => { const { data: response } = await got(`https://${region}.news.yahoo.com/archive`); const $ = load(response); - const appData = JSON.parse( - $('script:contains("root.App.main")') - .text() - .match(/root.App.main\s+=\s+({.+});/)?.[1] as string - ); + const script = $('script:contains("pageBenjiConfig")').text(); + const rscText = script.match(/self\.__next_f\.push\(\[1,"\d:(.*)"\]\)/)?.[1]; + const rscData = JSON.parse(JSON.parse(`"${rscText}"`)); + + const stores = findStoresObject(rscData); + if (!stores) { + throw new Error(`Unable to locate stores data for region ${region}`); + } - return appData.context.dispatcher.stores; + return stores; }); const parseList = (region, response) => response.map((item) => ({ title: item.title, - link: item.url.startsWith('http') ? item.url : new URL(item.url, `https://${region}.news.yahoo.com`).href, + link: item.canonicalUrl ? item.canonicalUrl.url : item.url.startsWith('http') ? item.url : new URL(item.url, `https://${region}.news.yahoo.com`).href, description: item.summary, - pubDate: parseDate(item.published_at, 'X'), + pubDate: item.published_at ? parseDate(item.published_at, 'X') : item.pubDate ? parseDate(item.pubDate) : undefined, + author: item.provider_name ?? item.provider?.displayName ?? item.publisher, })); -const parseItem = (item, tryGet) => - tryGet(item.link, async () => { +const parseItem = (item) => + cache.tryGet(item.link, async () => { const { data: response } = await got(item.link, { headers: { 'User-Agent': config.trueUA, @@ -90,10 +149,10 @@ const parseItem = (item, tryGet) => const ldJson = JSON.parse( $('script[type="application/ld+json"]') .toArray() - .find((ele) => $(ele).text().includes('"@type":"NewsArticle"'))?.children[0].data + .find((ele) => $(ele).text().includes('"@type":"NewsArticle"'))?.children[0].data || '{}' ); - const author = ldJson.author.name; - const body = $('.atoms'); + const author = ldJson.author?.name; + const body = $('.atoms').length ? $('.atoms') : $('.article-detail').length ? $('.article-detail') : $('.bodyItems-wrapper'); body.find('noscript, .recommendation-contents, .text-gandalf, [id^="sda-inbody-"]').remove(); // remove padding @@ -140,12 +199,12 @@ const parseItem = (item, tryGet) => .toArray() .map((ele) => $(ele).html()) .join(''); - item.author = author; + item.author = author ?? item.author; item.category = ldJson.keywords; - item.pubDate = parseDate(ldJson.datePublished); - item.updated = parseDate(ldJson.dateModified); + item.pubDate = ldJson.datePublished ? parseDate(ldJson.datePublished) : item.pubDate; + item.updated = ldJson.dateModified ? parseDate(ldJson.dateModified) : item.updated; return item; }); -export { getArchive, getCategories, getList, getProviderList, getStores, parseItem, parseList }; +export { getArchive, getCategories, getList, getProviderList, getStores, parseItem, parseList, regionConfig }; From bb5a944b357f3c428ac3299fcec6fec15c8eacd2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 29 Apr 2026 05:09:46 +0800 Subject: [PATCH 265/439] chore(deps-dev): bump tsdown from 0.21.9 to 0.21.10 (#21810) * chore(deps-dev): bump tsdown from 0.21.9 to 0.21.10 Bumps [tsdown](https://github.com/rolldown/tsdown) from 0.21.9 to 0.21.10. - [Release notes](https://github.com/rolldown/tsdown/releases) - [Commits](https://github.com/rolldown/tsdown/compare/v0.21.9...v0.21.10) --- updated-dependencies: - dependency-name: tsdown dependency-version: 0.21.10 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * fix: migrate tsdown options * test: fix flaky test --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- lib/utils/rss-parser.test.ts | 10 +- package.json | 2 +- pnpm-lock.yaml | 203 ++++++++++++++++------------------- tsdown-container.config.ts | 3 +- tsdown-worker.config.ts | 13 +-- 5 files changed, 109 insertions(+), 122 deletions(-) diff --git a/lib/utils/rss-parser.test.ts b/lib/utils/rss-parser.test.ts index 1c5edad9893a..460ac13bc7ca 100644 --- a/lib/utils/rss-parser.test.ts +++ b/lib/utils/rss-parser.test.ts @@ -7,6 +7,8 @@ import parser from '@/utils/rss-parser'; const rssXml = 'TestItem'; +const toArrayBuffer = (buf: Buffer): ArrayBuffer => buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength) as ArrayBuffer; + describe('rss-parser', () => { it('rss', async () => { const result = await parser.parseURL('http://rsshub.test/rss'); @@ -18,7 +20,7 @@ describe('rss-parser', () => { const compressed = zlib.gzipSync(Buffer.from(rssXml)); server.use( http.get('http://rsshub.test/rss-gzip', () => - HttpResponse.arrayBuffer(compressed.buffer as ArrayBuffer, { + HttpResponse.arrayBuffer(toArrayBuffer(compressed), { headers: { 'content-type': 'application/xml', 'content-encoding': 'gzip', @@ -36,7 +38,7 @@ describe('rss-parser', () => { const compressed = zlib.deflateSync(Buffer.from(rssXml)); server.use( http.get('http://rsshub.test/rss-deflate', () => - HttpResponse.arrayBuffer(compressed.buffer as ArrayBuffer, { + HttpResponse.arrayBuffer(toArrayBuffer(compressed), { headers: { 'content-type': 'application/xml', 'content-encoding': 'deflate', @@ -54,7 +56,7 @@ describe('rss-parser', () => { const compressed = zlib.brotliCompressSync(Buffer.from(rssXml)); server.use( http.get('http://rsshub.test/rss-br', () => - HttpResponse.arrayBuffer(compressed.buffer as ArrayBuffer, { + HttpResponse.arrayBuffer(toArrayBuffer(compressed), { headers: { 'content-type': 'application/xml', 'content-encoding': 'br', @@ -73,7 +75,7 @@ describe('rss-parser', () => { const compressed = zlib.zstdCompressSync(Buffer.from(rssXml)); server.use( http.get('http://rsshub.test/rss-zstd', () => - HttpResponse.arrayBuffer(compressed.buffer as ArrayBuffer, { + HttpResponse.arrayBuffer(toArrayBuffer(compressed), { headers: { 'content-type': 'application/xml', 'content-encoding': 'zstd', diff --git a/package.json b/package.json index 70cedb0efc78..d1d5763110ee 100644 --- a/package.json +++ b/package.json @@ -197,7 +197,7 @@ "oxlint-plugin-eslint": "1.62.0", "oxlint-tsgolint": "0.22.1", "remark-parse": "11.0.0", - "tsdown": "0.21.9", + "tsdown": "0.21.10", "typescript": "5.9.3", "unified": "11.0.5", "vite-tsconfig-paths": "6.1.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c48a714ef652..b1a5fa53321f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -450,8 +450,8 @@ importers: specifier: 11.0.0 version: 11.0.0 tsdown: - specifier: 0.21.9 - version: 0.21.9(synckit@0.11.12)(typescript@5.9.3) + specifier: 0.21.10 + version: 0.21.10(synckit@0.11.12)(typescript@5.9.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -703,15 +703,9 @@ packages: '@emnapi/core@1.10.0': resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} - '@emnapi/core@1.9.2': - resolution: {integrity: sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA==} - '@emnapi/runtime@1.10.0': resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} - '@emnapi/runtime@1.9.2': - resolution: {integrity: sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw==} - '@emnapi/wasi-threads@1.2.1': resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} @@ -1956,8 +1950,8 @@ packages: '@otplib/uri@13.4.0': resolution: {integrity: sha512-x1ozBa5bPbdZCrrTL/HK21qchiK7jYElTu+0ft22abeEhiLYgH1+SIULvOcVk3CK8YwF4kdcidvkq4ciejucJA==} - '@oxc-project/types@0.126.0': - resolution: {integrity: sha512-oGfVtjAgwQVVpfBrbtk4e1XDyWHRFta6BS3GWVzrF8xYBT2VGQAk39yJS/wFSMrZqoiCU4oghT3Ch0HaHGIHcQ==} + '@oxc-project/types@0.127.0': + resolution: {integrity: sha512-aIYXQBo4lCbO4z0R3FHeucQHpF46l2LbMdxRvqvuRuW2OxdnSkcng5B8+K12spgLDj93rtN3+J2Vac/TIO+ciQ==} '@oxfmt/binding-android-arm-eabi@0.47.0': resolution: {integrity: sha512-KrMQRdMi/upr81qT4ijK6X6BNp6jqpMY7FwILQnwIy9QLc3qpnhUx5rsCLGzn4ewsCQ0CNAspN2ogmP1GXLyLw==} @@ -2324,103 +2318,103 @@ packages: '@quansync/fs@1.0.0': resolution: {integrity: sha512-4TJ3DFtlf1L5LDMaM6CanJ/0lckGNtJcMjQ1NAV6zDmA0tEHKZtxNKin8EgPaVX1YzljbxckyT2tJrpQKAtngQ==} - '@rolldown/binding-android-arm64@1.0.0-rc.16': - resolution: {integrity: sha512-rhY3k7Bsae9qQfOtph2Pm2jZEA+s8Gmjoz4hhmx70K9iMQ/ddeae+xhRQcM5IuVx5ry1+bGfkvMn7D6MJggVSA==} + '@rolldown/binding-android-arm64@1.0.0-rc.17': + resolution: {integrity: sha512-s70pVGhw4zqGeFnXWvAzJDlvxhlRollagdCCKRgOsgUOH3N1l0LIxf83AtGzmb5SiVM4Hjl5HyarMRfdfj3DaQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@rolldown/binding-darwin-arm64@1.0.0-rc.16': - resolution: {integrity: sha512-rNz0yK078yrNn3DrdgN+PKiMOW8HfQ92jQiXxwX8yW899ayV00MLVdaCNeVBhG/TbH3ouYVObo8/yrkiectkcQ==} + '@rolldown/binding-darwin-arm64@1.0.0-rc.17': + resolution: {integrity: sha512-4ksWc9n0mhlZpZ9PMZgTGjeOPRu8MB1Z3Tz0Mo02eWfWCHMW1zN82Qz/pL/rC+yQa+8ZnutMF0JjJe7PjwasYw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.0-rc.16': - resolution: {integrity: sha512-r/OmdR00HmD4i79Z//xO06uEPOq5hRXdhw7nzkxQxwSavs3PSHa1ijntdpOiZ2mzOQ3fVVu8C1M19FoNM+dMUQ==} + '@rolldown/binding-darwin-x64@1.0.0-rc.17': + resolution: {integrity: sha512-SUSDOI6WwUVNcWxd02QEBjLdY1VPHvlEkw6T/8nYG322iYWCTxRb1vzk4E+mWWYehTp7ERibq54LSJGjmouOsw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.0.0-rc.16': - resolution: {integrity: sha512-KcRE5w8h0OnjUatG8pldyD14/CQ5Phs1oxfR+3pKDjboHRo9+MkqQaiIZlZRpsxC15paeXme/I127tUa9TXJ6g==} + '@rolldown/binding-freebsd-x64@1.0.0-rc.17': + resolution: {integrity: sha512-hwnz3nw9dbJ05EDO/PvcjaaewqqDy7Y1rn1UO81l8iIK1GjenME75dl16ajbvSSMfv66WXSRCYKIqfgq2KCfxw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.16': - resolution: {integrity: sha512-bT0guA1bpxEJ/ZhTRniQf7rNF8ybvXOuWbNIeLABaV5NGjx4EtOWBTSRGWFU9ZWVkPOZ+HNFP8RMcBokBiZ0Kg==} + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.17': + resolution: {integrity: sha512-IS+W7epTcwANmFSQFrS1SivEXHtl1JtuQA9wlxrZTcNi6mx+FDOYrakGevvvTwgj2JvWiK8B29/qD9BELZPyXQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.16': - resolution: {integrity: sha512-+tHktCHWV8BDQSjemUqm/Jl/TPk3QObCTIjmdDy/nlupcujZghmKK2962LYrqFpWu+ai01AN/REOH3NEpqvYQg==} + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.17': + resolution: {integrity: sha512-e6usGaHKW5BMNZOymS1UcEYGowQMWcgZ71Z17Sl/h2+ZziNJ1a9n3Zvcz6LdRyIW5572wBCTH/Z+bKuZouGk9Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-arm64-musl@1.0.0-rc.16': - resolution: {integrity: sha512-3fPzdREH806oRLxpTWW1Gt4tQHs0TitZFOECB2xzCFLPKnSOy90gwA7P29cksYilFO6XVRY1kzga0cL2nRjKPg==} + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.17': + resolution: {integrity: sha512-b/CgbwAJpmrRLp02RPfhbudf5tZnN9nsPWK82znefso832etkem8H7FSZwxrOI9djcdTP7U6YfNhbRnh7djErg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.16': - resolution: {integrity: sha512-EKwI1tSrLs7YVw+JPJT/G2dJQ1jl9qlTTTEG0V2Ok/RdOenRfBw2PQdLPyjhIu58ocdBfP7vIRN/pvMsPxs/AQ==} + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.17': + resolution: {integrity: sha512-4EII1iNGRUN5WwGbF/kOh/EIkoDN9HsupgLQoXfY+D1oyJm7/F4t5PYU5n8SWZgG0FEwakyM8pGgwcBYruGTlA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.16': - resolution: {integrity: sha512-Uknladnb3Sxqu6SEcqBldQyJUpk8NleooZEc0MbRBJ4inEhRYWZX0NJu12vNf2mqAq7gsofAxHrGghiUYjhaLQ==} + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.17': + resolution: {integrity: sha512-AH8oq3XqQo4IibpVXvPeLDI5pzkpYn0WiZAfT05kFzoJ6tQNzwRdDYQ45M8I/gslbodRZwW8uxLhbSBbkv96rA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-gnu@1.0.0-rc.16': - resolution: {integrity: sha512-FIb8+uG49sZBtLTn+zt1AJ20TqVcqWeSIyoVt0or7uAWesgKaHbiBh6OpA/k9v0LTt+PTrb1Lao133kP4uVxkg==} + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.17': + resolution: {integrity: sha512-cLnjV3xfo7KslbU41Z7z8BH/E1y5mzUYzAqih1d1MDaIGZRCMqTijqLv76/P7fyHuvUcfGsIpqCdddbxLLK9rA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-musl@1.0.0-rc.16': - resolution: {integrity: sha512-RuERhF9/EgWxZEXYWCOaViUWHIboceK4/ivdtQ3R0T44NjLkIIlGIAVAuCddFxsZ7vnRHtNQUrt2vR2n2slB2w==} + '@rolldown/binding-linux-x64-musl@1.0.0-rc.17': + resolution: {integrity: sha512-0phclDw1spsL7dUB37sIARuis2tAgomCJXAHZlpt8PXZ4Ba0dRP1e+66lsRqrfhISeN9bEGNjQs+T/Fbd7oYGw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@rolldown/binding-openharmony-arm64@1.0.0-rc.16': - resolution: {integrity: sha512-mXcXnvd9GpazCxeUCCnZ2+YF7nut+ZOEbE4GtaiPtyY6AkhZWbK70y1KK3j+RDhjVq5+U8FySkKRb/+w0EeUwA==} + '@rolldown/binding-openharmony-arm64@1.0.0-rc.17': + resolution: {integrity: sha512-0ag/hEgXOwgw4t8QyQvUCxvEg+V0KBcA6YuOx9g0r02MprutRF5dyljgm3EmR02O292UX7UeS6HzWHAl6KgyhA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@rolldown/binding-wasm32-wasi@1.0.0-rc.16': - resolution: {integrity: sha512-3Q2KQxnC8IJOLqXmUMoYwyIPZU9hzRbnHaoV3Euz+VVnjZKcY8ktnNP8T9R4/GGQtb27C/UYKABxesKWb8lsvQ==} + '@rolldown/binding-wasm32-wasi@1.0.0-rc.17': + resolution: {integrity: sha512-LEXei6vo0E5wTGwpkJ4KoT3OZJRnglwldt5ziLzOlc6qqb55z4tWNq2A+PFqCJuvWWdP53CVhG1Z9NtToDPJrA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [wasm32] - '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.16': - resolution: {integrity: sha512-tj7XRemQcOcFwv7qhpUxMTBbI5mWMlE4c1Omhg5+h8GuLXzyj8HviYgR+bB2DMDgRqUE+jiDleqSCRjx4aYk/Q==} + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.17': + resolution: {integrity: sha512-gUmyzBl3SPMa6hrqFUth9sVfcLBlYsbMzBx5PlexMroZStgzGqlZ26pYG89rBb45Mnia+oil6YAIFeEWGWhoZA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.0-rc.16': - resolution: {integrity: sha512-PH5DRZT+F4f2PTXRXR8uJxnBq2po/xFtddyabTJVJs/ZYVHqXPEgNIr35IHTEa6bpa0Q8Awg+ymkTaGnKITw4g==} + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.17': + resolution: {integrity: sha512-3hkiolcUAvPB9FLb3UZdfjVVNWherN1f/skkGWJP/fgSQhYUZpSIRr0/I8ZK9TkF3F7kxvJAk0+IcKvPHk9qQg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] - '@rolldown/pluginutils@1.0.0-rc.16': - resolution: {integrity: sha512-45+YtqxLYKDWQouLKCrpIZhke+nXxhsw+qAHVzHDVwttyBlHNBVs2K25rDXrZzhpTp9w1FlAlvweV1H++fdZoA==} + '@rolldown/pluginutils@1.0.0-rc.17': + resolution: {integrity: sha512-n8iosDOt6Ig1UhJ2AYqoIhHWh/isz0xpicHTzpKBeotdVsTEcxsSA/i3EVM7gQAj0rU27OLAxCjzlj15IWY7bg==} '@rollup/pluginutils@5.3.0': resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} @@ -5585,8 +5579,8 @@ packages: vue-tsc: optional: true - rolldown@1.0.0-rc.16: - resolution: {integrity: sha512-rzi5WqKzEZw3SooTt7cgm4eqIoujPIyGcJNGFL7iPEuajQw7vxMHUkXylu4/vhCkJGXsgRmxqMKXUpT6FEgl0g==} + rolldown@1.0.0-rc.17: + resolution: {integrity: sha512-ZrT53oAKrtA4+YtBWPQbtPOxIbVDbxT0orcYERKd63VJTF13zPcgXTvD4843L8pcsI7M6MErt8QtON6lrB9tyA==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true @@ -5982,14 +5976,14 @@ packages: typescript: optional: true - tsdown@0.21.9: - resolution: {integrity: sha512-tZPv2zMaMnjj9H9h0SDqpSXa9YWVZWHlG46DnSgNTFX6aq001MSI8kuBzJumr/u099nWj+1v5S7rhbnHk5jCHA==} + tsdown@0.21.10: + resolution: {integrity: sha512-3wk73yBhZe/wX7REqSdivNQ84TDs1mJ+IlnzrrEREP70xlJ/AEIzqaI04l/TzMKVIdkTdC3CPaADn2Lk/0SkdA==} engines: {node: '>=20.19.0'} hasBin: true peerDependencies: '@arethetypeswrong/core': ^0.18.1 - '@tsdown/css': 0.21.9 - '@tsdown/exe': 0.21.9 + '@tsdown/css': 0.21.10 + '@tsdown/exe': 0.21.10 '@vitejs/devtools': '*' publint: ^0.3.0 typescript: ^5.0.0 || ^6.0.0 @@ -6135,8 +6129,8 @@ packages: unrs-resolver@1.11.1: resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} - unrun@0.2.36: - resolution: {integrity: sha512-ICAGv44LHSKjCdI4B4rk99lJLHXBweutO4MUwu3cavMlYtXID0Tn5e1Kwe/Uj6BSAuHHXfi1JheFVCYhcXHfAg==} + unrun@0.2.37: + resolution: {integrity: sha512-AA7vDuYsgeSYVzJMm16UKA+aXFKhy7nFqW9z5l7q44K4ppFWZAMqYS58ePRZbugMLPH0fwwMzD5A8nP0avxwZQ==} engines: {node: '>=20.19.0'} hasBin: true peerDependencies: @@ -6764,22 +6758,11 @@ snapshots: tslib: 2.8.1 optional: true - '@emnapi/core@1.9.2': - dependencies: - '@emnapi/wasi-threads': 1.2.1 - tslib: 2.8.1 - optional: true - '@emnapi/runtime@1.10.0': dependencies: tslib: 2.8.1 optional: true - '@emnapi/runtime@1.9.2': - dependencies: - tslib: 2.8.1 - optional: true - '@emnapi/wasi-threads@1.2.1': dependencies: tslib: 2.8.1 @@ -7400,10 +7383,10 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true - '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)': + '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': dependencies: - '@emnapi/core': 1.9.2 - '@emnapi/runtime': 1.9.2 + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 '@tybys/wasm-util': 0.10.1 optional: true @@ -7816,7 +7799,7 @@ snapshots: dependencies: '@otplib/core': 13.4.0 - '@oxc-project/types@0.126.0': {} + '@oxc-project/types@0.127.0': {} '@oxfmt/binding-android-arm-eabi@0.47.0': optional: true @@ -8072,56 +8055,56 @@ snapshots: dependencies: quansync: 1.0.0 - '@rolldown/binding-android-arm64@1.0.0-rc.16': + '@rolldown/binding-android-arm64@1.0.0-rc.17': optional: true - '@rolldown/binding-darwin-arm64@1.0.0-rc.16': + '@rolldown/binding-darwin-arm64@1.0.0-rc.17': optional: true - '@rolldown/binding-darwin-x64@1.0.0-rc.16': + '@rolldown/binding-darwin-x64@1.0.0-rc.17': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-rc.16': + '@rolldown/binding-freebsd-x64@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.16': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.16': + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-rc.16': + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.16': + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.16': + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-rc.16': + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-rc.16': + '@rolldown/binding-linux-x64-musl@1.0.0-rc.17': optional: true - '@rolldown/binding-openharmony-arm64@1.0.0-rc.16': + '@rolldown/binding-openharmony-arm64@1.0.0-rc.17': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-rc.16': + '@rolldown/binding-wasm32-wasi@1.0.0-rc.17': dependencies: - '@emnapi/core': 1.9.2 - '@emnapi/runtime': 1.9.2 - '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 + '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.16': + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.17': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-rc.16': + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.17': optional: true - '@rolldown/pluginutils@1.0.0-rc.16': {} + '@rolldown/pluginutils@1.0.0-rc.17': {} '@rollup/pluginutils@5.3.0(rollup@4.60.2)': dependencies: @@ -11666,7 +11649,7 @@ snapshots: rfdc@1.4.1: {} - rolldown-plugin-dts@0.23.2(rolldown@1.0.0-rc.16)(typescript@5.9.3): + rolldown-plugin-dts@0.23.2(rolldown@1.0.0-rc.17)(typescript@5.9.3): dependencies: '@babel/generator': 8.0.0-rc.3 '@babel/helper-validator-identifier': 8.0.0-rc.3 @@ -11678,32 +11661,32 @@ snapshots: get-tsconfig: 4.14.0 obug: 2.1.1 picomatch: 4.0.4 - rolldown: 1.0.0-rc.16 + rolldown: 1.0.0-rc.17 optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: - oxc-resolver - rolldown@1.0.0-rc.16: + rolldown@1.0.0-rc.17: dependencies: - '@oxc-project/types': 0.126.0 - '@rolldown/pluginutils': 1.0.0-rc.16 + '@oxc-project/types': 0.127.0 + '@rolldown/pluginutils': 1.0.0-rc.17 optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.0-rc.16 - '@rolldown/binding-darwin-arm64': 1.0.0-rc.16 - '@rolldown/binding-darwin-x64': 1.0.0-rc.16 - '@rolldown/binding-freebsd-x64': 1.0.0-rc.16 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-rc.16 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-rc.16 - '@rolldown/binding-linux-arm64-musl': 1.0.0-rc.16 - '@rolldown/binding-linux-ppc64-gnu': 1.0.0-rc.16 - '@rolldown/binding-linux-s390x-gnu': 1.0.0-rc.16 - '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.16 - '@rolldown/binding-linux-x64-musl': 1.0.0-rc.16 - '@rolldown/binding-openharmony-arm64': 1.0.0-rc.16 - '@rolldown/binding-wasm32-wasi': 1.0.0-rc.16 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.16 - '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.16 + '@rolldown/binding-android-arm64': 1.0.0-rc.17 + '@rolldown/binding-darwin-arm64': 1.0.0-rc.17 + '@rolldown/binding-darwin-x64': 1.0.0-rc.17 + '@rolldown/binding-freebsd-x64': 1.0.0-rc.17 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-rc.17 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-rc.17 + '@rolldown/binding-linux-arm64-musl': 1.0.0-rc.17 + '@rolldown/binding-linux-ppc64-gnu': 1.0.0-rc.17 + '@rolldown/binding-linux-s390x-gnu': 1.0.0-rc.17 + '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.17 + '@rolldown/binding-linux-x64-musl': 1.0.0-rc.17 + '@rolldown/binding-openharmony-arm64': 1.0.0-rc.17 + '@rolldown/binding-wasm32-wasi': 1.0.0-rc.17 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.17 + '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.17 rollup@4.60.2: dependencies: @@ -12153,7 +12136,7 @@ snapshots: optionalDependencies: typescript: 5.9.3 - tsdown@0.21.9(synckit@0.11.12)(typescript@5.9.3): + tsdown@0.21.10(synckit@0.11.12)(typescript@5.9.3): dependencies: ansis: 4.2.0 cac: 7.0.0 @@ -12163,14 +12146,14 @@ snapshots: import-without-cache: 0.3.3 obug: 2.1.1 picomatch: 4.0.4 - rolldown: 1.0.0-rc.16 - rolldown-plugin-dts: 0.23.2(rolldown@1.0.0-rc.16)(typescript@5.9.3) + rolldown: 1.0.0-rc.17 + rolldown-plugin-dts: 0.23.2(rolldown@1.0.0-rc.17)(typescript@5.9.3) semver: 7.7.4 tinyexec: 1.1.1 tinyglobby: 0.2.16 tree-kill: 1.2.2 unconfig-core: 7.5.0 - unrun: 0.2.36(synckit@0.11.12) + unrun: 0.2.37(synckit@0.11.12) optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: @@ -12309,9 +12292,9 @@ snapshots: '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 - unrun@0.2.36(synckit@0.11.12): + unrun@0.2.37(synckit@0.11.12): dependencies: - rolldown: 1.0.0-rc.16 + rolldown: 1.0.0-rc.17 optionalDependencies: synckit: 0.11.12 diff --git a/tsdown-container.config.ts b/tsdown-container.config.ts index 362ba1291d80..30ecd0734fd2 100644 --- a/tsdown-container.config.ts +++ b/tsdown-container.config.ts @@ -4,6 +4,7 @@ export default defineConfig({ entry: ['./lib/container.ts'], outDir: 'dist-container', format: 'esm', + dts: false, minify: true, clean: true, platform: 'node', @@ -12,8 +13,8 @@ export default defineConfig({ define: { 'process.env.NODE_ENV': JSON.stringify('production'), }, - external: ['@cloudflare/containers'], deps: { onlyBundle: false, + neverBundle: ['@cloudflare/containers'], }, }); diff --git a/tsdown-worker.config.ts b/tsdown-worker.config.ts index 979a5850b2dc..274d352b949a 100644 --- a/tsdown-worker.config.ts +++ b/tsdown-worker.config.ts @@ -62,6 +62,7 @@ export default defineConfig({ entry: ['./lib/worker.ts'], outDir: 'dist-worker', format: 'esm', + dts: false, minify: true, clean: true, platform: 'node', @@ -76,12 +77,6 @@ export default defineConfig({ __dirname: JSON.stringify('/worker'), __filename: JSON.stringify('/worker/index.mjs'), }, - external: [ - // Exclude non-code files that might be accidentally imported - /\/_README$/, - /\.node$/, - ], - noExternal: [/.*/], plugins: [workerAliasPlugin()], alias: { // External dependencies that need Worker-compatible replacements @@ -98,5 +93,11 @@ export default defineConfig({ }, deps: { onlyBundle: false, + neverBundle: [ + // Exclude non-code files that might be accidentally imported + /\/_README$/, + /\.node$/, + ], + alwaysBundle: [/.*/], }, }); From 9bf19b819181d2329962afc853220f27409ff588 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 29 Apr 2026 05:28:19 +0800 Subject: [PATCH 266/439] chore(deps-dev): bump the cloudflare group across 1 directory with 3 updates (#21802) Bumps the cloudflare group with 3 updates in the / directory: [@cloudflare/containers](https://github.com/cloudflare/containers), [@cloudflare/workers-types](https://github.com/cloudflare/workerd) and [wrangler](https://github.com/cloudflare/workers-sdk/tree/HEAD/packages/wrangler). Updates `@cloudflare/containers` from 0.3.2 to 0.3.3 - [Release notes](https://github.com/cloudflare/containers/releases) - [Changelog](https://github.com/cloudflare/containers/blob/main/CHANGELOG.md) - [Commits](https://github.com/cloudflare/containers/compare/v0.3.2...v0.3.3) Updates `@cloudflare/workers-types` from 4.20260417.1 to 4.20260426.1 - [Release notes](https://github.com/cloudflare/workerd/releases) - [Changelog](https://github.com/cloudflare/workerd/blob/main/RELEASE.md) - [Commits](https://github.com/cloudflare/workerd/commits) Updates `wrangler` from 4.82.2 to 4.86.0 - [Release notes](https://github.com/cloudflare/workers-sdk/releases) - [Commits](https://github.com/cloudflare/workers-sdk/commits/wrangler@4.86.0/packages/wrangler) --- updated-dependencies: - dependency-name: "@cloudflare/containers" dependency-version: 0.3.3 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: cloudflare - dependency-name: "@cloudflare/workers-types" dependency-version: 4.20260422.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: cloudflare - dependency-name: wrangler dependency-version: 4.84.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: cloudflare ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 6 +-- pnpm-lock.yaml | 112 ++++++++++++++++++++++++------------------------- 2 files changed, 59 insertions(+), 59 deletions(-) diff --git a/package.json b/package.json index d1d5763110ee..2f355e910cbd 100644 --- a/package.json +++ b/package.json @@ -146,9 +146,9 @@ "@actions/core": "3.0.1", "@actions/github": "9.1.1", "@bbob/types": "4.3.1", - "@cloudflare/containers": "0.3.2", + "@cloudflare/containers": "0.3.3", "@cloudflare/puppeteer": "1.1.0", - "@cloudflare/workers-types": "4.20260417.1", + "@cloudflare/workers-types": "4.20260426.1", "@eslint/eslintrc": "3.3.5", "@eslint/js": "10.0.1", "@oxlint/plugins": "1.62.0", @@ -202,7 +202,7 @@ "unified": "11.0.5", "vite-tsconfig-paths": "6.1.1", "vitest": "4.1.5", - "wrangler": "4.82.2", + "wrangler": "4.86.0", "yaml-eslint-parser": "2.0.0" }, "lint-staged": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b1a5fa53321f..a96b8968f9d9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -297,14 +297,14 @@ importers: specifier: 4.3.1 version: 4.3.1 '@cloudflare/containers': - specifier: 0.3.2 - version: 0.3.2 + specifier: 0.3.3 + version: 0.3.3 '@cloudflare/puppeteer': specifier: 1.1.0 version: 1.1.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) '@cloudflare/workers-types': - specifier: 4.20260417.1 - version: 4.20260417.1 + specifier: 4.20260426.1 + version: 4.20260426.1 '@eslint/eslintrc': specifier: 3.3.5 version: 3.3.5 @@ -465,8 +465,8 @@ importers: specifier: 4.1.5 version: 4.1.5(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(jsdom@29.1.0(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)) wrangler: - specifier: 4.82.2 - version: 4.82.2(@cloudflare/workers-types@4.20260417.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10) + specifier: 4.86.0 + version: 4.86.0(@cloudflare/workers-types@4.20260426.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10) yaml-eslint-parser: specifier: 2.0.0 version: 2.0.0 @@ -589,8 +589,8 @@ packages: '@bufbuild/protobuf@2.11.0': resolution: {integrity: sha512-sBXGT13cpmPR5BMgHE6UEEfEaShh5Ror6rfN3yEK5si7QVrtZg8LEPQb0VVhiLRUslD2yLnXtnRzG035J/mZXQ==} - '@cloudflare/containers@0.3.2': - resolution: {integrity: sha512-hWobJrpXCgFJ/HYii6E49eegnnlUDWGacjLd0Fb6nQwTD005+T2eHUPI6qOEq9KPJOd7xTWkhkuXEKxDFvfyqQ==} + '@cloudflare/containers@0.3.3': + resolution: {integrity: sha512-ZSXmArCoo5bVTp8pGAJdl5WKmwtZDcffJqr4JcZEbSmMIFjU+AlBqgysuxXMgu03Rp239cOdqerbjK7H0K2krQ==} '@cloudflare/kv-asset-handler@0.4.2': resolution: {integrity: sha512-SIOD2DxrRRwQ+jgzlXCqoEFiKOFqaPjhnNTGKXSRLvp1HiOvapLaFG2kEr9dYQTYe8rKrd9uvDUzmAITeNyaHQ==} @@ -600,47 +600,47 @@ packages: resolution: {integrity: sha512-lN10En49avRDQvz8Gpv/WiIoGvjjDiP6P+v2y9bA6rfPT5WHfnlg2O6MwjHc1POm8A9LXf1sMdgrsdW8xWapOw==} engines: {node: '>=18'} - '@cloudflare/unenv-preset@2.16.0': - resolution: {integrity: sha512-8ovsRpwzPoEqPUzoErAYVv8l3FMZNeBVQfJTvtzP4AgLSRGZISRfuChFxHWUQd3n6cnrwkuTGxT+2cGo8EsyYg==} + '@cloudflare/unenv-preset@2.16.1': + resolution: {integrity: sha512-ECxObrMfyTl5bhQf/lZCXwo5G6xX9IAUo+nDMKK4SZ8m4Jvvxp52vilxyySSWh2YTZz8+HQ07qGH/2rEom1vDw==} peerDependencies: unenv: 2.0.0-rc.24 - workerd: 1.20260301.1 || ~1.20260302.1 || ~1.20260303.1 || ~1.20260304.1 || >1.20260305.0 <2.0.0-0 + workerd: '>1.20260305.0 <2.0.0-0' peerDependenciesMeta: workerd: optional: true - '@cloudflare/workerd-darwin-64@1.20260410.1': - resolution: {integrity: sha512-0sh6xPmCKUfv/lUklP1dfyeKxCuEZGS0HeduxnucL8ECxSgAdWTOD42h/lQTwZCIiWtyHB+ZNB9hsS2Mlf0tMQ==} + '@cloudflare/workerd-darwin-64@1.20260426.1': + resolution: {integrity: sha512-Ch7DqsmYzSQRTY87pZpsGsFVz9VVBnLPnCBOHxKt1HH25a7oMu1w1PbPWqVmE0VerCLsj/TScX7Ob3v6E14TZw==} engines: {node: '>=16'} cpu: [x64] os: [darwin] - '@cloudflare/workerd-darwin-arm64@1.20260410.1': - resolution: {integrity: sha512-r2On29gPvlk/eiH/OpeUT23xoB8W8D1PHr8lul5nyxElLqvh3yNxZUnJWrbcOl+ubfrvw7+jFwgopMe17xyf0g==} + '@cloudflare/workerd-darwin-arm64@1.20260426.1': + resolution: {integrity: sha512-0m0U8vaPRH25SpKjbSyRql6gmPe4rCsETRV2WW0qBnuMdKNr5Vh5/Uez80xVrfiCCRMTULGeg63Nqg2vg6CDOA==} engines: {node: '>=16'} cpu: [arm64] os: [darwin] - '@cloudflare/workerd-linux-64@1.20260410.1': - resolution: {integrity: sha512-qWORRcAzPZeHJjrcYBNZTN6Y9l+iZQUz4KBdWbNrM6My4CpNrXS5kErPR373vG//5QPaDGwMXgBqyn9xfzarJQ==} + '@cloudflare/workerd-linux-64@1.20260426.1': + resolution: {integrity: sha512-C8LlC8uSYzg49y51n++75esxZmMp+Uz1OKHHA/4lkv6rjOTbcHQJuEwSLppjybVIXpv7A8MBhbu9iyCTvyv1mw==} engines: {node: '>=16'} cpu: [x64] os: [linux] - '@cloudflare/workerd-linux-arm64@1.20260410.1': - resolution: {integrity: sha512-jQfuHL4mnGDFyomSS3JNs9TpTvCu6Vzz2QSNCfJRstMzTICUFLMc4Vp/xKK+M5xkb0PoAu/G0hHx7jrxB2j+OQ==} + '@cloudflare/workerd-linux-arm64@1.20260426.1': + resolution: {integrity: sha512-ESVp/OIFMAqjQsa8BOP2BQQz5Vpfv6ncN6lNnIuNeOgsISQBdYk+LA60bwQHMud9tvmnSYtONp1zkZ8OQz+x6w==} engines: {node: '>=16'} cpu: [arm64] os: [linux] - '@cloudflare/workerd-windows-64@1.20260410.1': - resolution: {integrity: sha512-h8q/nbheDqpknY7AAOz19MuQkZAR1/bnoZnKipyeUPXt5No+y6HlTtva9Bohx5Fhc1MW2CX2MQVdb55qtkkqZQ==} + '@cloudflare/workerd-windows-64@1.20260426.1': + resolution: {integrity: sha512-d3Xj/IjINRgNVwH+eKhpUn4xkkcEewbWXbOvBlapiirKWh5zl9m0Epi3qOqmjyRYK6MICqIGXg4qZBEt0lxudw==} engines: {node: '>=16'} cpu: [x64] os: [win32] - '@cloudflare/workers-types@4.20260417.1': - resolution: {integrity: sha512-ke3GkFfFyfSxdLRR6LPbnfYAu3RNKqX0eYfu/FNnluBN9rLgYVqT+QEPgSEx1yq7XTOok+Bub1td9xvknaOz4A==} + '@cloudflare/workers-types@4.20260426.1': + resolution: {integrity: sha512-cBYeQaWwv/jFV8ualmwp6wIxmAf0rDe2DPPQwPbslKmPHqgv861YpAvm45r05K40QboZgxNQVIPgNkmtHqZeJQ==} '@colors/colors@1.6.0': resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} @@ -4915,8 +4915,8 @@ packages: resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - miniflare@4.20260410.0: - resolution: {integrity: sha512-94LEU8d+XPVGp18eW4+bu1v7Tnq7srhqWMIsrx2jhSkdbTnGqg1I613R0GKY4eygBYl9MbqXEhzK/bczJb6uMg==} + miniflare@4.20260426.0: + resolution: {integrity: sha512-KM+v76d04qT+NsPfVKVQEgnnuLNE3uzCCl2QKMTJ5OXor5JbBm1vpkQwQ+l7o5ELCrZ74RnyKhJKLiJyUA39Tw==} engines: {node: '>=18.0.0'} hasBin: true @@ -6098,8 +6098,8 @@ packages: resolution: {integrity: sha512-ZgpWDC5gmNiuY9CnLVXEH8rl50xhRCuLNA97fAUnKi8RRuV4E6KG31pDTsLVUKnohJE0I3XDrTeEydAXRw47xg==} engines: {node: '>=18.17'} - undici@7.24.4: - resolution: {integrity: sha512-BM/JzwwaRXxrLdElV2Uo6cTLEjhSb3WXboncJamZ15NgUURmvlXvxa6xkwIOILIjPNo9i8ku136ZvWV0Uly8+w==} + undici@7.24.8: + resolution: {integrity: sha512-6KQ/+QxK49Z/p3HO6E5ZCZWNnCasyZLa5ExaVYyvPxUwKtbCPMKELJOqh7EqOle0t9cH/7d2TaaTRRa6Nhs4YQ==} engines: {node: '>=20.18.1'} undici@7.25.0: @@ -6357,17 +6357,17 @@ packages: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} - workerd@1.20260410.1: - resolution: {integrity: sha512-T/GRD6Y5vN9g4CnGmOlfST1w7bj+1IjRFvX0K7CodZPJuPVPNPGhz8Wppah0WdT6A7I8Kad3zgZ2OkDdWtENrg==} + workerd@1.20260426.1: + resolution: {integrity: sha512-ELvGgN8c9oo+E6EPyecxk1TEf6/eAK4TxxQTW5mQ87C7jbjCzhMbg0P2ije49UBHV0dkBYPJcJvcklUltipl2A==} engines: {node: '>=16'} hasBin: true - wrangler@4.82.2: - resolution: {integrity: sha512-SKfW21sTJUkM/Qd8zc9oc8TBkAWHRsXuTxE6XdToC55Ct84pR+IfRdaTjCTuC0dL+KYvauSvSn2rtqS2Ae+Dcw==} + wrangler@4.86.0: + resolution: {integrity: sha512-9aa/gbF/HiUeeUEwyQpW5LDPBEzyt7iaE6xHwm0vk2Ly8A6J+jh03pzchqVnCCWR832mNyA28MD8oAYt0Kfvlw==} engines: {node: '>=20.3.0'} hasBin: true peerDependencies: - '@cloudflare/workers-types': ^4.20260410.1 + '@cloudflare/workers-types': ^4.20260426.1 peerDependenciesMeta: '@cloudflare/workers-types': optional: true @@ -6665,7 +6665,7 @@ snapshots: '@bufbuild/protobuf@2.11.0': {} - '@cloudflare/containers@0.3.2': {} + '@cloudflare/containers@0.3.3': {} '@cloudflare/kv-asset-handler@0.4.2': {} @@ -6683,28 +6683,28 @@ snapshots: - supports-color - utf-8-validate - '@cloudflare/unenv-preset@2.16.0(unenv@2.0.0-rc.24)(workerd@1.20260410.1)': + '@cloudflare/unenv-preset@2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260426.1)': dependencies: unenv: 2.0.0-rc.24 optionalDependencies: - workerd: 1.20260410.1 + workerd: 1.20260426.1 - '@cloudflare/workerd-darwin-64@1.20260410.1': + '@cloudflare/workerd-darwin-64@1.20260426.1': optional: true - '@cloudflare/workerd-darwin-arm64@1.20260410.1': + '@cloudflare/workerd-darwin-arm64@1.20260426.1': optional: true - '@cloudflare/workerd-linux-64@1.20260410.1': + '@cloudflare/workerd-linux-64@1.20260426.1': optional: true - '@cloudflare/workerd-linux-arm64@1.20260410.1': + '@cloudflare/workerd-linux-arm64@1.20260426.1': optional: true - '@cloudflare/workerd-windows-64@1.20260410.1': + '@cloudflare/workerd-windows-64@1.20260426.1': optional: true - '@cloudflare/workers-types@4.20260417.1': {} + '@cloudflare/workers-types@4.20260426.1': {} '@colors/colors@1.6.0': {} @@ -10857,12 +10857,12 @@ snapshots: mimic-response@4.0.0: {} - miniflare@4.20260410.0(bufferutil@4.1.0)(utf-8-validate@5.0.10): + miniflare@4.20260426.0(bufferutil@4.1.0)(utf-8-validate@5.0.10): dependencies: '@cspotcode/source-map-support': 0.8.1 sharp: 0.34.5 - undici: 7.24.4 - workerd: 1.20260410.1 + undici: 7.24.8 + workerd: 1.20260426.1 ws: 8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) youch: 4.1.0-beta.10 transitivePeerDependencies: @@ -12240,7 +12240,7 @@ snapshots: undici@6.25.0: {} - undici@7.24.4: {} + undici@7.24.8: {} undici@7.25.0: {} @@ -12491,26 +12491,26 @@ snapshots: word-wrap@1.2.5: {} - workerd@1.20260410.1: + workerd@1.20260426.1: optionalDependencies: - '@cloudflare/workerd-darwin-64': 1.20260410.1 - '@cloudflare/workerd-darwin-arm64': 1.20260410.1 - '@cloudflare/workerd-linux-64': 1.20260410.1 - '@cloudflare/workerd-linux-arm64': 1.20260410.1 - '@cloudflare/workerd-windows-64': 1.20260410.1 + '@cloudflare/workerd-darwin-64': 1.20260426.1 + '@cloudflare/workerd-darwin-arm64': 1.20260426.1 + '@cloudflare/workerd-linux-64': 1.20260426.1 + '@cloudflare/workerd-linux-arm64': 1.20260426.1 + '@cloudflare/workerd-windows-64': 1.20260426.1 - wrangler@4.82.2(@cloudflare/workers-types@4.20260417.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10): + wrangler@4.86.0(@cloudflare/workers-types@4.20260426.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10): dependencies: '@cloudflare/kv-asset-handler': 0.4.2 - '@cloudflare/unenv-preset': 2.16.0(unenv@2.0.0-rc.24)(workerd@1.20260410.1) + '@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260426.1) blake3-wasm: 2.1.5 esbuild: 0.27.3 - miniflare: 4.20260410.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) + miniflare: 4.20260426.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) path-to-regexp: 6.3.0 unenv: 2.0.0-rc.24 - workerd: 1.20260410.1 + workerd: 1.20260426.1 optionalDependencies: - '@cloudflare/workers-types': 4.20260417.1 + '@cloudflare/workers-types': 4.20260426.1 fsevents: 2.3.3 transitivePeerDependencies: - bufferutil From e06a6dee2497c69a3375a9bf81622e6295102c63 Mon Sep 17 00:00:00 2001 From: Tony Date: Wed, 29 Apr 2026 12:52:27 +0800 Subject: [PATCH 267/439] fix(youtube): correct cache expiration handling in getLive function (#21853) --- lib/routes/youtube/utils.tsx | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/lib/routes/youtube/utils.tsx b/lib/routes/youtube/utils.tsx index 4cb4c3171cdc..563aa3dd99b6 100644 --- a/lib/routes/youtube/utils.tsx +++ b/lib/routes/youtube/utils.tsx @@ -118,17 +118,22 @@ export async function getSubscriptionsRecusive(part, nextPageToken?) { // taken from https://webapps.stackexchange.com/a/101153 export const isYouTubeChannelId = (id) => /^UC[\w-]{21}[AQgw]$/.test(id); export const getLive = (id, cache) => - cache.tryGet(`youtube:getLive:${id}`, async () => { - const res = await exec((youtube) => - youtube.search.list({ - part: 'snippet', - channelId: id, - eventType: 'live', - type: 'video', - }) - ); - return res; - }); + cache.tryGet( + `youtube:getLive:${id}`, + async () => { + const res = await exec((youtube) => + youtube.search.list({ + part: 'snippet', + channelId: id, + eventType: 'live', + type: 'video', + }) + ); + return res; + }, + config.cache.routeExpire, + false + ); export const getVideoUrl = (id: string) => `https://www.youtube-nocookie.com/embed/${id}?controls=1&autoplay=1&mute=0`; // Get the appropriate playlist ID with or without shorts From cf2f06cdd75c450b25316a50e31c231e459e15c8 Mon Sep 17 00:00:00 2001 From: Tony Date: Wed, 29 Apr 2026 13:34:34 +0800 Subject: [PATCH 268/439] fix(route/nmc): update selectors (#21854) --- lib/routes/nmc/publish.ts | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/lib/routes/nmc/publish.ts b/lib/routes/nmc/publish.ts index d05834f7e133..a09bf84e1185 100644 --- a/lib/routes/nmc/publish.ts +++ b/lib/routes/nmc/publish.ts @@ -24,7 +24,7 @@ export const handler = async (ctx: Context): Promise => { const language = $('html').attr('lang') ?? 'zh'; const items: DataItem[] = - $('div#home div[data-img]').length === 0 + $('div.row div[data-img]').length === 0 ? $('div#text') .slice(0, limit) .toArray() @@ -352,10 +352,6 @@ export const route: Route = { label: '台风海洋 - 台风命名', value: 'typhoon/typhoon-name/index/html', }, - { - label: '台风海洋 - 台风综合信息', - value: 'http://typhoon/nmc.cn', - }, { label: '全球预报 - 全球天气公报', value: 'quanqiuyubao/quanqiutianqigongbao/index/html', @@ -527,7 +523,6 @@ export const route: Route = { | [北太平洋分析与预报](https://www.nmc.cn/publish/marine/h000.html) | [marine/h000/html](https://rsshub.app/nmc/publish/marine/h000/html) | | [全球热带气旋监测公报](https://www.nmc.cn/publish/typhoon/totalcyclone.htm) | [typhoon/totalcyclone/htm](https://rsshub.app/nmc/publish/typhoon/totalcyclone/htm) | | [台风命名](https://www.nmc.cn/publish/typhoon/typhoon-name/index.html) | [typhoon/typhoon-name/index/html](https://rsshub.app/nmc/publish/typhoon/typhoon-name/index/html) | - | [台风综合信息](http://typhoon.nmc.cn) | [http://typhoon/nmc.cn](https://rsshub.app/nmc/publish/http://typhoon/nmc.cn) | #### [全球预报](https://www.nmc.cn/publish/quanqiuyubao/quanqiutianqigongbao/index.html) @@ -843,11 +838,6 @@ export const route: Route = { source: ['www.nmc.cn/publish/typhoon/typhoon-name/index.html'], target: '/publish/typhoon/typhoon-name/index/html', }, - { - title: '台风海洋 - 台风综合信息', - source: ['typhoon.nmc.cn'], - target: '/publish/http://typhoon/nmc.cn', - }, { title: '全球预报 - 全球天气公报', source: ['www.nmc.cn/publish/quanqiuyubao/quanqiutianqigongbao/index.html'], From e455f9a827c4f4f935c0814e6606e2dce2c1c268 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 29 Apr 2026 08:11:20 +0000 Subject: [PATCH 269/439] chore(deps): bump tldts from 7.0.28 to 7.0.29 (#21859) Bumps [tldts](https://github.com/remusao/tldts) from 7.0.28 to 7.0.29. - [Release notes](https://github.com/remusao/tldts/releases) - [Changelog](https://github.com/remusao/tldts/blob/master/CHANGELOG.md) - [Commits](https://github.com/remusao/tldts/compare/v7.0.28...v7.0.29) --- updated-dependencies: - dependency-name: tldts dependency-version: 7.0.29 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index 2f355e910cbd..2a48f54dabe9 100644 --- a/package.json +++ b/package.json @@ -128,7 +128,7 @@ "source-map": "0.7.6", "telegram": "2.26.22", "title": "4.0.1", - "tldts": "7.0.28", + "tldts": "7.0.29", "tosource": "2.0.0-alpha.3", "tough-cookie": "6.0.1", "tsx": "4.21.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a96b8968f9d9..05bcefc72bc1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -248,8 +248,8 @@ importers: specifier: 4.0.1 version: 4.0.1 tldts: - specifier: 7.0.28 - version: 7.0.28 + specifier: 7.0.29 + version: 7.0.29 tosource: specifier: 2.0.0-alpha.3 version: 2.0.0-alpha.3 @@ -5894,11 +5894,11 @@ packages: resolution: {integrity: sha512-QXqwfEl9ddlGBaRFXIvNKK6OhipSiLXuRuLJX5DErz0o0Q0rYxulWLdFryTkV5PkdZct5iMInwYEGe/eR++1AA==} hasBin: true - tldts-core@7.0.28: - resolution: {integrity: sha512-7W5Efjhsc3chVdFhqtaU0KtK32J37Zcr9RKtID54nG+tIpcY79CQK/veYPODxtD/LJ4Lue66jvrQzIX2Z2/pUQ==} + tldts-core@7.0.29: + resolution: {integrity: sha512-W99NuU7b1DcG3uJ3v9k9VztCH3WialNbBkBft5wCs8V8mexu0XQqaZEYb9l9RNNzK8+3EJ9PKWB0/RUtTQ/o+Q==} - tldts@7.0.28: - resolution: {integrity: sha512-+Zg3vWhRUv8B1maGSTFdev9mjoo8Etn2Ayfs4cnjlD3CsGkxXX4QyW3j2WJ0wdjYcYmy7Lx2RDsZMhgCWafKIw==} + tldts@7.0.29: + resolution: {integrity: sha512-JIXCerhudr/N6OWLwLF1HVsTTUo7ry6qHa5eWZEkiMuxsIiAACL55tGLfqfHfoH7QaMQUW8fngD7u7TxWexYQg==} hasBin: true to-no-case@1.0.2: @@ -12076,11 +12076,11 @@ snapshots: tlds@1.261.0: {} - tldts-core@7.0.28: {} + tldts-core@7.0.29: {} - tldts@7.0.28: + tldts@7.0.29: dependencies: - tldts-core: 7.0.28 + tldts-core: 7.0.29 to-no-case@1.0.2: {} @@ -12101,7 +12101,7 @@ snapshots: tough-cookie@6.0.1: dependencies: - tldts: 7.0.28 + tldts: 7.0.29 tr46@0.0.3: {} From 20ed8d7adcb01b01015e5100f323f83310a45533 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 29 Apr 2026 16:14:25 +0800 Subject: [PATCH 270/439] chore(deps): bump dawidd6/action-download-artifact from 20 to 21 (#21858) Bumps [dawidd6/action-download-artifact](https://github.com/dawidd6/action-download-artifact) from 20 to 21. - [Release notes](https://github.com/dawidd6/action-download-artifact/releases) - [Commits](https://github.com/dawidd6/action-download-artifact/compare/8305c0f1062bb0d184d09ef4493ecb9288447732...b6e2e70617bc3265edd6dab6c906732b2f1ae151) --- updated-dependencies: - dependency-name: dawidd6/action-download-artifact dependency-version: '21' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/docker-test-cont.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-test-cont.yml b/.github/workflows/docker-test-cont.yml index 104eb9326991..0ee55d688c04 100644 --- a/.github/workflows/docker-test-cont.yml +++ b/.github/workflows/docker-test-cont.yml @@ -70,7 +70,7 @@ jobs: - name: Fetch Docker image if: (env.TEST_CONTINUE) - uses: dawidd6/action-download-artifact@8305c0f1062bb0d184d09ef4493ecb9288447732 # v20 + uses: dawidd6/action-download-artifact@b6e2e70617bc3265edd6dab6c906732b2f1ae151 # v21 with: workflow: ${{ github.event.workflow_run.workflow_id }} run_id: ${{ github.event.workflow_run.id }} From 2b324a92f4ac2923df651cf4c5843973a9411fd4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 29 Apr 2026 16:53:07 +0800 Subject: [PATCH 271/439] chore(deps): bump devenv from `fb3d8df` to `cb344e4` (#21860) Bumps [devenv](https://github.com/cachix/devenv) from `fb3d8df` to `cb344e4`. - [Release notes](https://github.com/cachix/devenv/releases) - [Commits](https://github.com/cachix/devenv/compare/fb3d8df47420022c47a42151c26e5cdaee6c641d...cb344e4a5ab9241ae49739352c24268d5f8be13b) --- updated-dependencies: - dependency-name: devenv dependency-version: cb344e4a5ab9241ae49739352c24268d5f8be13b dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index ea7ca1b1a640..3714a1506277 100644 --- a/flake.lock +++ b/flake.lock @@ -164,11 +164,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1777321427, - "narHash": "sha256-EV/mIQur/dvCFwHzBjL7LBAgyhT0l3wQBgFjjY6zucg=", + "lastModified": 1777372895, + "narHash": "sha256-PGesjpeDbEPigEP7tdRw8Sm0mmOmonUdOOthBY+nhJA=", "owner": "cachix", "repo": "devenv", - "rev": "fb3d8df47420022c47a42151c26e5cdaee6c641d", + "rev": "cb344e4a5ab9241ae49739352c24268d5f8be13b", "type": "github" }, "original": { From 25bb1b4aeae25890f2bfc05d952a179d1346cd44 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 29 Apr 2026 08:55:08 +0000 Subject: [PATCH 272/439] chore(nix): update dependencies hash to sha256-O3qmJEDy3qhODzS30WCTU1E921r7OXPtUbcFtxkSvXI= --- flake.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flake.nix b/flake.nix index 7267be14d585..42c6da03e5c8 100644 --- a/flake.nix +++ b/flake.nix @@ -16,7 +16,7 @@ deps = pkgs.fetchPnpmDeps { pname = "rsshub"; src = ./.; - hash = "sha256-WpN4jgLZFkKBZJBhfp8zTjAwJzhTHmELVamsgeB7U0M="; + hash = "sha256-O3qmJEDy3qhODzS30WCTU1E921r7OXPtUbcFtxkSvXI="; fetcherVersion = 2; }; in From 58ab2d3b27bfe28679e5cd2822abe8f7f38c0d12 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 29 Apr 2026 17:11:44 +0800 Subject: [PATCH 273/439] chore(deps): bump nixpkgs from `0726a0e` to `1c3fe55` (#21861) Bumps [nixpkgs](https://github.com/NixOS/nixpkgs) from `0726a0e` to `1c3fe55`. - [Commits](https://github.com/NixOS/nixpkgs/compare/0726a0ecb6d4e08f6adced58726b95db924cef57...1c3fe55ad329cbcb28471bb30f05c9827f724c76) --- updated-dependencies: - dependency-name: nixpkgs dependency-version: 1c3fe55ad329cbcb28471bb30f05c9827f724c76 dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 3714a1506277..3f20b3d9c406 100644 --- a/flake.lock +++ b/flake.lock @@ -825,11 +825,11 @@ }, "nixpkgs_7": { "locked": { - "lastModified": 1776877367, - "narHash": "sha256-EHq1/OX139R1RvBzOJ0aMRT3xnWyqtHBRUBuO1gFzjI=", + "lastModified": 1777268161, + "narHash": "sha256-bxrdOn8SCOv8tN4JbTF/TXq7kjo9ag4M+C8yzzIRYbE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "0726a0ecb6d4e08f6adced58726b95db924cef57", + "rev": "1c3fe55ad329cbcb28471bb30f05c9827f724c76", "type": "github" }, "original": { From 2f66481a33ee801e24d1a95b1477d3b1793e4201 Mon Sep 17 00:00:00 2001 From: Tony Date: Wed, 29 Apr 2026 17:21:27 +0800 Subject: [PATCH 274/439] fix(route/nhk): fix linebreak (#21863) --- lib/routes/nhk/news.tsx | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/lib/routes/nhk/news.tsx b/lib/routes/nhk/news.tsx index 018dff62ca6c..35dad8627e0d 100644 --- a/lib/routes/nhk/news.tsx +++ b/lib/routes/nhk/news.tsx @@ -4,7 +4,7 @@ import { renderToString } from 'hono/jsx/dom/server'; import type { Route } from '@/types'; import { ViewType } from '@/types'; import cache from '@/utils/cache'; -import got from '@/utils/got'; +import ofetch from '@/utils/ofetch'; import { parseDate } from '@/utils/parse-date'; const baseUrl = 'https://www3.nhk.or.jp'; @@ -64,25 +64,26 @@ export const route: Route = { async function handler(ctx) { const { lang = 'en' } = ctx.req.param(); - const { data } = await got(`${apiUrl}/nwapi/rdnewsweb/v7b/${lang}/outline/list.json`); - const meta = await got(`${baseUrl}/nhkworld/common/assets/news/config/${lang}.json`); + const data = await ofetch(`${apiUrl}/nwapi/rdnewsweb/v7b/${lang}/outline/list.json`); + const meta = await ofetch(`${baseUrl}/nhkworld/common/assets/news/config/${lang}.json`); let items = data.data.map((item) => ({ title: item.title, description: item.description, link: `${baseUrl}${item.page_url}`, - pubDate: parseDate(item.updated_at, 'x'), + pubDate: parseDate(item.public_at, 'x'), + updated: parseDate(item.updated_at, 'x'), + category: item.categories.name, id: item.id, })); items = await Promise.all( items.map((item) => cache.tryGet(item.link, async () => { - const { data } = await got(`${apiUrl}/nwapi/rdnewsweb/v6b/${lang}/detail/${item.id}.json`); - item.category = Object.values(data.data.categories); - const img = data.data.thumbnails; + const { data } = await ofetch(`${apiUrl}/nwapi/rdnewsweb/v6b/${lang}/detail/${item.id}.json`); + const img = data.thumbnails; const imageSrc = img?.large || img?.middle || img?.small || img?.min; - const description = data.data.detail.replaceAll('\n\n', '

    '); + const description = data.detail.replaceAll('\n', '
    '); item.description = renderToString( <> {imageSrc ? ( @@ -101,7 +102,7 @@ async function handler(ctx) { ); return { - title: `${Object.values(meta.data.config.navigation.header).find((h) => h.keyname === 'topstories')?.name} | NHK WORLD-JAPAN News`, + title: `${Object.values(meta.config.navigation.header).find((h) => h.keyname === 'topstories')?.name} | NHK WORLD-JAPAN News`, link: `${baseUrl}/nhkworld/${lang}/news/list/`, item: items, }; From 3b39d3d8f2d8b4ceed9cfeab536413d8f735e4c5 Mon Sep 17 00:00:00 2001 From: Tony Date: Thu, 30 Apr 2026 06:24:46 +0800 Subject: [PATCH 275/439] chore: add ignorePatterns in oxlintrc.ci.json upstream bug: oxc-project/oxc#10223 oxc-project/oxc#16079 --- .oxlintrc.ci.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.oxlintrc.ci.json b/.oxlintrc.ci.json index cd2d7c49f838..7a7509dc2253 100644 --- a/.oxlintrc.ci.json +++ b/.oxlintrc.ci.json @@ -1,6 +1,8 @@ { "$schema": "./node_modules/oxlint/configuration_schema.json", "extends": ["./.oxlintrc.json"], + // extends doesn't extend ignorePatterns, oxc-project/oxc#10223, oxc-project/oxc#16079 + "ignorePatterns": ["**/coverage", "**/.vscode", "**/docker-compose.yml", "!.github", "assets/build", "lib/routes-deprecated", "lib/router.js", "dist", "dist-lib", "dist-worker"], "options": { "respectEslintDisableDirectives": false } From d1dad546df8808e38c5991958b1013ef9512e94f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 30 Apr 2026 08:27:19 +0000 Subject: [PATCH 276/439] chore(deps): bump @scalar/hono-api-reference from 0.10.11 to 0.10.12 (#21870) Bumps [@scalar/hono-api-reference](https://github.com/scalar/scalar/tree/HEAD/integrations/hono) from 0.10.11 to 0.10.12. - [Release notes](https://github.com/scalar/scalar/releases) - [Changelog](https://github.com/scalar/scalar/blob/main/integrations/hono/CHANGELOG.md) - [Commits](https://github.com/scalar/scalar/commits/HEAD/integrations/hono) --- updated-dependencies: - dependency-name: "@scalar/hono-api-reference" dependency-version: 0.10.12 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 37 +++++++++++++++++++------------------ 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/package.json b/package.json index 2a48f54dabe9..781a7de4cb2d 100644 --- a/package.json +++ b/package.json @@ -72,7 +72,7 @@ "@opentelemetry/sdk-trace-base": "2.7.0", "@opentelemetry/semantic-conventions": "1.40.0", "@rss3/sdk": "0.0.25", - "@scalar/hono-api-reference": "0.10.11", + "@scalar/hono-api-reference": "0.10.12", "@sentry/node": "10.50.0", "aes-js": "3.1.2", "cheerio": "1.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 05bcefc72bc1..a46c578d9194 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -80,8 +80,8 @@ importers: specifier: 0.0.25 version: 0.0.25 '@scalar/hono-api-reference': - specifier: 0.10.11 - version: 0.10.11(hono@4.12.15) + specifier: 0.10.12 + version: 0.10.12(hono@4.12.15) '@sentry/node': specifier: 10.50.0 version: 10.50.0(@opentelemetry/exporter-trace-otlp-http@0.215.0(@opentelemetry/api@1.9.1)) @@ -2572,22 +2572,22 @@ packages: '@rss3/sdk@0.0.25': resolution: {integrity: sha512-jyXT4YTwefxxRZ0tt5xjbnw8e7zPg2OGdo/0xb+h/7qWnMNhLtWpc95DsYs/1C/I0rIyiDpZBhLI2DieQ9y+tw==} - '@scalar/client-side-rendering@0.1.4': - resolution: {integrity: sha512-xriPrHrKs/FNQbMJTPWiP7bIualAobbJlzrDM5Tl+7nSgKMUUgpR60IcOphCsJ+iFcdOU/VTmjufBcOaVigDPg==} + '@scalar/client-side-rendering@0.1.5': + resolution: {integrity: sha512-XZ+lZbVli1rAX8Y13sQqisvbjVhkbePVeo0izJZ4cNzpzSh7fDpigEqpV67u4ljpTpLO0B12JDXR5xnmSy+YwQ==} engines: {node: '>=22'} - '@scalar/helpers@0.5.3': - resolution: {integrity: sha512-PgQmhuV0oRoHtaqH0OhyCcSY9t35qm8ThNeuUMEAKeN+hW1ijBnJiUADpxaIfXPbLrpN9sjyYza0A16WFbLttg==} + '@scalar/helpers@0.5.4': + resolution: {integrity: sha512-AJFJNoSVcCHXDPH1Mosie+5+AOpNC4zrtwWywvQEhcaqHfiH4LSq8Og8Bay82M/jhCwNRNjWfGOGcaCE4XbCDw==} engines: {node: '>=22'} - '@scalar/hono-api-reference@0.10.11': - resolution: {integrity: sha512-iU3VVhI5ulzwVOaF3Qxswyvd/K3/56k2/420nOSu6me3zP4OqdvA4Xt9/7vkkRu0yOxjkq68GCVVB/R/5AkLuQ==} + '@scalar/hono-api-reference@0.10.12': + resolution: {integrity: sha512-X7ueApsdUkTEhyLfR9S6G+qzvoFUwZk4Hfh/I8EwTocxMAcv28bWvf0fe9UbmhXBN/vO6lKdpey/RCr5kiFjcg==} engines: {node: '>=22'} peerDependencies: hono: ^4.12.5 - '@scalar/types@0.9.3': - resolution: {integrity: sha512-/cEFjVa8PxRIDyhcWKh7McT8pm5O0kbafzd1jvpVq69sgIIq0gJ0P1sCcPye6qJ2k478PK7VmpK9FxZcr6D4Kw==} + '@scalar/types@0.9.4': + resolution: {integrity: sha512-nspIWRUVPv2uf9d0bBxn2uqKcEVbLqoUqKvNAuBgKMinZ95XSMcGjQjsgqDiRBPsn1luTtjC9xupUFfer7kLtg==} engines: {node: '>=22'} '@scure/base@2.0.0': @@ -6189,11 +6189,12 @@ packages: uuid@3.4.0: resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} - deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. + deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). hasBin: true uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). hasBin: true vali-date@1.0.0: @@ -8204,20 +8205,20 @@ snapshots: '@rss3/api-core': 0.0.25 '@rss3/api-utils': 0.0.25 - '@scalar/client-side-rendering@0.1.4': + '@scalar/client-side-rendering@0.1.5': dependencies: - '@scalar/types': 0.9.3 + '@scalar/types': 0.9.4 - '@scalar/helpers@0.5.3': {} + '@scalar/helpers@0.5.4': {} - '@scalar/hono-api-reference@0.10.11(hono@4.12.15)': + '@scalar/hono-api-reference@0.10.12(hono@4.12.15)': dependencies: - '@scalar/client-side-rendering': 0.1.4 + '@scalar/client-side-rendering': 0.1.5 hono: 4.12.15 - '@scalar/types@0.9.3': + '@scalar/types@0.9.4': dependencies: - '@scalar/helpers': 0.5.3 + '@scalar/helpers': 0.5.4 nanoid: 5.1.9 type-fest: 5.6.0 zod: 4.3.6 From 8063ff90c1b67ef81b0547fb8fabd9b91f66825a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 30 Apr 2026 08:30:46 +0000 Subject: [PATCH 277/439] chore(deps): bump imapflow from 1.3.2 to 1.3.3 (#21874) Bumps [imapflow](https://github.com/postalsys/imapflow) from 1.3.2 to 1.3.3. - [Release notes](https://github.com/postalsys/imapflow/releases) - [Changelog](https://github.com/postalsys/imapflow/blob/master/CHANGELOG.md) - [Commits](https://github.com/postalsys/imapflow/compare/v1.3.2...v1.3.3) --- updated-dependencies: - dependency-name: imapflow dependency-version: 1.3.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 37 +++++++++++++++++++++++++++++-------- 2 files changed, 30 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index 781a7de4cb2d..d09aa31d83b2 100644 --- a/package.json +++ b/package.json @@ -94,7 +94,7 @@ "http-cookie-agent": "7.0.3", "https-proxy-agent": "9.0.0", "iconv-lite": "0.7.2", - "imapflow": "1.3.2", + "imapflow": "1.3.3", "instagram-private-api": "1.46.1", "ioredis": "5.10.1", "ip-regex": "5.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a46c578d9194..4cb9be907a6a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -146,8 +146,8 @@ importers: specifier: 0.7.2 version: 0.7.2 imapflow: - specifier: 1.3.2 - version: 1.3.2 + specifier: 1.3.3 + version: 1.3.3 instagram-private-api: specifier: 1.46.1 version: 1.46.1 @@ -4403,8 +4403,8 @@ packages: engines: {node: '>=6.9.0'} hasBin: true - imapflow@1.3.2: - resolution: {integrity: sha512-lIhVpjAf+o/1SELeR34vqeoEjAyBOMd6xq2Vdx2E4XIRwDi5sfqfBqqr5YkTwp7G/Q3f5ACpU7/zuGklJeCj9Q==} + imapflow@1.3.3: + resolution: {integrity: sha512-lx7nWcUDfNgITEKYYfunUDqJ3LT6ImuiA1ReqJepVEA2nqBQNUqa3ppF7Yz5CNjuDYG95pmzsCcNqRjMrwh/Vg==} import-fresh@3.3.1: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} @@ -4455,6 +4455,10 @@ packages: resolution: {integrity: sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==} engines: {node: '>= 12'} + ip-address@10.1.1: + resolution: {integrity: sha512-1FMu8/N15Ck1BL551Jf42NYIoin2unWjLQ2Fze/DXryJRl5twqtwNHlO39qERGbIOcKYWHdgRryhOC+NG4eaLw==} + engines: {node: '>= 12'} + ip-regex@4.3.0: resolution: {integrity: sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==} engines: {node: '>=8'} @@ -5055,6 +5059,10 @@ packages: resolution: {integrity: sha512-0PF8Yb1yZuQfQbq+5/pZJrtF6WQcjTd5/S4JOHs9PGFxuTqoB/icwuB44pOdURHJbRKX1PPoJZtY7R4VUoCC8w==} engines: {node: '>=6.0.0'} + nodemailer@8.0.7: + resolution: {integrity: sha512-pkjE4mkBzQjdJT4/UmlKl3pX0rC9fZmjh7c6C9o7lv66Ac6w9WCnzPzhbPNxwZAzlF4mdq4CSWB5+FbK6FWCow==} + engines: {node: '>=6.0.0'} + nopt@7.2.1: resolution: {integrity: sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -5679,6 +5687,10 @@ packages: resolution: {integrity: sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==} engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} + socks@2.8.8: + resolution: {integrity: sha512-NlGELfPrgX2f1TAAcz0WawlLn+0r3FyhhCRpFFK2CemXenPYvzMWWZINv3eDNo9ucdwme7oCHRY0Jnbs4aIkog==} + engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} + sonic-boom@4.2.1: resolution: {integrity: sha512-w6AxtubXa2wTXAUsZMMWERrsIRAdrK0Sc+FUytWvYAhBJLyuI4llrMIC1DtlNSdI99EI86KZum2MMq3EAZlF9Q==} @@ -10223,7 +10235,7 @@ snapshots: image-size@0.7.5: {} - imapflow@1.3.2: + imapflow@1.3.3: dependencies: '@zone-eu/mailsplit': 5.4.9 encoding-japanese: 2.2.0 @@ -10231,9 +10243,9 @@ snapshots: libbase64: 1.3.0 libmime: 5.3.8 libqp: 2.1.1 - nodemailer: 8.0.5 + nodemailer: 8.0.7 pino: 10.3.1 - socks: 2.8.7 + socks: 2.8.8 import-fresh@3.3.1: dependencies: @@ -10311,6 +10323,8 @@ snapshots: ip-address@10.1.0: {} + ip-address@10.1.1: {} + ip-regex@4.3.0: {} ip-regex@5.0.0: {} @@ -10988,6 +11002,8 @@ snapshots: nodemailer@8.0.5: {} + nodemailer@8.0.7: {} + nopt@7.2.1: dependencies: abbrev: 2.0.0 @@ -11833,7 +11849,7 @@ snapshots: dependencies: agent-base: 7.1.4 debug: 4.4.3 - socks: 2.8.7 + socks: 2.8.8 transitivePeerDependencies: - supports-color @@ -11842,6 +11858,11 @@ snapshots: ip-address: 10.1.0 smart-buffer: 4.2.0 + socks@2.8.8: + dependencies: + ip-address: 10.1.1 + smart-buffer: 4.2.0 + sonic-boom@4.2.1: dependencies: atomic-sleep: 1.0.0 From 58133b65bd55df19d515a51c60f0c09afc761679 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 30 Apr 2026 08:31:12 +0000 Subject: [PATCH 278/439] chore(deps-dev): bump eslint-plugin-yml from 3.3.1 to 3.3.2 (#21875) Bumps [eslint-plugin-yml](https://github.com/ota-meshi/eslint-plugin-yml) from 3.3.1 to 3.3.2. - [Release notes](https://github.com/ota-meshi/eslint-plugin-yml/releases) - [Changelog](https://github.com/ota-meshi/eslint-plugin-yml/blob/master/CHANGELOG.md) - [Commits](https://github.com/ota-meshi/eslint-plugin-yml/compare/v3.3.1...v3.3.2) --- updated-dependencies: - dependency-name: eslint-plugin-yml dependency-version: 3.3.2 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 34 +++++++--------------------------- 2 files changed, 8 insertions(+), 28 deletions(-) diff --git a/package.json b/package.json index d09aa31d83b2..28d0daa8d855 100644 --- a/package.json +++ b/package.json @@ -181,7 +181,7 @@ "eslint-plugin-n": "17.24.0", "eslint-plugin-simple-import-sort": "13.0.0", "eslint-plugin-unicorn": "64.0.0", - "eslint-plugin-yml": "3.3.1", + "eslint-plugin-yml": "3.3.2", "fs-extra": "11.3.4", "globals": "17.5.0", "got": "15.0.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4cb9be907a6a..a18836a74f01 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -402,8 +402,8 @@ importers: specifier: 64.0.0 version: 64.0.0(eslint@10.2.1(jiti@2.6.1)) eslint-plugin-yml: - specifier: 3.3.1 - version: 3.3.1(eslint@10.2.1(jiti@2.6.1)) + specifier: 3.3.2 + version: 3.3.2(eslint@10.2.1(jiti@2.6.1)) fs-extra: specifier: 11.3.4 version: 11.3.4 @@ -1198,10 +1198,6 @@ packages: resolution: {integrity: sha512-eIJYKTCECbP/nsKaaruF6LW967mtbQbsw4JTtSVkUQc9MneSkbrgPJAbKl9nWr0ZeowV8BfsarBmPpBzGelA2w==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/core@1.1.1': - resolution: {integrity: sha512-QUPblTtE51/7/Zhfv8BDwO0qkkzQL7P/aWWbqcf4xWLEYn1oKjdO0gglQBB4GAsu7u6wjijbCmzsUTy6mnk6oQ==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/core@1.2.1': resolution: {integrity: sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} @@ -1223,10 +1219,6 @@ packages: resolution: {integrity: sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/plugin-kit@0.6.1': - resolution: {integrity: sha512-iH1B076HoAshH1mLpHMgwdGeTs0CYwL0SPMkGuSebZrwBp16v415e9NZXg2jtrqPVQjf6IANe2Vtlr5KswtcZQ==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/plugin-kit@0.7.1': resolution: {integrity: sha512-rZAP3aVgB9ds9KOeUSL+zZ21hPmo8dh6fnIFwRQj5EAZl9gzR7wxYbYXYysAM8CTqGmUGyp2S4kUdV17MnGuWQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} @@ -3941,8 +3933,8 @@ packages: peerDependencies: eslint: '>=9.38.0' - eslint-plugin-yml@3.3.1: - resolution: {integrity: sha512-isntsZchaTqDMNNkD+CakrgA/pdUoJ45USWBKpuqfAW1MCuw731xX/vrXfoJFZU3tTFr24nCbDYmDfT2+g4QtQ==} + eslint-plugin-yml@3.3.2: + resolution: {integrity: sha512-XjmOB/fLBwYHqevnpclPL938V+9ExX7xw1hPaM3IPePGyMFRV1giS16RjSTNhIyCv/Oh0G0PEdmmZPATJ02YCw==} engines: {node: ^20.19.0 || ^22.13.0 || >=24.0.0} peerDependencies: eslint: '>=9.38.0' @@ -7036,10 +7028,6 @@ snapshots: dependencies: '@eslint/core': 1.2.1 - '@eslint/core@1.1.1': - dependencies: - '@types/json-schema': 7.0.15 - '@eslint/core@1.2.1': dependencies: '@types/json-schema': 7.0.15 @@ -7064,11 +7052,6 @@ snapshots: '@eslint/object-schema@3.0.5': {} - '@eslint/plugin-kit@0.6.1': - dependencies: - '@eslint/core': 1.1.1 - levn: 0.4.1 - '@eslint/plugin-kit@0.7.1': dependencies: '@eslint/core': 1.2.1 @@ -9658,19 +9641,16 @@ snapshots: semver: 7.7.4 strip-indent: 4.1.1 - eslint-plugin-yml@3.3.1(eslint@10.2.1(jiti@2.6.1)): + eslint-plugin-yml@3.3.2(eslint@10.2.1(jiti@2.6.1)): dependencies: - '@eslint/core': 1.1.1 - '@eslint/plugin-kit': 0.6.1 + '@eslint/core': 1.2.1 + '@eslint/plugin-kit': 0.7.1 '@ota-meshi/ast-token-store': 0.3.0 - debug: 4.4.3 diff-sequences: 29.6.3 escape-string-regexp: 5.0.0 eslint: 10.2.1(jiti@2.6.1) natural-compare: 1.4.0 yaml-eslint-parser: 2.0.0 - transitivePeerDependencies: - - supports-color eslint-scope@9.1.2: dependencies: From fd0228d57512615c6160b0f886450e4d929567c7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 30 Apr 2026 08:33:46 +0000 Subject: [PATCH 279/439] chore(deps): bump @jocmp/mercury-parser from 3.0.7 to 3.0.8 (#21872) Bumps [@jocmp/mercury-parser](https://github.com/jocmp/mercury-parser) from 3.0.7 to 3.0.8. - [Release notes](https://github.com/jocmp/mercury-parser/releases) - [Changelog](https://github.com/jocmp/mercury-parser/blob/main/CHANGELOG.md) - [Commits](https://github.com/jocmp/mercury-parser/compare/v3.0.7...v3.0.8) --- updated-dependencies: - dependency-name: "@jocmp/mercury-parser" dependency-version: 3.0.8 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 25 ++++++++++--------------- 2 files changed, 11 insertions(+), 16 deletions(-) diff --git a/package.json b/package.json index 28d0daa8d855..766948e19dba 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "@honeybadger-io/js": "6.12.3", "@hono/node-server": "2.0.0", "@hono/zod-openapi": "1.3.0", - "@jocmp/mercury-parser": "3.0.7", + "@jocmp/mercury-parser": "3.0.8", "@notionhq/client": "5.20.0", "@opentelemetry/api": "1.9.1", "@opentelemetry/exporter-prometheus": "0.215.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a18836a74f01..6614f01e38be 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -50,8 +50,8 @@ importers: specifier: 1.3.0 version: 1.3.0(hono@4.12.15)(zod@4.3.6) '@jocmp/mercury-parser': - specifier: 3.0.7 - version: 3.0.7 + specifier: 3.0.8 + version: 3.0.8 '@notionhq/client': specifier: 5.20.0 version: 5.20.0 @@ -1537,8 +1537,8 @@ packages: resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} engines: {node: '>=18.0.0'} - '@jocmp/mercury-parser@3.0.7': - resolution: {integrity: sha512-DnZqzYrLFaOc6SPiCKQ1GuaqN1ZPi72JbheKmE4XDwRBr4eFF7FzMlv3eujO1+huBtnIyKYi4zOCMSYmMFAc1A==} + '@jocmp/mercury-parser@3.0.8': + resolution: {integrity: sha512-q3o1OFgrIY7gs/YtMdtzKjpQqk3838zh/+giNeE3gQCWAdUyYH+bhJ2yu36uoa9Xe1Jht6RS5enbs1dujApuvQ==} engines: {node: '>=22'} hasBin: true bundledDependencies: @@ -3740,9 +3740,6 @@ packages: electron-to-chromium@1.5.330: resolution: {integrity: sha512-jFNydB5kFtYUobh4IkWUnXeyDbjf/r9gcUEXe1xcrcUxIGfTdzPXA+ld6zBRbwvgIGVzDll/LTIiDztEtckSnA==} - ellipsize@0.6.0: - resolution: {integrity: sha512-oest45O39yGzIKJj3gJv/Gt6jtYN6PHw/IbCXHPEd2KwC0dgxKqXOhTU0EGwRXWhGKoBJk7eJQkb3sp8W0px2g==} - emoji-regex@10.6.0: resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} @@ -6026,8 +6023,9 @@ packages: resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} - turndown@7.2.2: - resolution: {integrity: sha512-1F7db8BiExOKxjSMU2b7if62D/XOyQyZbPKq/nUwopfgnHlqXHqQ0lvfUTeUIr1lZJzOPFn43dODyMSIfvWRKQ==} + turndown@7.2.4: + resolution: {integrity: sha512-I8yFsfRzmzK0WV1pNNOA4A7y4RDfFxPRxb3t+e3ui14qSGOxGtiSP6GjeX+Y6CHb7HYaFj7ECUD7VE5kQMZWGQ==} + engines: {node: '>=18', npm: '>=9'} tweetnacl@0.14.5: resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} @@ -7301,17 +7299,16 @@ snapshots: dependencies: minipass: 7.1.3 - '@jocmp/mercury-parser@3.0.7': + '@jocmp/mercury-parser@3.0.8': dependencies: '@babel/runtime-corejs2': 7.29.2 cheerio: 1.2.0 dayjs: 1.11.20 difflib: https://codeload.github.com/postlight/difflib.js/tar.gz/32e8e38c7fcd935241b9baab71bb432fd9b166ed - ellipsize: 0.6.0 iconv-lite: 0.7.2 postman-request: 2.88.1-postman.48 string-direction: 0.1.2 - turndown: 7.2.2 + turndown: 7.2.4 wuzzy: 0.1.8 yargs-parser: 22.0.0 transitivePeerDependencies: @@ -9351,8 +9348,6 @@ snapshots: electron-to-chromium@1.5.330: {} - ellipsize@0.6.0: {} - emoji-regex@10.6.0: {} emoji-regex@8.0.0: {} @@ -12182,7 +12177,7 @@ snapshots: tunnel@0.0.6: {} - turndown@7.2.2: + turndown@7.2.4: dependencies: '@mixmark-io/domino': 2.2.0 From 82d6147022452027061e7ad69471b1f466ac8e65 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 30 Apr 2026 09:00:38 +0000 Subject: [PATCH 280/439] chore(deps): bump ufo from 1.6.3 to 1.6.4 (#21873) Bumps [ufo](https://github.com/unjs/ufo) from 1.6.3 to 1.6.4. - [Release notes](https://github.com/unjs/ufo/releases) - [Changelog](https://github.com/unjs/ufo/blob/main/CHANGELOG.md) - [Commits](https://github.com/unjs/ufo/compare/v1.6.3...v1.6.4) --- updated-dependencies: - dependency-name: ufo dependency-version: 1.6.4 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 766948e19dba..ca46a227454a 100644 --- a/package.json +++ b/package.json @@ -133,7 +133,7 @@ "tough-cookie": "6.0.1", "tsx": "4.21.0", "twitter-api-v2": "1.29.0", - "ufo": "1.6.3", + "ufo": "1.6.4", "undici": "7.25.0", "uuid": "14.0.0", "winston": "3.19.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6614f01e38be..fcc2345bca28 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -263,8 +263,8 @@ importers: specifier: 1.29.0 version: 1.29.0 ufo: - specifier: 1.6.3 - version: 1.6.3 + specifier: 1.6.4 + version: 1.6.4 undici: specifier: 7.25.0 version: 7.25.0 @@ -6074,8 +6074,8 @@ packages: uc.micro@2.1.0: resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} - ufo@1.6.3: - resolution: {integrity: sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==} + ufo@1.6.4: + resolution: {integrity: sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==} uint8array-extras@1.5.0: resolution: {integrity: sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A==} @@ -11014,7 +11014,7 @@ snapshots: dependencies: destr: 2.0.5 node-fetch-native: 1.6.7 - ufo: 1.6.3 + ufo: 1.6.4 on-exit-leak-free@2.1.2: {} @@ -12215,7 +12215,7 @@ snapshots: uc.micro@2.1.0: {} - ufo@1.6.3: {} + ufo@1.6.4: {} uint8array-extras@1.5.0: {} From e03da3652146cc39bed53a2f97ff6d8264abcdb3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 30 Apr 2026 09:05:33 +0000 Subject: [PATCH 281/439] chore(deps): bump devenv from `cb344e4` to `28668b6` (#21876) Bumps [devenv](https://github.com/cachix/devenv) from `cb344e4` to `28668b6`. - [Release notes](https://github.com/cachix/devenv/releases) - [Commits](https://github.com/cachix/devenv/compare/cb344e4a5ab9241ae49739352c24268d5f8be13b...28668b6851e4e649aadd329527059344d14561cf) --- updated-dependencies: - dependency-name: devenv dependency-version: 28668b6851e4e649aadd329527059344d14561cf dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 3f20b3d9c406..bbdea4d3d36c 100644 --- a/flake.lock +++ b/flake.lock @@ -164,11 +164,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1777372895, - "narHash": "sha256-PGesjpeDbEPigEP7tdRw8Sm0mmOmonUdOOthBY+nhJA=", + "lastModified": 1777498918, + "narHash": "sha256-SBx9JMs4OGrhADeU6qlfTZzJ7Dp/RuVgXErECF0adUo=", "owner": "cachix", "repo": "devenv", - "rev": "cb344e4a5ab9241ae49739352c24268d5f8be13b", + "rev": "28668b6851e4e649aadd329527059344d14561cf", "type": "github" }, "original": { From 56189d2c21be19077831b3bdc4514d6b5cee7372 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 30 Apr 2026 09:07:21 +0000 Subject: [PATCH 282/439] chore(nix): update dependencies hash to sha256-s6n6MhxSCTQMRw5v1nufXdgLPLRCsjrpRoWQC5zr5xY= --- flake.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flake.nix b/flake.nix index 42c6da03e5c8..7f183df7b3f1 100644 --- a/flake.nix +++ b/flake.nix @@ -16,7 +16,7 @@ deps = pkgs.fetchPnpmDeps { pname = "rsshub"; src = ./.; - hash = "sha256-O3qmJEDy3qhODzS30WCTU1E921r7OXPtUbcFtxkSvXI="; + hash = "sha256-s6n6MhxSCTQMRw5v1nufXdgLPLRCsjrpRoWQC5zr5xY="; fetcherVersion = 2; }; in From c1838291b30ff809acb40f7ae8fa79150894d4a7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 30 Apr 2026 17:33:43 +0800 Subject: [PATCH 283/439] chore(deps): bump the opentelemetry group across 1 directory with 5 updates (#21868) Bumps the opentelemetry group with 5 updates in the / directory: | Package | From | To | | --- | --- | --- | | [@opentelemetry/exporter-prometheus](https://github.com/open-telemetry/opentelemetry-js) | `0.215.0` | `0.216.0` | | [@opentelemetry/exporter-trace-otlp-http](https://github.com/open-telemetry/opentelemetry-js) | `0.215.0` | `0.216.0` | | [@opentelemetry/resources](https://github.com/open-telemetry/opentelemetry-js) | `2.7.0` | `2.7.1` | | [@opentelemetry/sdk-metrics](https://github.com/open-telemetry/opentelemetry-js) | `2.7.0` | `2.7.1` | | [@opentelemetry/sdk-trace-base](https://github.com/open-telemetry/opentelemetry-js) | `2.7.0` | `2.7.1` | Updates `@opentelemetry/exporter-prometheus` from 0.215.0 to 0.216.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.215.0...experimental/v0.216.0) Updates `@opentelemetry/exporter-trace-otlp-http` from 0.215.0 to 0.216.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.215.0...experimental/v0.216.0) Updates `@opentelemetry/resources` from 2.7.0 to 2.7.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/v2.7.0...v2.7.1) Updates `@opentelemetry/sdk-metrics` from 2.7.0 to 2.7.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/v2.7.0...v2.7.1) Updates `@opentelemetry/sdk-trace-base` from 2.7.0 to 2.7.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/v2.7.0...v2.7.1) --- updated-dependencies: - dependency-name: "@opentelemetry/exporter-prometheus" dependency-version: 0.216.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: opentelemetry - dependency-name: "@opentelemetry/exporter-trace-otlp-http" dependency-version: 0.216.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: opentelemetry - dependency-name: "@opentelemetry/resources" dependency-version: 2.7.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: opentelemetry - dependency-name: "@opentelemetry/sdk-metrics" dependency-version: 2.7.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: opentelemetry - dependency-name: "@opentelemetry/sdk-trace-base" dependency-version: 2.7.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: opentelemetry ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 10 +-- pnpm-lock.yaml | 176 ++++++++++++++++++++++++++++--------------------- 2 files changed, 106 insertions(+), 80 deletions(-) diff --git a/package.json b/package.json index ca46a227454a..93d76378e3b0 100644 --- a/package.json +++ b/package.json @@ -65,11 +65,11 @@ "@jocmp/mercury-parser": "3.0.8", "@notionhq/client": "5.20.0", "@opentelemetry/api": "1.9.1", - "@opentelemetry/exporter-prometheus": "0.215.0", - "@opentelemetry/exporter-trace-otlp-http": "0.215.0", - "@opentelemetry/resources": "2.7.0", - "@opentelemetry/sdk-metrics": "2.7.0", - "@opentelemetry/sdk-trace-base": "2.7.0", + "@opentelemetry/exporter-prometheus": "0.216.0", + "@opentelemetry/exporter-trace-otlp-http": "0.216.0", + "@opentelemetry/resources": "2.7.1", + "@opentelemetry/sdk-metrics": "2.7.1", + "@opentelemetry/sdk-trace-base": "2.7.1", "@opentelemetry/semantic-conventions": "1.40.0", "@rss3/sdk": "0.0.25", "@scalar/hono-api-reference": "0.10.12", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fcc2345bca28..b6acfc086efb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -59,20 +59,20 @@ importers: specifier: 1.9.1 version: 1.9.1 '@opentelemetry/exporter-prometheus': - specifier: 0.215.0 - version: 0.215.0(@opentelemetry/api@1.9.1) + specifier: 0.216.0 + version: 0.216.0(@opentelemetry/api@1.9.1) '@opentelemetry/exporter-trace-otlp-http': - specifier: 0.215.0 - version: 0.215.0(@opentelemetry/api@1.9.1) + specifier: 0.216.0 + version: 0.216.0(@opentelemetry/api@1.9.1) '@opentelemetry/resources': - specifier: 2.7.0 - version: 2.7.0(@opentelemetry/api@1.9.1) + specifier: 2.7.1 + version: 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/sdk-metrics': - specifier: 2.7.0 - version: 2.7.0(@opentelemetry/api@1.9.1) + specifier: 2.7.1 + version: 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/sdk-trace-base': - specifier: 2.7.0 - version: 2.7.0(@opentelemetry/api@1.9.1) + specifier: 2.7.1 + version: 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': specifier: 1.40.0 version: 1.40.0 @@ -84,7 +84,7 @@ importers: version: 0.10.12(hono@4.12.15) '@sentry/node': specifier: 10.50.0 - version: 10.50.0(@opentelemetry/exporter-trace-otlp-http@0.215.0(@opentelemetry/api@1.9.1)) + version: 10.50.0(@opentelemetry/exporter-trace-otlp-http@0.216.0(@opentelemetry/api@1.9.1)) aes-js: specifier: 3.1.2 version: 3.1.2 @@ -1700,8 +1700,8 @@ packages: resolution: {integrity: sha512-40lSJeqYO8Uz2Yj7u94/SJWE/wONa7rmMKjI1ZcIjgf3MHNHv1OZUCrCETGuaRF62d5pQD1wKIW+L4lmSMTzZA==} engines: {node: '>=8.0.0'} - '@opentelemetry/api-logs@0.215.0': - resolution: {integrity: sha512-xrFlqhdhUyO8wSRn6DjE0145/HPWSJ5Nm0C7vWua6TdL/FSEAZvEyvdsa9CRXuxo9ebb7j/NEPhEcO62IJ0qUA==} + '@opentelemetry/api-logs@0.216.0': + resolution: {integrity: sha512-KmGTgvxTJ0J01d4mOeX1wMV5NUTNf9HebIuOOGDfIn0a/IrnXIQbOnlylDyl9tkDv4h0DUpdI/GqCdLzfTkUXg==} engines: {node: '>=8.0.0'} '@opentelemetry/api@1.9.1': @@ -1720,14 +1720,20 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/exporter-prometheus@0.215.0': - resolution: {integrity: sha512-7ghCl1G84jccmxG3B8UwUMZ1OlequBzB1jt5tZ4DDiAyVKeA4Roz5D6VK8SQ0ZyBQffVyX/rtXrpVXKVzRCGfg==} + '@opentelemetry/core@2.7.1': + resolution: {integrity: sha512-QAqIj32AtK6+pEVNG7EOVxHdE06RP+FM5qpiEJ4RtDcFIqKUZHYhl7/7UY5efhwmwNAg7j8QbJVBLxMerc0+gw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/exporter-prometheus@0.216.0': + resolution: {integrity: sha512-faltPHeLPyHCGm0MuSrQxv8UXvckZbWo9hUHNwGYiDPF687gaVj5UN24vHlz7VeADnBb6UXTfuw1t4MK4xmcrA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/exporter-trace-otlp-http@0.215.0': - resolution: {integrity: sha512-k4J9ISeGpb0Bm/wCrlcrbroMFTkiWMrdhNxQGrlktxLy127Yzd4/7nrTawn5d/ApktYTknvdixsE6++34Qfi1w==} + '@opentelemetry/exporter-trace-otlp-http@0.216.0': + resolution: {integrity: sha512-DhWjvj0PUPFwFnhOEivpum8sJzj6FTuyx88zff+oHVLUhfd6cLyw4AIai/F4j0PZqYZBFuMT/OTMUd9wdXnBEQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -1870,14 +1876,14 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/otlp-exporter-base@0.215.0': - resolution: {integrity: sha512-lHrfbmeLSmesGSkkHiqDwOzfaEMSWXdc7q6UoLfbW8byONCb+bE/zkAr0kapN4US1baT/2nbpNT7Cn9XoB96Vg==} + '@opentelemetry/otlp-exporter-base@0.216.0': + resolution: {integrity: sha512-sSnvb5f+FYa4mfYxj03rmmUh+aDwo3jok62dgIWUDw8ZCUPzEbgtv/YhZyKUSlKNNey7Uc5xmJgmtTLLIV6UDQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/otlp-transformer@0.215.0': - resolution: {integrity: sha512-cWwBvaV+vkXHkSoTYR8hGw+AW03UlgTr6xtrUKOMeum3T+8vffYXIfXu6KY5MLu8O9QtoBKqaKWw9I5xoOepng==} + '@opentelemetry/otlp-transformer@0.216.0': + resolution: {integrity: sha512-g4Rb6sAsxQAo11eDjixfKxelruBsQFdJ8Wo23FCj7D6OXbidgXMu2xaRSYs4RdlomzAXSJuc86RcS3xmE8A6uA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -1886,26 +1892,26 @@ packages: resolution: {integrity: sha512-VCghU1JYs/4gP6Gqf/xro9MEsZ7LrMv2uONVsaESKL38ZOB9BqnI98FfS23wjMnHlpuE+TTaWSoAVNpTwYXzjw==} engines: {node: ^18.19.0 || >=20.6.0} - '@opentelemetry/resources@2.7.0': - resolution: {integrity: sha512-K+oi0hNMv94EpZbnW3eyu2X6SGVpD3O5DhG2NIp65Hc7lhAj9brRXTAVzh3wB82+q3ThakEf7Zd7RsFUqcTc7A==} + '@opentelemetry/resources@2.7.1': + resolution: {integrity: sha512-DeT6KKolmC4e/dRQvMQ/RwlnzhaqeiFOXY5ngoOPJ07GgVVKxZOg9EcrNZb5aTzUn+iCrJldAgOfQm1O/QfPAQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' - '@opentelemetry/sdk-logs@0.215.0': - resolution: {integrity: sha512-y3ucOmphzc4vgBTyIGchs+N/1rkACmoka8QalT2z1LBNM232Z17zMYayHcMl+dgMoOadZ0b72UZv7mDtqy1cFA==} + '@opentelemetry/sdk-logs@0.216.0': + resolution: {integrity: sha512-KB3rcwQuitq0JbbsCcNdqMhRJX3kArAYz/ovb0jGRaBQAIrt2roik3xQXuhYxS37zx0jSkUZcJu1z3Y2UCxbDA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.4.0 <1.10.0' - '@opentelemetry/sdk-metrics@2.7.0': - resolution: {integrity: sha512-Vd7h95av/LYRsAVN7wbprvvJnHkq7swMXAo7Uad0Uxf9jl6NSReLa0JNivrcc5BVIx/vl2t+cgdVQQbnVhsR9w==} + '@opentelemetry/sdk-metrics@2.7.1': + resolution: {integrity: sha512-MpDJdkiFDs3Pm1RHO3KByuZbuBdJEXEAkiC0+yJdsZGVCdf1RpHR6n+LHDcS7ffmfrt5kVCzJSCfm4z2C7v0uQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.9.0 <1.10.0' - '@opentelemetry/sdk-trace-base@2.7.0': - resolution: {integrity: sha512-Yg9zEXJB50DLVLpsKPk7NmNqlPlS+OvqhJGh0A8oawIOTPOwlm4eXs9BMJV7L79lvEwI+dWtAj+YjTyddV336A==} + '@opentelemetry/sdk-trace-base@2.7.1': + resolution: {integrity: sha512-NAYIlsF8MPUsKqJMiDQJTMPOmlbawC1Iz/omMLygZ1C9am8fTKYjTaI+OZM+WTY3t3Glo0wnOg/6/pac6RGPPw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' @@ -2271,6 +2277,9 @@ packages: '@protobufjs/codegen@2.0.4': resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} + '@protobufjs/codegen@2.0.5': + resolution: {integrity: sha512-zgXFLzW3Ap33e6d0Wlj4MGIm6Ce8O89n/apUaGNB/jx+hw+ruWEp7EwGUshdLKVRCxZW12fp9r40E1mQrf/34g==} + '@protobufjs/eventemitter@1.1.0': resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} @@ -2283,6 +2292,9 @@ packages: '@protobufjs/inquire@1.1.0': resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} + '@protobufjs/inquire@1.1.1': + resolution: {integrity: sha512-mnzgDV26ueAvk7rsbt9L7bE0SuAoqyuys/sMMrmVcN5x9VsxpcG3rqAUSgDyLp0UZlmNfIbQ4fHfCtreVBk8Ew==} + '@protobufjs/path@1.1.2': resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} @@ -2292,6 +2304,9 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + '@protobufjs/utf8@1.1.1': + resolution: {integrity: sha512-oOAWABowe8EAbMyWKM0tYDKi8Yaox52D+HWZhAIJqQXbqe0xI/GV7FhLWqlEKreMkfDjshR5FKgi3mnle0h6Eg==} + '@puppeteer/browsers@2.10.3': resolution: {integrity: sha512-iPpnFpX25gKIVsHsqVjHV+/GzW36xPgsscWkCnrrETndcdxNsXLdCrTwhkCJNR/FGWr122dJUBeyV4niz/j3TA==} engines: {node: '>=18'} @@ -7477,7 +7492,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/api-logs@0.215.0': + '@opentelemetry/api-logs@0.216.0': dependencies: '@opentelemetry/api': 1.9.1 @@ -7493,22 +7508,27 @@ snapshots: '@opentelemetry/api': 1.9.1 '@opentelemetry/semantic-conventions': 1.40.0 - '@opentelemetry/exporter-prometheus@0.215.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) - '@opentelemetry/resources': 2.7.0(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-metrics': 2.7.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 - '@opentelemetry/exporter-trace-otlp-http@0.215.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/exporter-prometheus@0.216.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) - '@opentelemetry/otlp-exporter-base': 0.215.0(@opentelemetry/api@1.9.1) - '@opentelemetry/otlp-transformer': 0.215.0(@opentelemetry/api@1.9.1) - '@opentelemetry/resources': 2.7.0(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-trace-base': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.7.1(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-metrics': 2.7.1(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.40.0 + + '@opentelemetry/exporter-trace-otlp-http@0.216.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-exporter-base': 0.216.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.216.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.7.1(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-base': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation-amqplib@0.61.0(@opentelemetry/api@1.9.1)': dependencies: @@ -7710,50 +7730,50 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/otlp-exporter-base@0.215.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/otlp-exporter-base@0.216.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) - '@opentelemetry/otlp-transformer': 0.215.0(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.216.0(@opentelemetry/api@1.9.1) - '@opentelemetry/otlp-transformer@0.215.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/otlp-transformer@0.216.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/api-logs': 0.215.0 - '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) - '@opentelemetry/resources': 2.7.0(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-logs': 0.215.0(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-metrics': 2.7.0(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-trace-base': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/api-logs': 0.216.0 + '@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.7.1(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-logs': 0.216.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-metrics': 2.7.1(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-base': 2.7.1(@opentelemetry/api@1.9.1) protobufjs: 8.0.1 '@opentelemetry/redis-common@0.38.3': {} - '@opentelemetry/resources@2.7.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/resources@2.7.1(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 - '@opentelemetry/sdk-logs@0.215.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/sdk-logs@0.216.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/api-logs': 0.215.0 - '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) - '@opentelemetry/resources': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/api-logs': 0.216.0 + '@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 - '@opentelemetry/sdk-metrics@2.7.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/sdk-metrics@2.7.1(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) - '@opentelemetry/resources': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.7.1(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-trace-base@2.7.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) - '@opentelemetry/resources': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 '@opentelemetry/semantic-conventions@1.40.0': {} @@ -7980,6 +8000,8 @@ snapshots: '@protobufjs/codegen@2.0.4': {} + '@protobufjs/codegen@2.0.5': {} + '@protobufjs/eventemitter@1.1.0': {} '@protobufjs/fetch@1.1.0': @@ -7991,12 +8013,16 @@ snapshots: '@protobufjs/inquire@1.1.0': {} + '@protobufjs/inquire@1.1.1': {} + '@protobufjs/path@1.1.2': {} '@protobufjs/pool@1.1.0': {} '@protobufjs/utf8@1.1.0': {} + '@protobufjs/utf8@1.1.1': {} + '@puppeteer/browsers@2.10.3': dependencies: debug: 4.4.3 @@ -8226,20 +8252,20 @@ snapshots: '@sentry/core@10.50.0': {} - '@sentry/node-core@10.50.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/exporter-trace-otlp-http@0.215.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0)': + '@sentry/node-core@10.50.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/exporter-trace-otlp-http@0.216.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0)': dependencies: '@sentry/core': 10.50.0 - '@sentry/opentelemetry': 10.50.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) + '@sentry/opentelemetry': 10.50.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) import-in-the-middle: 3.0.1 optionalDependencies: '@opentelemetry/api': 1.9.1 '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) - '@opentelemetry/exporter-trace-otlp-http': 0.215.0(@opentelemetry/api@1.9.1) + '@opentelemetry/exporter-trace-otlp-http': 0.216.0(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-trace-base': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-base': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 - '@sentry/node@10.50.0(@opentelemetry/exporter-trace-otlp-http@0.215.0(@opentelemetry/api@1.9.1))': + '@sentry/node@10.50.0(@opentelemetry/exporter-trace-otlp-http@0.216.0(@opentelemetry/api@1.9.1))': dependencies: '@fastify/otel': 0.18.0(@opentelemetry/api@1.9.1) '@opentelemetry/api': 1.9.1 @@ -8265,22 +8291,22 @@ snapshots: '@opentelemetry/instrumentation-pg': 0.66.0(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation-redis': 0.62.0(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation-tedious': 0.33.0(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-trace-base': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-base': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 '@prisma/instrumentation': 7.6.0(@opentelemetry/api@1.9.1) '@sentry/core': 10.50.0 - '@sentry/node-core': 10.50.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/exporter-trace-otlp-http@0.215.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) - '@sentry/opentelemetry': 10.50.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) + '@sentry/node-core': 10.50.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/exporter-trace-otlp-http@0.216.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) + '@sentry/opentelemetry': 10.50.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) import-in-the-middle: 3.0.1 transitivePeerDependencies: - '@opentelemetry/exporter-trace-otlp-http' - supports-color - '@sentry/opentelemetry@10.50.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0)': + '@sentry/opentelemetry@10.50.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0)': dependencies: '@opentelemetry/api': 1.9.1 '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-trace-base': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-base': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 '@sentry/core': 10.50.0 @@ -11369,14 +11395,14 @@ snapshots: dependencies: '@protobufjs/aspromise': 1.1.2 '@protobufjs/base64': 1.1.2 - '@protobufjs/codegen': 2.0.4 + '@protobufjs/codegen': 2.0.5 '@protobufjs/eventemitter': 1.1.0 '@protobufjs/fetch': 1.1.0 '@protobufjs/float': 1.0.2 - '@protobufjs/inquire': 1.1.0 + '@protobufjs/inquire': 1.1.1 '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 - '@protobufjs/utf8': 1.1.0 + '@protobufjs/utf8': 1.1.1 '@types/node': 25.6.0 long: 5.3.2 From c6cd0b372d039ff7dcab9a29bec4c21734ae5d02 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 30 Apr 2026 17:38:58 +0800 Subject: [PATCH 284/439] chore(deps): bump zod from 4.3.6 to 4.4.1 (#21871) Bumps [zod](https://github.com/colinhacks/zod) from 4.3.6 to 4.4.1. - [Release notes](https://github.com/colinhacks/zod/releases) - [Commits](https://github.com/colinhacks/zod/compare/v4.3.6...v4.4.1) --- updated-dependencies: - dependency-name: zod dependency-version: 4.4.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 30 +++++++++++++++--------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/package.json b/package.json index 93d76378e3b0..bfc5f6942857 100644 --- a/package.json +++ b/package.json @@ -140,7 +140,7 @@ "xxhash-wasm": "1.1.0", "youtube-caption-extractor": "1.9.1", "youtubei.js": "17.0.1", - "zod": "4.3.6" + "zod": "4.4.1" }, "devDependencies": { "@actions/core": "3.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b6acfc086efb..21c6195d8232 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -48,7 +48,7 @@ importers: version: 2.0.0(hono@4.12.15) '@hono/zod-openapi': specifier: 1.3.0 - version: 1.3.0(hono@4.12.15)(zod@4.3.6) + version: 1.3.0(hono@4.12.15)(zod@4.4.1) '@jocmp/mercury-parser': specifier: 3.0.8 version: 3.0.8 @@ -284,8 +284,8 @@ importers: specifier: 17.0.1 version: 17.0.1 zod: - specifier: 4.3.6 - version: 4.3.6 + specifier: 4.4.1 + version: 4.4.1 devDependencies: '@actions/core': specifier: 3.0.1 @@ -6535,8 +6535,8 @@ packages: zod@3.25.76: resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} - zod@4.3.6: - resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==} + zod@4.4.1: + resolution: {integrity: sha512-a6ENMBBGZBsnlSebQ/eKCguSBeGKSf4O7BPnqVPmYGtpBYI7VSqoVqw+QcB7kPRjbqPwhYTpFbVj/RqNz/CT0Q==} snapshots: @@ -6591,10 +6591,10 @@ snapshots: '@asamuzakjp/nwsapi@2.3.9': {} - '@asteasolutions/zod-to-openapi@8.5.0(zod@4.3.6)': + '@asteasolutions/zod-to-openapi@8.5.0(zod@4.4.1)': dependencies: openapi3-ts: 4.5.0 - zod: 4.3.6 + zod: 4.4.1 '@babel/code-frame@7.29.0': dependencies: @@ -7099,18 +7099,18 @@ snapshots: dependencies: hono: 4.12.15 - '@hono/zod-openapi@1.3.0(hono@4.12.15)(zod@4.3.6)': + '@hono/zod-openapi@1.3.0(hono@4.12.15)(zod@4.4.1)': dependencies: - '@asteasolutions/zod-to-openapi': 8.5.0(zod@4.3.6) - '@hono/zod-validator': 0.7.6(hono@4.12.15)(zod@4.3.6) + '@asteasolutions/zod-to-openapi': 8.5.0(zod@4.4.1) + '@hono/zod-validator': 0.7.6(hono@4.12.15)(zod@4.4.1) hono: 4.12.15 openapi3-ts: 4.5.0 - zod: 4.3.6 + zod: 4.4.1 - '@hono/zod-validator@0.7.6(hono@4.12.15)(zod@4.3.6)': + '@hono/zod-validator@0.7.6(hono@4.12.15)(zod@4.4.1)': dependencies: hono: 4.12.15 - zod: 4.3.6 + zod: 4.4.1 '@humanfs/core@0.19.2': dependencies: @@ -8239,7 +8239,7 @@ snapshots: '@scalar/helpers': 0.5.4 nanoid: 5.1.9 type-fest: 5.6.0 - zod: 4.3.6 + zod: 4.4.1 '@scure/base@2.0.0': {} @@ -12677,4 +12677,4 @@ snapshots: zod@3.25.76: {} - zod@4.3.6: {} + zod@4.4.1: {} From be7dd75587b59ffb98a177c74289cb995fcb55f0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 30 Apr 2026 17:49:53 +0800 Subject: [PATCH 285/439] chore(deps-dev): bump @cloudflare/workers-types in the cloudflare group (#21867) Bumps the cloudflare group with 1 update: [@cloudflare/workers-types](https://github.com/cloudflare/workerd). Updates `@cloudflare/workers-types` from 4.20260426.1 to 4.20260430.1 - [Release notes](https://github.com/cloudflare/workerd/releases) - [Changelog](https://github.com/cloudflare/workerd/blob/main/RELEASE.md) - [Commits](https://github.com/cloudflare/workerd/commits) --- updated-dependencies: - dependency-name: "@cloudflare/workers-types" dependency-version: 4.20260430.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: cloudflare ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index bfc5f6942857..36c425493b43 100644 --- a/package.json +++ b/package.json @@ -148,7 +148,7 @@ "@bbob/types": "4.3.1", "@cloudflare/containers": "0.3.3", "@cloudflare/puppeteer": "1.1.0", - "@cloudflare/workers-types": "4.20260426.1", + "@cloudflare/workers-types": "4.20260430.1", "@eslint/eslintrc": "3.3.5", "@eslint/js": "10.0.1", "@oxlint/plugins": "1.62.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 21c6195d8232..11f4f6e33988 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -303,8 +303,8 @@ importers: specifier: 1.1.0 version: 1.1.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) '@cloudflare/workers-types': - specifier: 4.20260426.1 - version: 4.20260426.1 + specifier: 4.20260430.1 + version: 4.20260430.1 '@eslint/eslintrc': specifier: 3.3.5 version: 3.3.5 @@ -466,7 +466,7 @@ importers: version: 4.1.5(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(jsdom@29.1.0(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)) wrangler: specifier: 4.86.0 - version: 4.86.0(@cloudflare/workers-types@4.20260426.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10) + version: 4.86.0(@cloudflare/workers-types@4.20260430.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10) yaml-eslint-parser: specifier: 2.0.0 version: 2.0.0 @@ -639,8 +639,8 @@ packages: cpu: [x64] os: [win32] - '@cloudflare/workers-types@4.20260426.1': - resolution: {integrity: sha512-cBYeQaWwv/jFV8ualmwp6wIxmAf0rDe2DPPQwPbslKmPHqgv861YpAvm45r05K40QboZgxNQVIPgNkmtHqZeJQ==} + '@cloudflare/workers-types@4.20260430.1': + resolution: {integrity: sha512-Rguf/SdQNm1HG2yZi8m57K4qvVh2fic+Xny4UidY1pCgHagOAq7Cy0WIp1JKQx54T8lgOgOWFzIaCK4iwLpxlg==} '@colors/colors@1.6.0': resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} @@ -6722,7 +6722,7 @@ snapshots: '@cloudflare/workerd-windows-64@1.20260426.1': optional: true - '@cloudflare/workers-types@4.20260426.1': {} + '@cloudflare/workers-types@4.20260430.1': {} '@colors/colors@1.6.0': {} @@ -12522,7 +12522,7 @@ snapshots: '@cloudflare/workerd-linux-arm64': 1.20260426.1 '@cloudflare/workerd-windows-64': 1.20260426.1 - wrangler@4.86.0(@cloudflare/workers-types@4.20260426.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10): + wrangler@4.86.0(@cloudflare/workers-types@4.20260430.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10): dependencies: '@cloudflare/kv-asset-handler': 0.4.2 '@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260426.1) @@ -12533,7 +12533,7 @@ snapshots: unenv: 2.0.0-rc.24 workerd: 1.20260426.1 optionalDependencies: - '@cloudflare/workers-types': 4.20260426.1 + '@cloudflare/workers-types': 4.20260430.1 fsevents: 2.3.3 transitivePeerDependencies: - bufferutil From cb07714c8298af653bbee85a352a4ec1c8ba9d32 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 30 Apr 2026 18:09:07 +0800 Subject: [PATCH 286/439] chore(deps): bump @sentry/node from 10.50.0 to 10.51.0 (#21869) Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 10.50.0 to 10.51.0. - [Release notes](https://github.com/getsentry/sentry-javascript/releases) - [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-javascript/compare/10.50.0...10.51.0) --- updated-dependencies: - dependency-name: "@sentry/node" dependency-version: 10.51.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 75 +++++++++++++++++++++----------------------------- 2 files changed, 33 insertions(+), 44 deletions(-) diff --git a/package.json b/package.json index 36c425493b43..417c52586945 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,7 @@ "@opentelemetry/semantic-conventions": "1.40.0", "@rss3/sdk": "0.0.25", "@scalar/hono-api-reference": "0.10.12", - "@sentry/node": "10.50.0", + "@sentry/node": "10.51.0", "aes-js": "3.1.2", "cheerio": "1.2.0", "city-timezones": "1.3.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 11f4f6e33988..bf4411e0abc7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -83,8 +83,8 @@ importers: specifier: 0.10.12 version: 0.10.12(hono@4.12.15) '@sentry/node': - specifier: 10.50.0 - version: 10.50.0(@opentelemetry/exporter-trace-otlp-http@0.216.0(@opentelemetry/api@1.9.1)) + specifier: 10.51.0 + version: 10.51.0(@opentelemetry/exporter-trace-otlp-http@0.216.0(@opentelemetry/api@1.9.1)) aes-js: specifier: 3.1.2 version: 3.1.2 @@ -1714,12 +1714,6 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/core@2.7.0': - resolution: {integrity: sha512-DT12SXVwV2eoJrGf4nnsvZojxxeQo+LlNAsoYGRRObPWTeN6APiqZ2+nqDCQDvQX40eLi1AePONS0onoASp3yQ==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/core@2.7.1': resolution: {integrity: sha512-QAqIj32AtK6+pEVNG7EOVxHdE06RP+FM5qpiEJ4RtDcFIqKUZHYhl7/7UY5efhwmwNAg7j8QbJVBLxMerc0+gw==} engines: {node: ^18.19.0 || >=20.6.0} @@ -2606,12 +2600,12 @@ packages: '@selderee/plugin-htmlparser2@0.11.0': resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==} - '@sentry/core@10.50.0': - resolution: {integrity: sha512-J4A+vzUO3adl0TkFCjaN1+4miamrjHiEIYuLHiuu1lmAjq5WIVw32ObvAh4yMwNtxyaEMosTrrh5M6f12XSJFg==} + '@sentry/core@10.51.0': + resolution: {integrity: sha512-Y45V/YXvVLEXmOdkbD1oG1gkRWFi9guCEGg3PlIlIpRjAbZUrvLGgjRJIc1E7XpSzmOnWbs5BbUxMv4PDaPj2w==} engines: {node: '>=18'} - '@sentry/node-core@10.50.0': - resolution: {integrity: sha512-Eb1BYf4Lc7ZYmdX3acKP6SgyGikrBA370gbGHaWI5jRu7G7vig8sIu1ghPmY5AlvqBPOetado7GniXr6fAXbTw==} + '@sentry/node-core@10.51.0': + resolution: {integrity: sha512-VP9DMEzBEuauABrfDHYz/pRYa74M09uRJLz0ls3yel3sKhYHMyCB29ZxbKcciUhD4d33dwgi8DbaPZV2H/wnfQ==} engines: {node: '>=18'} peerDependencies: '@opentelemetry/api': ^1.9.0 @@ -2634,12 +2628,12 @@ packages: '@opentelemetry/semantic-conventions': optional: true - '@sentry/node@10.50.0': - resolution: {integrity: sha512-TvwzFQu8MGKzMQ2/tqxcNzFA8UG2kKTB+GDmA4uOzx3+GT849YZRRSJzEXCmYhk1teVd2fbmgqyYY2nyLF5a+Q==} + '@sentry/node@10.51.0': + resolution: {integrity: sha512-2yZLRZwS1dKG8/4eOTpGSo/gO/EgmT9aPj6lAzUkRa7bZCTTdW4BraaHU0leX5T94909Qfhbr3W5AVTfDOCKiQ==} engines: {node: '>=18'} - '@sentry/opentelemetry@10.50.0': - resolution: {integrity: sha512-axn3pgDPveGdaMUC0abMCmFN7ux2pA5ebPufCef4lMIsyg7BBQvaEJ+vE19wjstMaBCAJGsdZlL3eeP2rtgRMw==} + '@sentry/opentelemetry@10.51.0': + resolution: {integrity: sha512-Qc7AlCE4uhB+SvHLqah4RgR1WdY7wmmr/hx9g/prDP9R1ocshmUEMrZK9qjuwaklW7/fmkFCXI8ETxo5L1bHIA==} engines: {node: '>=18'} peerDependencies: '@opentelemetry/api': ^1.9.0 @@ -7077,7 +7071,7 @@ snapshots: '@fastify/otel@0.18.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation': 0.212.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 minimatch: 10.2.5 @@ -7503,11 +7497,6 @@ snapshots: '@opentelemetry/api': 1.9.1 '@opentelemetry/semantic-conventions': 1.40.0 - '@opentelemetry/core@2.7.0(@opentelemetry/api@1.9.1)': - dependencies: - '@opentelemetry/api': 1.9.1 - '@opentelemetry/semantic-conventions': 1.40.0 - '@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 @@ -7533,7 +7522,7 @@ snapshots: '@opentelemetry/instrumentation-amqplib@0.61.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 transitivePeerDependencies: @@ -7542,7 +7531,7 @@ snapshots: '@opentelemetry/instrumentation-connect@0.57.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 '@types/connect': 3.4.38 @@ -7559,7 +7548,7 @@ snapshots: '@opentelemetry/instrumentation-fs@0.33.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) transitivePeerDependencies: - supports-color @@ -7581,7 +7570,7 @@ snapshots: '@opentelemetry/instrumentation-hapi@0.60.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 transitivePeerDependencies: @@ -7625,7 +7614,7 @@ snapshots: '@opentelemetry/instrumentation-koa@0.62.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 transitivePeerDependencies: @@ -7649,7 +7638,7 @@ snapshots: '@opentelemetry/instrumentation-mongoose@0.60.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 transitivePeerDependencies: @@ -7676,7 +7665,7 @@ snapshots: '@opentelemetry/instrumentation-pg@0.66.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 '@opentelemetry/sql-common': 0.41.2(@opentelemetry/api@1.9.1) @@ -7781,7 +7770,7 @@ snapshots: '@opentelemetry/sql-common@0.41.2(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.1) '@ota-meshi/ast-token-store@0.3.0': {} @@ -8250,26 +8239,26 @@ snapshots: domhandler: 5.0.3 selderee: 0.11.0 - '@sentry/core@10.50.0': {} + '@sentry/core@10.51.0': {} - '@sentry/node-core@10.50.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/exporter-trace-otlp-http@0.216.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0)': + '@sentry/node-core@10.51.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/exporter-trace-otlp-http@0.216.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0)': dependencies: - '@sentry/core': 10.50.0 - '@sentry/opentelemetry': 10.50.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) + '@sentry/core': 10.51.0 + '@sentry/opentelemetry': 10.51.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) import-in-the-middle: 3.0.1 optionalDependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/exporter-trace-otlp-http': 0.216.0(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) '@opentelemetry/sdk-trace-base': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 - '@sentry/node@10.50.0(@opentelemetry/exporter-trace-otlp-http@0.216.0(@opentelemetry/api@1.9.1))': + '@sentry/node@10.51.0(@opentelemetry/exporter-trace-otlp-http@0.216.0(@opentelemetry/api@1.9.1))': dependencies: '@fastify/otel': 0.18.0(@opentelemetry/api@1.9.1) '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation-amqplib': 0.61.0(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation-connect': 0.57.0(@opentelemetry/api@1.9.1) @@ -8294,21 +8283,21 @@ snapshots: '@opentelemetry/sdk-trace-base': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 '@prisma/instrumentation': 7.6.0(@opentelemetry/api@1.9.1) - '@sentry/core': 10.50.0 - '@sentry/node-core': 10.50.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/exporter-trace-otlp-http@0.216.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) - '@sentry/opentelemetry': 10.50.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) + '@sentry/core': 10.51.0 + '@sentry/node-core': 10.51.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/exporter-trace-otlp-http@0.216.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) + '@sentry/opentelemetry': 10.51.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) import-in-the-middle: 3.0.1 transitivePeerDependencies: - '@opentelemetry/exporter-trace-otlp-http' - supports-color - '@sentry/opentelemetry@10.50.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0)': + '@sentry/opentelemetry@10.51.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/sdk-trace-base': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 - '@sentry/core': 10.50.0 + '@sentry/core': 10.51.0 '@sindresorhus/is@4.6.0': {} From 5b2e1a5d02e4d15d56f5ef50e8301f4ba5bf6add Mon Sep 17 00:00:00 2001 From: Haven Madray Date: Thu, 30 Apr 2026 22:38:06 +0800 Subject: [PATCH 287/439] fix(route/javdb): use puppeteer to overcome api restrictions (#21865) * fix(javdb): use puppeteer to overcome api restrictions * chore(javdb): block unnecessary requests --- lib/routes/javdb/index.ts | 1 + lib/routes/javdb/utils.ts | 60 +++++++++++++++++++++------------------ 2 files changed, 33 insertions(+), 28 deletions(-) diff --git a/lib/routes/javdb/index.ts b/lib/routes/javdb/index.ts index 33ee637d36a0..60dff23b04f8 100644 --- a/lib/routes/javdb/index.ts +++ b/lib/routes/javdb/index.ts @@ -34,6 +34,7 @@ export const route: Route = { | 0 | 1 | 2 | 3 |`, features: { nsfw: true, + requirePuppeteer: true, }, }; diff --git a/lib/routes/javdb/utils.ts b/lib/routes/javdb/utils.ts index 983a99dea7d8..7f0c1a3c1295 100644 --- a/lib/routes/javdb/utils.ts +++ b/lib/routes/javdb/utils.ts @@ -1,11 +1,11 @@ import { load } from 'cheerio'; -import { Cookie, CookieJar } from 'tough-cookie'; import { config } from '@/config'; import ConfigNotFoundError from '@/errors/types/config-not-found'; import cache from '@/utils/cache'; -import got from '@/utils/got'; +import logger from '@/utils/logger'; import { parseDate } from '@/utils/parse-date'; +import { getPuppeteerPage } from '@/utils/puppeteer'; const allowDomain = new Set(['javdb.com', 'javdb571.com', 'javdb36.com', 'javdb007.com', 'javdb521.com']); @@ -18,28 +18,26 @@ const ProcessItems = async (ctx, currentUrl, title) => { const rootUrl = `https://${domain}`; - const cookieJar = new CookieJar(); - + const { page, destroy, browser } = await getPuppeteerPage('about:blank'); if (config.javdb.session) { - const cookie = Cookie.fromJSON({ - key: '_jdb_session', + await browser.setCookie({ + name: '_jdb_session', value: config.javdb.session, domain, path: '/', }); - cookie && cookieJar.setCookie(cookie, rootUrl); } - - const response = await got({ - method: 'get', - url: url.href, - cookieJar, - headers: { - 'User-Agent': config.trueUA, - }, + await page.setRequestInterception(true); + page.on('request', (request) => { + request.resourceType() === 'document' ? request.continue() : request.abort(); + }); + await page.goto(url.href, { + waitUntil: 'domcontentloaded', }); + const response = await page.content(); + await page.close(); - const $ = load(response.data); + const $ = load(response); $('.tags, .tag-can-play, .over18-modal').remove(); @@ -47,27 +45,29 @@ const ProcessItems = async (ctx, currentUrl, title) => { .slice(0, ctx.req.query('limit') ? Number.parseInt(ctx.req.query('limit')) : 20) .toArray() .map((item) => { - item = $(item); + const element = $(item); return { - title: item.find('.video-title').text(), - link: `${rootUrl}${item.find('.box').attr('href')}`, - pubDate: parseDate(item.find('.meta').text()), + title: element.find('.video-title').text(), + link: `${rootUrl}${element.find('.box').attr('href')}`, + pubDate: parseDate(element.find('.meta').text()), }; }); items = await Promise.all( items.map((item) => cache.tryGet(item.link, async () => { - const detailResponse = await got({ - method: 'get', - url: item.link, - cookieJar, - headers: { - 'User-Agent': config.trueUA, - }, + const page = await browser.newPage(); + await page.setRequestInterception(true); + page.on('request', (request) => { + request.resourceType() === 'document' ? request.continue() : request.abort(); }); + logger.http(`Requesting ${item.link}`); + await page.goto(item.link, { + waitUntil: 'domcontentloaded', + }); + const detailResponse = await page.content(); - const content = load(detailResponse.data); + const content = load(detailResponse); item.enclosure_type = 'application/x-bittorrent'; item.enclosure_url = content('#magnets-content button[data-clipboard-text]').first().attr('data-clipboard-text'); @@ -87,6 +87,8 @@ const ProcessItems = async (ctx, currentUrl, title) => { item.author = content('.panel-block .value').last().parent().find('.value a').first().text(); item.description = content('.cover-container, .column-video-cover').html() + content('.movie-panel-info').html() + content('#magnets-content').html() + content('.preview-images').html(); + await page.close(); + return item; }) ) @@ -95,6 +97,8 @@ const ProcessItems = async (ctx, currentUrl, title) => { const htmlTitle = $('title').text(); const subject = htmlTitle.includes('|') ? htmlTitle.split('|')[0] : ''; + await destroy(); + return { title: subject === '' ? title : `${subject} - ${title}`, link: url.href, From 496e98a4cfc709aa25b634acee06ac4cb32c7b6f Mon Sep 17 00:00:00 2001 From: wanlala <43746907+wanlala@users.noreply.github.com> Date: Fri, 1 May 2026 15:29:41 +0800 Subject: [PATCH 288/439] =?UTF-8?q?fix(route/nuaa):=20=E4=BF=AE=E5=A4=8DNU?= =?UTF-8?q?AA=E6=95=99=E5=8A=A1=E5=A4=84DOM=E5=85=83=E7=B4=A0=E8=A7=A3?= =?UTF-8?q?=E6=9E=90=20(#21879)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Involved Issue / 该 PR 相关 Issue ## Example for the Proposed Route(s) / 路由地址示例 ``` /nuaa/jwc/tzgg ``` ## New RSS Route Checklist / 新 RSS 路由检查表 - [ ] New Route / 新的路由 - [ ] Follows [Script Standard](https://docs.rsshub.app/joinus/advanced/script-standard) / 跟随 [路由规范](https://docs.rsshub.app/zh/joinus/advanced/script-standard) - [x] Documentation / 文档说明 - [x] Full text / 全文获取 - [ ] Use cache / 使用缓存 - [x] Anti-bot or rate limit / 反爬/频率限制 - [ ] If yes, do your code reflect this sign? / 如果有, 是否有对应的措施? - [ ] [Date and time](https://docs.rsshub.app/joinus/advanced/pub-date) / [日期和时间](https://docs.rsshub.app/zh/joinus/advanced/pub-date) - [ ] Parsed / 可以解析 - [ ] Correct time zone / 时区正确 - [ ] New package added / 添加了新的包 - [ ] `Puppeteer` ## Note / 说明 更新了 DOM 元素的解析,适配了新的南航教务处页面样式 --- lib/routes/nuaa/jwc/jwc.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/routes/nuaa/jwc/jwc.ts b/lib/routes/nuaa/jwc/jwc.ts index afc8b4ef265b..e60b7fc5ee4b 100644 --- a/lib/routes/nuaa/jwc/jwc.ts +++ b/lib/routes/nuaa/jwc/jwc.ts @@ -7,7 +7,7 @@ import { parseDate } from '@/utils/parse-date'; import getCookie from '../utils/pypasswaf'; -const host = 'http://aao.nuaa.edu.cn/'; +const host = 'https://aao.nuaa.edu.cn/'; const map = new Map([ ['tzgg', { title: '通知公告 | 南京航空航天大学教务处', suffix: '8222/list.htm' }], @@ -53,14 +53,14 @@ async function handler(ctx) { const response = await got(link, gotConfig); const $ = load(response.data); - const list = $('#wp_news_w8 ul li') + const list = $('#news_list .news_ul .p-list-item a') .slice(0, 10) .toArray() .map((element) => { const info = { - title: $(element).find('a').text(), - link: $(element).find('a').attr('href'), - date: $(element).find('span').text(), + title: $(element).find('.text .title').text(), + link: $(element).attr('href'), + date: $(element).find('.date em').text() + '-' + $(element).find('.date span').text(), }; return info; }); From 87f268a8ebe2805bbe8d1af264a5ffcb5695e40d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 May 2026 17:55:47 +0800 Subject: [PATCH 289/439] chore(deps): bump devenv from `28668b6` to `da4531a` (#21887) Bumps [devenv](https://github.com/cachix/devenv) from `28668b6` to `da4531a`. - [Release notes](https://github.com/cachix/devenv/releases) - [Commits](https://github.com/cachix/devenv/compare/28668b6851e4e649aadd329527059344d14561cf...da4531a7d9b79199b9e56802cb1006ce492c613b) --- updated-dependencies: - dependency-name: devenv dependency-version: da4531a7d9b79199b9e56802cb1006ce492c613b dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index bbdea4d3d36c..b6b4db33a479 100644 --- a/flake.lock +++ b/flake.lock @@ -164,11 +164,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1777498918, - "narHash": "sha256-SBx9JMs4OGrhADeU6qlfTZzJ7Dp/RuVgXErECF0adUo=", + "lastModified": 1777573317, + "narHash": "sha256-IqOdwdWBCf5eXNW7RGFb63Ql+ZnhHRPSTW0mxJYVOvg=", "owner": "cachix", "repo": "devenv", - "rev": "28668b6851e4e649aadd329527059344d14561cf", + "rev": "da4531a7d9b79199b9e56802cb1006ce492c613b", "type": "github" }, "original": { From 1b769f49b7568a3aa4d7a56b7994bca15d50fac3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 1 May 2026 09:57:41 +0000 Subject: [PATCH 290/439] chore(nix): update dependencies hash to sha256-Kssm2wyrFM17wyiVj9pmrKmk9SaJKDMDa0CFZdlqRoM= --- flake.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flake.nix b/flake.nix index 7f183df7b3f1..59f5b5a7c060 100644 --- a/flake.nix +++ b/flake.nix @@ -16,7 +16,7 @@ deps = pkgs.fetchPnpmDeps { pname = "rsshub"; src = ./.; - hash = "sha256-s6n6MhxSCTQMRw5v1nufXdgLPLRCsjrpRoWQC5zr5xY="; + hash = "sha256-Kssm2wyrFM17wyiVj9pmrKmk9SaJKDMDa0CFZdlqRoM="; fetcherVersion = 2; }; in From 0e8dd01e36788d00dab0feb608e3db0b7d27ce66 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 May 2026 18:02:11 +0800 Subject: [PATCH 291/439] chore(deps): bump @scalar/hono-api-reference from 0.10.12 to 0.10.13 (#21883) Bumps [@scalar/hono-api-reference](https://github.com/scalar/scalar/tree/HEAD/integrations/hono) from 0.10.12 to 0.10.13. - [Release notes](https://github.com/scalar/scalar/releases) - [Changelog](https://github.com/scalar/scalar/blob/main/integrations/hono/CHANGELOG.md) - [Commits](https://github.com/scalar/scalar/commits/HEAD/integrations/hono) --- updated-dependencies: - dependency-name: "@scalar/hono-api-reference" dependency-version: 0.10.13 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 59 ++++++++++++++++++++++++++++---------------------- 2 files changed, 34 insertions(+), 27 deletions(-) diff --git a/package.json b/package.json index 417c52586945..9141b51ac36a 100644 --- a/package.json +++ b/package.json @@ -72,7 +72,7 @@ "@opentelemetry/sdk-trace-base": "2.7.1", "@opentelemetry/semantic-conventions": "1.40.0", "@rss3/sdk": "0.0.25", - "@scalar/hono-api-reference": "0.10.12", + "@scalar/hono-api-reference": "0.10.13", "@sentry/node": "10.51.0", "aes-js": "3.1.2", "cheerio": "1.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bf4411e0abc7..3e145359fb0a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -80,8 +80,8 @@ importers: specifier: 0.0.25 version: 0.0.25 '@scalar/hono-api-reference': - specifier: 0.10.12 - version: 0.10.12(hono@4.12.15) + specifier: 0.10.13 + version: 0.10.13(hono@4.12.15) '@sentry/node': specifier: 10.51.0 version: 10.51.0(@opentelemetry/exporter-trace-otlp-http@0.216.0(@opentelemetry/api@1.9.1)) @@ -2573,22 +2573,22 @@ packages: '@rss3/sdk@0.0.25': resolution: {integrity: sha512-jyXT4YTwefxxRZ0tt5xjbnw8e7zPg2OGdo/0xb+h/7qWnMNhLtWpc95DsYs/1C/I0rIyiDpZBhLI2DieQ9y+tw==} - '@scalar/client-side-rendering@0.1.5': - resolution: {integrity: sha512-XZ+lZbVli1rAX8Y13sQqisvbjVhkbePVeo0izJZ4cNzpzSh7fDpigEqpV67u4ljpTpLO0B12JDXR5xnmSy+YwQ==} + '@scalar/client-side-rendering@0.1.6': + resolution: {integrity: sha512-ooc5RKyi83EvBuxB2N8H00ZE2CF4oKynuUToSCaoqxkjv+oJ6B3+OYsb0HVixznsyWhUDdtQZm4/xOb0kxBaaA==} engines: {node: '>=22'} - '@scalar/helpers@0.5.4': - resolution: {integrity: sha512-AJFJNoSVcCHXDPH1Mosie+5+AOpNC4zrtwWywvQEhcaqHfiH4LSq8Og8Bay82M/jhCwNRNjWfGOGcaCE4XbCDw==} + '@scalar/helpers@0.5.5': + resolution: {integrity: sha512-TqbErkqGijJJW6Ad8lpswHFTmlJaYFt9oolaWF1/Nn9171xdkK9ZDAk3pCaOCWs8WpwvcbUSxIVD8JxdBg0MFg==} engines: {node: '>=22'} - '@scalar/hono-api-reference@0.10.12': - resolution: {integrity: sha512-X7ueApsdUkTEhyLfR9S6G+qzvoFUwZk4Hfh/I8EwTocxMAcv28bWvf0fe9UbmhXBN/vO6lKdpey/RCr5kiFjcg==} + '@scalar/hono-api-reference@0.10.13': + resolution: {integrity: sha512-xYSN6GVdzsgt5i3OTt4wDpIcD/KpKTwb6Wiy65NucGIFW0WidM6ilb9Lf8EG9xescut5djLtGOOxO4Ze0w8qgQ==} engines: {node: '>=22'} peerDependencies: hono: ^4.12.5 - '@scalar/types@0.9.4': - resolution: {integrity: sha512-nspIWRUVPv2uf9d0bBxn2uqKcEVbLqoUqKvNAuBgKMinZ95XSMcGjQjsgqDiRBPsn1luTtjC9xupUFfer7kLtg==} + '@scalar/types@0.9.5': + resolution: {integrity: sha512-joen5nuqgmGzgXK5XIqkGs0JmCZ16djaw+pgC24sfb+p3sSPVfKQTNTil/RuvHMNsmA/dFcQ6GI0Y3HhTlUQrg==} engines: {node: '>=22'} '@scure/base@2.0.0': @@ -4988,8 +4988,13 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - nanoid@5.1.9: - resolution: {integrity: sha512-ZUvP7KeBLe3OZ1ypw6dI/TzYJuvHP77IM4Ry73waSQTLn8/g8rpdjfyVAh7t1/+FjBtG4lCP42MEbDxOsRpBMw==} + nanoid@3.3.12: + resolution: {integrity: sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + nanoid@5.1.11: + resolution: {integrity: sha512-v+KEsUv2ps74PaSKv0gHTxTCgMXOIfBEbaqa6w6ISIGC7ZsvHN4N9oJ8d4cmf0n5oTzQz2SLmThbQWhjd/8eKg==} engines: {node: ^18 || >=20} hasBin: true @@ -5313,8 +5318,8 @@ packages: resolution: {integrity: sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ==} engines: {node: ^10 || ^12 || >=14} - postcss@8.5.12: - resolution: {integrity: sha512-W62t/Se6rA0Az3DfCL0AqJwXuKwBeYg6nOaIgzP+xZ7N5BFCI7DYi1qs6ygUYT6rvfi6t9k65UMLJC+PHZpDAA==} + postcss@8.5.13: + resolution: {integrity: sha512-qif0+jGGZoLWdHey3UFHHWP0H7Gbmsk8T5VEqyYFbWqPr1XqvLGBbk/sl8V5exGmcYJklJOhOQq1pV9IcsiFag==} engines: {node: ^10 || ^12 || >=14} postgres-array@2.0.0: @@ -8212,21 +8217,21 @@ snapshots: '@rss3/api-core': 0.0.25 '@rss3/api-utils': 0.0.25 - '@scalar/client-side-rendering@0.1.5': + '@scalar/client-side-rendering@0.1.6': dependencies: - '@scalar/types': 0.9.4 + '@scalar/types': 0.9.5 - '@scalar/helpers@0.5.4': {} + '@scalar/helpers@0.5.5': {} - '@scalar/hono-api-reference@0.10.12(hono@4.12.15)': + '@scalar/hono-api-reference@0.10.13(hono@4.12.15)': dependencies: - '@scalar/client-side-rendering': 0.1.5 + '@scalar/client-side-rendering': 0.1.6 hono: 4.12.15 - '@scalar/types@0.9.4': + '@scalar/types@0.9.5': dependencies: - '@scalar/helpers': 0.5.4 - nanoid: 5.1.9 + '@scalar/helpers': 0.5.5 + nanoid: 5.1.11 type-fest: 5.6.0 zod: 4.4.1 @@ -10943,7 +10948,9 @@ snapshots: nanoid@3.3.11: {} - nanoid@5.1.9: {} + nanoid@3.3.12: {} + + nanoid@5.1.11: {} napi-postinstall@0.3.4: {} @@ -11316,9 +11323,9 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - postcss@8.5.12: + postcss@8.5.13: dependencies: - nanoid: 3.3.11 + nanoid: 3.3.12 picocolors: 1.1.1 source-map-js: 1.2.1 @@ -12389,7 +12396,7 @@ snapshots: esbuild: 0.27.7 fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 - postcss: 8.5.12 + postcss: 8.5.13 rollup: 4.60.2 tinyglobby: 0.2.16 optionalDependencies: From ae8116a807e14b694588dc80b054325056fcd638 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 May 2026 10:10:46 +0000 Subject: [PATCH 292/439] chore(deps): bump hono from 4.12.15 to 4.12.16 (#21882) Bumps [hono](https://github.com/honojs/hono) from 4.12.15 to 4.12.16. - [Release notes](https://github.com/honojs/hono/releases) - [Commits](https://github.com/honojs/hono/compare/v4.12.15...v4.12.16) --- updated-dependencies: - dependency-name: hono dependency-version: 4.12.16 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 34 +++++++++++++++++----------------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index 9141b51ac36a..f538fa94325e 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,7 @@ "google-play-scraper": "10.1.2", "googleapis": "171.4.0", "header-generator": "2.1.82", - "hono": "4.12.15", + "hono": "4.12.16", "html-to-text": "9.0.5", "http-cookie-agent": "7.0.3", "https-proxy-agent": "9.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3e145359fb0a..3968590083a3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -45,10 +45,10 @@ importers: version: 6.12.3 '@hono/node-server': specifier: 2.0.0 - version: 2.0.0(hono@4.12.15) + version: 2.0.0(hono@4.12.16) '@hono/zod-openapi': specifier: 1.3.0 - version: 1.3.0(hono@4.12.15)(zod@4.4.1) + version: 1.3.0(hono@4.12.16)(zod@4.4.1) '@jocmp/mercury-parser': specifier: 3.0.8 version: 3.0.8 @@ -81,7 +81,7 @@ importers: version: 0.0.25 '@scalar/hono-api-reference': specifier: 0.10.13 - version: 0.10.13(hono@4.12.15) + version: 0.10.13(hono@4.12.16) '@sentry/node': specifier: 10.51.0 version: 10.51.0(@opentelemetry/exporter-trace-otlp-http@0.216.0(@opentelemetry/api@1.9.1)) @@ -131,8 +131,8 @@ importers: specifier: 2.1.82 version: 2.1.82 hono: - specifier: 4.12.15 - version: 4.12.15 + specifier: 4.12.16 + version: 4.12.16 html-to-text: specifier: 9.0.5 version: 9.0.5 @@ -4300,8 +4300,8 @@ packages: hmacsha1@1.0.0: resolution: {integrity: sha512-4FP6J0oI8jqb6gLLl9tSwVdosWJ/AKSGJ+HwYf6Ixe4MUcEkst4uWzpVQrNOCin0fzTRQbXV8ePheU8WiiDYBw==} - hono@4.12.15: - resolution: {integrity: sha512-qM0jDhFEaCBb4TxoW7f53Qrpv9RBiayUHo0S52JudprkhvpjIrGoU1mnnr29Fvd1U335ZFPZQY1wlkqgfGXyLg==} + hono@4.12.16: + resolution: {integrity: sha512-jN0ZewiNAWSe5khM3EyCmBb250+b40wWbwNILNfEvq84VREWwOIkuUsFONk/3i3nqkz7Oe1PcpM2mwQEK2L9Kg==} engines: {node: '>=16.9.0'} hookable@6.1.1: @@ -7094,21 +7094,21 @@ snapshots: '@types/aws-lambda': 8.10.161 '@types/express': 5.0.6 - '@hono/node-server@2.0.0(hono@4.12.15)': + '@hono/node-server@2.0.0(hono@4.12.16)': dependencies: - hono: 4.12.15 + hono: 4.12.16 - '@hono/zod-openapi@1.3.0(hono@4.12.15)(zod@4.4.1)': + '@hono/zod-openapi@1.3.0(hono@4.12.16)(zod@4.4.1)': dependencies: '@asteasolutions/zod-to-openapi': 8.5.0(zod@4.4.1) - '@hono/zod-validator': 0.7.6(hono@4.12.15)(zod@4.4.1) - hono: 4.12.15 + '@hono/zod-validator': 0.7.6(hono@4.12.16)(zod@4.4.1) + hono: 4.12.16 openapi3-ts: 4.5.0 zod: 4.4.1 - '@hono/zod-validator@0.7.6(hono@4.12.15)(zod@4.4.1)': + '@hono/zod-validator@0.7.6(hono@4.12.16)(zod@4.4.1)': dependencies: - hono: 4.12.15 + hono: 4.12.16 zod: 4.4.1 '@humanfs/core@0.19.2': @@ -8223,10 +8223,10 @@ snapshots: '@scalar/helpers@0.5.5': {} - '@scalar/hono-api-reference@0.10.13(hono@4.12.15)': + '@scalar/hono-api-reference@0.10.13(hono@4.12.16)': dependencies: '@scalar/client-side-rendering': 0.1.6 - hono: 4.12.15 + hono: 4.12.16 '@scalar/types@0.9.5': dependencies: @@ -10115,7 +10115,7 @@ snapshots: hmacsha1@1.0.0: {} - hono@4.12.15: {} + hono@4.12.16: {} hookable@6.1.1: {} From 9d18021a4f6e9faf83b615ca7701e52fe5f6da3e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 May 2026 10:17:29 +0000 Subject: [PATCH 293/439] chore(deps): bump @hono/node-server from 2.0.0 to 2.0.1 (#21886) Bumps [@hono/node-server](https://github.com/honojs/node-server) from 2.0.0 to 2.0.1. - [Release notes](https://github.com/honojs/node-server/releases) - [Commits](https://github.com/honojs/node-server/compare/v2.0.0...v2.0.1) --- updated-dependencies: - dependency-name: "@hono/node-server" dependency-version: 2.0.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index f538fa94325e..d1e34f019fed 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,7 @@ "@bbob/plugin-helper": "4.3.1", "@bbob/preset-html5": "4.3.1", "@honeybadger-io/js": "6.12.3", - "@hono/node-server": "2.0.0", + "@hono/node-server": "2.0.1", "@hono/zod-openapi": "1.3.0", "@jocmp/mercury-parser": "3.0.8", "@notionhq/client": "5.20.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3968590083a3..16b54bfb9fa9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -44,8 +44,8 @@ importers: specifier: 6.12.3 version: 6.12.3 '@hono/node-server': - specifier: 2.0.0 - version: 2.0.0(hono@4.12.16) + specifier: 2.0.1 + version: 2.0.1(hono@4.12.16) '@hono/zod-openapi': specifier: 1.3.0 version: 1.3.0(hono@4.12.16)(zod@4.4.1) @@ -1246,8 +1246,8 @@ packages: engines: {node: '>=14'} hasBin: true - '@hono/node-server@2.0.0': - resolution: {integrity: sha512-n3GfHwwCvHCkGmOwKfxUPOlbfzuO64Sbc5XC4NGPIXxkuOnJrdgExdRKmHfF924r914WRJPT397GdqLvdYTeyQ==} + '@hono/node-server@2.0.1': + resolution: {integrity: sha512-jI9yMDyFpqBeSighf/zlXnQG/nl9AyBc6aAgy4XtxJMyt/CNyJpvPfzDD+bCc2zAOmhhqtF6TnmIaY+xV4mIrw==} engines: {node: '>=20'} peerDependencies: hono: ^4 @@ -7094,7 +7094,7 @@ snapshots: '@types/aws-lambda': 8.10.161 '@types/express': 5.0.6 - '@hono/node-server@2.0.0(hono@4.12.16)': + '@hono/node-server@2.0.1(hono@4.12.16)': dependencies: hono: 4.12.16 From 05904ebf0a305b04dc5e2c1de8e86ee58fbe7283 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 May 2026 10:25:30 +0000 Subject: [PATCH 294/439] chore(deps): bump jsdom from 29.1.0 to 29.1.1 (#21885) Bumps [jsdom](https://github.com/jsdom/jsdom) from 29.1.0 to 29.1.1. - [Release notes](https://github.com/jsdom/jsdom/releases) - [Commits](https://github.com/jsdom/jsdom/compare/v29.1.0...v29.1.1) --- updated-dependencies: - dependency-name: jsdom dependency-version: 29.1.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index d1e34f019fed..e244c013cf07 100644 --- a/package.json +++ b/package.json @@ -98,7 +98,7 @@ "instagram-private-api": "1.46.1", "ioredis": "5.10.1", "ip-regex": "5.0.0", - "jsdom": "29.1.0", + "jsdom": "29.1.1", "json-bigint": "1.0.0", "jsonpath-plus": "10.4.0", "jsrsasign": "11.1.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 16b54bfb9fa9..f2806ff62f63 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -158,8 +158,8 @@ importers: specifier: 5.0.0 version: 5.0.0 jsdom: - specifier: 29.1.0 - version: 29.1.0(@noble/hashes@2.0.1) + specifier: 29.1.1 + version: 29.1.1(@noble/hashes@2.0.1) json-bigint: specifier: 1.0.0 version: 1.0.0 @@ -463,7 +463,7 @@ importers: version: 6.1.1(typescript@5.9.3)(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)) vitest: specifier: 4.1.5 - version: 4.1.5(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(jsdom@29.1.0(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.5(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)) wrangler: specifier: 4.86.0 version: 4.86.0(@cloudflare/workers-types@4.20260430.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10) @@ -4598,8 +4598,8 @@ packages: jsbn@0.1.1: resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} - jsdom@29.1.0: - resolution: {integrity: sha512-YNUc7fB9QuvSSQWfrH0xF+TyABkxUwx8sswgIDaCrw4Hol8BghdZDkITtZheRJeMtzWlnTfsM3bBBusRvpO1wg==} + jsdom@29.1.1: + resolution: {integrity: sha512-ECi4Fi2f7BdJtUKTflYRTiaMxIB0O6zfR1fX0GXpUrf6flp8QIYn1UT20YQqdSOfk2dfkCwS8LAFoJDEppNK5Q==} engines: {node: ^20.19.0 || ^22.13.0 || >=24.0.0} peerDependencies: canvas: ^3.0.0 @@ -8703,7 +8703,7 @@ snapshots: obug: 2.1.1 std-env: 4.1.0 tinyrainbow: 3.1.0 - vitest: 4.1.5(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(jsdom@29.1.0(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)) + vitest: 4.1.5(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)) '@vitest/expect@4.1.5': dependencies: @@ -10428,7 +10428,7 @@ snapshots: jsbn@0.1.1: {} - jsdom@29.1.0(@noble/hashes@2.0.1): + jsdom@29.1.1(@noble/hashes@2.0.1): dependencies: '@asamuzakjp/css-color': 5.1.11 '@asamuzakjp/dom-selector': 7.1.1 @@ -12406,7 +12406,7 @@ snapshots: tsx: 4.21.0 yaml: 2.8.3 - vitest@4.1.5(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(jsdom@29.1.0(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)): + vitest@4.1.5(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)): dependencies: '@vitest/expect': 4.1.5 '@vitest/mocker': 4.1.5(msw@2.13.4(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)) @@ -12433,7 +12433,7 @@ snapshots: '@opentelemetry/api': 1.9.1 '@types/node': 25.6.0 '@vitest/coverage-v8': 4.1.5(vitest@4.1.5) - jsdom: 29.1.0(@noble/hashes@2.0.1) + jsdom: 29.1.1(@noble/hashes@2.0.1) transitivePeerDependencies: - msw From 2028155576526425c4e45a35ad2698be7d63f971 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 May 2026 18:35:01 +0800 Subject: [PATCH 295/439] chore(deps-dev): bump the cloudflare group across 1 directory with 2 updates (#21880) Bumps the cloudflare group with 2 updates in the / directory: [@cloudflare/workers-types](https://github.com/cloudflare/workerd) and [wrangler](https://github.com/cloudflare/workers-sdk/tree/HEAD/packages/wrangler). Updates `@cloudflare/workers-types` from 4.20260430.1 to 4.20260501.1 - [Release notes](https://github.com/cloudflare/workerd/releases) - [Changelog](https://github.com/cloudflare/workerd/blob/main/RELEASE.md) - [Commits](https://github.com/cloudflare/workerd/commits) Updates `wrangler` from 4.86.0 to 4.87.0 - [Release notes](https://github.com/cloudflare/workers-sdk/releases) - [Commits](https://github.com/cloudflare/workers-sdk/commits/wrangler@4.87.0/packages/wrangler) --- updated-dependencies: - dependency-name: "@cloudflare/workers-types" dependency-version: 4.20260501.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: cloudflare - dependency-name: wrangler dependency-version: 4.87.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: cloudflare ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 4 +- pnpm-lock.yaml | 102 ++++++++++++++++++++++++------------------------- 2 files changed, 53 insertions(+), 53 deletions(-) diff --git a/package.json b/package.json index e244c013cf07..1dad8178561b 100644 --- a/package.json +++ b/package.json @@ -148,7 +148,7 @@ "@bbob/types": "4.3.1", "@cloudflare/containers": "0.3.3", "@cloudflare/puppeteer": "1.1.0", - "@cloudflare/workers-types": "4.20260430.1", + "@cloudflare/workers-types": "4.20260501.1", "@eslint/eslintrc": "3.3.5", "@eslint/js": "10.0.1", "@oxlint/plugins": "1.62.0", @@ -202,7 +202,7 @@ "unified": "11.0.5", "vite-tsconfig-paths": "6.1.1", "vitest": "4.1.5", - "wrangler": "4.86.0", + "wrangler": "4.87.0", "yaml-eslint-parser": "2.0.0" }, "lint-staged": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f2806ff62f63..3607e3e4a4c7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -303,8 +303,8 @@ importers: specifier: 1.1.0 version: 1.1.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) '@cloudflare/workers-types': - specifier: 4.20260430.1 - version: 4.20260430.1 + specifier: 4.20260501.1 + version: 4.20260501.1 '@eslint/eslintrc': specifier: 3.3.5 version: 3.3.5 @@ -465,8 +465,8 @@ importers: specifier: 4.1.5 version: 4.1.5(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)) wrangler: - specifier: 4.86.0 - version: 4.86.0(@cloudflare/workers-types@4.20260430.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10) + specifier: 4.87.0 + version: 4.87.0(@cloudflare/workers-types@4.20260501.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10) yaml-eslint-parser: specifier: 2.0.0 version: 2.0.0 @@ -592,9 +592,9 @@ packages: '@cloudflare/containers@0.3.3': resolution: {integrity: sha512-ZSXmArCoo5bVTp8pGAJdl5WKmwtZDcffJqr4JcZEbSmMIFjU+AlBqgysuxXMgu03Rp239cOdqerbjK7H0K2krQ==} - '@cloudflare/kv-asset-handler@0.4.2': - resolution: {integrity: sha512-SIOD2DxrRRwQ+jgzlXCqoEFiKOFqaPjhnNTGKXSRLvp1HiOvapLaFG2kEr9dYQTYe8rKrd9uvDUzmAITeNyaHQ==} - engines: {node: '>=18.0.0'} + '@cloudflare/kv-asset-handler@0.5.0': + resolution: {integrity: sha512-jxQYkj8dSIzc0cD6cMMNdOc1UVjqSqu8BZdor5s8cGjW2I8BjODt/kWPVdY+u9zj3ms75Q5qaZgnxUad83+eAg==} + engines: {node: '>=22.0.0'} '@cloudflare/puppeteer@1.1.0': resolution: {integrity: sha512-lN10En49avRDQvz8Gpv/WiIoGvjjDiP6P+v2y9bA6rfPT5WHfnlg2O6MwjHc1POm8A9LXf1sMdgrsdW8xWapOw==} @@ -609,38 +609,38 @@ packages: workerd: optional: true - '@cloudflare/workerd-darwin-64@1.20260426.1': - resolution: {integrity: sha512-Ch7DqsmYzSQRTY87pZpsGsFVz9VVBnLPnCBOHxKt1HH25a7oMu1w1PbPWqVmE0VerCLsj/TScX7Ob3v6E14TZw==} + '@cloudflare/workerd-darwin-64@1.20260430.1': + resolution: {integrity: sha512-ADohZUHf7NBvPp2PdZig2Opxx+hDkk3ve7jrTne3JRx9kDSB73zc4LzcEeEN8LKkbAcqZmvfRJfpChSlusu0lA==} engines: {node: '>=16'} cpu: [x64] os: [darwin] - '@cloudflare/workerd-darwin-arm64@1.20260426.1': - resolution: {integrity: sha512-0m0U8vaPRH25SpKjbSyRql6gmPe4rCsETRV2WW0qBnuMdKNr5Vh5/Uez80xVrfiCCRMTULGeg63Nqg2vg6CDOA==} + '@cloudflare/workerd-darwin-arm64@1.20260430.1': + resolution: {integrity: sha512-/DoYC/1wHs+YRZzzqSQg1/EHB4hiv1yV5U8FnmapRRIzVaPtnt+ApeOXeMrIdKidgKOI8TqQzgBU8xbIM7Cl4Q==} engines: {node: '>=16'} cpu: [arm64] os: [darwin] - '@cloudflare/workerd-linux-64@1.20260426.1': - resolution: {integrity: sha512-C8LlC8uSYzg49y51n++75esxZmMp+Uz1OKHHA/4lkv6rjOTbcHQJuEwSLppjybVIXpv7A8MBhbu9iyCTvyv1mw==} + '@cloudflare/workerd-linux-64@1.20260430.1': + resolution: {integrity: sha512-koJhBWvEVZPKCVFtMLp2iMHlYr+lFCF47wGbnlKdHVlemV0zTxJEyHI8aLlrhPLhBmOmYLp46rXw09/qJkRIhQ==} engines: {node: '>=16'} cpu: [x64] os: [linux] - '@cloudflare/workerd-linux-arm64@1.20260426.1': - resolution: {integrity: sha512-ESVp/OIFMAqjQsa8BOP2BQQz5Vpfv6ncN6lNnIuNeOgsISQBdYk+LA60bwQHMud9tvmnSYtONp1zkZ8OQz+x6w==} + '@cloudflare/workerd-linux-arm64@1.20260430.1': + resolution: {integrity: sha512-hMdapNAzNQZDXGGkg4Slydc3fRJP5FUZLJVVcZCW/+imhhJro9Z1rv5n/wfR+txKoSWhTYR8eOp8Pyi2bzLzlw==} engines: {node: '>=16'} cpu: [arm64] os: [linux] - '@cloudflare/workerd-windows-64@1.20260426.1': - resolution: {integrity: sha512-d3Xj/IjINRgNVwH+eKhpUn4xkkcEewbWXbOvBlapiirKWh5zl9m0Epi3qOqmjyRYK6MICqIGXg4qZBEt0lxudw==} + '@cloudflare/workerd-windows-64@1.20260430.1': + resolution: {integrity: sha512-jS3ffixjb5USOwz4frw4WzCz0HrjVxkgyU3WiYb06N7hBAfN6eOrveAJ4QRef0+suK4V1vQFoB1oKdRBsXe9Dw==} engines: {node: '>=16'} cpu: [x64] os: [win32] - '@cloudflare/workers-types@4.20260430.1': - resolution: {integrity: sha512-Rguf/SdQNm1HG2yZi8m57K4qvVh2fic+Xny4UidY1pCgHagOAq7Cy0WIp1JKQx54T8lgOgOWFzIaCK4iwLpxlg==} + '@cloudflare/workers-types@4.20260501.1': + resolution: {integrity: sha512-B/VX2w3my/sCqxKyWOX7SxUpFC1uD8Gh7I2zbI1d3zA8p7Tx03AFsnuEx8lYLmcd8yONAA93YsAZb1wAaLK83w==} '@colors/colors@1.6.0': resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} @@ -4917,9 +4917,9 @@ packages: resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - miniflare@4.20260426.0: - resolution: {integrity: sha512-KM+v76d04qT+NsPfVKVQEgnnuLNE3uzCCl2QKMTJ5OXor5JbBm1vpkQwQ+l7o5ELCrZ74RnyKhJKLiJyUA39Tw==} - engines: {node: '>=18.0.0'} + miniflare@4.20260430.0: + resolution: {integrity: sha512-MWvMm3Siho9Yj7lbJZidLs8hbrRvIcOrif2mnsHQZdvoKfedpea+GaN8XJxbpRcq0B2WzNI1BB1ihdnqes3/ZA==} + engines: {node: '>=22.0.0'} hasBin: true minimatch@10.2.5: @@ -6374,17 +6374,17 @@ packages: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} - workerd@1.20260426.1: - resolution: {integrity: sha512-ELvGgN8c9oo+E6EPyecxk1TEf6/eAK4TxxQTW5mQ87C7jbjCzhMbg0P2ije49UBHV0dkBYPJcJvcklUltipl2A==} + workerd@1.20260430.1: + resolution: {integrity: sha512-KEgIWyiw3Jmn+DCd/L3ePo5fmiiYb/UcwKvDWPf/nLLOiwShDFzDSsegU5NY/JcwgvO/QsLHVi2FYrbkcXNY5Q==} engines: {node: '>=16'} hasBin: true - wrangler@4.86.0: - resolution: {integrity: sha512-9aa/gbF/HiUeeUEwyQpW5LDPBEzyt7iaE6xHwm0vk2Ly8A6J+jh03pzchqVnCCWR832mNyA28MD8oAYt0Kfvlw==} - engines: {node: '>=20.3.0'} + wrangler@4.87.0: + resolution: {integrity: sha512-lfhfKwLfQlowwgV0xhlYgE9fU3n0I30d4ccGY/rTCEm/n42Mjvlr0Ng3ZPNqlsrsKBcDR531V7dsPkgELvrk/Q==} + engines: {node: '>=22.0.0'} hasBin: true peerDependencies: - '@cloudflare/workers-types': ^4.20260426.1 + '@cloudflare/workers-types': ^4.20260430.1 peerDependenciesMeta: '@cloudflare/workers-types': optional: true @@ -6684,7 +6684,7 @@ snapshots: '@cloudflare/containers@0.3.3': {} - '@cloudflare/kv-asset-handler@0.4.2': {} + '@cloudflare/kv-asset-handler@0.5.0': {} '@cloudflare/puppeteer@1.1.0(bufferutil@4.1.0)(utf-8-validate@5.0.10)': dependencies: @@ -6700,28 +6700,28 @@ snapshots: - supports-color - utf-8-validate - '@cloudflare/unenv-preset@2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260426.1)': + '@cloudflare/unenv-preset@2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260430.1)': dependencies: unenv: 2.0.0-rc.24 optionalDependencies: - workerd: 1.20260426.1 + workerd: 1.20260430.1 - '@cloudflare/workerd-darwin-64@1.20260426.1': + '@cloudflare/workerd-darwin-64@1.20260430.1': optional: true - '@cloudflare/workerd-darwin-arm64@1.20260426.1': + '@cloudflare/workerd-darwin-arm64@1.20260430.1': optional: true - '@cloudflare/workerd-linux-64@1.20260426.1': + '@cloudflare/workerd-linux-64@1.20260430.1': optional: true - '@cloudflare/workerd-linux-arm64@1.20260426.1': + '@cloudflare/workerd-linux-arm64@1.20260430.1': optional: true - '@cloudflare/workerd-windows-64@1.20260426.1': + '@cloudflare/workerd-windows-64@1.20260430.1': optional: true - '@cloudflare/workers-types@4.20260430.1': {} + '@cloudflare/workers-types@4.20260501.1': {} '@colors/colors@1.6.0': {} @@ -10867,12 +10867,12 @@ snapshots: mimic-response@4.0.0: {} - miniflare@4.20260426.0(bufferutil@4.1.0)(utf-8-validate@5.0.10): + miniflare@4.20260430.0(bufferutil@4.1.0)(utf-8-validate@5.0.10): dependencies: '@cspotcode/source-map-support': 0.8.1 sharp: 0.34.5 undici: 7.24.8 - workerd: 1.20260426.1 + workerd: 1.20260430.1 ws: 8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) youch: 4.1.0-beta.10 transitivePeerDependencies: @@ -12510,26 +12510,26 @@ snapshots: word-wrap@1.2.5: {} - workerd@1.20260426.1: + workerd@1.20260430.1: optionalDependencies: - '@cloudflare/workerd-darwin-64': 1.20260426.1 - '@cloudflare/workerd-darwin-arm64': 1.20260426.1 - '@cloudflare/workerd-linux-64': 1.20260426.1 - '@cloudflare/workerd-linux-arm64': 1.20260426.1 - '@cloudflare/workerd-windows-64': 1.20260426.1 + '@cloudflare/workerd-darwin-64': 1.20260430.1 + '@cloudflare/workerd-darwin-arm64': 1.20260430.1 + '@cloudflare/workerd-linux-64': 1.20260430.1 + '@cloudflare/workerd-linux-arm64': 1.20260430.1 + '@cloudflare/workerd-windows-64': 1.20260430.1 - wrangler@4.86.0(@cloudflare/workers-types@4.20260430.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10): + wrangler@4.87.0(@cloudflare/workers-types@4.20260501.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10): dependencies: - '@cloudflare/kv-asset-handler': 0.4.2 - '@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260426.1) + '@cloudflare/kv-asset-handler': 0.5.0 + '@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260430.1) blake3-wasm: 2.1.5 esbuild: 0.27.3 - miniflare: 4.20260426.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) + miniflare: 4.20260430.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) path-to-regexp: 6.3.0 unenv: 2.0.0-rc.24 - workerd: 1.20260426.1 + workerd: 1.20260430.1 optionalDependencies: - '@cloudflare/workers-types': 4.20260430.1 + '@cloudflare/workers-types': 4.20260501.1 fsevents: 2.3.3 transitivePeerDependencies: - bufferutil From f8789f5cfb44400e7e9d03862a3d45e871bdf9e9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 May 2026 18:56:38 +0800 Subject: [PATCH 296/439] chore(deps): bump html-to-text from 9.0.5 to 10.0.0 (#21884) Bumps [html-to-text](https://github.com/html-to-text/node-html-to-text) from 9.0.5 to 10.0.0. - [Commits](https://github.com/html-to-text/node-html-to-text/compare/9.0.5...10.0.0) --- updated-dependencies: - dependency-name: html-to-text dependency-version: 10.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 58 ++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 57 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 1dad8178561b..3c8482903baf 100644 --- a/package.json +++ b/package.json @@ -90,7 +90,7 @@ "googleapis": "171.4.0", "header-generator": "2.1.82", "hono": "4.12.16", - "html-to-text": "9.0.5", + "html-to-text": "10.0.0", "http-cookie-agent": "7.0.3", "https-proxy-agent": "9.0.0", "iconv-lite": "0.7.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3607e3e4a4c7..300a63139fc1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -134,8 +134,8 @@ importers: specifier: 4.12.16 version: 4.12.16 html-to-text: - specifier: 9.0.5 - version: 9.0.5 + specifier: 10.0.0 + version: 10.0.0 http-cookie-agent: specifier: 7.0.3 version: 7.0.3(tough-cookie@6.0.1)(undici@7.25.0) @@ -2600,6 +2600,11 @@ packages: '@selderee/plugin-htmlparser2@0.11.0': resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==} + '@selderee/plugin-htmlparser2@0.12.0': + resolution: {integrity: sha512-oELmoyA6ML9jDRMV3kgcMQFKxUfBU0yFVn6yTctVaLT5ygXnxH52I3TZEgV9EhXJC68/uFvE5Daj1/25c0Xa/A==} + peerDependencies: + selderee: ~0.12.0 + '@sentry/core@10.51.0': resolution: {integrity: sha512-Y45V/YXvVLEXmOdkbD1oG1gkRWFi9guCEGg3PlIlIpRjAbZUrvLGgjRJIc1E7XpSzmOnWbs5BbUxMv4PDaPj2w==} engines: {node: '>=18'} @@ -3621,6 +3626,10 @@ packages: deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + deepmerge-ts@7.1.5: + resolution: {integrity: sha512-HOJkrhaYsweh+W+e74Yn7YStZOilkoPb6fycpwNLKzSPtruFs48nYis0zy5yJz1+ktUhHxoRDJ27RQAWLIJVJw==} + engines: {node: '>=16.0.0'} + deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} @@ -4314,6 +4323,10 @@ packages: html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + html-to-text@10.0.0: + resolution: {integrity: sha512-2OH59Gtprdczel+7Rxgpz9hGVJREaf8Lt1H4kZwWHpEn70VQKRuMNGsb2eDbwaTzrYzb0hheiOG1P7Dim0B4dQ==} + engines: {node: '>=20.19.0'} + html-to-text@9.0.5: resolution: {integrity: sha512-qY60FjREgVZL03vJU6IfMV4GDjGBIoOyvuFdpBDIX9yTlDw0TjxVBQp+P8NvpdIXNJvfWBTNul7fsAQJq2FNpg==} engines: {node: '>=14'} @@ -4684,6 +4697,9 @@ packages: leac@0.6.0: resolution: {integrity: sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==} + leac@0.7.0: + resolution: {integrity: sha512-qMrZeyEekgdRQ9o6a4NAB2EQZrv827GJdn1vnapwSJ90hWRB4TzUSunvacPkxQ2TnNqHNI1/zSt0hlo0crG8Jw==} + levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} @@ -5241,6 +5257,9 @@ packages: parseley@0.12.1: resolution: {integrity: sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==} + parseley@0.13.1: + resolution: {integrity: sha512-uNBJZzmb60l6p6VWLTmevizNAGnE0xoSf1n0B4q3ntegDNzcS68NRCcBDZTcyXHxt2XhBChsCuqj4M+nChvE/A==} + path-browserify@1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} @@ -5273,6 +5292,9 @@ packages: pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + peberminta@0.10.0: + resolution: {integrity: sha512-80B2AsU+I4Qdb0ZAPSfe9UwvGzwkM37IKIFEvdS3D/3Ndgv2bsuJ0bfG1+iEYO+l7Gfd4EUJmuRyq7efLgRMzQ==} + peberminta@0.9.0: resolution: {integrity: sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==} @@ -5625,6 +5647,9 @@ packages: selderee@0.11.0: resolution: {integrity: sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==} + selderee@0.12.0: + resolution: {integrity: sha512-b1YMh3+DHZp59DLna3qVwQ5iOla/nrI6mLBNW02XxU77M3046Df6VLkoaJyFz20VsGIG5kkp+FK0kg4K4HnUFw==} + semver@7.7.4: resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} engines: {node: '>=10'} @@ -8244,6 +8269,12 @@ snapshots: domhandler: 5.0.3 selderee: 0.11.0 + '@selderee/plugin-htmlparser2@0.12.0(selderee@0.12.0)': + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + selderee: 0.12.0 + '@sentry/core@10.51.0': {} '@sentry/node-core@10.51.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/exporter-trace-otlp-http@0.216.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0)': @@ -9253,6 +9284,8 @@ snapshots: deep-is@0.1.4: {} + deepmerge-ts@7.1.5: {} + deepmerge@4.3.1: {} define-lazy-prop@2.0.0: {} @@ -10127,6 +10160,14 @@ snapshots: html-escaper@2.0.2: {} + html-to-text@10.0.0: + dependencies: + '@selderee/plugin-htmlparser2': 0.12.0(selderee@0.12.0) + deepmerge-ts: 7.1.5 + dom-serializer: 2.0.0 + htmlparser2: 10.1.0 + selderee: 0.12.0 + html-to-text@9.0.5: dependencies: '@selderee/plugin-htmlparser2': 0.11.0 @@ -10531,6 +10572,8 @@ snapshots: leac@0.6.0: {} + leac@0.7.0: {} + levn@0.4.1: dependencies: prelude-ls: 1.2.1 @@ -11248,6 +11291,11 @@ snapshots: leac: 0.6.0 peberminta: 0.9.0 + parseley@0.13.1: + dependencies: + leac: 0.7.0 + peberminta: 0.10.0 + path-browserify@1.0.1: {} path-exists@4.0.0: {} @@ -11273,6 +11321,8 @@ snapshots: pathe@2.0.3: {} + peberminta@0.10.0: {} + peberminta@0.9.0: {} pend@1.2.0: {} @@ -11763,6 +11813,10 @@ snapshots: dependencies: parseley: 0.12.1 + selderee@0.12.0: + dependencies: + parseley: 0.13.1 + semver@7.7.4: {} set-cookie-parser@3.1.0: {} From b431cf0f1923e6037022be308e586255c5d557aa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 May 2026 19:25:24 +0800 Subject: [PATCH 297/439] chore(deps): bump pnpm/action-setup from 5.0.0 to 6.0.4 (#21881) Bumps [pnpm/action-setup](https://github.com/pnpm/action-setup) from 5.0.0 to 6.0.4. - [Release notes](https://github.com/pnpm/action-setup/releases) - [Commits](https://github.com/pnpm/action-setup/compare/fc06bc1257f339d1d5d8b3a19a8cae5388b55320...26f6d4f2c533a43e6b5da0b4a5dd983f98f7b49a) --- updated-dependencies: - dependency-name: pnpm/action-setup dependency-version: 6.0.4 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build-assets.yml | 2 +- .github/workflows/comment-on-issue.yml | 2 +- .github/workflows/docker-test-cont.yml | 2 +- .github/workflows/format.yml | 2 +- .github/workflows/issue-command.yml | 2 +- .github/workflows/lint.yml | 2 +- .github/workflows/npm-publish.yml | 2 +- .github/workflows/test-full-routes.yml | 2 +- .github/workflows/test.yml | 6 +++--- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build-assets.yml b/.github/workflows/build-assets.yml index 999f8c0f3e49..cd05ca03ed90 100644 --- a/.github/workflows/build-assets.yml +++ b/.github/workflows/build-assets.yml @@ -20,7 +20,7 @@ jobs: - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Install pnpm - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 + uses: pnpm/action-setup@26f6d4f2c533a43e6b5da0b4a5dd983f98f7b49a # v6.0.4 - name: Use Node.js Active LTS uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: diff --git a/.github/workflows/comment-on-issue.yml b/.github/workflows/comment-on-issue.yml index 9800568e2769..077ff6a9020a 100644 --- a/.github/workflows/comment-on-issue.yml +++ b/.github/workflows/comment-on-issue.yml @@ -14,7 +14,7 @@ jobs: if: github.event.sender.login != 'issuehunt-oss[bot]' steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 + - uses: pnpm/action-setup@26f6d4f2c533a43e6b5da0b4a5dd983f98f7b49a # v6.0.4 - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: lts/* diff --git a/.github/workflows/docker-test-cont.yml b/.github/workflows/docker-test-cont.yml index 0ee55d688c04..52c490998fe7 100644 --- a/.github/workflows/docker-test-cont.yml +++ b/.github/workflows/docker-test-cont.yml @@ -42,7 +42,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 + - uses: pnpm/action-setup@26f6d4f2c533a43e6b5da0b4a5dd983f98f7b49a # v6.0.4 - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml index 6e040636613c..c60ab5607b43 100644 --- a/.github/workflows/format.yml +++ b/.github/workflows/format.yml @@ -15,7 +15,7 @@ jobs: steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 + - uses: pnpm/action-setup@26f6d4f2c533a43e6b5da0b4a5dd983f98f7b49a # v6.0.4 - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: lts/* diff --git a/.github/workflows/issue-command.yml b/.github/workflows/issue-command.yml index 890a0d3fb173..521136f27906 100644 --- a/.github/workflows/issue-command.yml +++ b/.github/workflows/issue-command.yml @@ -111,7 +111,7 @@ jobs: ref: ${{ fromJson(steps.pr-data.outputs.data).head.ref }} - name: Install pnpm - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 + uses: pnpm/action-setup@26f6d4f2c533a43e6b5da0b4a5dd983f98f7b49a # v6.0.4 - name: Use Node.js Active LTS uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 09c39af98014..ad3b512166b1 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -21,7 +21,7 @@ jobs: security-events: write steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 + - uses: pnpm/action-setup@26f6d4f2c533a43e6b5da0b4a5dd983f98f7b49a # v6.0.4 - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: lts/* diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index 2e8da7419f6b..8ecce580194a 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -23,7 +23,7 @@ jobs: HUSKY: 0 steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 + - uses: pnpm/action-setup@26f6d4f2c533a43e6b5da0b4a5dd983f98f7b49a # v6.0.4 - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: lts/* diff --git a/.github/workflows/test-full-routes.yml b/.github/workflows/test-full-routes.yml index 239f6ccc2829..5a72ec7c8b12 100644 --- a/.github/workflows/test-full-routes.yml +++ b/.github/workflows/test-full-routes.yml @@ -16,7 +16,7 @@ jobs: - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Install pnpm - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 + uses: pnpm/action-setup@26f6d4f2c533a43e6b5da0b4a5dd983f98f7b49a # v6.0.4 - name: Use Node.js Active LTS uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1c28b64680fa..68d646affa45 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -31,7 +31,7 @@ jobs: name: Vitest on Node ${{ matrix.node-version }} steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 + - uses: pnpm/action-setup@26f6d4f2c533a43e6b5da0b4a5dd983f98f7b49a # v6.0.4 - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: ${{ matrix.node-version }} @@ -76,7 +76,7 @@ jobs: name: Vitest puppeteer on Node ${{ matrix.node-version }} with ${{ matrix.chromium.name }} steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 + - uses: pnpm/action-setup@26f6d4f2c533a43e6b5da0b4a5dd983f98f7b49a # v6.0.4 - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: ${{ matrix.node-version }} @@ -123,7 +123,7 @@ jobs: name: Build radar and maintainer on Node ${{ matrix.node-version }} steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 + - uses: pnpm/action-setup@26f6d4f2c533a43e6b5da0b4a5dd983f98f7b49a # v6.0.4 - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: ${{ matrix.node-version }} From 843c3ff8c1156424f01a656cec126f3d41efabd9 Mon Sep 17 00:00:00 2001 From: ashi-koki Date: Fri, 1 May 2026 23:04:46 -0400 Subject: [PATCH 298/439] feat(route): add rule34video latest route (#21696) * feat(route): add rule34video latest route * fix(route): reduce redundant returns, use suggested full route path * fix(route): removed user-agent usage * fix(route): removed redundant import --- lib/routes/rule34video/latest.ts | 133 ++++++++++++++++++++++++++++ lib/routes/rule34video/namespace.ts | 7 ++ 2 files changed, 140 insertions(+) create mode 100644 lib/routes/rule34video/latest.ts create mode 100644 lib/routes/rule34video/namespace.ts diff --git a/lib/routes/rule34video/latest.ts b/lib/routes/rule34video/latest.ts new file mode 100644 index 000000000000..1e852e6c8341 --- /dev/null +++ b/lib/routes/rule34video/latest.ts @@ -0,0 +1,133 @@ +import { load } from 'cheerio'; + +import type { Route } from '@/types'; +import got from '@/utils/got'; +import { parseRelativeDate } from '@/utils/parse-date'; + +export const route: Route = { + path: '/latest', + categories: ['multimedia'], + example: '/rule34video/latest', + description: 'Latest updates from Rule34 Video', + features: { + requireConfig: false, + requirePuppeteer: false, + antiCrawler: false, + supportBT: false, + supportPodcast: false, + supportScihub: false, + nsfw: true, + }, + radar: [ + { + source: ['rule34video.com/latest-updates/'], + target: '/latest', + }, + ], + name: 'Latest Updates', + maintainers: ['ashi-koki'], + handler, +}; + +interface VideoItem { + title: string; + link: string; + preview?: string; + duration?: string; + added?: string; + rating?: string; + views?: string; + hasSound: boolean; + isHD: boolean; + videoId?: string; +} + +async function handler() { + const response = await got({ + method: 'get', + url: 'https://www.rule34video.com/latest-updates/', + headers: { + Referer: 'https://www.rule34video.com', + }, + }); + + const $ = load(response.data); + const items = $('a.th.js-open-popup') + .toArray() + .map((element) => { + const $el = $(element); + const title = $el.attr('title')?.trim() || $el.find('.thumb_title').text().trim(); + const link = $el.attr('href')?.trim() || ''; + const preview = $el.find('img.thumb.lazy-load').attr('data-original'); + const duration = $el.find('.time').text().trim(); + const added = $el.find('.added').text().replaceAll(/\s+/g, ' ').trim(); + const rating = $el.find('.rating').text().trim(); + const views = $el.find('.views').text().trim(); + const hasSound = $el.find('.sound').length > 0; + const isHD = $el.find('.quality').length > 0; + const videoId = link.match(/\/video\/(\d+)\//)?.[1]; + + return { + title, + link, + preview, + duration, + added, + rating, + views, + hasSound, + isHD, + videoId, + } as VideoItem; + }) + .filter((item) => item.title && item.link); + + return { + allowEmpty: true, + title: 'Rule34 Video Latest Updates', + link: 'https://www.rule34video.com/latest-updates/', + description: 'Latest updates from Rule34 Video', + item: items.map((item) => buildDataItem(item)), + }; +} + +function buildDataItem(item: VideoItem) { + let description = ''; + + if (item.duration) { + description += `

    Duration: ${item.duration}

    `; + } + if (item.views) { + description += `

    Views: ${item.views}

    `; + } + if (item.rating) { + description += `

    Rating: ${item.rating}

    `; + } + + const qualities: string[] = []; + if (item.isHD) { + qualities.push('HD'); + } + if (item.hasSound) { + qualities.push('Has Sound'); + } + if (qualities.length > 0) { + description += `

    Quality: ${qualities.join(', ')}

    `; + } + + if (item.preview) { + description += `${item.title}`; + } + + const pubDate = item.added ? parseRelativeDate(item.added) : undefined; + + return { + title: item.title, + link: item.link, + description, + image: item.preview, + ...(pubDate && { pubDate: pubDate.toISOString() }), + guid: item.videoId ? `rule34video:${item.videoId}` : item.link, + category: item.isHD ? ['HD'] : [], + }; +} diff --git a/lib/routes/rule34video/namespace.ts b/lib/routes/rule34video/namespace.ts new file mode 100644 index 000000000000..ec16c6d0af4b --- /dev/null +++ b/lib/routes/rule34video/namespace.ts @@ -0,0 +1,7 @@ +import type { Namespace } from '@/types'; + +export const namespace: Namespace = { + name: 'Rule34Video', + url: 'rule34video.com', + lang: 'en', +}; \ No newline at end of file From bd4ce4506d51e970282f93acf71deb43c8e63965 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 2 May 2026 03:05:48 +0000 Subject: [PATCH 299/439] style: auto format --- lib/routes/rule34video/namespace.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/routes/rule34video/namespace.ts b/lib/routes/rule34video/namespace.ts index ec16c6d0af4b..5909c100f1a0 100644 --- a/lib/routes/rule34video/namespace.ts +++ b/lib/routes/rule34video/namespace.ts @@ -4,4 +4,4 @@ export const namespace: Namespace = { name: 'Rule34Video', url: 'rule34video.com', lang: 'en', -}; \ No newline at end of file +}; From ec26f45425c5dd155710fdec608baa3f03baf467 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 May 2026 09:13:40 +0000 Subject: [PATCH 300/439] chore(deps): bump tldts from 7.0.29 to 7.0.30 (#21898) Bumps [tldts](https://github.com/remusao/tldts) from 7.0.29 to 7.0.30. - [Release notes](https://github.com/remusao/tldts/releases) - [Changelog](https://github.com/remusao/tldts/blob/master/CHANGELOG.md) - [Commits](https://github.com/remusao/tldts/compare/v7.0.29...v7.0.30) --- updated-dependencies: - dependency-name: tldts dependency-version: 7.0.30 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index 3c8482903baf..713b14bd7396 100644 --- a/package.json +++ b/package.json @@ -128,7 +128,7 @@ "source-map": "0.7.6", "telegram": "2.26.22", "title": "4.0.1", - "tldts": "7.0.29", + "tldts": "7.0.30", "tosource": "2.0.0-alpha.3", "tough-cookie": "6.0.1", "tsx": "4.21.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 300a63139fc1..a8f99d2b79f8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -248,8 +248,8 @@ importers: specifier: 4.0.1 version: 4.0.1 tldts: - specifier: 7.0.29 - version: 7.0.29 + specifier: 7.0.30 + version: 7.0.30 tosource: specifier: 2.0.0-alpha.3 version: 2.0.0-alpha.3 @@ -5934,11 +5934,11 @@ packages: resolution: {integrity: sha512-QXqwfEl9ddlGBaRFXIvNKK6OhipSiLXuRuLJX5DErz0o0Q0rYxulWLdFryTkV5PkdZct5iMInwYEGe/eR++1AA==} hasBin: true - tldts-core@7.0.29: - resolution: {integrity: sha512-W99NuU7b1DcG3uJ3v9k9VztCH3WialNbBkBft5wCs8V8mexu0XQqaZEYb9l9RNNzK8+3EJ9PKWB0/RUtTQ/o+Q==} + tldts-core@7.0.30: + resolution: {integrity: sha512-uiHN8PIB1VmWyS98eZYja4xzlYqeFZVjb4OuYlJQnZAuJhMw4PbKQOKgHKhBdJR3FE/t5mUQ1Kd80++B+qhD1Q==} - tldts@7.0.29: - resolution: {integrity: sha512-JIXCerhudr/N6OWLwLF1HVsTTUo7ry6qHa5eWZEkiMuxsIiAACL55tGLfqfHfoH7QaMQUW8fngD7u7TxWexYQg==} + tldts@7.0.30: + resolution: {integrity: sha512-ELrFxuqsDdHUwoh0XxDbxuLD3Wnz49Z57IFvTtvWy1hJdcMZjXLIuonjilCiWHlT2GbE4Wlv1wKVTzDFnXH1aw==} hasBin: true to-no-case@1.0.2: @@ -12149,11 +12149,11 @@ snapshots: tlds@1.261.0: {} - tldts-core@7.0.29: {} + tldts-core@7.0.30: {} - tldts@7.0.29: + tldts@7.0.30: dependencies: - tldts-core: 7.0.29 + tldts-core: 7.0.30 to-no-case@1.0.2: {} @@ -12174,7 +12174,7 @@ snapshots: tough-cookie@6.0.1: dependencies: - tldts: 7.0.29 + tldts: 7.0.30 tr46@0.0.3: {} From 8cb94bb9a577281aea934fabf48e86ff68f3cabd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 May 2026 09:14:36 +0000 Subject: [PATCH 301/439] chore(deps): bump rate-limiter-flexible from 11.0.1 to 11.0.2 (#21897) Bumps [rate-limiter-flexible](https://github.com/animir/node-rate-limiter-flexible) from 11.0.1 to 11.0.2. - [Release notes](https://github.com/animir/node-rate-limiter-flexible/releases) - [Commits](https://github.com/animir/node-rate-limiter-flexible/compare/v11.0.1...v11.0.2) --- updated-dependencies: - dependency-name: rate-limiter-flexible dependency-version: 11.0.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 713b14bd7396..b0812fab32dd 100644 --- a/package.json +++ b/package.json @@ -117,7 +117,7 @@ "proxy-chain": "2.7.1", "puppeteer-real-browser": "1.4.4", "query-string": "9.3.1", - "rate-limiter-flexible": "11.0.1", + "rate-limiter-flexible": "11.0.2", "re2js": "2.3.1", "rebrowser-puppeteer": "24.8.1", "rfc4648": "1.5.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a8f99d2b79f8..ba654f9d96d6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -215,8 +215,8 @@ importers: specifier: 9.3.1 version: 9.3.1 rate-limiter-flexible: - specifier: 11.0.1 - version: 11.0.1 + specifier: 11.0.2 + version: 11.0.2 re2js: specifier: 2.3.1 version: 2.3.1 @@ -5468,8 +5468,8 @@ packages: ramda@0.32.0: resolution: {integrity: sha512-GQWAHhxhxWBWA8oIBr1XahFVjQ9Fic6MK9ikijfd4TZHfE2+urfk+irVlR5VOn48uwMgM+loRRBJd6Yjsbc0zQ==} - rate-limiter-flexible@11.0.1: - resolution: {integrity: sha512-hvyCUefjRund2N6hro2H8Dql7OvB6+B3Qv2FLWWbdsdyQScXf4+N0tM0Bryz11awTtNxx6C1QbHYb1rCiAx7pA==} + rate-limiter-flexible@11.0.2: + resolution: {integrity: sha512-KF/g/GrzzL8bm5K9ZZ8MM0ascA+8dUwv5xA6+/k/3TpT/5cfz3ab36sRUTZsWMd0zmkOOZBu5oXURsRvztjBhw==} re2js@2.3.1: resolution: {integrity: sha512-gU5mI8ROXhrWXElqRzTnyN/MnnTFfddOTATd34ZTsZdRZs4g1PXLfp+thVF2AQSwiGQnDtOmNYCXRCctr2MsXw==} @@ -11545,7 +11545,7 @@ snapshots: ramda@0.32.0: {} - rate-limiter-flexible@11.0.1: {} + rate-limiter-flexible@11.0.2: {} re2js@2.3.1: {} From f28e20cdb28e727f3f2aa911a9a715b7c03d4bb6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 May 2026 09:14:53 +0000 Subject: [PATCH 302/439] chore(deps): bump pnpm/action-setup from 6.0.4 to 6.0.5 (#21894) Bumps [pnpm/action-setup](https://github.com/pnpm/action-setup) from 6.0.4 to 6.0.5. - [Release notes](https://github.com/pnpm/action-setup/releases) - [Commits](https://github.com/pnpm/action-setup/compare/26f6d4f2c533a43e6b5da0b4a5dd983f98f7b49a...8912a9102ac27614460f54aedde9e1e7f9aec20d) --- updated-dependencies: - dependency-name: pnpm/action-setup dependency-version: 6.0.5 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build-assets.yml | 2 +- .github/workflows/comment-on-issue.yml | 2 +- .github/workflows/docker-test-cont.yml | 2 +- .github/workflows/format.yml | 2 +- .github/workflows/issue-command.yml | 2 +- .github/workflows/lint.yml | 2 +- .github/workflows/npm-publish.yml | 2 +- .github/workflows/test-full-routes.yml | 2 +- .github/workflows/test.yml | 6 +++--- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build-assets.yml b/.github/workflows/build-assets.yml index cd05ca03ed90..c5ba81619275 100644 --- a/.github/workflows/build-assets.yml +++ b/.github/workflows/build-assets.yml @@ -20,7 +20,7 @@ jobs: - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Install pnpm - uses: pnpm/action-setup@26f6d4f2c533a43e6b5da0b4a5dd983f98f7b49a # v6.0.4 + uses: pnpm/action-setup@8912a9102ac27614460f54aedde9e1e7f9aec20d # v6.0.5 - name: Use Node.js Active LTS uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: diff --git a/.github/workflows/comment-on-issue.yml b/.github/workflows/comment-on-issue.yml index 077ff6a9020a..1b080a235164 100644 --- a/.github/workflows/comment-on-issue.yml +++ b/.github/workflows/comment-on-issue.yml @@ -14,7 +14,7 @@ jobs: if: github.event.sender.login != 'issuehunt-oss[bot]' steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@26f6d4f2c533a43e6b5da0b4a5dd983f98f7b49a # v6.0.4 + - uses: pnpm/action-setup@8912a9102ac27614460f54aedde9e1e7f9aec20d # v6.0.5 - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: lts/* diff --git a/.github/workflows/docker-test-cont.yml b/.github/workflows/docker-test-cont.yml index 52c490998fe7..63354d4fb459 100644 --- a/.github/workflows/docker-test-cont.yml +++ b/.github/workflows/docker-test-cont.yml @@ -42,7 +42,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - uses: pnpm/action-setup@26f6d4f2c533a43e6b5da0b4a5dd983f98f7b49a # v6.0.4 + - uses: pnpm/action-setup@8912a9102ac27614460f54aedde9e1e7f9aec20d # v6.0.5 - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml index c60ab5607b43..0bda220c1fc2 100644 --- a/.github/workflows/format.yml +++ b/.github/workflows/format.yml @@ -15,7 +15,7 @@ jobs: steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@26f6d4f2c533a43e6b5da0b4a5dd983f98f7b49a # v6.0.4 + - uses: pnpm/action-setup@8912a9102ac27614460f54aedde9e1e7f9aec20d # v6.0.5 - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: lts/* diff --git a/.github/workflows/issue-command.yml b/.github/workflows/issue-command.yml index 521136f27906..f9df8aeb9691 100644 --- a/.github/workflows/issue-command.yml +++ b/.github/workflows/issue-command.yml @@ -111,7 +111,7 @@ jobs: ref: ${{ fromJson(steps.pr-data.outputs.data).head.ref }} - name: Install pnpm - uses: pnpm/action-setup@26f6d4f2c533a43e6b5da0b4a5dd983f98f7b49a # v6.0.4 + uses: pnpm/action-setup@8912a9102ac27614460f54aedde9e1e7f9aec20d # v6.0.5 - name: Use Node.js Active LTS uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index ad3b512166b1..ad81cb075c55 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -21,7 +21,7 @@ jobs: security-events: write steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@26f6d4f2c533a43e6b5da0b4a5dd983f98f7b49a # v6.0.4 + - uses: pnpm/action-setup@8912a9102ac27614460f54aedde9e1e7f9aec20d # v6.0.5 - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: lts/* diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index 8ecce580194a..3298f08fc793 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -23,7 +23,7 @@ jobs: HUSKY: 0 steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@26f6d4f2c533a43e6b5da0b4a5dd983f98f7b49a # v6.0.4 + - uses: pnpm/action-setup@8912a9102ac27614460f54aedde9e1e7f9aec20d # v6.0.5 - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: lts/* diff --git a/.github/workflows/test-full-routes.yml b/.github/workflows/test-full-routes.yml index 5a72ec7c8b12..b65c471bb2c0 100644 --- a/.github/workflows/test-full-routes.yml +++ b/.github/workflows/test-full-routes.yml @@ -16,7 +16,7 @@ jobs: - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Install pnpm - uses: pnpm/action-setup@26f6d4f2c533a43e6b5da0b4a5dd983f98f7b49a # v6.0.4 + uses: pnpm/action-setup@8912a9102ac27614460f54aedde9e1e7f9aec20d # v6.0.5 - name: Use Node.js Active LTS uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 68d646affa45..297671297808 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -31,7 +31,7 @@ jobs: name: Vitest on Node ${{ matrix.node-version }} steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@26f6d4f2c533a43e6b5da0b4a5dd983f98f7b49a # v6.0.4 + - uses: pnpm/action-setup@8912a9102ac27614460f54aedde9e1e7f9aec20d # v6.0.5 - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: ${{ matrix.node-version }} @@ -76,7 +76,7 @@ jobs: name: Vitest puppeteer on Node ${{ matrix.node-version }} with ${{ matrix.chromium.name }} steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@26f6d4f2c533a43e6b5da0b4a5dd983f98f7b49a # v6.0.4 + - uses: pnpm/action-setup@8912a9102ac27614460f54aedde9e1e7f9aec20d # v6.0.5 - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: ${{ matrix.node-version }} @@ -123,7 +123,7 @@ jobs: name: Build radar and maintainer on Node ${{ matrix.node-version }} steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@26f6d4f2c533a43e6b5da0b4a5dd983f98f7b49a # v6.0.4 + - uses: pnpm/action-setup@8912a9102ac27614460f54aedde9e1e7f9aec20d # v6.0.5 - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: ${{ matrix.node-version }} From c7d7fe907baf9c6fa37b513ac8eff1ce8d3a75d2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 May 2026 09:16:18 +0000 Subject: [PATCH 303/439] chore(deps): bump zod from 4.4.1 to 4.4.3 (#21896) Bumps [zod](https://github.com/colinhacks/zod) from 4.4.1 to 4.4.3. - [Release notes](https://github.com/colinhacks/zod/releases) - [Commits](https://github.com/colinhacks/zod/compare/v4.4.1...v4.4.3) --- updated-dependencies: - dependency-name: zod dependency-version: 4.4.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 30 +++++++++++++++--------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/package.json b/package.json index b0812fab32dd..5decd5e381c7 100644 --- a/package.json +++ b/package.json @@ -140,7 +140,7 @@ "xxhash-wasm": "1.1.0", "youtube-caption-extractor": "1.9.1", "youtubei.js": "17.0.1", - "zod": "4.4.1" + "zod": "4.4.3" }, "devDependencies": { "@actions/core": "3.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ba654f9d96d6..790d2ee66e1e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -48,7 +48,7 @@ importers: version: 2.0.1(hono@4.12.16) '@hono/zod-openapi': specifier: 1.3.0 - version: 1.3.0(hono@4.12.16)(zod@4.4.1) + version: 1.3.0(hono@4.12.16)(zod@4.4.3) '@jocmp/mercury-parser': specifier: 3.0.8 version: 3.0.8 @@ -284,8 +284,8 @@ importers: specifier: 17.0.1 version: 17.0.1 zod: - specifier: 4.4.1 - version: 4.4.1 + specifier: 4.4.3 + version: 4.4.3 devDependencies: '@actions/core': specifier: 3.0.1 @@ -6559,8 +6559,8 @@ packages: zod@3.25.76: resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} - zod@4.4.1: - resolution: {integrity: sha512-a6ENMBBGZBsnlSebQ/eKCguSBeGKSf4O7BPnqVPmYGtpBYI7VSqoVqw+QcB7kPRjbqPwhYTpFbVj/RqNz/CT0Q==} + zod@4.4.3: + resolution: {integrity: sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==} snapshots: @@ -6615,10 +6615,10 @@ snapshots: '@asamuzakjp/nwsapi@2.3.9': {} - '@asteasolutions/zod-to-openapi@8.5.0(zod@4.4.1)': + '@asteasolutions/zod-to-openapi@8.5.0(zod@4.4.3)': dependencies: openapi3-ts: 4.5.0 - zod: 4.4.1 + zod: 4.4.3 '@babel/code-frame@7.29.0': dependencies: @@ -7123,18 +7123,18 @@ snapshots: dependencies: hono: 4.12.16 - '@hono/zod-openapi@1.3.0(hono@4.12.16)(zod@4.4.1)': + '@hono/zod-openapi@1.3.0(hono@4.12.16)(zod@4.4.3)': dependencies: - '@asteasolutions/zod-to-openapi': 8.5.0(zod@4.4.1) - '@hono/zod-validator': 0.7.6(hono@4.12.16)(zod@4.4.1) + '@asteasolutions/zod-to-openapi': 8.5.0(zod@4.4.3) + '@hono/zod-validator': 0.7.6(hono@4.12.16)(zod@4.4.3) hono: 4.12.16 openapi3-ts: 4.5.0 - zod: 4.4.1 + zod: 4.4.3 - '@hono/zod-validator@0.7.6(hono@4.12.16)(zod@4.4.1)': + '@hono/zod-validator@0.7.6(hono@4.12.16)(zod@4.4.3)': dependencies: hono: 4.12.16 - zod: 4.4.1 + zod: 4.4.3 '@humanfs/core@0.19.2': dependencies: @@ -8258,7 +8258,7 @@ snapshots: '@scalar/helpers': 0.5.5 nanoid: 5.1.11 type-fest: 5.6.0 - zod: 4.4.1 + zod: 4.4.3 '@scure/base@2.0.0': {} @@ -12727,4 +12727,4 @@ snapshots: zod@3.25.76: {} - zod@4.4.1: {} + zod@4.4.3: {} From 57d4b368659d74eea9bef3fe45eedd585106f0c6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 May 2026 18:57:00 +0800 Subject: [PATCH 304/439] chore(deps-dev): bump @cloudflare/workers-types in the cloudflare group (#21892) Bumps the cloudflare group with 1 update: [@cloudflare/workers-types](https://github.com/cloudflare/workerd). Updates `@cloudflare/workers-types` from 4.20260501.1 to 4.20260504.1 - [Release notes](https://github.com/cloudflare/workerd/releases) - [Changelog](https://github.com/cloudflare/workerd/blob/main/RELEASE.md) - [Commits](https://github.com/cloudflare/workerd/commits) --- updated-dependencies: - dependency-name: "@cloudflare/workers-types" dependency-version: 4.20260504.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: cloudflare ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index 5decd5e381c7..b250ca92bdb7 100644 --- a/package.json +++ b/package.json @@ -148,7 +148,7 @@ "@bbob/types": "4.3.1", "@cloudflare/containers": "0.3.3", "@cloudflare/puppeteer": "1.1.0", - "@cloudflare/workers-types": "4.20260501.1", + "@cloudflare/workers-types": "4.20260504.1", "@eslint/eslintrc": "3.3.5", "@eslint/js": "10.0.1", "@oxlint/plugins": "1.62.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 790d2ee66e1e..74881f09818d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -303,8 +303,8 @@ importers: specifier: 1.1.0 version: 1.1.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) '@cloudflare/workers-types': - specifier: 4.20260501.1 - version: 4.20260501.1 + specifier: 4.20260504.1 + version: 4.20260504.1 '@eslint/eslintrc': specifier: 3.3.5 version: 3.3.5 @@ -466,7 +466,7 @@ importers: version: 4.1.5(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)) wrangler: specifier: 4.87.0 - version: 4.87.0(@cloudflare/workers-types@4.20260501.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10) + version: 4.87.0(@cloudflare/workers-types@4.20260504.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10) yaml-eslint-parser: specifier: 2.0.0 version: 2.0.0 @@ -639,8 +639,8 @@ packages: cpu: [x64] os: [win32] - '@cloudflare/workers-types@4.20260501.1': - resolution: {integrity: sha512-B/VX2w3my/sCqxKyWOX7SxUpFC1uD8Gh7I2zbI1d3zA8p7Tx03AFsnuEx8lYLmcd8yONAA93YsAZb1wAaLK83w==} + '@cloudflare/workers-types@4.20260504.1': + resolution: {integrity: sha512-x/7BzBXSGBQS0wHdaY0/1bcaRszkkhCjTc5maQvNSHu/pTVdBF2f/L41W8pRSJJSbLL80ynW7O923O7v3PaLtg==} '@colors/colors@1.6.0': resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} @@ -6746,7 +6746,7 @@ snapshots: '@cloudflare/workerd-windows-64@1.20260430.1': optional: true - '@cloudflare/workers-types@4.20260501.1': {} + '@cloudflare/workers-types@4.20260504.1': {} '@colors/colors@1.6.0': {} @@ -12572,7 +12572,7 @@ snapshots: '@cloudflare/workerd-linux-arm64': 1.20260430.1 '@cloudflare/workerd-windows-64': 1.20260430.1 - wrangler@4.87.0(@cloudflare/workers-types@4.20260501.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10): + wrangler@4.87.0(@cloudflare/workers-types@4.20260504.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10): dependencies: '@cloudflare/kv-asset-handler': 0.5.0 '@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260430.1) @@ -12583,7 +12583,7 @@ snapshots: unenv: 2.0.0-rc.24 workerd: 1.20260430.1 optionalDependencies: - '@cloudflare/workers-types': 4.20260501.1 + '@cloudflare/workers-types': 4.20260504.1 fsevents: 2.3.3 transitivePeerDependencies: - bufferutil From fdca8531e5c24af0f118e044e5a477f7fe1a82a2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 May 2026 19:28:58 +0800 Subject: [PATCH 305/439] chore(deps-dev): bump globals from 17.5.0 to 17.6.0 (#21895) Bumps [globals](https://github.com/sindresorhus/globals) from 17.5.0 to 17.6.0. - [Release notes](https://github.com/sindresorhus/globals/releases) - [Commits](https://github.com/sindresorhus/globals/compare/v17.5.0...v17.6.0) --- updated-dependencies: - dependency-name: globals dependency-version: 17.6.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index b250ca92bdb7..f2f26f4cb844 100644 --- a/package.json +++ b/package.json @@ -183,7 +183,7 @@ "eslint-plugin-unicorn": "64.0.0", "eslint-plugin-yml": "3.3.2", "fs-extra": "11.3.4", - "globals": "17.5.0", + "globals": "17.6.0", "got": "15.0.3", "husky": "9.1.7", "js-beautify": "1.15.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 74881f09818d..94c2b75d0680 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -408,8 +408,8 @@ importers: specifier: 11.3.4 version: 11.3.4 globals: - specifier: 17.5.0 - version: 17.5.0 + specifier: 17.6.0 + version: 17.6.0 got: specifier: 15.0.3 version: 15.0.3 @@ -4238,8 +4238,8 @@ packages: resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} engines: {node: '>=18'} - globals@17.5.0: - resolution: {integrity: sha512-qoV+HK2yFl/366t2/Cb3+xxPUo5BuMynomoDmiaZBIdbs+0pYbjfZU+twLhGKp4uCZ/+NbtpVepH5bGCxRyy2g==} + globals@17.6.0: + resolution: {integrity: sha512-sepffkT8stwnIYbsMBpoCHJuJM5l98FUF2AnE07hfvE0m/qp3R586hw4jF4uadbhvg1ooIdzuu7CsfD2jzCaNA==} engines: {node: '>=18'} globrex@0.1.2: @@ -9679,7 +9679,7 @@ snapshots: core-js-compat: 3.49.0 eslint: 10.2.1(jiti@2.6.1) find-up-simple: 1.0.1 - globals: 17.5.0 + globals: 17.6.0 indent-string: 5.0.0 is-builtin-module: 5.0.0 jsesc: 3.1.0 @@ -10042,7 +10042,7 @@ snapshots: globals@15.15.0: {} - globals@17.5.0: {} + globals@17.6.0: {} globrex@0.1.2: {} From d6ae8fc7fc8732f0ff13be94873bfe84f32632b4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 May 2026 20:16:47 +0800 Subject: [PATCH 306/439] chore(deps): bump nixpkgs from `1c3fe55` to `15f4ee4` (#21899) Bumps [nixpkgs](https://github.com/NixOS/nixpkgs) from `1c3fe55` to `15f4ee4`. - [Commits](https://github.com/NixOS/nixpkgs/compare/1c3fe55ad329cbcb28471bb30f05c9827f724c76...15f4ee454b1dce334612fa6843b3e05cf546efab) --- updated-dependencies: - dependency-name: nixpkgs dependency-version: 15f4ee454b1dce334612fa6843b3e05cf546efab dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index b6b4db33a479..7f1dfeab6914 100644 --- a/flake.lock +++ b/flake.lock @@ -825,11 +825,11 @@ }, "nixpkgs_7": { "locked": { - "lastModified": 1777268161, - "narHash": "sha256-bxrdOn8SCOv8tN4JbTF/TXq7kjo9ag4M+C8yzzIRYbE=", + "lastModified": 1777578337, + "narHash": "sha256-Ad49moKWeXtKBJNy2ebiTQUEgdLyvGmTeykAQ9xM+Z4=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1c3fe55ad329cbcb28471bb30f05c9827f724c76", + "rev": "15f4ee454b1dce334612fa6843b3e05cf546efab", "type": "github" }, "original": { From a2e7a39aafd1ea4a159bd41fbc8ae4d4dd37272e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 4 May 2026 12:18:45 +0000 Subject: [PATCH 307/439] chore(nix): update dependencies hash to sha256-LALa3bGGiBv8zuKcxfDhVqQ/a9dnNw/WFnpFBt5Nq08= --- flake.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flake.nix b/flake.nix index 59f5b5a7c060..054b5a87f6d4 100644 --- a/flake.nix +++ b/flake.nix @@ -16,7 +16,7 @@ deps = pkgs.fetchPnpmDeps { pname = "rsshub"; src = ./.; - hash = "sha256-Kssm2wyrFM17wyiVj9pmrKmk9SaJKDMDa0CFZdlqRoM="; + hash = "sha256-LALa3bGGiBv8zuKcxfDhVqQ/a9dnNw/WFnpFBt5Nq08="; fetcherVersion = 2; }; in From cf8c822a077a6feb4c53ebe2af4f0eb2df9c7dd0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 May 2026 20:27:55 +0800 Subject: [PATCH 308/439] chore(deps): bump devenv from `da4531a` to `9708ea1` (#21900) Bumps [devenv](https://github.com/cachix/devenv) from `da4531a` to `9708ea1`. - [Release notes](https://github.com/cachix/devenv/releases) - [Commits](https://github.com/cachix/devenv/compare/da4531a7d9b79199b9e56802cb1006ce492c613b...9708ea1ebc52d6189cff09b837067daefb0bf0e7) --- updated-dependencies: - dependency-name: devenv dependency-version: 9708ea1ebc52d6189cff09b837067daefb0bf0e7 dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- flake.lock | 97 +++++++++++++++++++++++++++--------------------------- 1 file changed, 48 insertions(+), 49 deletions(-) diff --git a/flake.lock b/flake.lock index 7f1dfeab6914..54fa961917d7 100644 --- a/flake.lock +++ b/flake.lock @@ -19,11 +19,11 @@ ] }, "locked": { - "lastModified": 1774017633, - "narHash": "sha256-CWhnwL2M83/ItapPVeJqCevRoQttesYxJ1h0Mo6ZCXs=", + "lastModified": 1777487137, + "narHash": "sha256-TuvKVBX60mqyMT6OB5JqVEh1YIWtFMR/igLCaCdC9tw=", "owner": "cachix", "repo": "cachix", - "rev": "e8be573b417f3daa3dd4cb9052178f848e0c9d1d", + "rev": "a66a440c321d35f7193472c317f42a55ccd1cb93", "type": "github" }, "original": { @@ -164,11 +164,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1777573317, - "narHash": "sha256-IqOdwdWBCf5eXNW7RGFb63Ql+ZnhHRPSTW0mxJYVOvg=", + "lastModified": 1777837414, + "narHash": "sha256-L7g797htlkWyFW+6Y4qibuyaVMcDaVjdBTcaPMbKPmY=", "owner": "cachix", "repo": "devenv", - "rev": "da4531a7d9b79199b9e56802cb1006ce492c613b", + "rev": "9708ea1ebc52d6189cff09b837067daefb0bf0e7", "type": "github" }, "original": { @@ -335,11 +335,11 @@ ] }, "locked": { - "lastModified": 1775087534, - "narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=", + "lastModified": 1777678872, + "narHash": "sha256-EPIFsulyon7Z1vLQq5Fk64GR8L7cQsT+IPhcsukVbgk=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b", + "rev": "5250617bffd85403b14dbf43c3870e7f255d2c16", "type": "github" }, "original": { @@ -376,16 +376,15 @@ "zon2nix": "zon2nix" }, "locked": { - "lastModified": 1776365871, - "narHash": "sha256-lAFTUeJy7AT4V+t8/HlMM7O5z6W+G4eUhzRoh3ZdZu8=", - "owner": "cachix", + "lastModified": 1777773742, + "narHash": "sha256-dZFc+8az7BUIs8+v45XqNnY5G6oXEwVfVVHZQuATSGQ=", + "owner": "ghostty-org", "repo": "ghostty", - "rev": "d882f9106d15c213239b8916083835263d4fb9bc", + "rev": "1547dd667ab6d1f4ebcdc7282adc54c95752ee67", "type": "github" }, "original": { - "owner": "cachix", - "ref": "cachix-upstream", + "owner": "ghostty-org", "repo": "ghostty", "type": "github" } @@ -465,11 +464,11 @@ ] }, "locked": { - "lastModified": 1775585728, - "narHash": "sha256-8Psjt+TWvE4thRKktJsXfR6PA/fWWsZ04DVaY6PUhr4=", + "lastModified": 1776796298, + "narHash": "sha256-PcRvlWayisPSjd0UcRQbhG8Oqw78AcPE6x872cPRHN8=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "580633fa3fe5fc0379905986543fd7495481913d", + "rev": "3cfd774b0a530725a077e17354fbdb87ea1c4aad", "type": "github" }, "original": { @@ -700,11 +699,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1776341634, - "narHash": "sha256-L//ltP2o5+BnuK+KEulbi2gGeDpyyex6SkXLZcGQ/Ac=", + "lastModified": 1777345723, + "narHash": "sha256-BhY3D5DhpDnnUcaY+AL/cpyYX+OIjQgnAkbPLZ08C38=", "owner": "nix-community", "repo": "nixd", - "rev": "951e98e2025c47614f5249556ecf509b0ea35b51", + "rev": "6bf30951a3dc407a798d30db427e3f96ac9b39f5", "type": "github" }, "original": { @@ -732,11 +731,11 @@ "nixpkgs-src": { "flake": false, "locked": { - "lastModified": 1775888245, - "narHash": "sha256-nwASzrRDD1JBEu/o8ekKYEXm/oJW6EMCzCRdrwcLe90=", + "lastModified": 1776329215, + "narHash": "sha256-a8BYi3mzoJ/AcJP8UldOx8emoPRLeWqALZWu4ZvjPXw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "13043924aaa7375ce482ebe2494338e058282925", + "rev": "b86751bc4085f48661017fa226dee99fab6c651b", "type": "github" }, "original": { @@ -780,24 +779,24 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1772963539, - "narHash": "sha256-G4+9cEu8XSqEWYUB6iRgDfrg53av6yyRwAKhSeKbUVw=", - "rev": "9dcb002ca1690658be4a04645215baea8b95f31d", + "lastModified": 1770537093, + "narHash": "sha256-XV30uo8tXuxdzuV8l3sojmlPRLd/8tpMsOp4lNzLGUo=", + "rev": "fef9403a3e4d31b0a23f0bacebbec52c248fbb51", "type": "tarball", - "url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre960399.9dcb002ca169/nixexprs.tar.xz" + "url": "https://releases.nixos.org/nixpkgs/nixpkgs-26.05pre942631.fef9403a3e4d/nixexprs.tar.xz" }, "original": { "type": "tarball", - "url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz" + "url": "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz" } }, "nixpkgs_5": { "locked": { - "lastModified": 1772963539, - "narHash": "sha256-G4+9cEu8XSqEWYUB6iRgDfrg53av6yyRwAKhSeKbUVw=", - "rev": "9dcb002ca1690658be4a04645215baea8b95f31d", + "lastModified": 1776877367, + "narHash": "sha256-wMN1gM00sUQ2KC9CNr/XEOGdfOrl67PabIRv9AYayTo=", + "rev": "0726a0ecb6d4e08f6adced58726b95db924cef57", "type": "tarball", - "url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre960399.9dcb002ca169/nixexprs.tar.xz" + "url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre985613.0726a0ecb6d4/nixexprs.tar.xz" }, "original": { "type": "tarball", @@ -809,11 +808,11 @@ "nixpkgs-src": "nixpkgs-src" }, "locked": { - "lastModified": 1776771808, - "narHash": "sha256-FRpraDgknF5zoCYTi9CitoIaUYb/XGiXUuVqPg9AYB4=", + "lastModified": 1776852779, + "narHash": "sha256-WwO/ITisCXwyiRgtktZgv3iGhAGO+IB5Av4kKCwezR0=", "owner": "cachix", "repo": "devenv-nixpkgs", - "rev": "3a3d4ac6ea3dbf2534ef988086348b7e140b92ad", + "rev": "ec3063523dcd911aeadb50faa589f237cdab5853", "type": "github" }, "original": { @@ -912,11 +911,11 @@ ] }, "locked": { - "lastModified": 1776741231, - "narHash": "sha256-k9G98qzn+7npROUaks8VqCFm7cFtEG8ulQLBBo5lItg=", + "lastModified": 1777778183, + "narHash": "sha256-Lqv9MZO0XAGcMbXJU+ULBSMD41Pf391uJehylUQKe7Y=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "02061303f7c4c964f7b4584dabd9e985b4cd442b", + "rev": "dbba5f888c82ef3ce594c451c33ac2474eb80847", "type": "github" }, "original": { @@ -997,11 +996,11 @@ ] }, "locked": { - "lastModified": 1773145353, - "narHash": "sha256-dE8zx8WA54TRmFFQBvA48x/sXGDTP7YaDmY6nNKMAYw=", + "lastModified": 1776789209, + "narHash": "sha256-G6B7Q4TXn7MZ1mB+f9rymjsYF5PLWoSvmbxijb/99bw=", "owner": "mitchellh", "repo": "zig-overlay", - "rev": "8666155d83bf792956a7c40915508e6d4b2b8716", + "rev": "14fe971844e841297ddd2ce9783d6892b467af39", "type": "github" }, "original": { @@ -1020,11 +1019,11 @@ ] }, "locked": { - "lastModified": 1776208985, - "narHash": "sha256-IOuRFpbeQ9jSk54OURX5yvjoC759ujgSNjkMKpChdDA=", + "lastModified": 1777234348, + "narHash": "sha256-fKw44a4qbUuI5eTG8k0gPbqMV5TOrjYF35PBzsYgd2U=", "ref": "refs/heads/main", - "rev": "e8ee348125247e7bd74932cc42ac92df90961d5b", - "revCount": 1666, + "rev": "2c781c0609ecda600ab98f98cca417bbd981bd53", + "revCount": 1677, "type": "git", "url": "https://codeberg.org/jcollie/zig-overlay.git" }, @@ -1043,11 +1042,11 @@ "zig": "zig_2" }, "locked": { - "lastModified": 1776269939, - "narHash": "sha256-tOGsI1d1Xk1PYapQJ/ByG0utbWXJasIna/fUib+/b5A=", + "lastModified": 1777314365, + "narHash": "sha256-eLxQaD0wc96Neqkln8wHS0rNq/chPODifFkhwrwilEU=", "owner": "jcollie", "repo": "zon2nix", - "rev": "cc467a77c2ebcd9aab84024196abfc37eaf1007d", + "rev": "a5a1d412ad1ab6305511997bbc92b3a9dd6cb784", "type": "github" }, "original": { From 4d859d56f5f5c6abf102f649b1584caf1aec36aa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 May 2026 20:40:37 +0800 Subject: [PATCH 309/439] chore(deps-dev): bump eslint in the eslint group across 1 directory (#21893) Bumps the eslint group with 1 update in the / directory: [eslint](https://github.com/eslint/eslint). Updates `eslint` from 10.2.1 to 10.3.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Commits](https://github.com/eslint/eslint/compare/v10.2.1...v10.3.0) --- updated-dependencies: - dependency-name: eslint dependency-version: 10.3.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: eslint ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 136 ++++++++++++++++++++++++++----------------------- 2 files changed, 74 insertions(+), 64 deletions(-) diff --git a/package.json b/package.json index f2f26f4cb844..77d8d28455f0 100644 --- a/package.json +++ b/package.json @@ -175,7 +175,7 @@ "@vitest/coverage-v8": "4.1.5", "discord-api-types": "0.38.47", "domhandler": "6.0.1", - "eslint": "10.2.1", + "eslint": "10.3.0", "eslint-nibble": "9.1.1", "eslint-plugin-import-x": "4.16.2", "eslint-plugin-n": "17.24.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 94c2b75d0680..100fa9347696 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -310,13 +310,13 @@ importers: version: 3.3.5 '@eslint/js': specifier: 10.0.1 - version: 10.0.1(eslint@10.2.1(jiti@2.6.1)) + version: 10.0.1(eslint@10.3.0(jiti@2.6.1)) '@oxlint/plugins': specifier: 1.62.0 version: 1.62.0 '@stylistic/eslint-plugin': specifier: 5.10.0 - version: 5.10.0(eslint@10.2.1(jiti@2.6.1)) + version: 5.10.0(eslint@10.3.0(jiti@2.6.1)) '@types/aes-js': specifier: 3.1.4 version: 3.1.4 @@ -367,10 +367,10 @@ importers: version: 2.16.1 '@typescript-eslint/eslint-plugin': specifier: 8.59.1 - version: 8.59.1(@typescript-eslint/parser@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3))(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) + version: 8.59.1(@typescript-eslint/parser@8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: 8.59.1 - version: 8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) + version: 8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3) '@vercel/nft': specifier: 1.5.0 version: 1.5.0(rollup@4.60.2) @@ -384,26 +384,26 @@ importers: specifier: 6.0.1 version: 6.0.1 eslint: - specifier: 10.2.1 - version: 10.2.1(jiti@2.6.1) + specifier: 10.3.0 + version: 10.3.0(jiti@2.6.1) eslint-nibble: specifier: 9.1.1 - version: 9.1.1(@types/node@25.6.0)(eslint@10.2.1(jiti@2.6.1)) + version: 9.1.1(@types/node@25.6.0)(eslint@10.3.0(jiti@2.6.1)) eslint-plugin-import-x: specifier: 4.16.2 - version: 4.16.2(@typescript-eslint/utils@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.2.1(jiti@2.6.1)) + version: 4.16.2(@typescript-eslint/utils@8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.3.0(jiti@2.6.1)) eslint-plugin-n: specifier: 17.24.0 - version: 17.24.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) + version: 17.24.0(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3) eslint-plugin-simple-import-sort: specifier: 13.0.0 - version: 13.0.0(eslint@10.2.1(jiti@2.6.1)) + version: 13.0.0(eslint@10.3.0(jiti@2.6.1)) eslint-plugin-unicorn: specifier: 64.0.0 - version: 64.0.0(eslint@10.2.1(jiti@2.6.1)) + version: 64.0.0(eslint@10.3.0(jiti@2.6.1)) eslint-plugin-yml: specifier: 3.3.2 - version: 3.3.2(eslint@10.2.1(jiti@2.6.1)) + version: 3.3.2(eslint@10.3.0(jiti@2.6.1)) fs-extra: specifier: 11.3.4 version: 11.3.4 @@ -3100,6 +3100,9 @@ packages: ajv@6.14.0: resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==} + ajv@6.15.0: + resolution: {integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==} + ansi-escapes@7.3.0: resolution: {integrity: sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==} engines: {node: '>=18'} @@ -3970,8 +3973,8 @@ packages: resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - eslint@10.2.1: - resolution: {integrity: sha512-wiyGaKsDgqXvF40P8mDwiUp/KQjE1FdrIEJsM8PZ3XCiniTMXS3OHWWUe5FI5agoCnr8x4xPrTDZuxsBlNHl+Q==} + eslint@10.3.0: + resolution: {integrity: sha512-XbEXaRva5cF0ZQB8w6MluHA0kZZfV2DuCMJ3ozyEOHLwDpZX2Lmm/7Pp0xdJmI0GL1W05VH5VwIFHEm1Vcw2gw==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} hasBin: true peerDependencies: @@ -7046,9 +7049,9 @@ snapshots: '@esbuild/win32-x64@0.27.7': optional: true - '@eslint-community/eslint-utils@4.9.1(eslint@10.2.1(jiti@2.6.1))': + '@eslint-community/eslint-utils@4.9.1(eslint@10.3.0(jiti@2.6.1))': dependencies: - eslint: 10.2.1(jiti@2.6.1) + eslint: 10.3.0(jiti@2.6.1) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.2': {} @@ -7083,9 +7086,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@10.0.1(eslint@10.2.1(jiti@2.6.1))': + '@eslint/js@10.0.1(eslint@10.3.0(jiti@2.6.1))': optionalDependencies: - eslint: 10.2.1(jiti@2.6.1) + eslint: 10.3.0(jiti@2.6.1) '@eslint/object-schema@3.0.5': {} @@ -8350,11 +8353,11 @@ snapshots: '@standard-schema/spec@1.1.0': {} - '@stylistic/eslint-plugin@5.10.0(eslint@10.2.1(jiti@2.6.1))': + '@stylistic/eslint-plugin@5.10.0(eslint@10.3.0(jiti@2.6.1))': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.1(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.3.0(jiti@2.6.1)) '@typescript-eslint/types': 8.58.0 - eslint: 10.2.1(jiti@2.6.1) + eslint: 10.3.0(jiti@2.6.1) eslint-visitor-keys: 4.2.1 espree: 10.4.0 estraverse: 5.3.0 @@ -8551,15 +8554,15 @@ snapshots: '@types/node': 25.6.0 optional: true - '@typescript-eslint/eslint-plugin@8.59.1(@typescript-eslint/parser@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3))(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.59.1(@typescript-eslint/parser@8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/scope-manager': 8.59.1 - '@typescript-eslint/type-utils': 8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/utils': 8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/type-utils': 8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/visitor-keys': 8.59.1 - eslint: 10.2.1(jiti@2.6.1) + eslint: 10.3.0(jiti@2.6.1) ignore: 7.0.5 natural-compare: 1.4.0 ts-api-utils: 2.5.0(typescript@5.9.3) @@ -8567,14 +8570,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/parser@8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@typescript-eslint/scope-manager': 8.59.1 '@typescript-eslint/types': 8.59.1 '@typescript-eslint/typescript-estree': 8.59.1(typescript@5.9.3) '@typescript-eslint/visitor-keys': 8.59.1 debug: 4.4.3 - eslint: 10.2.1(jiti@2.6.1) + eslint: 10.3.0(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -8597,13 +8600,13 @@ snapshots: dependencies: typescript: 5.9.3 - '@typescript-eslint/type-utils@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@typescript-eslint/types': 8.59.1 '@typescript-eslint/typescript-estree': 8.59.1(typescript@5.9.3) - '@typescript-eslint/utils': 8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3) debug: 4.4.3 - eslint: 10.2.1(jiti@2.6.1) + eslint: 10.3.0(jiti@2.6.1) ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: @@ -8628,13 +8631,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/utils@8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.1(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.3.0(jiti@2.6.1)) '@typescript-eslint/scope-manager': 8.59.1 '@typescript-eslint/types': 8.59.1 '@typescript-eslint/typescript-estree': 8.59.1(typescript@5.9.3) - eslint: 10.2.1(jiti@2.6.1) + eslint: 10.3.0(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -8819,6 +8822,13 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 + ajv@6.15.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + ansi-escapes@7.3.0: dependencies: environment: 1.1.0 @@ -9584,14 +9594,14 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-compat-utils@0.5.1(eslint@10.2.1(jiti@2.6.1)): + eslint-compat-utils@0.5.1(eslint@10.3.0(jiti@2.6.1)): dependencies: - eslint: 10.2.1(jiti@2.6.1) + eslint: 10.3.0(jiti@2.6.1) semver: 7.7.4 - eslint-filtered-fix@0.3.0(eslint@10.2.1(jiti@2.6.1)): + eslint-filtered-fix@0.3.0(eslint@10.3.0(jiti@2.6.1)): dependencies: - eslint: 10.2.1(jiti@2.6.1) + eslint: 10.3.0(jiti@2.6.1) optionator: 0.9.4 eslint-import-context@0.1.9(unrs-resolver@1.11.1): @@ -9610,34 +9620,34 @@ snapshots: - supports-color optional: true - eslint-nibble@9.1.1(@types/node@25.6.0)(eslint@10.2.1(jiti@2.6.1)): + eslint-nibble@9.1.1(@types/node@25.6.0)(eslint@10.3.0(jiti@2.6.1)): dependencies: '@babel/code-frame': 7.29.0 '@inquirer/checkbox': 4.3.2(@types/node@25.6.0) '@inquirer/confirm': 5.1.21(@types/node@25.6.0) '@inquirer/select': 4.4.2(@types/node@25.6.0) - eslint: 10.2.1(jiti@2.6.1) - eslint-filtered-fix: 0.3.0(eslint@10.2.1(jiti@2.6.1)) + eslint: 10.3.0(jiti@2.6.1) + eslint-filtered-fix: 0.3.0(eslint@10.3.0(jiti@2.6.1)) optionator: 0.9.4 text-table: 0.2.0 yoctocolors: 2.1.2 transitivePeerDependencies: - '@types/node' - eslint-plugin-es-x@7.8.0(eslint@10.2.1(jiti@2.6.1)): + eslint-plugin-es-x@7.8.0(eslint@10.3.0(jiti@2.6.1)): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.1(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.3.0(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.2 - eslint: 10.2.1(jiti@2.6.1) - eslint-compat-utils: 0.5.1(eslint@10.2.1(jiti@2.6.1)) + eslint: 10.3.0(jiti@2.6.1) + eslint-compat-utils: 0.5.1(eslint@10.3.0(jiti@2.6.1)) - eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.2.1(jiti@2.6.1)): + eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.3.0(jiti@2.6.1)): dependencies: '@package-json/types': 0.0.12 '@typescript-eslint/types': 8.58.0 comment-parser: 1.4.6 debug: 4.4.3 - eslint: 10.2.1(jiti@2.6.1) + eslint: 10.3.0(jiti@2.6.1) eslint-import-context: 0.1.9(unrs-resolver@1.11.1) is-glob: 4.0.3 minimatch: 10.2.5 @@ -9645,17 +9655,17 @@ snapshots: stable-hash-x: 0.2.0 unrs-resolver: 1.11.1 optionalDependencies: - '@typescript-eslint/utils': 8.59.1(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.59.1(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3) eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-n@17.24.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3): + eslint-plugin-n@17.24.0(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.1(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.3.0(jiti@2.6.1)) enhanced-resolve: 5.20.1 - eslint: 10.2.1(jiti@2.6.1) - eslint-plugin-es-x: 7.8.0(eslint@10.2.1(jiti@2.6.1)) + eslint: 10.3.0(jiti@2.6.1) + eslint-plugin-es-x: 7.8.0(eslint@10.3.0(jiti@2.6.1)) get-tsconfig: 4.13.7 globals: 15.15.0 globrex: 0.1.2 @@ -9665,19 +9675,19 @@ snapshots: transitivePeerDependencies: - typescript - eslint-plugin-simple-import-sort@13.0.0(eslint@10.2.1(jiti@2.6.1)): + eslint-plugin-simple-import-sort@13.0.0(eslint@10.3.0(jiti@2.6.1)): dependencies: - eslint: 10.2.1(jiti@2.6.1) + eslint: 10.3.0(jiti@2.6.1) - eslint-plugin-unicorn@64.0.0(eslint@10.2.1(jiti@2.6.1)): + eslint-plugin-unicorn@64.0.0(eslint@10.3.0(jiti@2.6.1)): dependencies: '@babel/helper-validator-identifier': 7.28.5 - '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.1(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.3.0(jiti@2.6.1)) change-case: 5.4.4 ci-info: 4.4.0 clean-regexp: 1.0.0 core-js-compat: 3.49.0 - eslint: 10.2.1(jiti@2.6.1) + eslint: 10.3.0(jiti@2.6.1) find-up-simple: 1.0.1 globals: 17.6.0 indent-string: 5.0.0 @@ -9689,14 +9699,14 @@ snapshots: semver: 7.7.4 strip-indent: 4.1.1 - eslint-plugin-yml@3.3.2(eslint@10.2.1(jiti@2.6.1)): + eslint-plugin-yml@3.3.2(eslint@10.3.0(jiti@2.6.1)): dependencies: '@eslint/core': 1.2.1 '@eslint/plugin-kit': 0.7.1 '@ota-meshi/ast-token-store': 0.3.0 diff-sequences: 29.6.3 escape-string-regexp: 5.0.0 - eslint: 10.2.1(jiti@2.6.1) + eslint: 10.3.0(jiti@2.6.1) natural-compare: 1.4.0 yaml-eslint-parser: 2.0.0 @@ -9713,9 +9723,9 @@ snapshots: eslint-visitor-keys@5.0.1: {} - eslint@10.2.1(jiti@2.6.1): + eslint@10.3.0(jiti@2.6.1): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.1(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.3.0(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.2 '@eslint/config-array': 0.23.5 '@eslint/config-helpers': 0.5.5 @@ -9725,7 +9735,7 @@ snapshots: '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 '@types/estree': 1.0.8 - ajv: 6.14.0 + ajv: 6.15.0 cross-spawn: 7.0.6 debug: 4.4.3 escape-string-regexp: 4.0.0 @@ -10125,7 +10135,7 @@ snapshots: har-validator@5.1.5: dependencies: - ajv: 6.14.0 + ajv: 6.15.0 har-schema: 2.0.0 has-flag@4.0.0: {} From 566f028aaf1813c9d05e491b9f6c67325a06e837 Mon Sep 17 00:00:00 2001 From: DIYgod Date: Mon, 4 May 2026 21:16:18 +0800 Subject: [PATCH 310/439] refactor: migrate browser automation to Playwright (#21901) * refactor: migrate browser automation to Playwright * ci: update browser checks for Playwright --- .github/workflows/docker-release.yml | 2 +- .github/workflows/docker-test.yml | 2 +- .github/workflows/issue-command.yml | 2 +- .github/workflows/test.yml | 30 +- .puppeteerrc.cjs | 9 - Dockerfile | 47 +- app.json | 2 +- docker-compose.yml | 4 +- eslint.config.mjs | 7 +- lib/app.worker.tsx | 2 +- lib/config.ts | 8 +- lib/routes/acs/journal.tsx | 4 +- lib/routes/aip/journal-pupp.ts | 10 +- lib/routes/aip/utils.tsx | 4 +- lib/routes/alternativeto/platform.ts | 6 +- lib/routes/alternativeto/software.ts | 6 +- lib/routes/alternativeto/utils.ts | 8 +- lib/routes/apkpure/versions.ts | 4 +- lib/routes/bilibili/cache.ts | 4 +- lib/routes/bilibili/dynamic.ts | 2 +- lib/routes/bilibili/vsearch.ts | 2 +- lib/routes/bluestacks/release.ts | 4 +- lib/routes/ccac/news.ts | 4 +- lib/routes/chinadegrees/province.tsx | 4 +- lib/routes/chinatimes/index.ts | 4 +- lib/routes/cjlu/yjsy/index.ts | 4 +- lib/routes/cmde/index.ts | 4 +- lib/routes/colamanga/manga.ts | 4 +- lib/routes/cw/author.ts | 4 +- lib/routes/cw/master.ts | 4 +- lib/routes/cw/sub.ts | 4 +- lib/routes/cw/today.ts | 4 +- lib/routes/cw/utils.ts | 4 +- lib/routes/dailypush/all.ts | 4 +- lib/routes/dailypush/tags.ts | 4 +- lib/routes/dailypush/utils.ts | 2 +- lib/routes/dcard/section.ts | 4 +- lib/routes/dealstreetasia/home.ts | 2 +- lib/routes/dealstreetasia/section.ts | 2 +- lib/routes/douyin/hashtag.ts | 4 +- lib/routes/douyin/live.ts | 4 +- lib/routes/douyin/namespace.ts | 2 +- lib/routes/douyin/user.ts | 4 +- lib/routes/fortnite/news.ts | 43 +- lib/routes/gov/customs/list.ts | 10 +- lib/routes/gov/customs/utils.ts | 4 +- lib/routes/gov/hangzhou/zwfw.tsx | 4 +- lib/routes/gov/pbc/goutongjiaoliu.ts | 4 +- lib/routes/gov/pbc/trade-announcement.ts | 4 +- lib/routes/hitcon/zeroday.tsx | 4 +- lib/routes/hkushop/vinyl-or-picture-lp.ts | 4 +- lib/routes/hottoys/index.ts | 6 +- lib/routes/ielts/index.ts | 4 +- lib/routes/iqiyi/video.ts | 6 +- lib/routes/iwara/ranking.ts | 4 +- lib/routes/iwara/subscriptions.ts | 4 +- lib/routes/javdb/utils.ts | 4 +- lib/routes/javtrailers/casts.ts | 8 +- lib/routes/javtrailers/categories.ts | 8 +- lib/routes/javtrailers/studios.ts | 8 +- lib/routes/javtrailers/utils.ts | 4 +- lib/routes/kuaishou/profile.ts | 4 +- lib/routes/linkedin/posts.ts | 4 +- lib/routes/missav/new.tsx | 4 +- lib/routes/nhentai/util.tsx | 6 +- lib/routes/njust/utils.ts | 4 +- lib/routes/nuaa/utils/pypasswaf.ts | 6 +- lib/routes/nytimes/index.ts | 4 +- lib/routes/oceanengine/arithmetic-index.tsx | 4 +- lib/routes/parliament.uk/commonslibrary.ts | 4 +- lib/routes/parliament.uk/lordslibrary.ts | 4 +- lib/routes/perplexity/blog.ts | 4 +- lib/routes/perplexity/changelog.ts | 4 +- lib/routes/picnob/user.ts | 147 ---- lib/routes/picnob/utils.ts | 8 +- lib/routes/picuki/profile.ts | 4 +- lib/routes/pincong/hot.ts | 6 +- lib/routes/pincong/index.ts | 6 +- lib/routes/pincong/topic.ts | 6 +- lib/routes/pincong/utils.ts | 8 +- lib/routes/pnas/index.tsx | 6 +- lib/routes/researchgate/publications.ts | 4 +- lib/routes/science/blogs.ts | 4 +- lib/routes/science/current.ts | 4 +- lib/routes/science/early.ts | 4 +- lib/routes/sotwe/user.ts | 4 +- lib/routes/spankbang/new-videos.tsx | 4 +- lib/routes/tiktok/user.ts | 4 +- lib/routes/twitter/api/web-api/login.ts | 4 +- lib/routes/uchicago/current.ts | 6 +- lib/routes/uestc/auto.ts | 4 +- lib/routes/uestc/cqe.ts | 4 +- lib/routes/uestc/scse.ts | 4 +- lib/routes/uestc/sice.ts | 4 +- lib/routes/uestc/sise.ts | 4 +- lib/routes/ups/track.ts | 4 +- lib/routes/uraaka-joshi/uraaka-joshi-user.ts | 4 +- lib/routes/uraaka-joshi/uraaka-joshi.ts | 4 +- lib/routes/weibo/utils.ts | 6 +- lib/routes/xiaohongshu/util.ts | 12 +- lib/routes/xsijishe/rank.ts | 14 +- lib/routes/xsijishe/utils.ts | 4 +- lib/routes/xueqiu/cookies.ts | 6 +- lib/routes/xueqiu/user.ts | 4 +- lib/types.ts | 2 +- ...utils.test.ts => playwright-utils.test.ts} | 14 +- lib/utils/playwright-utils.ts | 58 ++ lib/utils/playwright.mock.test.ts | 186 ++++ lib/utils/playwright.test.ts | 67 ++ lib/utils/playwright.ts | 336 +++++++ lib/utils/playwright.worker.ts | 256 ++++++ lib/utils/proxy/pac-proxy.ts | 2 +- lib/utils/proxy/unify-proxy.ts | 6 +- lib/utils/puppeteer-utils.ts | 59 +- lib/utils/puppeteer.mock.test.ts | 108 --- lib/utils/puppeteer.test.ts | 254 ------ lib/utils/puppeteer.ts | 197 +---- lib/utils/puppeteer.worker.ts | 101 +-- lib/utils/request-rewriter/get.ts | 2 +- package.json | 9 +- pnpm-lock.yaml | 821 +----------------- scripts/ansible/rsshub.env | 2 +- scripts/ansible/rsshub.yaml | 2 +- wrangler-container.toml | 2 +- wrangler.toml | 2 +- 125 files changed, 1255 insertions(+), 1968 deletions(-) delete mode 100644 .puppeteerrc.cjs rename lib/utils/{puppeteer-utils.test.ts => playwright-utils.test.ts} (93%) create mode 100644 lib/utils/playwright-utils.ts create mode 100644 lib/utils/playwright.mock.test.ts create mode 100644 lib/utils/playwright.test.ts create mode 100644 lib/utils/playwright.ts create mode 100644 lib/utils/playwright.worker.ts delete mode 100644 lib/utils/puppeteer.mock.test.ts delete mode 100644 lib/utils/puppeteer.test.ts diff --git a/.github/workflows/docker-release.yml b/.github/workflows/docker-release.yml index c9be358e2610..1fa32652d63b 100644 --- a/.github/workflows/docker-release.yml +++ b/.github/workflows/docker-release.yml @@ -163,7 +163,7 @@ jobs: uses: docker/build-push-action@bcafcacb16a39f128d818304e6c9c0c18556b85f # v7.1.0 with: context: . - build-args: PUPPETEER_SKIP_DOWNLOAD=0 + build-args: PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=0 tags: ${{ steps.image-name-chromium-bundled.outputs.tags }} labels: ${{ steps.meta-chromium-bundled.outputs.labels }} platforms: ${{ matrix.platform }} diff --git a/.github/workflows/docker-test.yml b/.github/workflows/docker-test.yml index fd684a545dcf..9c5f8724a06d 100644 --- a/.github/workflows/docker-test.yml +++ b/.github/workflows/docker-test.yml @@ -43,7 +43,7 @@ jobs: uses: docker/build-push-action@bcafcacb16a39f128d818304e6c9c0c18556b85f # v7.1.0 with: context: . - build-args: PUPPETEER_SKIP_DOWNLOAD=0 # also test bundling Chromium + build-args: PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=0 # also test bundling Chromium load: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} diff --git a/.github/workflows/issue-command.yml b/.github/workflows/issue-command.yml index f9df8aeb9691..79bc948acd64 100644 --- a/.github/workflows/issue-command.yml +++ b/.github/workflows/issue-command.yml @@ -120,7 +120,7 @@ jobs: cache: 'pnpm' - name: Install dependencies (pnpm) - run: pnpm i && pnpm rb && pnpx rebrowser-puppeteer browsers install chrome + run: pnpm i && pnpm rb && pnpm exec playwright install chromium - name: Fetch affected routes id: fetch-route diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 297671297808..c51c8f21eecd 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -39,7 +39,7 @@ jobs: - name: Install dependencies (pnpm) run: pnpm i - name: Run postinstall script for dependencies - run: pnpm rb && pnpx rebrowser-puppeteer browsers install chrome + run: pnpm rb && pnpm exec playwright install chromium - name: Build routes run: pnpm build - name: Build worker routes @@ -56,7 +56,7 @@ jobs: with: token: ${{ secrets.CODECOV_TOKEN }} # not required for public repos as documented, but seems broken - puppeteer: + playwright: runs-on: ubuntu-latest timeout-minutes: 10 strategy: @@ -66,14 +66,14 @@ jobs: chromium: - name: bundled Chromium dependency: '' - environment: '{ "PUPPETEER_SKIP_DOWNLOAD": "0" }' + environment: '{ "PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD": "0" }' - name: Chromium from Ubuntu dependency: chromium-browser - environment: '{ "PUPPETEER_SKIP_DOWNLOAD": "1" }' + environment: '{ "PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD": "1" }' - name: Chrome from Google dependency: google-chrome-stable - environment: '{ "PUPPETEER_SKIP_DOWNLOAD": "1" }' - name: Vitest puppeteer on Node ${{ matrix.node-version }} with ${{ matrix.chromium.name }} + environment: '{ "PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD": "1" }' + name: Vitest Playwright on Node ${{ matrix.node-version }} with ${{ matrix.chromium.name }} steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: pnpm/action-setup@8912a9102ac27614460f54aedde9e1e7f9aec20d # v6.0.5 @@ -85,11 +85,12 @@ jobs: run: pnpm i env: ${{ fromJSON(matrix.chromium.environment) }} - name: Run postinstall script for dependencies - run: pnpm rb && pnpx rebrowser-puppeteer browsers install chrome - env: ${{ fromJSON(matrix.chromium.environment) }} + run: pnpm rb - name: Build routes run: pnpm build - env: ${{ fromJSON(matrix.chromium.environment) }} + - name: Install bundled Chromium + if: ${{ matrix.chromium.dependency == '' }} + run: pnpm exec playwright install chromium - name: Install Chromium if: ${{ matrix.chromium.dependency != '' }} # 'chromium-browser' from Ubuntu APT repo is a dummy package. Its version (85.0.4183.83) means @@ -104,12 +105,13 @@ jobs: sudo tee /etc/apt/sources.list.d/google-chrome.list > /dev/null sudo apt-get update sudo apt-get install -yq --no-install-recommends ${{ matrix.chromium.dependency }} - - name: Test puppeteer + - name: Test Playwright run: | set -eux - export CHROMIUM_EXECUTABLE_PATH="$(which ${{ matrix.chromium.dependency }})" - pnpm run vitest puppeteer - env: ${{ fromJSON(matrix.chromium.environment) }} + if [ -n "${{ matrix.chromium.dependency }}" ]; then + export CHROMIUM_EXECUTABLE_PATH="$(which ${{ matrix.chromium.dependency }})" + fi + pnpm run vitest playwright all: runs-on: ubuntu-latest @@ -139,7 +141,7 @@ jobs: automerge: if: github.triggering_actor == 'dependabot[bot]' && github.event_name == 'pull_request' - needs: [vitest, puppeteer, all] + needs: [vitest, playwright, all] runs-on: ubuntu-slim permissions: pull-requests: write diff --git a/.puppeteerrc.cjs b/.puppeteerrc.cjs deleted file mode 100644 index af09a79d0cbd..000000000000 --- a/.puppeteerrc.cjs +++ /dev/null @@ -1,9 +0,0 @@ -const path = require('node:path'); - -/** - * @type {import("puppeteer").Configuration} - */ -module.exports = { - // Changes the cache location for Puppeteer. - cacheDirectory: path.join(__dirname, 'node_modules', '.cache', 'puppeteer'), -}; diff --git a/Dockerfile b/Dockerfile index 248d81f5c267..6683193b7ed6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -21,10 +21,10 @@ COPY ./patches /app/patches COPY ./pnpm-lock.yaml /app/ COPY ./package.json /app/ -# lazy install Chromium to avoid cache miss, only install production dependencies to minimize the image size +# Lazy install Chromium to avoid cache miss, only install production dependencies to minimize the image size. RUN \ set -ex && \ - export PUPPETEER_SKIP_DOWNLOAD=true && \ + export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=true && \ pnpm install --frozen-lockfile && \ pnpm rb @@ -40,7 +40,7 @@ WORKDIR /ver COPY ./package.json /app/ RUN \ set -ex && \ - grep -Po '(?<="rebrowser-puppeteer": ")[^\s"]*(?=")' /app/package.json | tee /ver/.puppeteer_version && \ + grep -Po '(?<="playwright": ")[^\s"]*(?=")' /app/package.json | tee /ver/.playwright_version && \ grep -Po '(?<="@vercel/nft": ")[^\s"]*(?=")' /app/package.json | tee /ver/.nft_version && \ grep -Po '(?<="fs-extra": ")[^\s"]*(?=")' /app/package.json | tee /ver/.fs_extra_version @@ -88,30 +88,29 @@ FROM node:24-bookworm-slim AS chromium-downloader # Yeah, downloading Chromium never needs those dependencies below. WORKDIR /app -COPY ./.puppeteerrc.cjs /app/ -COPY --from=dep-version-parser /ver/.puppeteer_version /app/.puppeteer_version +COPY --from=dep-version-parser /ver/.playwright_version /app/.playwright_version ARG TARGETPLATFORM ARG USE_CHINA_NPM_REGISTRY=0 -ARG PUPPETEER_SKIP_DOWNLOAD=1 -# The official recommended way to use Puppeteer on x86(_64) is to use the bundled Chromium from Puppeteer: -# https://pptr.dev/faq#q-why-doesnt-puppeteer-vxxx-workwith-chromium-vyyy +ARG PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 +# The official recommended way to use Playwright on x86(_64) is to use the bundled browser. RUN \ set -ex ; \ - if [ "$PUPPETEER_SKIP_DOWNLOAD" = 0 ] && [ "$TARGETPLATFORM" = 'linux/amd64' ]; then \ + if [ "$PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD" = 0 ] && [ "$TARGETPLATFORM" = 'linux/amd64' ]; then \ if [ "$USE_CHINA_NPM_REGISTRY" = 1 ]; then \ npm config set registry https://registry.npmmirror.com && \ yarn config set registry https://registry.npmmirror.com && \ pnpm config set registry https://registry.npmmirror.com ; \ fi; \ echo 'Downloading Chromium...' && \ - unset PUPPETEER_SKIP_DOWNLOAD && \ + unset PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD && \ + export PLAYWRIGHT_BROWSERS_PATH=/app/node_modules/.cache/ms-playwright && \ corepack enable pnpm && \ - pnpm --allow-build=rebrowser-puppeteer add rebrowser-puppeteer@$(cat /app/.puppeteer_version) --save-prod && \ + pnpm --allow-build=playwright add playwright@$(cat /app/.playwright_version) --save-prod && \ pnpm rb && \ - pnpx rebrowser-puppeteer browsers install chrome ; \ + pnpm exec playwright install chromium ; \ else \ - mkdir -p /app/node_modules/.cache/puppeteer ; \ + mkdir -p /app/node_modules/.cache/ms-playwright ; \ fi; # --------------------------------------------------------------------------------------------------------------------- @@ -127,20 +126,17 @@ WORKDIR /app # install deps first to avoid cache miss or disturbing buildkit to build concurrently ARG TARGETPLATFORM -ARG PUPPETEER_SKIP_DOWNLOAD=1 -# https://pptr.dev/troubleshooting#chrome-headless-doesnt-launch-on-unix -# https://github.com/puppeteer/puppeteer/issues/7822 +ARG PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 +# https://playwright.dev/docs/docker#introduction # https://www.debian.org/releases/bookworm/amd64/release-notes/ch-information.en.html#noteworthy-obsolete-packages -# The official recommended way to use Puppeteer on arm/arm64 is to install Chromium from the distribution repositories: -# https://github.com/puppeteer/puppeteer/blob/07391bbf5feaf85c191e1aa8aa78138dce84008d/packages/puppeteer-core/src/node/BrowserFetcher.ts#L128-L131 -# Dependencies of puppeteer-real-browser: xvfb, procps +# On arm/arm64, install Chromium from the distribution repositories. RUN \ set -ex && \ apt-get update && \ apt-get install -yq --no-install-recommends \ dumb-init git curl \ ; \ - if [ "$PUPPETEER_SKIP_DOWNLOAD" = 0 ]; then \ + if [ "$PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD" = 0 ]; then \ if [ "$TARGETPLATFORM" = 'linux/amd64' ]; then \ apt-get install -yq --no-install-recommends \ ca-certificates fonts-liberation wget xdg-utils \ @@ -154,19 +150,16 @@ RUN \ && \ echo "CHROMIUM_EXECUTABLE_PATH=$(which chromium)" | tee /app/.env ; \ fi; \ - apt-get install -yq --no-install-recommends \ - xvfb procps \ - ; \ fi; \ rm -rf /var/lib/apt/lists/* -COPY --from=chromium-downloader /app/node_modules/.cache/puppeteer /app/node_modules/.cache/puppeteer +COPY --from=chromium-downloader /app/node_modules/.cache/ms-playwright /app/node_modules/.cache/ms-playwright RUN \ set -ex && \ - if [ "$PUPPETEER_SKIP_DOWNLOAD" = 0 ] && [ "$TARGETPLATFORM" = 'linux/amd64' ]; then \ + if [ "$PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD" = 0 ] && [ "$TARGETPLATFORM" = 'linux/amd64' ]; then \ echo 'Verifying Chromium installation...' && \ - _chrome_path=$(find /app/node_modules/.cache/puppeteer/chrome/ -name chrome -xtype f -executable | head -n1) && \ + _chrome_path=$(find /app/node_modules/.cache/ms-playwright/ -name chrome -xtype f -executable | head -n1) && \ echo "CHROMIUM_EXECUTABLE_PATH=$_chrome_path" | tee /app/.env && \ if ldd "$_chrome_path" | grep "not found"; then \ echo "!!! Chromium has unmet shared libs !!!" && \ @@ -194,7 +187,7 @@ CMD ["npm", "run", "start"] # apt-file \ # && \ # apt-file update && \ -# ldd $(find /app/node_modules/.cache/puppeteer/ -name chrome -type f) | grep -Po "\S+(?= => not found)" | \ +# ldd $(find /app/node_modules/.cache/ms-playwright/ -name chrome -type f) | grep -Po "\S+(?= => not found)" | \ # sed 's/\./\\./g' | awk '{print $1"$"}' | apt-file search -xlf - | grep ^lib | \ # xargs -d '\n' -- \ # apt-get install -yq --no-install-recommends \ diff --git a/app.json b/app.json index e351d5220292..28cfeb22ec90 100644 --- a/app.json +++ b/app.json @@ -14,7 +14,7 @@ "value": "80", "required": false }, - "PUPPETEER_SKIP_DOWNLOAD": { + "PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD": { "value": "1", "required": false } diff --git a/docker-compose.yml b/docker-compose.yml index 3f118736609a..261d910457b0 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,6 @@ services: rsshub: - # two ways to enable puppeteer: + # two ways to enable Playwright: # * comment out marked lines, then use this image instead: diygod/rsshub:chromium-bundled # * (consumes more disk space and memory) leave everything unchanged image: diygod/rsshub # or ghcr.io/diygod/rsshub @@ -11,7 +11,7 @@ services: NODE_ENV: production CACHE_TYPE: redis REDIS_URL: 'redis://redis:6379/' - PUPPETEER_WS_ENDPOINT: 'ws://browserless:3000' # marked + PLAYWRIGHT_WS_ENDPOINT: 'ws://browserless:3000' # marked healthcheck: test: ['CMD', 'curl', '-f', 'http://localhost:1200/healthz'] interval: 30s diff --git a/eslint.config.mjs b/eslint.config.mjs index e1637cb97180..a8f445197a41 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -1,3 +1,4 @@ +// oxlint-disable simple-import-sort/imports import js from '@eslint/js'; import typescriptEslint from '@typescript-eslint/eslint-plugin'; import tsParser from '@typescript-eslint/parser'; @@ -55,12 +56,6 @@ export default defineConfig([ // #endregion }, }, - { - files: ['.puppeteerrc.cjs'], - rules: { - '@typescript-eslint/no-require-imports': 'off', - }, - }, { /* files: [SOURCE_FILES_GLOB], diff --git a/lib/app.worker.tsx b/lib/app.worker.tsx index cd704587579c..6f3a6cff3c6f 100644 --- a/lib/app.worker.tsx +++ b/lib/app.worker.tsx @@ -17,7 +17,7 @@ import template from '@/middleware/template'; import trace from '@/middleware/trace'; import registry from '@/registry'; import { setKVNamespace } from '@/utils/cache/index.worker'; -import { setBrowserBinding } from '@/utils/puppeteer'; +import { setBrowserBinding } from '@/utils/playwright'; // Define Worker environment bindings type Bindings = { diff --git a/lib/config.ts b/lib/config.ts index 095457d681a2..a460f33723b0 100644 --- a/lib/config.ts +++ b/lib/config.ts @@ -8,7 +8,7 @@ type ConfigEnvKeys = | 'ENABLE_CLUSTER' | 'IS_PACKAGE' | 'NODE_NAME' - | 'PUPPETEER_REAL_BROWSER_SERVICE' + | 'PLAYWRIGHT_WS_ENDPOINT' | 'PUPPETEER_WS_ENDPOINT' | 'CHROMIUM_EXECUTABLE_PATH' // Network @@ -259,8 +259,7 @@ export type Config = { enableCluster?: string; isPackage: boolean; nodeName?: string; - puppeteerRealBrowserService?: string; - puppeteerWSEndpoint?: string; + playwrightWSEndpoint?: string; chromiumExecutablePath?: string; // network connect: { @@ -756,8 +755,7 @@ const calculateValue = () => { enableCluster: toBoolean(envs.ENABLE_CLUSTER, false), isPackage: !!envs.IS_PACKAGE, nodeName: envs.NODE_NAME, - puppeteerRealBrowserService: envs.PUPPETEER_REAL_BROWSER_SERVICE, - puppeteerWSEndpoint: envs.PUPPETEER_WS_ENDPOINT, + playwrightWSEndpoint: envs.PLAYWRIGHT_WS_ENDPOINT ?? envs.PUPPETEER_WS_ENDPOINT, chromiumExecutablePath: envs.CHROMIUM_EXECUTABLE_PATH, // network connect: { diff --git a/lib/routes/acs/journal.tsx b/lib/routes/acs/journal.tsx index 84a95988c4a8..4ad4d5587da1 100644 --- a/lib/routes/acs/journal.tsx +++ b/lib/routes/acs/journal.tsx @@ -6,7 +6,7 @@ import { config } from '@/config'; import type { Route } from '@/types'; import cache from '@/utils/cache'; import { parseDate } from '@/utils/parse-date'; -import puppeteer from '@/utils/puppeteer'; +import playwright from '@/utils/playwright'; export const route: Route = { path: '/journal/:id', @@ -28,7 +28,7 @@ async function handler(ctx) { let title = ''; - const browser = await puppeteer(); + const browser = await playwright(); const items = await cache.tryGet( currentUrl, async () => { diff --git a/lib/routes/aip/journal-pupp.ts b/lib/routes/aip/journal-pupp.ts index 0e9cf10e5bb9..845661a89223 100644 --- a/lib/routes/aip/journal-pupp.ts +++ b/lib/routes/aip/journal-pupp.ts @@ -3,10 +3,10 @@ import { load } from 'cheerio'; import { config } from '@/config'; import InvalidParameterError from '@/errors/types/invalid-parameter'; import cache from '@/utils/cache'; -import puppeteer from '@/utils/puppeteer'; +import playwright from '@/utils/playwright'; import { isValidHost } from '@/utils/valid-host'; -import { puppeteerGet, renderDesc } from './utils'; +import { playwrightGet, renderDesc } from './utils'; const handler = async (ctx) => { const pub = ctx.req.param('pub'); @@ -17,13 +17,13 @@ const handler = async (ctx) => { throw new InvalidParameterError('Invalid pub'); } - // use Puppeteer due to the obstacle by cloudflare challenge - const browser = await puppeteer(); + // use Playwright due to the obstacle by cloudflare challenge + const browser = await playwright(); const { jrnlName, list } = await cache.tryGet( jrnlUrl, async () => { - const response = await puppeteerGet(jrnlUrl, browser); + const response = await playwrightGet(jrnlUrl, browser); const $ = load(response); const jrnlName = $('.header-journal-title').text(); const list = $('.card') diff --git a/lib/routes/aip/utils.tsx b/lib/routes/aip/utils.tsx index a18ba6b306b5..ba592557f627 100644 --- a/lib/routes/aip/utils.tsx +++ b/lib/routes/aip/utils.tsx @@ -1,6 +1,6 @@ import { renderToString } from 'hono/jsx/dom/server'; -const puppeteerGet = async (url, browser) => { +const playwrightGet = async (url, browser) => { const page = await browser.newPage(); // await page.setExtraHTTPHeaders({ referer: host }); await page.setRequestInterception(true); @@ -41,4 +41,4 @@ const renderDesc = (title, authors, doi, img) => ); -export { puppeteerGet, renderDesc }; +export { playwrightGet, renderDesc }; diff --git a/lib/routes/alternativeto/platform.ts b/lib/routes/alternativeto/platform.ts index 56ab4cfb71c6..06e96efb52a2 100644 --- a/lib/routes/alternativeto/platform.ts +++ b/lib/routes/alternativeto/platform.ts @@ -3,7 +3,7 @@ import { load } from 'cheerio'; import type { Route } from '@/types'; import cache from '@/utils/cache'; -import { baseURL, puppeteerGet } from './utils'; +import { baseURL, playwrightGet } from './utils'; export const route: Route = { path: '/platform/:name/:routeParams?', @@ -35,8 +35,8 @@ async function handler(ctx) { const query = new URLSearchParams(ctx.req.param('routeParams')); const link = `https://alternativeto.net/platform/${name}/?${query.toString()}`; - // use Puppeteer due to the obstacle by cloudflare challenge - const html = await puppeteerGet(link, cache); + // use Playwright due to the obstacle by cloudflare challenge + const html = await playwrightGet(link, cache); const $ = load(html); return { diff --git a/lib/routes/alternativeto/software.ts b/lib/routes/alternativeto/software.ts index a9ab2648474a..0cb72177b3ad 100644 --- a/lib/routes/alternativeto/software.ts +++ b/lib/routes/alternativeto/software.ts @@ -3,7 +3,7 @@ import { load } from 'cheerio'; import type { Route } from '@/types'; import cache from '@/utils/cache'; -import { baseURL, puppeteerGet } from './utils'; +import { baseURL, playwrightGet } from './utils'; export const route: Route = { path: '/software/:name/:routeParams?', @@ -35,8 +35,8 @@ async function handler(ctx) { const query = new URLSearchParams(ctx.req.param('routeParams')); const link = `https://alternativeto.net/software/${name}/?${query.toString()}`; - // use Puppeteer due to the obstacle by cloudflare challenge - const html = await puppeteerGet(link, cache); + // use Playwright due to the obstacle by cloudflare challenge + const html = await playwrightGet(link, cache); const $ = load(html); return { diff --git a/lib/routes/alternativeto/utils.ts b/lib/routes/alternativeto/utils.ts index c53c34b8afe6..08fd66814fef 100644 --- a/lib/routes/alternativeto/utils.ts +++ b/lib/routes/alternativeto/utils.ts @@ -1,10 +1,10 @@ -import puppeteer from '@/utils/puppeteer'; +import playwright from '@/utils/playwright'; const baseURL = 'https://alternativeto.net'; -const puppeteerGet = (url, cache) => +const playwrightGet = (url, cache) => cache.tryGet(url, async () => { - const browser = await puppeteer(); + const browser = await playwright(); const page = await browser.newPage(); await page.setRequestInterception(true); page.on('request', (request) => { @@ -18,4 +18,4 @@ const puppeteerGet = (url, cache) => return html; }); -export { baseURL, puppeteerGet }; +export { baseURL, playwrightGet }; diff --git a/lib/routes/apkpure/versions.ts b/lib/routes/apkpure/versions.ts index b9ec2216ba9e..911f05d2ae65 100644 --- a/lib/routes/apkpure/versions.ts +++ b/lib/routes/apkpure/versions.ts @@ -3,7 +3,7 @@ import { load } from 'cheerio'; import type { Route } from '@/types'; import logger from '@/utils/logger'; import { parseDate } from '@/utils/parse-date'; -import puppeteer from '@/utils/puppeteer'; +import playwright from '@/utils/playwright'; export const route: Route = { path: '/versions/:pkg/:region?', @@ -28,7 +28,7 @@ async function handler(ctx) { const baseUrl = 'https://apkpure.com'; const link = `${baseUrl}/${region}/${pkg}/versions`; - const browser = await puppeteer(); + const browser = await playwright(); const page = await browser.newPage(); await page.setRequestInterception(true); page.on('request', (request) => { diff --git a/lib/routes/bilibili/cache.ts b/lib/routes/bilibili/cache.ts index 5d71a37981ad..41eda7a98e28 100644 --- a/lib/routes/bilibili/cache.ts +++ b/lib/routes/bilibili/cache.ts @@ -6,7 +6,7 @@ import { config } from '@/config'; import cache from '@/utils/cache'; import got from '@/utils/got'; import logger from '@/utils/logger'; -import { getPuppeteerPage } from '@/utils/puppeteer'; +import { getPlaywrightPage } from '@/utils/playwright'; import utils from './utils'; @@ -38,7 +38,7 @@ const getCookie = (disableConfig = false) => { let waitForRequest = new Promise((resolve) => { resolve(''); }); - const { destroy } = await getPuppeteerPage('https://space.bilibili.com/1/dynamic', { + const { destroy } = await getPlaywrightPage('https://space.bilibili.com/1/dynamic', { onBeforeLoad: (page) => { waitForRequest = new Promise((resolve) => { page.on('requestfinished', async (request) => { diff --git a/lib/routes/bilibili/dynamic.ts b/lib/routes/bilibili/dynamic.ts index 85c48effee30..3510eaf135bb 100644 --- a/lib/routes/bilibili/dynamic.ts +++ b/lib/routes/bilibili/dynamic.ts @@ -38,7 +38,7 @@ export const route: Route = { { name: 'BILIBILI_COOKIE_*', optional: true, - description: `如果没有此配置,那么必须开启 puppeteer 支持;BILIBILI_COOKIE_{uid}: 用于用户关注动态系列路由,对应 uid 的 b 站用户登录后的 Cookie 值,\`{uid}\` 替换为 uid,如 \`BILIBILI_COOKIE_2267573\`,获取方式: + description: `如果没有此配置,那么必须开启 Playwright 支持;BILIBILI_COOKIE_{uid}: 用于用户关注动态系列路由,对应 uid 的 b 站用户登录后的 Cookie 值,\`{uid}\` 替换为 uid,如 \`BILIBILI_COOKIE_2267573\`,获取方式: 1. 打开 [https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=0&type=8](https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=0&type=8) 2. 打开控制台,切换到 Network 面板,刷新 3. 点击 dynamic_new 请求,找到 Cookie diff --git a/lib/routes/bilibili/vsearch.ts b/lib/routes/bilibili/vsearch.ts index 7f2c94538be2..17596a01afc4 100644 --- a/lib/routes/bilibili/vsearch.ts +++ b/lib/routes/bilibili/vsearch.ts @@ -20,7 +20,7 @@ export const route: Route = { { name: 'BILIBILI_COOKIE_*', optional: true, - description: `如果没有此配置,那么必须开启 puppeteer 支持;BILIBILI_COOKIE_{uid}: 用于用户关注动态系列路由,对应 uid 的 b 站用户登录后的 Cookie 值,\`{uid}\` 替换为 uid,如 \`BILIBILI_COOKIE_2267573\`,获取方式: + description: `如果没有此配置,那么必须开启 Playwright 支持;BILIBILI_COOKIE_{uid}: 用于用户关注动态系列路由,对应 uid 的 b 站用户登录后的 Cookie 值,\`{uid}\` 替换为 uid,如 \`BILIBILI_COOKIE_2267573\`,获取方式: 1. 打开 [https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=0&type=8](https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=0&type=8) 2. 打开控制台,切换到 Network 面板,刷新 3. 点击 dynamic_new 请求,找到 Cookie diff --git a/lib/routes/bluestacks/release.ts b/lib/routes/bluestacks/release.ts index 8823a1da4d74..bf3c823ecf1e 100644 --- a/lib/routes/bluestacks/release.ts +++ b/lib/routes/bluestacks/release.ts @@ -3,7 +3,7 @@ import * as cheerio from 'cheerio'; import type { Route } from '@/types'; import cache from '@/utils/cache'; import { parseDate } from '@/utils/parse-date'; -import puppeteer from '@/utils/puppeteer'; +import playwright from '@/utils/playwright'; const pageUrl = 'https://support.bluestacks.com/hc/en-us/articles/360056960211-Release-Notes-BlueStacks-5'; @@ -32,7 +32,7 @@ export const route: Route = { }; async function handler() { - const browser = await puppeteer(); + const browser = await playwright(); const page = await browser.newPage(); await page.setRequestInterception(true); page.on('request', (request) => { diff --git a/lib/routes/ccac/news.ts b/lib/routes/ccac/news.ts index 8af1f2ff98c6..cf893ee8e771 100644 --- a/lib/routes/ccac/news.ts +++ b/lib/routes/ccac/news.ts @@ -4,7 +4,7 @@ import type { Route } from '@/types'; import cache from '@/utils/cache'; import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; -import puppeteer from '@/utils/puppeteer'; +import playwright from '@/utils/playwright'; import utils from './utils'; @@ -32,7 +32,7 @@ export const route: Route = { }; async function handler(ctx) { - const browser = await puppeteer(); + const browser = await playwright(); const lang = ctx.req.param('lang') ?? 'sc'; const type = utils.TYPE[ctx.req.param('type')]; diff --git a/lib/routes/chinadegrees/province.tsx b/lib/routes/chinadegrees/province.tsx index 3638ed5f543c..e32c38d7da5a 100644 --- a/lib/routes/chinadegrees/province.tsx +++ b/lib/routes/chinadegrees/province.tsx @@ -5,7 +5,7 @@ import { config } from '@/config'; import type { Route } from '@/types'; import cache from '@/utils/cache'; import { parseDate } from '@/utils/parse-date'; -import puppeteer from '@/utils/puppeteer'; +import playwright from '@/utils/playwright'; const baseUrl = 'http://www.chinadegrees.com.cn'; @@ -82,7 +82,7 @@ async function handler(ctx) { const data = await cache.tryGet( url, async () => { - const browser = await puppeteer(); + const browser = await playwright(); const page = await browser.newPage(); await page.setRequestInterception(true); page.on('request', (request) => { diff --git a/lib/routes/chinatimes/index.ts b/lib/routes/chinatimes/index.ts index dc7a7bf0b67e..bfeb05a87d93 100644 --- a/lib/routes/chinatimes/index.ts +++ b/lib/routes/chinatimes/index.ts @@ -5,7 +5,7 @@ import cache from '@/utils/cache'; import logger from '@/utils/logger'; import ofetch from '@/utils/ofetch'; import { parseDate } from '@/utils/parse-date'; -import puppeteer from '@/utils/puppeteer'; +import playwright from '@/utils/playwright'; import timezone from '@/utils/timezone'; export const route: Route = { @@ -43,7 +43,7 @@ async function handler(ctx) { const response = await ofetch(link); const $ = load(response); - const browser = await puppeteer(); + const browser = await playwright(); const list = $('.articlebox-compact') .toArray() diff --git a/lib/routes/cjlu/yjsy/index.ts b/lib/routes/cjlu/yjsy/index.ts index 894e488bfdce..d619c0da4734 100644 --- a/lib/routes/cjlu/yjsy/index.ts +++ b/lib/routes/cjlu/yjsy/index.ts @@ -4,7 +4,7 @@ import type { Route } from '@/types'; import cache from '@/utils/cache'; import ofetch from '@/utils/ofetch'; import { parseDate } from '@/utils/parse-date'; -import { getPuppeteerPage } from '@/utils/puppeteer'; +import { getPlaywrightPage } from '@/utils/playwright'; import timezone from '@/utils/timezone'; const host = 'https://yjsy.cjlu.edu.cn/'; @@ -86,7 +86,7 @@ async function handler(ctx) { const limit = ctx.req.query('limit') ? Number.parseInt(ctx.req.query('limit'), 10) : 10; const url = `${host}index/${cate}.htm`; - const { page, destroy, browser } = await getPuppeteerPage(url, { + const { page, destroy, browser } = await getPlaywrightPage(url, { onBeforeLoad: async (page) => { await page.setExtraHTTPHeaders(headers); await page.setUserAgent(headers['User-Agent']); diff --git a/lib/routes/cmde/index.ts b/lib/routes/cmde/index.ts index 5a5f567b6328..0f7776e45237 100644 --- a/lib/routes/cmde/index.ts +++ b/lib/routes/cmde/index.ts @@ -3,7 +3,7 @@ import { load } from 'cheerio'; import type { Route } from '@/types'; import cache from '@/utils/cache'; import { parseDate } from '@/utils/parse-date'; -import puppeteer from '@/utils/puppeteer'; +import playwright from '@/utils/playwright'; import timezone from '@/utils/timezone'; const rootURL = 'https://www.cmde.org.cn'; @@ -18,7 +18,7 @@ export const route: Route = { async function handler(ctx) { const cate = ctx.req.param('cate') ?? 'xwdt/zxyw'; const url = `${rootURL}/${cate}/`; - const browser = await puppeteer(); + const browser = await playwright(); const data = await cache.tryGet(url, async () => { const page = await browser.newPage(); await page.setRequestInterception(true); diff --git a/lib/routes/colamanga/manga.ts b/lib/routes/colamanga/manga.ts index e5d0acb01330..626f1b0d8067 100644 --- a/lib/routes/colamanga/manga.ts +++ b/lib/routes/colamanga/manga.ts @@ -4,7 +4,7 @@ import type { Context } from 'hono'; import type { Route } from '@/types'; import logger from '@/utils/logger'; import { parseDate } from '@/utils/parse-date'; -import puppeteer from '@/utils/puppeteer'; +import playwright from '@/utils/playwright'; import timezone from '@/utils/timezone'; const domain = 'www.colamanga.com'; @@ -43,7 +43,7 @@ async function handler(ctx: Context) { const id = ctx.req.param('id'); const url = `https://${domain}/${id}`; - const browser = await puppeteer(); + const browser = await playwright(); const page = await browser.newPage(); diff --git a/lib/routes/cw/author.ts b/lib/routes/cw/author.ts index 8b9cfa23d626..2be67a126dfe 100644 --- a/lib/routes/cw/author.ts +++ b/lib/routes/cw/author.ts @@ -1,5 +1,5 @@ import type { Route } from '@/types'; -import puppeteer from '@/utils/puppeteer'; +import playwright from '@/utils/playwright'; import { baseUrl, parsePage } from './utils'; @@ -27,7 +27,7 @@ export const route: Route = { }; async function handler(ctx) { - const browser = await puppeteer(); + const browser = await playwright(); const { $, items } = await parsePage('author', browser, ctx); diff --git a/lib/routes/cw/master.ts b/lib/routes/cw/master.ts index e354e49a7051..eaae855f3f21 100644 --- a/lib/routes/cw/master.ts +++ b/lib/routes/cw/master.ts @@ -1,5 +1,5 @@ import type { Route } from '@/types'; -import puppeteer from '@/utils/puppeteer'; +import playwright from '@/utils/playwright'; import { baseUrl, parsePage } from './utils'; @@ -37,7 +37,7 @@ export const route: Route = { }; async function handler(ctx) { - const browser = await puppeteer(); + const browser = await playwright(); const { $, items } = await parsePage('master', browser, ctx); diff --git a/lib/routes/cw/sub.ts b/lib/routes/cw/sub.ts index 3ea82a68be5d..3f5abdb728bb 100644 --- a/lib/routes/cw/sub.ts +++ b/lib/routes/cw/sub.ts @@ -1,5 +1,5 @@ import type { Route } from '@/types'; -import puppeteer from '@/utils/puppeteer'; +import playwright from '@/utils/playwright'; import { baseUrl, parsePage } from './utils'; @@ -22,7 +22,7 @@ export const route: Route = { }; async function handler(ctx) { - const browser = await puppeteer(); + const browser = await playwright(); const { $, items } = await parsePage('sub', browser, ctx); diff --git a/lib/routes/cw/today.ts b/lib/routes/cw/today.ts index 118fc237c5d2..dd34056332ab 100644 --- a/lib/routes/cw/today.ts +++ b/lib/routes/cw/today.ts @@ -1,5 +1,5 @@ import type { Route } from '@/types'; -import puppeteer from '@/utils/puppeteer'; +import playwright from '@/utils/playwright'; import { baseUrl, parsePage } from './utils'; @@ -28,7 +28,7 @@ export const route: Route = { }; async function handler(ctx) { - const browser = await puppeteer(); + const browser = await playwright(); const { $, items } = await parsePage('today', browser, ctx); diff --git a/lib/routes/cw/utils.ts b/lib/routes/cw/utils.ts index 2093f3322d8d..f1f9a9859505 100644 --- a/lib/routes/cw/utils.ts +++ b/lib/routes/cw/utils.ts @@ -4,7 +4,7 @@ import cache from '@/utils/cache'; import logger from '@/utils/logger'; import ofetch from '@/utils/ofetch'; import { parseDate } from '@/utils/parse-date'; -import { getCookies, setCookies } from '@/utils/puppeteer-utils'; +import { getCookies, setCookies } from '@/utils/playwright-utils'; let cookie; @@ -122,4 +122,4 @@ const parseItems = (list, browser, tryGet) => export { baseUrl, getCookie, parseItems, parseList, parsePage, pathMap }; -export { setCookies } from '@/utils/puppeteer-utils'; +export { setCookies } from '@/utils/playwright-utils'; diff --git a/lib/routes/dailypush/all.ts b/lib/routes/dailypush/all.ts index d15bb923de9a..6a39fe133178 100644 --- a/lib/routes/dailypush/all.ts +++ b/lib/routes/dailypush/all.ts @@ -1,7 +1,7 @@ import { load } from 'cheerio'; import type { Route } from '@/types'; -import puppeteer from '@/utils/puppeteer'; +import playwright from '@/utils/playwright'; import { BASE_URL, enhanceItemsWithSummaries, fetchPageHtml, parseArticles } from './utils'; @@ -42,7 +42,7 @@ async function handler(ctx) { const { sort = '' } = ctx.req.param(); const url = sort ? `${BASE_URL}/${sort}` : BASE_URL; - const browser = await puppeteer(); + const browser = await playwright(); try { const html = await fetchPageHtml(browser, url, 'article'); const $ = load(html); diff --git a/lib/routes/dailypush/tags.ts b/lib/routes/dailypush/tags.ts index da50a1556210..c1430d29ae47 100644 --- a/lib/routes/dailypush/tags.ts +++ b/lib/routes/dailypush/tags.ts @@ -1,7 +1,7 @@ import { load } from 'cheerio'; import type { Route } from '@/types'; -import puppeteer from '@/utils/puppeteer'; +import playwright from '@/utils/playwright'; import { BASE_URL, enhanceItemsWithSummaries, fetchPageHtml, parseArticles } from './utils'; @@ -43,7 +43,7 @@ async function handler(ctx) { const { tag, sort = 'trending' } = ctx.req.param(); const url = `${BASE_URL}/${tag}/${sort}`; - const browser = await puppeteer(); + const browser = await playwright(); try { const html = await fetchPageHtml(browser, url, 'article'); const $ = load(html); diff --git a/lib/routes/dailypush/utils.ts b/lib/routes/dailypush/utils.ts index dc20d7e51478..1fd24ec3ad85 100644 --- a/lib/routes/dailypush/utils.ts +++ b/lib/routes/dailypush/utils.ts @@ -1,11 +1,11 @@ import type { CheerioAPI } from 'cheerio'; import { load } from 'cheerio'; -import type { Browser, Page } from 'rebrowser-puppeteer'; import type { DataItem } from '@/types'; import cache from '@/utils/cache'; import logger from '@/utils/logger'; import { parseRelativeDate } from '@/utils/parse-date'; +import type { Browser, Page } from '@/utils/playwright'; export const BASE_URL = 'https://www.dailypush.dev'; diff --git a/lib/routes/dcard/section.ts b/lib/routes/dcard/section.ts index 8af463ebe751..a32f14582405 100644 --- a/lib/routes/dcard/section.ts +++ b/lib/routes/dcard/section.ts @@ -1,7 +1,7 @@ import type { Route } from '@/types'; import cache from '@/utils/cache'; import { parseDate } from '@/utils/parse-date'; -import puppeteer from '@/utils/puppeteer'; +import playwright from '@/utils/playwright'; import utils from './utils'; @@ -26,7 +26,7 @@ export const route: Route = { async function handler(ctx) { const { type = 'latest', section = 'posts' } = ctx.req.param(); const limit = ctx.req.query('limit') ? Number(ctx.req.query('limit')) : 30; - const browser = await puppeteer(); + const browser = await playwright(); let link = 'https://www.dcard.tw/f'; let api = 'https://www.dcard.tw/service/api/v2'; diff --git a/lib/routes/dealstreetasia/home.ts b/lib/routes/dealstreetasia/home.ts index 5d732c18fa2d..e0959e5b0ef0 100644 --- a/lib/routes/dealstreetasia/home.ts +++ b/lib/routes/dealstreetasia/home.ts @@ -3,7 +3,7 @@ import { load } from 'cheerio'; // An HTML parser with an API similar to jQuery import type { Route } from '@/types'; // import cache from '@/utils/cache'; import ofetch from '@/utils/ofetch'; // Unified request library used -// import puppeteer from '@/utils/puppeteer'; +// import playwright from '@/utils/playwright'; // import { parseDate } from '@/utils/parse-date'; export const route: Route = { diff --git a/lib/routes/dealstreetasia/section.ts b/lib/routes/dealstreetasia/section.ts index 876e68a72fce..a035b897f870 100644 --- a/lib/routes/dealstreetasia/section.ts +++ b/lib/routes/dealstreetasia/section.ts @@ -3,7 +3,7 @@ import { load } from 'cheerio'; // An HTML parser with an API similar to jQuery import type { Route } from '@/types'; // import cache from '@/utils/cache'; import ofetch from '@/utils/ofetch'; // Unified request library used -// import puppeteer from '@/utils/puppeteer'; +// import playwright from '@/utils/playwright'; // import { parseDate } from '@/utils/parse-date'; export const route: Route = { diff --git a/lib/routes/douyin/hashtag.ts b/lib/routes/douyin/hashtag.ts index 9c0db5e78500..47f3f01fa9e3 100644 --- a/lib/routes/douyin/hashtag.ts +++ b/lib/routes/douyin/hashtag.ts @@ -3,7 +3,7 @@ import InvalidParameterError from '@/errors/types/invalid-parameter'; import type { Route } from '@/types'; import cache from '@/utils/cache'; import { parseDate } from '@/utils/parse-date'; -import puppeteer from '@/utils/puppeteer'; +import playwright from '@/utils/playwright'; import { fallback, queryToBoolean } from '@/utils/readable-social'; import { getOriginAvatar, proxyVideo, resolveUrl, templates } from './utils'; @@ -47,7 +47,7 @@ async function handler(ctx) { const tagData = await cache.tryGet( `douyin:hashtag:${cid}`, async () => { - const browser = await puppeteer(); + const browser = await playwright(); const page = await browser.newPage(); await page.setRequestInterception(true); let awemeList = ''; diff --git a/lib/routes/douyin/live.ts b/lib/routes/douyin/live.ts index 014192f77499..c1d3f7a438b4 100644 --- a/lib/routes/douyin/live.ts +++ b/lib/routes/douyin/live.ts @@ -3,7 +3,7 @@ import InvalidParameterError from '@/errors/types/invalid-parameter'; import type { Route } from '@/types'; import cache from '@/utils/cache'; import logger from '@/utils/logger'; -import puppeteer from '@/utils/puppeteer'; +import playwright from '@/utils/playwright'; import { getOriginAvatar } from './utils'; @@ -42,7 +42,7 @@ async function handler(ctx) { `douyin:live:${rid}`, async () => { let roomInfo; - const browser = await puppeteer(); + const browser = await playwright(); const page = await browser.newPage(); await page.setRequestInterception(true); diff --git a/lib/routes/douyin/namespace.ts b/lib/routes/douyin/namespace.ts index e746775247e4..db6c85e4522f 100644 --- a/lib/routes/douyin/namespace.ts +++ b/lib/routes/douyin/namespace.ts @@ -4,7 +4,7 @@ export const namespace: Namespace = { name: '抖音直播', url: 'douyin.com', description: `::: warning -反爬严格,需要启用 puppeteer。\ +反爬严格,需要启用 Playwright。\ 抖音的视频 CDN 会验证 Referer,意味着许多阅读器都无法直接播放内嵌视频,以下是一些变通解决方案: 1. 启用内嵌视频 (\`embed=1\`), 参考 [通用参数 -> 多媒体处理](/parameter#多媒体处理) 配置 \`multimedia_hotlink_template\` **或** \`wrap_multimedia_in_iframe\`。 diff --git a/lib/routes/douyin/user.ts b/lib/routes/douyin/user.ts index 179e1d5f73bd..bbfbb8edc50f 100644 --- a/lib/routes/douyin/user.ts +++ b/lib/routes/douyin/user.ts @@ -4,7 +4,7 @@ import type { Route } from '@/types'; import cache from '@/utils/cache'; import logger from '@/utils/logger'; import { parseDate } from '@/utils/parse-date'; -import puppeteer from '@/utils/puppeteer'; +import playwright from '@/utils/playwright'; import { fallback, queryToBoolean } from '@/utils/readable-social'; import type { PostData } from './types'; @@ -50,7 +50,7 @@ async function handler(ctx) { `douyin:user:${uid}`, async () => { let postData; - const browser = await puppeteer(); + const browser = await playwright(); const page = await browser.newPage(); await page.setRequestInterception(true); diff --git a/lib/routes/fortnite/news.ts b/lib/routes/fortnite/news.ts index 057831f577ad..f1ad7a4acd66 100644 --- a/lib/routes/fortnite/news.ts +++ b/lib/routes/fortnite/news.ts @@ -2,7 +2,7 @@ import type { Route } from '@/types'; import cache from '@/utils/cache'; import logger from '@/utils/logger'; import { parseDate } from '@/utils/parse-date'; -import puppeteer from '@/utils/puppeteer'; +import playwright from '@/utils/playwright'; export const route: Route = { path: '/news/:options?', @@ -39,9 +39,8 @@ async function handler(ctx) { const link = `${rootUrl}/${path}?lang=${language}`; const apiUrl = `https://www.fortnite.com/api/blog/getPosts?category=&postsPerPage=0&offset=0&locale=${language}&rootPageSlug=blog`; - // using puppeteer instead instead of got - // whitch may be blocked by anti-crawling script with response code 403 - const browser = await puppeteer(); + // Use Playwright instead of got, which may be blocked by anti-crawling scripts with response code 403. + const browser = await playwright(); const page = await browser.newPage(); // intercept all requests @@ -51,22 +50,34 @@ async function handler(ctx) { request.resourceType() === 'document' ? request.continue() : request.abort(); }); - // get json data in response event handler - let data; - page.on('response', async (res) => { - data = await res.json(); - }); - - // log manually (necessary for puppeteer) + // log manually (necessary for Playwright) logger.http(`Requesting ${apiUrl}`); - await page.goto(apiUrl, { - waitUntil: 'networkidle0', // if use 'domcontentloaded', `await page.content()` is necessary - }); + let data; + try { + const response = await page.goto(apiUrl, { + waitUntil: 'networkidle0', + }); + if (!response) { + throw new Error(`No response received from ${apiUrl}`); + } + if (!response.ok()) { + const statusText = response.statusText(); + const statusMessage = [response.status(), statusText].filter(Boolean).join(' '); + throw new Error(`Fortnite API responded with ${statusMessage} for ${apiUrl}`); + } + const contentType = response.headers()['content-type']; + if (!contentType?.includes('application/json')) { + throw new Error(`Fortnite API returned non-JSON response with content-type ${contentType ?? 'unknown'}`); + } - await page.close(); - await browser.close(); + data = await response.json(); + } finally { + await page.close(); + await browser.close(); + } const { blogList: list } = data; + const items = await Promise.all( list.map((item) => cache.tryGet(item.link, () => ({ diff --git a/lib/routes/gov/customs/list.ts b/lib/routes/gov/customs/list.ts index cf396099259e..21ca8ee6891b 100644 --- a/lib/routes/gov/customs/list.ts +++ b/lib/routes/gov/customs/list.ts @@ -4,10 +4,10 @@ import { config } from '@/config'; import type { Route } from '@/types'; import cache from '@/utils/cache'; import { parseDate } from '@/utils/parse-date'; -import puppeteer from '@/utils/puppeteer'; +import playwright from '@/utils/playwright'; import timezone from '@/utils/timezone'; -import { host, puppeteerGet } from './utils'; +import { host, playwrightGet } from './utils'; export const route: Route = { path: '/customs/list/:gchannel?', @@ -61,12 +61,12 @@ async function handler(ctx) { break; } - const browser = await puppeteer(); + const browser = await playwright(); const list = await cache.tryGet( link, async () => { - const response = await puppeteerGet(link, browser); + const response = await playwrightGet(link, browser); const $ = load(response); const list = $('[class^="conList_ul"] li') .toArray() @@ -90,7 +90,7 @@ async function handler(ctx) { if (info.link.endsWith('.pdf') || info.link.endsWith('.doc')) { return info; } - const response = await puppeteerGet(info.link, browser); + const response = await playwrightGet(info.link, browser); const $ = load(response); let date; diff --git a/lib/routes/gov/customs/utils.ts b/lib/routes/gov/customs/utils.ts index c8a1470743fc..798cdf0225d1 100644 --- a/lib/routes/gov/customs/utils.ts +++ b/lib/routes/gov/customs/utils.ts @@ -1,6 +1,6 @@ const host = 'http://www.customs.gov.cn'; -const puppeteerGet = async (url, browser) => { +const playwrightGet = async (url, browser) => { const page = await browser.newPage(); await page.setExtraHTTPHeaders({ referer: host }); await page.setRequestInterception(true); @@ -15,4 +15,4 @@ const puppeteerGet = async (url, browser) => { return html; }; -export { host, puppeteerGet }; +export { host, playwrightGet }; diff --git a/lib/routes/gov/hangzhou/zwfw.tsx b/lib/routes/gov/hangzhou/zwfw.tsx index 52d898934c14..224d7e5555a9 100644 --- a/lib/routes/gov/hangzhou/zwfw.tsx +++ b/lib/routes/gov/hangzhou/zwfw.tsx @@ -7,7 +7,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import ofetch from '@/utils/ofetch'; import { parseDate } from '@/utils/parse-date'; -import puppeteer from '@/utils/puppeteer'; +import playwright from '@/utils/playwright'; import timezone from '@/utils/timezone'; import { analyzer, crawler } from './zjzwfw'; @@ -216,7 +216,7 @@ async function handler() { const host = 'https://www.hangzhou.gov.cn/col/col1256349/index.html'; const response = await ofetch(host); - const browser = await puppeteer(); + const browser = await playwright(); const link = host; const formatted = response .replace('`; + +function createCtx({ category, limit = '1' }: { category?: string; limit?: string } = {}) { + return { + req: { + param: (name: string) => (name === 'category' ? category : undefined), + query: (name: string) => (name === 'limit' ? limit : undefined), + }, + }; +} + +describe('/techflowpost', () => { + it('builds the article feed from the current client API after acw challenge', async () => { + const { default: server } = await import('@/setup.test'); + + server.use( + http.post('https://www.techflowpost.com/ashx/index.ashx', () => HttpResponse.json({ message: 'gone' }, { status: 410 })), + http.get('https://www.techflowpost.com/api/client/articles', ({ request }) => { + const url = new URL(request.url); + expect(url.searchParams.get('page')).toBe('1'); + expect(url.searchParams.get('page_size')).toBe('1'); + + if (!request.headers.get('cookie')?.includes(expectedCookie)) { + return HttpResponse.html(challenge); + } + + return HttpResponse.json({ + data: [ + { + id: 31495, + title: 'Article title', + abstract: 'Article abstract', + picture: '/upload/images/article.png', + author: { name: 'TechFlow' }, + category: { name: 'Trading' }, + labels: [{ label: 'AI' }], + created_at: '2026-05-09T06:40:11.209Z', + updated_at: '2026-05-09T08:31:01.272Z', + }, + ], + }); + }), + http.get('https://www.techflowpost.com/api/client/articles/31495', ({ request }) => { + expect(request.headers.get('cookie')).toContain(expectedCookie); + + return HttpResponse.json({ + article: { + content: '

    Full article content

    ', + }, + }); + }) + ); + + const feed = await indexRoute.handler(createCtx()); + expect(feed.item).toHaveLength(1); + expect(feed.item[0].title).toBe('Article title'); + expect(feed.item[0].link).toBe('https://www.techflowpost.com/zh-CN/article/31495'); + expect(feed.item[0].description).toContain('Full article content'); + expect(feed.item[0].category).toEqual(['Trading', 'AI']); + }); + + it('passes category_id for featured article feeds', async () => { + const { default: server } = await import('@/setup.test'); + + server.use( + http.post('https://www.techflowpost.com/ashx/index.ashx', () => HttpResponse.json({ message: 'gone' }, { status: 410 })), + http.get('https://www.techflowpost.com/api/client/articles', ({ request }) => { + const url = new URL(request.url); + expect(url.searchParams.get('category_id')).toBe('2043'); + + if (!request.headers.get('cookie')?.includes(expectedCookie)) { + return HttpResponse.html(challenge); + } + + return HttpResponse.json({ + data: [ + { + id: 31496, + title: 'Featured article', + abstract: 'Featured abstract', + author: { name: 'TechFlow' }, + category: { name: 'Trading' }, + labels: [], + created_at: '2026-05-09T07:27:22.240Z', + updated_at: '2026-05-09T08:32:09.789Z', + }, + ], + }); + }), + http.get('https://www.techflowpost.com/api/client/articles/31496', () => + HttpResponse.json({ + article: { + content: '

    Featured content

    ', + }, + }) + ) + ); + + const feed = await featuredRoute.handler(createCtx({ category: '2043' })); + expect(feed.item[0].title).toBe('Featured article'); + expect(feed.item[0].description).toContain('Featured content'); + }); + + it('builds the express feed from the current newsflash API', async () => { + const { default: server } = await import('@/setup.test'); + + server.use( + http.post('https://www.techflowpost.com/ashx/newflash_index.ashx', () => HttpResponse.json({ message: 'gone' }, { status: 410 })), + http.get('https://www.techflowpost.com/api/client/newsflashes', ({ request }) => { + const url = new URL(request.url); + expect(url.searchParams.get('page')).toBe('1'); + expect(url.searchParams.get('page_size')).toBe('1'); + + if (!request.headers.get('cookie')?.includes(expectedCookie)) { + return HttpResponse.html(challenge); + } + + return HttpResponse.json({ + data: [ + { + id: 122059, + title: 'Newsflash title', + abstract: 'Newsflash abstract', + url: 'https://example.com/source', + created_at: '2026-05-09T08:21:45.537Z', + updated_at: '2026-05-09T08:33:21.834Z', + }, + ], + }); + }), + http.get('https://www.techflowpost.com/api/client/newsflashes/122059', ({ request }) => { + expect(request.headers.get('cookie')).toContain(expectedCookie); + + return HttpResponse.json({ + content: '

    Newsflash content

    ', + }); + }) + ); + + const feed = await expressRoute.handler(createCtx()); + expect(feed.item).toHaveLength(1); + expect(feed.item[0].title).toBe('Newsflash title'); + expect(feed.item[0].link).toBe('https://www.techflowpost.com/zh-CN/newsletter/122059'); + expect(feed.item[0].description).toContain('Newsflash content'); + }); +}); diff --git a/lib/routes/techflowpost/utils.ts b/lib/routes/techflowpost/utils.ts new file mode 100644 index 000000000000..acaabc2f3a46 --- /dev/null +++ b/lib/routes/techflowpost/utils.ts @@ -0,0 +1,192 @@ +import { config } from '@/config'; +import type { DataItem } from '@/types'; +import cache from '@/utils/cache'; +import got from '@/utils/got'; +import { parseDate } from '@/utils/parse-date'; + +import { getAcwScV2ByArg1 } from '../5eplay/utils'; + +const rootUrl = 'https://www.techflowpost.com'; +const apiRootUrl = `${rootUrl}/api`; +const uploadRootUrl = 'https://upload.techflowpost.com'; +const locale = 'zh-CN'; + +let acwScV2Cookie = ''; + +type ApiListResponse = { + data?: T[]; +}; + +type Label = { + label?: string; +}; + +type Article = { + id: number; + title: string; + abstract?: string; + picture?: string; + author?: { + name?: string; + }; + category?: { + name?: string; + }; + labels?: Label[]; + created_at?: string; + updated_at?: string; +}; + +type ArticleDetailResponse = { + article?: { + content?: string; + }; +}; + +type Newsflash = { + id: number; + title: string; + abstract?: string; + url?: string; + created_at?: string; + updated_at?: string; +}; + +type NewsflashDetailResponse = { + content?: string; +}; + +function getHeaders(referer: string, cookie = acwScV2Cookie) { + return { + accept: 'application/json, text/plain, */*', + 'accept-language': locale, + referer, + 'user-agent': config.trueUA, + ...(cookie ? { cookie } : {}), + }; +} + +function getAcwScV2Cookie(response: string) { + const arg1 = response.match(/var arg1='(.*?)';/)?.[1]; + if (!arg1) { + return ''; + } + return `acw_sc__v2=${getAcwScV2ByArg1(arg1)}`; +} + +async function requestApi(endpoint: string, referer: string, searchParams?: Record) { + const request = () => + got.get(`${apiRootUrl}${endpoint}`, { + searchParams, + headers: getHeaders(referer), + }); + + const { data } = await request(); + if (typeof data !== 'string') { + return data as T; + } + + const cookie = getAcwScV2Cookie(data); + if (!cookie) { + throw new Error('TechFlow API returned an unexpected non-JSON response.'); + } + + acwScV2Cookie = cookie; + const retryResponse = await request(); + if (typeof retryResponse.data === 'string') { + throw new TypeError('TechFlow API still returned an anti-crawler challenge after retry.'); + } + + return retryResponse.data as T; +} + +function getPictureUrl(picture?: string) { + if (!picture) { + return; + } + return new URL(picture, uploadRootUrl).href; +} + +function getCategories(article: Article) { + return [...new Set([article.category?.name, ...(article.labels?.map((label) => label.label) ?? [])].filter(Boolean))] as string[]; +} + +function getArticleItem(article: Article, content?: string): DataItem { + const link = `${rootUrl}/${locale}/article/${article.id}`; + const categories = getCategories(article); + const image = getPictureUrl(article.picture); + + return { + title: article.title, + author: article.author?.name, + link, + category: categories.length ? categories : undefined, + pubDate: article.created_at ? parseDate(article.created_at) : undefined, + updated: article.updated_at ? parseDate(article.updated_at) : undefined, + description: content || article.abstract, + image, + }; +} + +function getNewsflashItem(newsflash: Newsflash, content?: string): DataItem { + return { + title: newsflash.title, + link: `${rootUrl}/${locale}/newsletter/${newsflash.id}`, + pubDate: newsflash.created_at ? parseDate(newsflash.created_at) : undefined, + updated: newsflash.updated_at ? parseDate(newsflash.updated_at) : undefined, + description: content || newsflash.abstract, + }; +} + +async function getArticleItems({ category, limit }: { category?: string; limit: string | number }) { + const link = `${rootUrl}/${locale}/article`; + const searchParams: Record = { + page: 1, + page_size: limit, + }; + + if (category) { + searchParams.category_id = category; + } + + const response = await requestApi>('/client/articles', link, searchParams); + if (!Array.isArray(response.data)) { + throw new TypeError('TechFlow API returned an invalid article list.'); + } + + return await Promise.all( + response.data.map((article) => + cache.tryGet(`techflowpost:article:${article.id}`, async () => { + const itemLink = `${rootUrl}/${locale}/article/${article.id}`; + const detail = await requestApi(`/client/articles/${article.id}`, itemLink); + + return getArticleItem(article, detail.article?.content); + }) + ) + ); +} + +async function getNewsflashItems(limit: string | number) { + const link = `${rootUrl}/${locale}/newsletter`; + const response = await requestApi>('/client/newsflashes', link, { + page: 1, + page_size: limit, + }); + + if (!Array.isArray(response.data)) { + throw new TypeError('TechFlow API returned an invalid newsflash list.'); + } + + return await Promise.all( + response.data.map((newsflash) => + cache.tryGet(`techflowpost:newsflash:${newsflash.id}`, async () => { + const itemLink = `${rootUrl}/${locale}/newsletter/${newsflash.id}`; + const detail = await requestApi(`/client/newsflashes/${newsflash.id}`, itemLink); + + return getNewsflashItem(newsflash, detail.content); + }) + ) + ); +} + +export { getArticleItems, getNewsflashItems, rootUrl }; From 3b0d76ae20c438e9b62337d5be31906cb542dc7f Mon Sep 17 00:00:00 2001 From: DIYgod Date: Sat, 9 May 2026 17:24:41 +0800 Subject: [PATCH 368/439] test(route): move techflowpost test outside routes --- lib/{routes/techflowpost => }/techflowpost.test.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename lib/{routes/techflowpost => }/techflowpost.test.ts (97%) diff --git a/lib/routes/techflowpost/techflowpost.test.ts b/lib/techflowpost.test.ts similarity index 97% rename from lib/routes/techflowpost/techflowpost.test.ts rename to lib/techflowpost.test.ts index 3f674b176b9b..57edf708964d 100644 --- a/lib/routes/techflowpost/techflowpost.test.ts +++ b/lib/techflowpost.test.ts @@ -1,9 +1,9 @@ import { http, HttpResponse } from 'msw'; import { describe, expect, it } from 'vitest'; -import { route as expressRoute } from './express'; -import { route as featuredRoute } from './featured'; -import { route as indexRoute } from './index'; +import { route as indexRoute } from './routes/techflowpost'; +import { route as expressRoute } from './routes/techflowpost/express'; +import { route as featuredRoute } from './routes/techflowpost/featured'; const challengeArg = '7FC0A515A247CA56A8EE791EF40FF1CAEB93AAA6'; const expectedCookie = 'acw_sc__v2=69fef11a2a690097fa41a9b697a798108d4fb906'; From a98de2effd0a59fdf003fd0762fe3b9188ba8fe5 Mon Sep 17 00:00:00 2001 From: Tony Date: Mon, 11 May 2026 02:16:04 +0800 Subject: [PATCH 369/439] refactor: use arrow function --- .oxlintrc.json | 16 ++++++++ lib/middleware/anti-hotlink.ts | 6 +-- lib/routes/163/exclusive.ts | 6 +-- lib/routes/163/news/rank.ts | 4 +- lib/routes/2048/index.tsx | 10 ++--- lib/routes/8264/list.tsx | 6 +-- lib/routes/abc/index.ts | 4 +- lib/routes/abskoop/index.ts | 4 +- lib/routes/android/platform-tools-releases.ts | 4 +- lib/routes/aqara/post.tsx | 6 +-- lib/routes/bad/index.ts | 20 +++++----- lib/routes/btzj/index.tsx | 10 ++--- lib/routes/bupt/jwc.ts | 4 +- lib/routes/bupt/scss.ts | 4 +- lib/routes/cbaigui/index.ts | 12 +++--- lib/routes/chinanews/index.ts | 4 +- lib/routes/coomer/index.tsx | 14 +++---- lib/routes/cyzone/util.ts | 8 ++-- lib/routes/darwinawards/index.ts | 4 +- lib/routes/disinfo/publications.ts | 4 +- lib/routes/diskanalyzer/whats-new.ts | 8 ++-- lib/routes/distill/index.ts | 4 +- lib/routes/dlsite/ci-en/article.ts | 4 +- lib/routes/eastday/24.ts | 4 +- lib/routes/ecust/jwc/notice.ts | 11 ++--- lib/routes/flyert/utils.ts | 6 +-- lib/routes/focustaiwan/index.tsx | 4 +- lib/routes/futunn/main.ts | 4 +- lib/routes/futunn/topic.ts | 4 +- lib/routes/gamersecret/index.ts | 4 +- lib/routes/gdut/oa-news.ts | 40 +++++++++---------- lib/routes/getdr/index.ts | 4 +- lib/routes/gxmzu/utils/index.ts | 4 +- lib/routes/hackernews/index.ts | 10 ++--- lib/routes/hitcon/zeroday.tsx | 4 +- lib/routes/hupu/all.tsx | 6 +-- lib/routes/hupu/utils.ts | 6 +-- lib/routes/imagemagick/changelog.ts | 4 +- lib/routes/javdb/utils.ts | 6 +-- lib/routes/javlibrary/utils.tsx | 6 +-- lib/routes/jou/utils/index.ts | 4 +- lib/routes/kamen-rider-official/news.ts | 10 ++--- lib/routes/kemono/index.tsx | 10 ++--- lib/routes/kisskiss/blog.ts | 6 +-- lib/routes/logonews/index.tsx | 6 +-- lib/routes/lorientlejour/index.tsx | 8 ++-- lib/routes/macfilos/blog.ts | 4 +- lib/routes/misskon/utils.ts | 4 +- lib/routes/neu/bmie.ts | 18 ++++----- lib/routes/newsmarket/index.ts | 6 +-- lib/routes/ngocn2/index.ts | 4 +- lib/routes/njxzc/lib.ts | 8 ++-- lib/routes/njxzc/utils/index.ts | 8 ++-- lib/routes/nwnu/routes/lib/embed-resource.ts | 4 +- lib/routes/nytimes/daily-briefing-chinese.tsx | 4 +- lib/routes/odaily/activity.ts | 6 +-- lib/routes/odaily/user.ts | 6 +-- lib/routes/onet/utils.ts | 4 +- lib/routes/oreno3d/get-sec-page-data.ts | 16 ++++---- lib/routes/qq88/index.ts | 4 +- lib/routes/researchgate/publications.ts | 4 +- lib/routes/right/forum.ts | 4 +- lib/routes/rsc/journal.tsx | 6 +-- lib/routes/ruancan/utils.ts | 10 ++--- lib/routes/saraba1st/digest.tsx | 16 ++++---- lib/routes/sensortower/blog.ts | 6 +-- lib/routes/shoppingdesign/posts.ts | 4 +- lib/routes/sinchew/index.tsx | 8 ++-- lib/routes/subhd/index.ts | 4 +- lib/routes/swissinfo/index.ts | 4 +- lib/routes/telegram/channel.ts | 8 ++-- lib/routes/thenewslens/index.ts | 6 +-- lib/routes/wechat/announce.ts | 4 +- lib/routes/wenku8/chapter.ts | 6 +-- lib/routes/whu/util.ts | 10 ++--- lib/routes/wsj/utils.tsx | 4 +- lib/routes/wzu/news.ts | 6 +-- lib/routes/xjtu/dean.ts | 4 +- lib/routes/xjtu/ee-jzxx.ts | 4 +- lib/routes/xmnn/epaper.ts | 4 +- lib/routes/xyu/notices.ts | 4 +- lib/routes/ycwb/index.tsx | 14 +++---- lib/routes/zcool/discover.ts | 4 +- 83 files changed, 290 insertions(+), 287 deletions(-) diff --git a/.oxlintrc.json b/.oxlintrc.json index e44803a23c01..2be2bfecf557 100644 --- a/.oxlintrc.json +++ b/.oxlintrc.json @@ -360,6 +360,22 @@ { "selector": "CallExpression[callee.name=\"load\"] AwaitExpression > CallExpression", "message": "Do not use await in call expressions. Extract the result into a variable first." + }, + { + "selector": "Identifier[name=\"_ctx\"]", + "message": "Usage of `_ctx` is not allowed." + }, + { + "selector": "CallExpression[callee.property.name=\"each\"] > FunctionExpression", + "message": "Use an arrow function instead." + }, + { + "selector": "CallExpression[callee.property.name=\"filter\"] > FunctionExpression", + "message": "Use an arrow function instead." + }, + { + "selector": "CallExpression[callee.property.name=\"map\"] > FunctionExpression", + "message": "Use an arrow function instead." } ], diff --git a/lib/middleware/anti-hotlink.ts b/lib/middleware/anti-hotlink.ts index b06a32ef10c4..49a849570b04 100644 --- a/lib/middleware/anti-hotlink.ts +++ b/lib/middleware/anti-hotlink.ts @@ -59,13 +59,13 @@ const replaceUrl = (template?: string, url?: string) => { }; const replaceUrls = ($: CheerioAPI, selector: string, template: string, attribute = 'src') => { - $(selector).each(function () { - const oldSrc = $(this).attr(attribute); + $(selector).each((_, el) => { + const oldSrc = $(el).attr(attribute); if (oldSrc) { const url = parseUrl(oldSrc); if (url && url.protocol !== 'data:') { // Cheerio will do the right thing to prohibit XSS. - $(this).attr(attribute, interpolate(template, url)); + $(el).attr(attribute, interpolate(template, url)); } } }); diff --git a/lib/routes/163/exclusive.ts b/lib/routes/163/exclusive.ts index 43029a88b745..ef265de1b503 100644 --- a/lib/routes/163/exclusive.ts +++ b/lib/routes/163/exclusive.ts @@ -163,10 +163,10 @@ async function handler(ctx) { content('.m-linkCard').remove(); - content('.m-photo').each(function () { - content(this).html( + content('.m-photo').each((_, el) => { + content(el).html( renderExclusiveDescription({ - image: content(this).find('img').attr('data-src'), + image: content(el).find('img').attr('data-src'), }) ); }); diff --git a/lib/routes/163/news/rank.ts b/lib/routes/163/news/rank.ts index 3436f581bc3a..d7643a8d3aa0 100644 --- a/lib/routes/163/news/rank.ts +++ b/lib/routes/163/news/rank.ts @@ -167,8 +167,8 @@ async function handler(ctx) { const content = load(detailResponse.data); content('.bot_word, .js-open-app, .s-img').remove(); - content('video').each(function () { - content(this).attr('src', content(this).attr('data-src')); + content('video').each((_, el) => { + content(el).attr('src', content(el).attr('data-src')); }); content('.article-body .image-lazy').each((_, elem) => { elem.attribs.src = elem.attribs['data-src'] ?? elem.attribs.src; diff --git a/lib/routes/2048/index.tsx b/lib/routes/2048/index.tsx index 2685996c82ec..46c1e53563c2 100644 --- a/lib/routes/2048/index.tsx +++ b/lib/routes/2048/index.tsx @@ -133,13 +133,13 @@ async function handler(ctx) { content('.ads, .tips').remove(); - content('ignore_js_op').each(function () { - const img = content(this).find('img'); + content('ignore_js_op').each((_, el) => { + const img = content(el).find('img'); const originalSrc = img.attr('data-original'); const fallbackSrc = img.attr('src'); // 判断是否有 data-original 属性,若有则使用其值,否则使用 src 属性值 const imgSrc = originalSrc || fallbackSrc; - content(this).replaceWith(``); + content(el).replaceWith(``); }); item.author = content('.fl.black').first().text(); @@ -174,8 +174,8 @@ async function handler(ctx) { } } - content('.showhide img').each(function () { - readTpc.append(`
    `); + content('.showhide img').each((_, el) => { + readTpc.append(`
    `); }); item.description = readTpc.html(); diff --git a/lib/routes/8264/list.tsx b/lib/routes/8264/list.tsx index 1dc72d45f511..adcae9585e46 100644 --- a/lib/routes/8264/list.tsx +++ b/lib/routes/8264/list.tsx @@ -129,11 +129,11 @@ async function handler(ctx) { const pubDate = content('span.pub-time').text() || content('span.fby span').first().prop('title') || content('span.fby').first().text().split('发表于').pop().trim(); - content('img').each(function () { - content(this).replaceWith( + content('img').each((_, el) => { + content(el).replaceWith( renderToString(
    - {content(this).prop('alt')} + {content(el).prop('alt')}
    ) ); diff --git a/lib/routes/abc/index.ts b/lib/routes/abc/index.ts index bc66f7119447..a4eea519884e 100644 --- a/lib/routes/abc/index.ts +++ b/lib/routes/abc/index.ts @@ -105,8 +105,8 @@ async function handler(ctx) { content('#body *, div[data-component="FeatureMedia"]') .children() - .each(function () { - const element = content(this); + .each((_, el) => { + const element = content(el); if (element.prop('tagName').toLowerCase() === 'figure') { element.replaceWith( renderDescription({ diff --git a/lib/routes/abskoop/index.ts b/lib/routes/abskoop/index.ts index 7252758e93ce..67fb0b6ae8dc 100644 --- a/lib/routes/abskoop/index.ts +++ b/lib/routes/abskoop/index.ts @@ -48,8 +48,8 @@ async function handler(ctx) { $detail('article.post-content').find('.lwptoc').remove(); $detail('article.post-content').find('#related_posts').remove(); $detail('article.post-content').find('.entry-copyright').remove(); - $detail('article.post-content img').each(function () { - $detail(this).replaceWith(``); + $detail('article.post-content img').each((_, el) => { + $detail(el).replaceWith(``); }); item.description = $detail('article.post-content').html(); return item; diff --git a/lib/routes/android/platform-tools-releases.ts b/lib/routes/android/platform-tools-releases.ts index b8a7ac5794ff..974d49c3f990 100644 --- a/lib/routes/android/platform-tools-releases.ts +++ b/lib/routes/android/platform-tools-releases.ts @@ -53,8 +53,8 @@ async function handler() { const title = item.attr('data-text'); let description = ''; - item.nextUntil('h4').each(function () { - description += $(this).html(); + item.nextUntil('h4').each((_, el) => { + description += $(el).html(); }); return { diff --git a/lib/routes/aqara/post.tsx b/lib/routes/aqara/post.tsx index 0906de8a1290..4861ba652fd4 100644 --- a/lib/routes/aqara/post.tsx +++ b/lib/routes/aqara/post.tsx @@ -52,13 +52,13 @@ async function handler(ctx) { // To handle lazy-loaded images. - content('figure').each(function () { - const image = content(this).find('img'); + content('figure').each((_, el) => { + const image = content(el).find('img'); const src = (image.prop('data-actualsrc') ?? image.prop('data-original') ?? image.prop('src')).replace(/(-\d+x\d+)/, ''); const width = image.prop('data-rawwidth') ?? image.prop('width'); const height = image.prop('data-rawheight') ?? image.prop('height'); - content(this).replaceWith( + content(el).replaceWith( renderToString(
    diff --git a/lib/routes/bad/index.ts b/lib/routes/bad/index.ts index a821ead9b60b..74fcfe60b7af 100644 --- a/lib/routes/bad/index.ts +++ b/lib/routes/bad/index.ts @@ -33,18 +33,18 @@ async function handler(ctx) { const a = item.find('a.title'); - item.find('img').each(function () { - $(this).attr('src', $(this).attr('data-echo')); - $(this).removeClass('lazy'); - $(this).removeAttr('data-echo'); - $(this).removeAttr('id'); + item.find('img').each((_, el) => { + $(el).attr('src', $(el).attr('data-echo')); + $(el).removeClass('lazy'); + $(el).removeAttr('data-echo'); + $(el).removeAttr('id'); }); - item.find('video').each(function () { - $(this).attr('poster', $(this).attr('data-echo')); - $(this).removeAttr('data-echo'); - $(this).removeAttr('onerror'); - $(this).removeAttr('id'); + item.find('video').each((_, el) => { + $(el).attr('poster', $(el).attr('data-echo')); + $(el).removeAttr('data-echo'); + $(el).removeAttr('onerror'); + $(el).removeAttr('id'); }); return { diff --git a/lib/routes/btzj/index.tsx b/lib/routes/btzj/index.tsx index 4b5d450af7de..ef9fb00d0e0d 100644 --- a/lib/routes/btzj/index.tsx +++ b/lib/routes/btzj/index.tsx @@ -129,13 +129,13 @@ async function handler(ctx) { content('.attachlist') .find('a') - .each(function () { - content(this) + .each((_, el) => { + content(el) .children('img') - .attr('src', `${rootUrl}${content(this).children('img').attr('src')}`); - content(this).attr( + .attr('src', `${rootUrl}${content(el).children('img').attr('src')}`); + content(el).attr( 'href', - `${rootUrl}/${content(this) + `${rootUrl}/${content(el) .attr('href') .replace(/^attach-dialog/, 'attach-download')}` ); diff --git a/lib/routes/bupt/jwc.ts b/lib/routes/bupt/jwc.ts index f1c9507ebb5e..9439c979e6c9 100644 --- a/lib/routes/bupt/jwc.ts +++ b/lib/routes/bupt/jwc.ts @@ -98,8 +98,8 @@ async function handler(ctx: Context) { const newsContent = content('.v_news_content'); // 移除不必要的标签,比如

    中无用的内容 - newsContent.find('p, span, strong').each(function () { - const element = content(this); + newsContent.find('p, span, strong').each((_, el) => { + const element = content(el); const text = element.text().trim(); // 删除没有有用文本的元素,防止空元素被保留 diff --git a/lib/routes/bupt/scss.ts b/lib/routes/bupt/scss.ts index 3a87e867e909..7db560446a02 100644 --- a/lib/routes/bupt/scss.ts +++ b/lib/routes/bupt/scss.ts @@ -73,8 +73,8 @@ async function handler() { const content = load(detailResponse.data); const newsContent = content('.v_news_content'); - newsContent.find('p, span, strong').each(function () { - const element = content(this); + newsContent.find('p, span, strong').each((_, el) => { + const element = content(el); const text = element.text().trim(); if (text === '') { element.remove(); diff --git a/lib/routes/cbaigui/index.ts b/lib/routes/cbaigui/index.ts index b440f86a25ae..9a3872640c96 100644 --- a/lib/routes/cbaigui/index.ts +++ b/lib/routes/cbaigui/index.ts @@ -44,13 +44,13 @@ async function handler(ctx) { // To handle lazy-loaded images from external sites. - content('figure').each(function () { - const image = content(this).find('img'); + content('figure').each((_, el) => { + const image = content(el).find('img'); const src = image.prop('data-actualsrc') ?? image.prop('data-original'); const width = image.prop('data-rawwidth'); const height = image.prop('data-rawheight'); - content(this).replaceWith( + content(el).replaceWith( renderFigure({ src, width, @@ -61,13 +61,13 @@ async function handler(ctx) { // To remove watermarks on images. - content('p img').each(function () { - const image = content(this); + content('p img').each((_, el) => { + const image = content(el); const src = image.prop('src').split('!')[0]; const width = image.prop('width'); const height = image.prop('height'); - content(this).replaceWith( + content(el).replaceWith( renderFigure({ src, width, diff --git a/lib/routes/chinanews/index.ts b/lib/routes/chinanews/index.ts index aaccff0bac7b..f8b1a3b833be 100644 --- a/lib/routes/chinanews/index.ts +++ b/lib/routes/chinanews/index.ts @@ -61,9 +61,7 @@ async function handler(ctx) { item.description = content('div.left_zw').html(); const info = content('div.left-t') .contents() - .filter(function () { - return this.type === 'text'; - }) + .filter((_, el) => el.type === 'text') .text() .split(' '); item.pubDate = timezone(parseDate(info[0], 'YYYY年MM月DD日 HH:mm'), +8); diff --git a/lib/routes/coomer/index.tsx b/lib/routes/coomer/index.tsx index 4afffa1b4b91..cdd0cd8d4c85 100644 --- a/lib/routes/coomer/index.tsx +++ b/lib/routes/coomer/index.tsx @@ -87,9 +87,7 @@ async function handler(ctx) { } const filesHTML = renderSource(i); let $ = load(filesHTML); - const coomerFiles = $('img, a, audio, video').map(function () { - return $(this).prop('outerHTML')!; - }); + const coomerFiles = $('img, a, audio, video').map((_, el) => $(el).prop('outerHTML')!); let desc = ''; if (i.content) { desc += `

    ${i.content}
    `; @@ -97,11 +95,11 @@ async function handler(ctx) { $ = load(desc); let count = 0; const regex = /downloads.fanbox.cc/; - $('a').each(function () { - const link = $(this).attr('href'); + $('a').each((_, el) => { + const link = $(el).attr('href'); if (regex.test(link!)) { count++; - $(this).replaceWith(coomerFiles[count]); + $(el).replaceWith(coomerFiles[count]); } }); desc = (coomerFiles.length > 0 ? coomerFiles[0] : '') + $.html(); @@ -110,8 +108,8 @@ async function handler(ctx) { } let enclosureInfo = {}; - load(desc)('audio source, video source').each(function () { - const src = $(this).attr('src') ?? ''; + load(desc)('audio source, video source').each((_, el) => { + const src = $(el).attr('src') ?? ''; const mimeType = { m4a: 'audio/mp4', diff --git a/lib/routes/cyzone/util.ts b/lib/routes/cyzone/util.ts index 95f4b83b2b65..2f61635d0a83 100644 --- a/lib/routes/cyzone/util.ts +++ b/lib/routes/cyzone/util.ts @@ -89,11 +89,11 @@ const processItems = async (apiUrl, limit, tryGet, ...params) => { const content = load(data.content); - content('img').each(function () { - if (content(this).prop('src')) { - content(this).prop('src', content(this).prop('src').split('?')[0]); + content('img').each((_, el) => { + if (content(el).prop('src')) { + content(el).prop('src', content(el).prop('src').split('?')[0]); } else { - content(this).remove(); + content(el).remove(); } }); diff --git a/lib/routes/darwinawards/index.ts b/lib/routes/darwinawards/index.ts index 5b737ddfb3bd..be8c7751e965 100644 --- a/lib/routes/darwinawards/index.ts +++ b/lib/routes/darwinawards/index.ts @@ -31,8 +31,8 @@ async function handler() { $('.cameo').remove(); - $('.topvote_title_desc, .topvote_title_minimal, .topvote_minimal').each(function () { - $(this).find('a').first().remove(); + $('.topvote_title_desc, .topvote_title_minimal, .topvote_minimal').each((_, el) => { + $(el).find('a').first().remove(); }); let items = $('#article_index a') diff --git a/lib/routes/disinfo/publications.ts b/lib/routes/disinfo/publications.ts index 44680779038d..8d456fa99524 100644 --- a/lib/routes/disinfo/publications.ts +++ b/lib/routes/disinfo/publications.ts @@ -63,8 +63,8 @@ async function handler() { content('.wp-block-spacer').remove(); content('.elementor-widget-container p').eq(0).remove(); - content('img').each(function () { - content(this).attr('src', content(this).attr('data-lazy-src')); + content('img').each((_, el) => { + content(el).attr('src', content(el).attr('data-lazy-src')); }); item.description = content('.elementor-widget-theme-post-content').html(); diff --git a/lib/routes/diskanalyzer/whats-new.ts b/lib/routes/diskanalyzer/whats-new.ts index ebdb7bece337..d7457c5ed75a 100644 --- a/lib/routes/diskanalyzer/whats-new.ts +++ b/lib/routes/diskanalyzer/whats-new.ts @@ -47,14 +47,14 @@ async function handler() { const title = item.text(); let description = ''; - item.nextUntil('h4').each(function () { - description += $(this).html(); + item.nextUntil('h4').each((_, el) => { + description += $(el).html(); }); if (description === '') { item.parent() .nextUntil('h4') - .each(function () { - description += $(this).html(); + .each((_, el) => { + description += $(el).html(); }); } diff --git a/lib/routes/distill/index.ts b/lib/routes/distill/index.ts index 96a02766fcbf..022f54bbf7a9 100644 --- a/lib/routes/distill/index.ts +++ b/lib/routes/distill/index.ts @@ -52,8 +52,8 @@ async function handler() { content('d-contents').remove(); - content('img').each(function () { - content(this).attr('src', `${item.link}/${content(this).attr('src')}`); + content('img').each((_, el) => { + content(el).attr('src', `${item.link}/${content(el).attr('src')}`); }); item.doi = content('meta[name="citation_doi"]').attr('content'); diff --git a/lib/routes/dlsite/ci-en/article.ts b/lib/routes/dlsite/ci-en/article.ts index 7d01d96169aa..b05eb3dc6cbd 100644 --- a/lib/routes/dlsite/ci-en/article.ts +++ b/lib/routes/dlsite/ci-en/article.ts @@ -70,8 +70,8 @@ async function handler(ctx) { content('.article-title').remove(); - content('.file-player-image').each(function () { - content(this).replaceWith(``); + content('.file-player-image').each((_, el) => { + content(el).replaceWith(``); }); item.description = content('article').html(); diff --git a/lib/routes/eastday/24.ts b/lib/routes/eastday/24.ts index 6c50ffdabc5b..43ed7a699e04 100644 --- a/lib/routes/eastday/24.ts +++ b/lib/routes/eastday/24.ts @@ -103,8 +103,8 @@ async function handler(ctx) { }); const subContent = load(pageResponse.data); - subContent('img').each(function () { - subContent(this).attr('src', subContent(this).attr('data-url')); + subContent('img').each((_, el) => { + subContent(el).attr('src', subContent(el).attr('data-url')); }); item.description += subContent('#J-contain_detail_cnt').html(); diff --git a/lib/routes/ecust/jwc/notice.ts b/lib/routes/ecust/jwc/notice.ts index 8aecda512ea8..056a09284c69 100644 --- a/lib/routes/ecust/jwc/notice.ts +++ b/lib/routes/ecust/jwc/notice.ts @@ -67,12 +67,13 @@ async function handler(ctx) { const { data: response } = await got(item.link); const content = load(response); // remove all attrs and empty objects - content('div.wp_articlecontent *').each(function () { - if (!content(this).text().trim()) { - return content(this).remove(); + content('div.wp_articlecontent *').each((_, el) => { + if (!content(el).text().trim()) { + content(el).remove(); + return; } - for (const attr in this.attribs) { - content(this).removeAttr(attr); + for (const attr in el.attribs) { + content(el).removeAttr(attr); } }); const description = content('div.wp_articlecontent').first().html(); diff --git a/lib/routes/flyert/utils.ts b/lib/routes/flyert/utils.ts index 78874f26bc53..5dbb268c5def 100644 --- a/lib/routes/flyert/utils.ts +++ b/lib/routes/flyert/utils.ts @@ -26,11 +26,11 @@ async function loadContent(link) { const firstpost = $('.firstpost'); // 修改图片中的链接 - firstpost.find('ignore_js_op img').each(function () { - $(this).attr('src', $(this).attr('file')); + firstpost.find('ignore_js_op img').each((_, el) => { + $(el).attr('src', $(el).attr('file')); // 移除无用属性 for (const attr of ['id', 'aid', 'zoomfile', 'file', 'zoomfile', 'class', 'onclick', 'title', 'inpost', 'alt', 'onmouseover']) { - $(this).removeAttr(attr); + $(el).removeAttr(attr); } }); diff --git a/lib/routes/focustaiwan/index.tsx b/lib/routes/focustaiwan/index.tsx index da8b52e5acbb..3c10cd06e450 100644 --- a/lib/routes/focustaiwan/index.tsx +++ b/lib/routes/focustaiwan/index.tsx @@ -67,8 +67,8 @@ async function handler(ctx) { const content = load(detailResponse.data); - content('img').each(function () { - content(this).html(``); + content('img').each((_, el) => { + content(el).html(``); }); const image = content('meta[property="og:image"]').attr('content'); diff --git a/lib/routes/futunn/main.ts b/lib/routes/futunn/main.ts index 92e3ddc0f6fc..7ae6502570dc 100644 --- a/lib/routes/futunn/main.ts +++ b/lib/routes/futunn/main.ts @@ -60,8 +60,8 @@ async function handler(ctx) { const content = load(detailResponse.data); content('.futu-news-time-stamp').remove(); - content('.nnstock').each(function () { - content(this).replaceWith(`${content(this).text().replaceAll('$', '')}`); + content('.nnstock').each((_, el) => { + content(el).replaceWith(`${content(el).text().replaceAll('$', '')}`); }); item.description = content('.origin_content').html(); diff --git a/lib/routes/futunn/topic.ts b/lib/routes/futunn/topic.ts index 6451c34a5e5d..3430771d6597 100644 --- a/lib/routes/futunn/topic.ts +++ b/lib/routes/futunn/topic.ts @@ -86,8 +86,8 @@ async function handler(ctx) { const content = load(detailResponse.data); content('.futu-news-time-stamp').remove(); - content('.nnstock').each(function () { - content(this).replaceWith(`${content(this).text().replaceAll('$', '')}`); + content('.nnstock').each((_, el) => { + content(el).replaceWith(`${content(el).text().replaceAll('$', '')}`); }); item.description = content('.origin_content').html(); diff --git a/lib/routes/gamersecret/index.ts b/lib/routes/gamersecret/index.ts index 6e6cbab45364..4f91c1a47308 100644 --- a/lib/routes/gamersecret/index.ts +++ b/lib/routes/gamersecret/index.ts @@ -86,8 +86,8 @@ async function handler(ctx) { const content = load(detailResponse.data); - content('img').each(function () { - content(this).attr('src', content(this).attr('data-src')); + content('img').each((_, el) => { + content(el).attr('src', content(el).attr('data-src')); }); item.author = content('.jeg_meta_author').text().replace(/by/, ''); diff --git a/lib/routes/gdut/oa-news.ts b/lib/routes/gdut/oa-news.ts index a190200fa2d7..7b11598693ba 100644 --- a/lib/routes/gdut/oa-news.ts +++ b/lib/routes/gdut/oa-news.ts @@ -131,19 +131,15 @@ async function handler(ctx) { const node = $('#content'); // 清理样式 node.find('*') - .filter(function () { - return this.type === 'comment' || this.tagName === 'meta' || this.tagName === 'style'; - }) + .filter((_, el) => el.type === 'comment' || el.tagName === 'meta' || el.tagName === 'style') .remove(); node.find('*') .contents() - .filter(function () { - return this.type === 'comment' || this.tagName === 'meta' || this.tagName === 'style'; - }) + .filter((_, el) => el.type === 'comment' || el.tagName === 'meta' || el.tagName === 'style') .remove(); - node.find('*').each(function () { - if (this.attribs.style !== undefined) { - const newSty = this.attribs.style + node.find('*').each((_, el) => { + if (el.attribs.style !== undefined) { + const newSty = el.attribs.style .split(';') .filter((s) => { const styBlocklist = ['color:rgb(0,0,0)', 'color:black', 'background:rgb(255,255,255)', 'background:white', 'text-align:left', 'text-align:justify', 'font-style:normal', 'font-weight:normal']; @@ -176,27 +172,27 @@ async function handler(ctx) { }) .join(';'); if (newSty) { - this.attribs.style = newSty; + el.attribs.style = newSty; } else { - delete this.attribs.style; + delete el.attribs.style; } } - if (this.attribs.class && this.attribs.class.trim().startsWith('Mso')) { - delete this.attribs.class; + if (el.attribs.class && el.attribs.class.trim().startsWith('Mso')) { + delete el.attribs.class; } - if (this.attribs.lang) { - delete this.attribs.lang; + if (el.attribs.lang) { + delete el.attribs.lang; } - if (this.tagName === 'font' || this.tagName === 'o:p') { - $(this).replaceWith(this.childNodes); + if (el.tagName === 'font' || el.tagName === 'o:p') { + $(el).replaceWith(el.childNodes); } - if (this.tagName === 'span' && !this.attribs.style) { - $(this).replaceWith(this.childNodes); + if (el.tagName === 'span' && !el.attribs.style) { + $(el).replaceWith(el.childNodes); } }); - node.find('span').each(function () { - if (this.childNodes.length === 0) { - $(this).remove(); + node.find('span').each((_, el) => { + if (el.childNodes.length === 0) { + $(el).remove(); } }); diff --git a/lib/routes/getdr/index.ts b/lib/routes/getdr/index.ts index 03e9c631a002..296d65b62f93 100644 --- a/lib/routes/getdr/index.ts +++ b/lib/routes/getdr/index.ts @@ -45,8 +45,8 @@ async function handler() { const content = load(detailResponse.data); - content('.wp-block-image').each(function () { - content(this).html(``); + content('.wp-block-image').each((_, el) => { + content(el).html(``); }); item.description = content('div[data-widget_type="theme-post-content.default"]').html(); diff --git a/lib/routes/gxmzu/utils/index.ts b/lib/routes/gxmzu/utils/index.ts index a12ee8949df4..44045ae3a027 100644 --- a/lib/routes/gxmzu/utils/index.ts +++ b/lib/routes/gxmzu/utils/index.ts @@ -46,8 +46,8 @@ async function getNoticeList(ctx, url, host, titleSelector, dateSelector, conten item.description = '该通知无法直接预览,请点击原文链接↑查看'; } else { const $content = load($(contentSelector.content).html()); - $content('a').each(function () { - const a = $(this); + $content('a').each((_, el) => { + const a = $(el); const href = a.attr('href'); if (href && !href.startsWith('http')) { a.attr('href', new URL(href, host).href); diff --git a/lib/routes/hackernews/index.ts b/lib/routes/hackernews/index.ts index dff606d2c7d7..a2b9b2b71fc5 100644 --- a/lib/routes/hackernews/index.ts +++ b/lib/routes/hackernews/index.ts @@ -105,14 +105,14 @@ async function handler(ctx) { item.description = ''; - content('.comtr').each(function () { - const author = content(this).find('.hnuser'); - const comment = content(this).find('.commtext'); + content('.comtr').each((_, el) => { + const author = content(el).find('.hnuser'); + const comment = content(el).find('.commtext'); item.description += ``; const commentText = comment.clone(); diff --git a/lib/routes/hitcon/zeroday.tsx b/lib/routes/hitcon/zeroday.tsx index aacc600977c8..f6c579a0aecf 100644 --- a/lib/routes/hitcon/zeroday.tsx +++ b/lib/routes/hitcon/zeroday.tsx @@ -71,9 +71,7 @@ async function handler(ctx: Context): Promise { const code = vulData .find('.code') .contents() - .filter(function () { - return this.nodeType === 3; - }) + .filter((_, el) => el.nodeType === 3) .text(); const risk = vulData.find('.risk span').eq(1).text(); const vender = vulData.find('.vender').find('.v-name-full').text(); diff --git a/lib/routes/hupu/all.tsx b/lib/routes/hupu/all.tsx index fc699861c96e..6514747f18fd 100644 --- a/lib/routes/hupu/all.tsx +++ b/lib/routes/hupu/all.tsx @@ -73,10 +73,10 @@ async function handler(ctx) { const videos = []; - content('.hupu-post-video').each(function () { + content('.hupu-post-video').each((_, el) => { videos.push({ - source: content(this).attr('src'), - poster: content(this).attr('poster'), + source: content(el).attr('src'), + poster: content(el).attr('poster'), }); }); diff --git a/lib/routes/hupu/utils.ts b/lib/routes/hupu/utils.ts index 726b0cfe55db..2e6dba7106c5 100644 --- a/lib/routes/hupu/utils.ts +++ b/lib/routes/hupu/utils.ts @@ -257,9 +257,9 @@ export function getEntryDetails(item: DataItem): Promise { .filter(Boolean); content('.basketballTobbs_tag').remove(); - content('.hupu-img').each(function () { - const imgSrc = content(this).attr('data-gif') || content(this).attr('data-origin') || content(this).attr('src'); - content(this).parent().html(``); + content('.hupu-img').each((_, el) => { + const imgSrc = content(el).attr('data-gif') || content(el).attr('data-origin') || content(el).attr('src'); + content(el).parent().html(``); }); // 分别获取内容元素 diff --git a/lib/routes/imagemagick/changelog.ts b/lib/routes/imagemagick/changelog.ts index b02047493b07..1f8b3da895cf 100644 --- a/lib/routes/imagemagick/changelog.ts +++ b/lib/routes/imagemagick/changelog.ts @@ -54,8 +54,8 @@ async function handler() { const title = item.text(); let description = ''; - item.nextUntil('h2').each(function () { - description += $(this).html(); + item.nextUntil('h2').each((_, el) => { + description += $(el).html(); }); return { diff --git a/lib/routes/javdb/utils.ts b/lib/routes/javdb/utils.ts index be78a271ee89..eaccdbef7c1a 100644 --- a/lib/routes/javdb/utils.ts +++ b/lib/routes/javdb/utils.ts @@ -76,9 +76,9 @@ const ProcessItems = async (ctx, currentUrl, title) => { content('#modal-review-watched, #modal-comment-warning, #modal-save-list').remove(); content('.review-buttons, .copy-to-clipboard, .preview-video-container, .play-button').remove(); - content('.preview-images img').each(function () { - content(this).removeAttr('data-src'); - content(this).attr('src', content(this).parent().attr('href')); + content('.preview-images img').each((_, el) => { + content(el).removeAttr('data-src'); + content(el).attr('src', content(el).parent().attr('href')); }); item.category = content('.panel-block .value a') diff --git a/lib/routes/javlibrary/utils.tsx b/lib/routes/javlibrary/utils.tsx index e95f7ade665e..6b0b10ff920b 100644 --- a/lib/routes/javlibrary/utils.tsx +++ b/lib/routes/javlibrary/utils.tsx @@ -73,9 +73,9 @@ const ProcessItems = async (language, currentUrl, tryGet) => { const content = load(detailResponse.data); content('.icn_edit, .btn_videoplayer, a[rel="bookmark"]').remove(); - content('span').each(function () { - if (content(this).attr('class')?.startsWith('icn_')) { - content(this).remove(); + content('span').each((_, el) => { + if (content(el).attr('class')?.startsWith('icn_')) { + content(el).remove(); } }); diff --git a/lib/routes/jou/utils/index.ts b/lib/routes/jou/utils/index.ts index 6e1a09759f8b..0389671e7d24 100644 --- a/lib/routes/jou/utils/index.ts +++ b/lib/routes/jou/utils/index.ts @@ -48,8 +48,8 @@ async function getItems(ctx, url, host, tableClass, timeStyleClass1, titleStyleC } else { const contentHtml = $('.v_news_content').html(); const $content = load(contentHtml); - $content('a').each(function () { - const a = $(this); + $content('a').each((_, el) => { + const a = $(el); const href = a.attr('href'); if (href && !href.startsWith('http')) { a.attr('href', new URL(href, host).href); diff --git a/lib/routes/kamen-rider-official/news.ts b/lib/routes/kamen-rider-official/news.ts index 20ea40e73482..79a7f7201737 100644 --- a/lib/routes/kamen-rider-official/news.ts +++ b/lib/routes/kamen-rider-official/news.ts @@ -107,14 +107,14 @@ async function handler(ctx) { const content = load(detailResponse); - content('a.c-button').each(function () { - content(this).parent().remove(); + content('a.c-button').each((_, el) => { + content(el).parent().remove(); }); - content('img').each(function () { - content(this).replaceWith( + content('img').each((_, el) => { + content(el).replaceWith( renderDescription({ - src: content(this).prop('src'), + src: content(el).prop('src'), }) ); }); diff --git a/lib/routes/kemono/index.tsx b/lib/routes/kemono/index.tsx index 454e5d47a229..8392e394fd2c 100644 --- a/lib/routes/kemono/index.tsx +++ b/lib/routes/kemono/index.tsx @@ -170,8 +170,8 @@ function generateEnclosureInfo(htmlContent: string): { enclosure_url?: string; e const $ = load(htmlContent); let enclosureInfo = {}; - $('audio source, video source').each(function () { - const src = $(this).attr('src'); + $('audio source, video source').each((_, el) => { + const src = $(el).attr('src'); if (!src) { return; } @@ -345,10 +345,10 @@ function processPosts(posts: KemonoPost[], authorName: string, limit: number) { let replacementCount = 0; const fanboxRegex = /downloads\.fanbox\.cc/; - $('a').each(function () { - const link = $(this).attr('href'); + $('a').each((_, el) => { + const link = $(el).attr('href'); if (link && fanboxRegex.test(link)) { - $(this).replaceWith(kemonoFileElements[replacementCount] || ''); + $(el).replaceWith(kemonoFileElements[replacementCount] || ''); replacementCount++; } }); diff --git a/lib/routes/kisskiss/blog.ts b/lib/routes/kisskiss/blog.ts index 83891a695ef6..30cb72acc656 100644 --- a/lib/routes/kisskiss/blog.ts +++ b/lib/routes/kisskiss/blog.ts @@ -58,9 +58,9 @@ async function handler(ctx) { 9 ), }; - body.find('a img').each(function () { - $(this).attr('src', $(this).parent('a').attr('href')); - $(this).unwrap(); + body.find('a img').each((_, el) => { + $(el).attr('src', $(el).parent('a').attr('href')); + $(el).unwrap(); }); body.find('div.blog_data').remove(); i.description = `
    ${body.html()}
    `; diff --git a/lib/routes/logonews/index.tsx b/lib/routes/logonews/index.tsx index 552e9ac56c53..5e228c0d37af 100644 --- a/lib/routes/logonews/index.tsx +++ b/lib/routes/logonews/index.tsx @@ -59,10 +59,10 @@ async function handler(ctx) { content('.iconfont').remove(); - content('img[data-src]').each(function () { - content(this).attr( + content('img[data-src]').each((_, el) => { + content(el).attr( 'src', - content(this) + content(el) .attr('data-src') .replace(/_logonews/, '') ); diff --git a/lib/routes/lorientlejour/index.tsx b/lib/routes/lorientlejour/index.tsx index e8d5cc77b9bc..0d54c8adfd16 100644 --- a/lib/routes/lorientlejour/index.tsx +++ b/lib/routes/lorientlejour/index.tsx @@ -158,12 +158,12 @@ async function handler(ctx) { article.find('.inline-embeded-article').remove(); article.find('.relatedArticles').remove(); if (item.inline_attachments) { - article.find('.inlineImage').each(function () { - const inlineImageSrc = $(this).attr('src'); + article.find('.inlineImage').each((_, el) => { + const inlineImageSrc = $(el).attr('src'); const inlineAttachment = item.inline_attachments.find((inlineAttachment) => inlineAttachment.url === inlineImageSrc); if (inlineAttachment && inlineAttachment.description) { - $(this).wrap('
    '); - $(this).after(`
    ${inlineAttachment.description}
    `); + $(el).wrap('
    '); + $(el).after(`
    ${inlineAttachment.description}
    `); } }); } diff --git a/lib/routes/macfilos/blog.ts b/lib/routes/macfilos/blog.ts index 524bb2dc7a2f..aac2c5478c1d 100644 --- a/lib/routes/macfilos/blog.ts +++ b/lib/routes/macfilos/blog.ts @@ -69,8 +69,8 @@ async function handler(ctx) { content('hr').nextAll().remove(); content('hr').remove(); - content('img').each(function () { - content(this).removeAttr('srcset'); + content('img').each((_, el) => { + content(el).removeAttr('srcset'); }); item.description = content('.td-post-content').html(); diff --git a/lib/routes/misskon/utils.ts b/lib/routes/misskon/utils.ts index ad01798d474e..c45554a41599 100644 --- a/lib/routes/misskon/utils.ts +++ b/lib/routes/misskon/utils.ts @@ -11,8 +11,8 @@ const getPosts = async (searchParams) => { const data = await ofetch(url.href); return data.map((item) => { const $ = load(item.content.rendered); - $('input').each(function () { - $(this).replaceWith($(this).attr('value') || ''); + $('input').each((_, el) => { + $(el).replaceWith($(el).attr('value') || ''); }); $('script').remove(); return { diff --git a/lib/routes/neu/bmie.ts b/lib/routes/neu/bmie.ts index eb11a3d5ffdd..46c70ce0e1ac 100644 --- a/lib/routes/neu/bmie.ts +++ b/lib/routes/neu/bmie.ts @@ -91,22 +91,22 @@ async function handler(ctx) { const auhor = info.slice(au_start, au_end).trim(); $('.entry') .find('span') - .each(function () { - const temp = $(this).text(); - $(this).replaceWith(temp); + .each((_, el) => { + const temp = $(el).text(); + $(el).replaceWith(temp); }); $('.entry') .find('div') - .each(function () { - const temp = $(this).html(); - $(this).replaceWith(temp); + .each((_, el) => { + const temp = $(el).html(); + $(el).replaceWith(temp); }); $('.entry').find('a').remove(); $('.entry') .find('p') - .each(function () { - $(this).removeAttr('style'); - $(this).removeAttr('class'); + .each((_, el) => { + $(el).removeAttr('style'); + $(el).removeAttr('class'); }); $('.wp_art_adjoin').remove(); return { description: $('.entry').html(), date, author: auhor }; diff --git a/lib/routes/newsmarket/index.ts b/lib/routes/newsmarket/index.ts index 835502b06933..2123f009d12e 100644 --- a/lib/routes/newsmarket/index.ts +++ b/lib/routes/newsmarket/index.ts @@ -71,10 +71,10 @@ async function handler(ctx) { const content = load(detailResponse.data); - content('figure img').each(function () { - content(this) + content('figure img').each((_, el) => { + content(el) .parent() - .html(``); + .html(``); }); content('.inline-post').remove(); diff --git a/lib/routes/ngocn2/index.ts b/lib/routes/ngocn2/index.ts index 7a1ea5819030..69635ec4cabf 100644 --- a/lib/routes/ngocn2/index.ts +++ b/lib/routes/ngocn2/index.ts @@ -67,8 +67,8 @@ async function handler(ctx) { const content = load(detailResponse.data); - content('.gatsby-resp-image-link').each(function () { - content(this).html(``); + content('.gatsby-resp-image-link').each((_, el) => { + content(el).html(``); }); item.description = content('.article__content').html(); diff --git a/lib/routes/njxzc/lib.ts b/lib/routes/njxzc/lib.ts index 632f580e8358..e9d92d17b8c7 100644 --- a/lib/routes/njxzc/lib.ts +++ b/lib/routes/njxzc/lib.ts @@ -71,15 +71,15 @@ async function handler() { } else { const $content = $('.wp_articlecontent'); // Convert wp_pdf_player iframes to download links - $content.find('.wp_pdf_player').each(function () { - const $iframe = $(this); + $content.find('.wp_pdf_player').each((_, el) => { + const $iframe = $(el); const pdfSrc = $iframe.attr('pdfsrc') || ''; const pdfUrl = pdfSrc.startsWith('http') ? pdfSrc : new URL(pdfSrc, host).href; $iframe.replaceWith(`

    附件下载

    `); }); // Fix relative URLs - $content.find('a').each(function () { - const $a = $(this); + $content.find('a').each((_, el) => { + const $a = $(el); const href = $a.attr('href'); if (href && !href.startsWith('http')) { $a.attr('href', new URL(href, host).href); diff --git a/lib/routes/njxzc/utils/index.ts b/lib/routes/njxzc/utils/index.ts index 761487a6ecae..7cfc716d91a9 100644 --- a/lib/routes/njxzc/utils/index.ts +++ b/lib/routes/njxzc/utils/index.ts @@ -36,15 +36,15 @@ async function getNoticeList(ctx, url, host, titleSelector, dateSelector, conten } else { const $content = $(contentSelector.content); // Convert wp_pdf_player iframes to download links - $content.find('.wp_pdf_player').each(function () { - const $iframe = $(this); + $content.find('.wp_pdf_player').each((_, el) => { + const $iframe = $(el); const pdfSrc = $iframe.attr('pdfsrc') || ''; const pdfUrl = pdfSrc.startsWith('http') ? pdfSrc : new URL(pdfSrc, host).href; $iframe.replaceWith(`

    附件下载

    `); }); // Fix relative URLs - $content.find('a').each(function () { - const $a = $(this); + $content.find('a').each((_, el) => { + const $a = $(el); const href = $a.attr('href'); if (href && !href.startsWith('http')) { $a.attr('href', new URL(href, host).href); diff --git a/lib/routes/nwnu/routes/lib/embed-resource.ts b/lib/routes/nwnu/routes/lib/embed-resource.ts index de002b3630b1..974738ca1d6d 100644 --- a/lib/routes/nwnu/routes/lib/embed-resource.ts +++ b/lib/routes/nwnu/routes/lib/embed-resource.ts @@ -3,8 +3,8 @@ import { load } from 'cheerio'; export function processEmbedPDF(baseurl: string, html: string) { const $ = load(html); - $('div.wp_pdf_player').each(function () { - const $div = $(this); + $('div.wp_pdf_player').each((_, el) => { + const $div = $(el); const pdfsrc = $div.attr('pdfsrc') || ''; const downloadUrl = new URL(pdfsrc, baseurl).href; const newDiv = `

    点击下载 PDF 文件资源

    `; diff --git a/lib/routes/nytimes/daily-briefing-chinese.tsx b/lib/routes/nytimes/daily-briefing-chinese.tsx index cb0d28e8e400..712b93166885 100644 --- a/lib/routes/nytimes/daily-briefing-chinese.tsx +++ b/lib/routes/nytimes/daily-briefing-chinese.tsx @@ -70,8 +70,8 @@ async function handler() { const images = detailResponse.data.match(/"url":"[^{}]+","name":"articleLarge"/g).map((e) => JSON.parse(`{${e}}`).url); let i = 0; - content('figure').each(function () { - content(this).html( + content('figure').each((_, el) => { + content(el).html( renderToString(
    diff --git a/lib/routes/odaily/activity.ts b/lib/routes/odaily/activity.ts index b414ba934b4e..554b90bfa24f 100644 --- a/lib/routes/odaily/activity.ts +++ b/lib/routes/odaily/activity.ts @@ -56,10 +56,10 @@ async function handler(ctx) { const content = load(detailResponse.data.match(/"content":"(.*)"}},"secondaryList":/)[1]); - content('img').each(function () { - content(this).attr( + content('img').each((_, el) => { + content(el).attr( 'src', - content(this) + content(el) .attr('src') .replaceAll(String.raw`\"`, '') ); diff --git a/lib/routes/odaily/user.ts b/lib/routes/odaily/user.ts index b0ec1cf1105e..1a5e95b7dc85 100644 --- a/lib/routes/odaily/user.ts +++ b/lib/routes/odaily/user.ts @@ -60,10 +60,10 @@ async function handler(ctx) { const content = load(detailResponse.data.match(/"content":"(.*)","extraction_tags":/)[1]); - content('img').each(function () { - content(this).attr( + content('img').each((_, el) => { + content(el).attr( 'src', - content(this) + content(el) .attr('src') .replaceAll(String.raw`\"`, '') ); diff --git a/lib/routes/onet/utils.ts b/lib/routes/onet/utils.ts index d90710018b53..f43968e9c3fe 100644 --- a/lib/routes/onet/utils.ts +++ b/lib/routes/onet/utils.ts @@ -18,9 +18,7 @@ const parseArticleContent = ($) => { const content = $('[itemprop="articleBody"]'); $('*') .contents() - .filter(function () { - return this.nodeType === 8; - }) + .filter((_, el) => el.nodeType === 8) .remove(); content.find('aside').remove(); content.find('.videoPlayerContainer').remove(); diff --git a/lib/routes/oreno3d/get-sec-page-data.ts b/lib/routes/oreno3d/get-sec-page-data.ts index a99feda2578b..4bc1f5daa09b 100644 --- a/lib/routes/oreno3d/get-sec-page-data.ts +++ b/lib/routes/oreno3d/get-sec-page-data.ts @@ -30,29 +30,29 @@ async function sync_detail(link) { // 存为列表 $(sec_page_selector) .find(author_selector) - .each(function (i) { - authors[i] = $(this).text(); + .each((i, el) => { + authors[i] = $(el).text(); authors[i].replace(' ', ''); // 去空格 authors[i].trim(); // 去首尾空格 }); $(sec_page_selector) .find(origins_selector) - .each(function (i) { - origins[i] = $(this).text(); + .each((i, el) => { + origins[i] = $(el).text(); origins[i].replace(' ', ''); origins[i].trim(); }); $(sec_page_selector) .find(characters_selector) - .each(function (i) { - characters[i] = $(this).text(); + .each((i, el) => { + characters[i] = $(el).text(); characters[i].replace(' ', ''); characters[i].trim(); }); $(sec_page_selector) .find(tags_selector) - .each(function (i) { - tags[i] = $(this).text(); + .each((i, el) => { + tags[i] = $(el).text(); tags[i].replace(' ', ''); tags[i].trim(); }); diff --git a/lib/routes/qq88/index.ts b/lib/routes/qq88/index.ts index d446c9bd2e84..31d75295bb1c 100644 --- a/lib/routes/qq88/index.ts +++ b/lib/routes/qq88/index.ts @@ -67,8 +67,8 @@ async function handler(ctx) { item.enclosure_url = links.eq(-1).attr('href'); item.description = `
    `; - links.each(function () { - item.description += `
  • ${content(this).text()}
  • `; + links.each((_, el) => { + item.description += `
  • ${content(el).text()}
  • `; }); return item; diff --git a/lib/routes/researchgate/publications.ts b/lib/routes/researchgate/publications.ts index 49e8f3f18e55..296640a034b3 100644 --- a/lib/routes/researchgate/publications.ts +++ b/lib/routes/researchgate/publications.ts @@ -64,8 +64,8 @@ async function handler(ctx) { const authors = []; - content('meta[property="citation_author"]').each(function () { - authors.push(content(this).attr('content')); + content('meta[property="citation_author"]').each((_, el) => { + authors.push(content(el).attr('content')); }); item.author = authors.join(', '); diff --git a/lib/routes/right/forum.ts b/lib/routes/right/forum.ts index 0cf8a887b40d..2bc77169e123 100644 --- a/lib/routes/right/forum.ts +++ b/lib/routes/right/forum.ts @@ -38,8 +38,8 @@ async function handler(ctx) { const $ = load(response.data); - $('a[title="隐藏置顶帖"]').each(function () { - $(this).parents('tbody').remove(); + $('a[title="隐藏置顶帖"]').each((_, el) => { + $(el).parents('tbody').remove(); }); let items = $('.s') diff --git a/lib/routes/rsc/journal.tsx b/lib/routes/rsc/journal.tsx index 7deb5b38425f..71755f674cd3 100644 --- a/lib/routes/rsc/journal.tsx +++ b/lib/routes/rsc/journal.tsx @@ -51,9 +51,9 @@ async function handler(ctx) { let $ = load(response); - $('div.capsule__article-image').each(function () { - const image = $(this).find('img').prop('data-original'); - $(this).replaceWith( + $('div.capsule__article-image').each((_, el) => { + const image = $(el).find('img').prop('data-original'); + $(el).replaceWith( renderToString( image ? (
    diff --git a/lib/routes/ruancan/utils.ts b/lib/routes/ruancan/utils.ts index 9b4365a7b118..9c8c335d2627 100644 --- a/lib/routes/ruancan/utils.ts +++ b/lib/routes/ruancan/utils.ts @@ -39,14 +39,14 @@ const fetchFeed = async (ctx, currentUrl) => { content('.entry-copyright').remove(); - content('.entry-content div').each(function () { - if (/^ruanc-\d+/.test(content(this).attr('id'))) { - content(this).remove(); + content('.entry-content div').each((_, el) => { + if (/^ruanc-\d+/.test(content(el).attr('id'))) { + content(el).remove(); } }); - content('figure').each(function () { - content(this).html(``); + content('figure').each((_, el) => { + content(el).html(``); }); item.description = content('.entry-content').html(); diff --git a/lib/routes/saraba1st/digest.tsx b/lib/routes/saraba1st/digest.tsx index 027ba7405080..4eac1717b9aa 100644 --- a/lib/routes/saraba1st/digest.tsx +++ b/lib/routes/saraba1st/digest.tsx @@ -84,16 +84,16 @@ async function fetchContent(url) { const stubS = subind('
    '); subind('#postlist') .find('div[id*="post_"] ') - .each(function () { - if (subind(this).find('td[id*="postmessage_"]').length > 0) { + .each((_, el) => { + if (subind(el).find('td[id*="postmessage_"]').length > 0) { const section = renderToString( ); @@ -101,8 +101,8 @@ async function fetchContent(url) { } }); - stubS.find('img').each(function () { - const img = subind(this); + stubS.find('img').each((_, el) => { + const img = subind(el); const file = img.attr('file'); if (file) { img.attr('src', file); diff --git a/lib/routes/sensortower/blog.ts b/lib/routes/sensortower/blog.ts index bf5c6533c371..01a483d2693c 100644 --- a/lib/routes/sensortower/blog.ts +++ b/lib/routes/sensortower/blog.ts @@ -67,10 +67,10 @@ async function handler(ctx) { content('h5').parent().remove(); content('div[data-testid="Text-embedded-entry-block"]').remove(); - content('img').each(function () { - const image = (content(this).attr('srcset') ?? content(this).attr('src')).split('?w=')[0]; + content('img').each((_, el) => { + const image = (content(el).attr('srcset') ?? content(el).attr('src')).split('?w=')[0]; - content(this).replaceWith(renderDescription({ image })); + content(el).replaceWith(renderDescription({ image })); }); item.title = detail.title; diff --git a/lib/routes/shoppingdesign/posts.ts b/lib/routes/shoppingdesign/posts.ts index 4a4595a61895..a4702417d535 100644 --- a/lib/routes/shoppingdesign/posts.ts +++ b/lib/routes/shoppingdesign/posts.ts @@ -44,8 +44,8 @@ async function handler() { const response = await got(`${link}?sn_f=1`); const $ = load(response.data); const article = $('.left article .htmlview'); - article.find('d-image').each(function () { - $(this).replaceWith(``); + article.find('d-image').each((_, el) => { + $(el).replaceWith(``); }); return { diff --git a/lib/routes/sinchew/index.tsx b/lib/routes/sinchew/index.tsx index e14e767cb692..65873e01d699 100644 --- a/lib/routes/sinchew/index.tsx +++ b/lib/routes/sinchew/index.tsx @@ -60,12 +60,12 @@ async function handler(ctx) { content('.ads-frame, .read-more-msg').remove(); - content('figure').each(function () { - content(this).replaceWith( + content('figure').each((_, el) => { + content(el).replaceWith( renderToString(
    - -
    {content(this).find('figcaption').text()}
    + +
    {content(el).find('figcaption').text()}
    ) ); diff --git a/lib/routes/subhd/index.ts b/lib/routes/subhd/index.ts index 926c2855b105..e81600b2967d 100644 --- a/lib/routes/subhd/index.ts +++ b/lib/routes/subhd/index.ts @@ -41,8 +41,8 @@ async function handler(ctx) { const $ = load(response.data); - $('.align-middle').each(function () { - $(this).removeClass('link-dark'); + $('.align-middle').each((_, el) => { + $(el).removeClass('link-dark'); }); let items = $('.link-dark') diff --git a/lib/routes/swissinfo/index.ts b/lib/routes/swissinfo/index.ts index 2de079e864e5..f4935f3bf17b 100644 --- a/lib/routes/swissinfo/index.ts +++ b/lib/routes/swissinfo/index.ts @@ -78,8 +78,8 @@ async function handler(ctx) { content('.si-detail__content .si-teaser').remove(); content('.show-for-sr, time, address, .si-detail__translation').remove(); - content('picture').each(function () { - content(this).html(``); + content('picture').each((_, el) => { + content(el).html(``); }); item.description = content('.si-detail__content').html(); diff --git a/lib/routes/telegram/channel.ts b/lib/routes/telegram/channel.ts index 10d433fba0ba..878dabd697e1 100644 --- a/lib/routes/telegram/channel.ts +++ b/lib/routes/telegram/channel.ts @@ -658,13 +658,13 @@ async function handler(ctx) { if (msgTypes.includes(UNSUPPORTED)) { if (unsupportedNodes.length) { unsupportedHtml += '
    '; - unsupportedNodes.find('.message_media_not_supported_label').each(function () { - const $this = $(this); + unsupportedNodes.find('.message_media_not_supported_label').each((_, el) => { + const $this = $(el); unsupportedTitle += $this.text(); unsupportedHtml += `

    ${$this.text()}

    `; }); - unsupportedNodes.find('.message_media_view_in_telegram').each(function () { - const $this = $(this); + unsupportedNodes.find('.message_media_view_in_telegram').each((_, el) => { + const $this = $(el); unsupportedHtml += $this.attr('href') ? `

    ${$this.text()}

    ` : `

    ${$this.text()}

    `; }); unsupportedHtml += '
    '; diff --git a/lib/routes/thenewslens/index.ts b/lib/routes/thenewslens/index.ts index c8d3930023d0..e4b3c71d0e8a 100644 --- a/lib/routes/thenewslens/index.ts +++ b/lib/routes/thenewslens/index.ts @@ -59,10 +59,10 @@ async function handler(ctx) { content('a[data-sk="tooltip_parent"]').parent().remove(); content('.ad-section, .recommender-title, .navigation-content').remove(); - content('.article-img-container').each(function () { - content(this).replaceWith( + content('.article-img-container').each((_, el) => { + content(el).replaceWith( renderDescription({ - image: content(this).find('img')?.attr('data-srcset').split('?')[0] ?? undefined, + image: content(el).find('img')?.attr('data-srcset').split('?')[0] ?? undefined, }) ); }); diff --git a/lib/routes/wechat/announce.ts b/lib/routes/wechat/announce.ts index 37b124dae77b..c1cbc2c66dd9 100644 --- a/lib/routes/wechat/announce.ts +++ b/lib/routes/wechat/announce.ts @@ -37,8 +37,8 @@ async function handler() { const $ = load(htmlString); const announceList = []; - $('.mp_news_list > .mp_news_item').each(function () { - const $item = $(this); + $('.mp_news_list > .mp_news_item').each((_, el) => { + const $item = $(el); const $link = $item.find('a'); const time = $item.find('.read_more').text(); const title = $item.find('strong').text(); diff --git a/lib/routes/wenku8/chapter.ts b/lib/routes/wenku8/chapter.ts index 7e1046de22f9..980b33a69c2e 100644 --- a/lib/routes/wenku8/chapter.ts +++ b/lib/routes/wenku8/chapter.ts @@ -40,10 +40,10 @@ async function handler(ctx) { const chapter_item = []; - $('.ccss>a').each(function () { + $('.ccss>a').each((_, el) => { chapter_item.push({ - title: $(this).text(), - link: `https://www.wenku8.net/novel/${index}/${id}/` + $(this).attr('href'), + title: $(el).text(), + link: `https://www.wenku8.net/novel/${index}/${id}/` + $(el).attr('href'), }); }); diff --git a/lib/routes/whu/util.ts b/lib/routes/whu/util.ts index 12e5ca908f94..a95d883c2ff5 100644 --- a/lib/routes/whu/util.ts +++ b/lib/routes/whu/util.ts @@ -48,9 +48,9 @@ const getItemDetail = async (item, rootUrl) => { // Missing the `src` properties for the images. // The `src` property should be replaced with the value of `orisrc` to show the image. // Replace images in the content with custom JSX template. - content('p.vsbcontent_img').each(function () { - const image = content(this).find('img'); - content(this).replaceWith( + content('p.vsbcontent_img').each((_, el) => { + const image = content(el).find('img'); + content(el).replaceWith( renderDescription({ image: { src: new URL(image.prop('orisrc'), rootUrl).href, @@ -63,8 +63,8 @@ const getItemDetail = async (item, rootUrl) => { // Missing the `src` properties for the videos. // The `src` property should be replaced with the value of `vurl` to play the video. // Replace videos in the content with custom JSX template. - content('script[name="_videourl"]').each(function () { - const video = content(this); + content('script[name="_videourl"]').each((_, el) => { + const video = content(el); video.replaceWith( renderDescription({ video: { diff --git a/lib/routes/wsj/utils.tsx b/lib/routes/wsj/utils.tsx index 109c3a785968..4cba5ccac445 100644 --- a/lib/routes/wsj/utils.tsx +++ b/lib/routes/wsj/utils.tsx @@ -42,8 +42,8 @@ const parseArticle = (item) => article.find('.bylineWrap').each((i, e) => { $(e) .find('p') - .each(function () { - $(this).replaceWith($(this).html()); + .each((_, el) => { + $(el).replaceWith($(el).html()); }); }); diff --git a/lib/routes/wzu/news.ts b/lib/routes/wzu/news.ts index 2f2ffe7d74c9..e73e22618308 100644 --- a/lib/routes/wzu/news.ts +++ b/lib/routes/wzu/news.ts @@ -39,10 +39,10 @@ async function loadContent(link) { // 图片相对链接处理 $('img').attr('src', (n, v) => new URL(v, baseUrl).href); // 视频相对链接处理,替换原有播放方法 showVsbVideo - $('.vsbcontent_video').each(function () { - const u1 = $(this).find('script').attr('vurl'); + $('.vsbcontent_video').each((_, el) => { + const u1 = $(el).find('script').attr('vurl'); videoUrl = new URL(u1, baseUrl).href; - return $(this) + $(el) .html('') .html(); }); diff --git a/lib/routes/xjtu/dean.ts b/lib/routes/xjtu/dean.ts index 9222592526a8..d3d43b86764e 100644 --- a/lib/routes/xjtu/dean.ts +++ b/lib/routes/xjtu/dean.ts @@ -16,8 +16,8 @@ const parseContent = (htmlString) => { .map((element) => $(element).text().trim()); const content = $('[id^="vsb_content"]'); - $('form > div > ul a').each(function () { - $(this).appendTo(content); + $('form > div > ul a').each((_, el) => { + $(el).appendTo(content); $('
    ').appendTo(content); }); diff --git a/lib/routes/xjtu/ee-jzxx.ts b/lib/routes/xjtu/ee-jzxx.ts index 8d8086a3b434..d1103320bb96 100644 --- a/lib/routes/xjtu/ee-jzxx.ts +++ b/lib/routes/xjtu/ee-jzxx.ts @@ -76,8 +76,8 @@ async function handler(ctx) { const description = content('div.art-body.wow.fadeInUp') .clone() // 创建副本防止修改原始内容 .find('ul li') // 定位到附件列表项 - .each(function () { - const $li = $(this); + .each((_, el) => { + const $li = $(el); const newText = $li.html()?.replaceAll(/已下载[\s\S]*?<\/span>次/g, '') ?? ''; $li.html(newText.replace(/<\/a>\s*$/, '')); }) diff --git a/lib/routes/xmnn/epaper.ts b/lib/routes/xmnn/epaper.ts index 3ce7c1dbef45..ceec1c7170ea 100644 --- a/lib/routes/xmnn/epaper.ts +++ b/lib/routes/xmnn/epaper.ts @@ -70,8 +70,8 @@ async function handler(ctx) { $('#pdfsrc').remove(); $('.bigImg, .smallImg').remove(); - $('a img').each(function () { - $(this).parent().remove(); + $('a img').each((_, el) => { + $(el).parent().remove(); }); let items = $('.br1, .br2, .titss') diff --git a/lib/routes/xyu/notices.ts b/lib/routes/xyu/notices.ts index 02b3f035272e..bc700b68c604 100644 --- a/lib/routes/xyu/notices.ts +++ b/lib/routes/xyu/notices.ts @@ -88,8 +88,8 @@ async function handler() { if (content) { const $content = load(content); - $content('a').each(function () { - const a = $(this); + $content('a').each((_, el) => { + const a = $(el); const href = a.attr('href'); if (href && !href.startsWith('http')) { a.attr('href', new URL(href, baseUrl).href); diff --git a/lib/routes/ycwb/index.tsx b/lib/routes/ycwb/index.tsx index 283c17f13706..7f8682620384 100644 --- a/lib/routes/ycwb/index.tsx +++ b/lib/routes/ycwb/index.tsx @@ -82,17 +82,15 @@ async function handler(ctx) { const $comments = content('.main_article') .contents() - .filter(function () { - return this.nodeType === 8; - }); - $comments.each(function () { + .filter((_, el) => el.nodeType === 8); + $comments.each((_, el) => { // Remove useless comments - if (/audioPlayer|audio-box/.test(this.data)) { - this.data = ''; + if (/audioPlayer|audio-box/.test(el.data)) { + el.data = ''; } // Filter author from comments - if (/author/.test(this.data)) { - item.author = this.data.split('')[1].split('')[0]; + if (/author/.test(el.data)) { + item.author = el.data.split('')[1].split('')[0]; } }); diff --git a/lib/routes/zcool/discover.ts b/lib/routes/zcool/discover.ts index 46b6b2e408d8..7777f7144724 100644 --- a/lib/routes/zcool/discover.ts +++ b/lib/routes/zcool/discover.ts @@ -270,12 +270,12 @@ async function handler(ctx) { const videos = detailResponse.data.match(/source: '(https:\/\/video\.zcool\.cn\/.*)',/g); if (videos) { - content('.video-content-box').each(function (i) { + content('.video-content-box').each((i, el) => { if (i >= videos.length) { return; } - content(this).append( + content(el).append( renderDescription({ video: videos[i].match(/source: '(https:\/\/video\.zcool\.cn\/.*)'/)[1], }) From 88eb97e3749b4547bc2a28e205f39afd3f5a38b0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 May 2026 18:35:49 +0800 Subject: [PATCH 370/439] chore(deps-dev): bump @cloudflare/workers-types in the cloudflare group (#21965) Bumps the cloudflare group with 1 update: [@cloudflare/workers-types](https://github.com/cloudflare/workerd). Updates `@cloudflare/workers-types` from 4.20260508.1 to 4.20260511.1 - [Release notes](https://github.com/cloudflare/workerd/releases) - [Changelog](https://github.com/cloudflare/workerd/blob/main/RELEASE.md) - [Commits](https://github.com/cloudflare/workerd/commits) --- updated-dependencies: - dependency-name: "@cloudflare/workers-types" dependency-version: 4.20260511.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: cloudflare ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index fd23fc2dcd81..b6ab8b4ef9a8 100644 --- a/package.json +++ b/package.json @@ -147,7 +147,7 @@ "@bbob/types": "4.3.1", "@cloudflare/containers": "0.3.3", "@cloudflare/playwright": "1.3.0", - "@cloudflare/workers-types": "4.20260508.1", + "@cloudflare/workers-types": "4.20260511.1", "@eslint/eslintrc": "3.3.5", "@eslint/js": "10.0.1", "@oxlint/plugins": "1.62.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1f98910ee6e5..c9016b8cd077 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -297,8 +297,8 @@ importers: specifier: 1.3.0 version: 1.3.0 '@cloudflare/workers-types': - specifier: 4.20260508.1 - version: 4.20260508.1 + specifier: 4.20260511.1 + version: 4.20260511.1 '@eslint/eslintrc': specifier: 3.3.5 version: 3.3.5 @@ -472,7 +472,7 @@ importers: version: 4.1.5(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.2)(@vitest/coverage-v8@4.1.5)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.2)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.4)) wrangler: specifier: 4.90.0 - version: 4.90.0(@cloudflare/workers-types@4.20260508.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10) + version: 4.90.0(@cloudflare/workers-types@4.20260511.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10) yaml-eslint-parser: specifier: 2.0.0 version: 2.0.0 @@ -644,8 +644,8 @@ packages: cpu: [x64] os: [win32] - '@cloudflare/workers-types@4.20260508.1': - resolution: {integrity: sha512-0KNR+UkrYJYmtyQ5tOjUT/wt/U34FuE4Y8FLSbPMwFrGQQpmvR9wKghwRkL4d28y5t9jI9cvGqeAoo/cerTnCQ==} + '@cloudflare/workers-types@4.20260511.1': + resolution: {integrity: sha512-FA+si7cOq9i/gtCHhIc0XJL0l1F/ApF+m00752Aj7WZFJrj3ZulT2T8/+rT3BabMT0QEnqFEGIqCgrmqhgEfMg==} '@colors/colors@1.6.0': resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} @@ -6656,7 +6656,7 @@ snapshots: '@cloudflare/workerd-windows-64@1.20260507.1': optional: true - '@cloudflare/workers-types@4.20260508.1': {} + '@cloudflare/workers-types@4.20260511.1': {} '@colors/colors@1.6.0': {} @@ -12334,7 +12334,7 @@ snapshots: '@cloudflare/workerd-linux-arm64': 1.20260507.1 '@cloudflare/workerd-windows-64': 1.20260507.1 - wrangler@4.90.0(@cloudflare/workers-types@4.20260508.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10): + wrangler@4.90.0(@cloudflare/workers-types@4.20260511.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10): dependencies: '@cloudflare/kv-asset-handler': 0.5.0 '@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260507.1) @@ -12345,7 +12345,7 @@ snapshots: unenv: 2.0.0-rc.24 workerd: 1.20260507.1 optionalDependencies: - '@cloudflare/workers-types': 4.20260508.1 + '@cloudflare/workers-types': 4.20260511.1 fsevents: 2.3.3 transitivePeerDependencies: - bufferutil From 6471a044a8a7e6278feb2f9b998c91077bb23c2b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 May 2026 10:39:46 +0000 Subject: [PATCH 371/439] chore(deps): bump @hono/node-server from 2.0.1 to 2.0.2 (#21969) Bumps [@hono/node-server](https://github.com/honojs/node-server) from 2.0.1 to 2.0.2. - [Release notes](https://github.com/honojs/node-server/releases) - [Commits](https://github.com/honojs/node-server/compare/v2.0.1...v2.0.2) --- updated-dependencies: - dependency-name: "@hono/node-server" dependency-version: 2.0.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index b6ab8b4ef9a8..374bd3f1cba7 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "@bbob/plugin-helper": "4.3.1", "@bbob/preset-html5": "4.3.1", "@honeybadger-io/js": "6.14.0", - "@hono/node-server": "2.0.1", + "@hono/node-server": "2.0.2", "@hono/zod-openapi": "1.3.0", "@jocmp/mercury-parser": "3.0.8", "@notionhq/client": "5.20.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c9016b8cd077..40dbe42a4110 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -44,8 +44,8 @@ importers: specifier: 6.14.0 version: 6.14.0 '@hono/node-server': - specifier: 2.0.1 - version: 2.0.1(hono@4.12.18) + specifier: 2.0.2 + version: 2.0.2(hono@4.12.18) '@hono/zod-openapi': specifier: 1.3.0 version: 1.3.0(hono@4.12.18)(zod@4.4.3) @@ -1251,8 +1251,8 @@ packages: engines: {node: '>=14'} hasBin: true - '@hono/node-server@2.0.1': - resolution: {integrity: sha512-jI9yMDyFpqBeSighf/zlXnQG/nl9AyBc6aAgy4XtxJMyt/CNyJpvPfzDD+bCc2zAOmhhqtF6TnmIaY+xV4mIrw==} + '@hono/node-server@2.0.2': + resolution: {integrity: sha512-tXlTi1h/4V7sDe7i97IVP+9re9ZU7wXZZggnR5ucCRclf1+AX6YhGStrR5w8bLj+3Mlyl0pKfBh9gqTqqnGKfQ==} engines: {node: '>=20'} peerDependencies: hono: ^4 @@ -7029,7 +7029,7 @@ snapshots: '@types/aws-lambda': 8.10.161 '@types/express': 5.0.6 - '@hono/node-server@2.0.1(hono@4.12.18)': + '@hono/node-server@2.0.2(hono@4.12.18)': dependencies: hono: 4.12.18 From 0efcf831dd9b645ba21e6cb358516fc76ceea2f0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 May 2026 10:39:56 +0000 Subject: [PATCH 372/439] chore(deps): bump pnpm/action-setup from 6.0.5 to 6.0.6 (#21968) Bumps [pnpm/action-setup](https://github.com/pnpm/action-setup) from 6.0.5 to 6.0.6. - [Release notes](https://github.com/pnpm/action-setup/releases) - [Commits](https://github.com/pnpm/action-setup/compare/8912a9102ac27614460f54aedde9e1e7f9aec20d...91ab88e2619ed1f46221f0ba42d1492c02baf788) --- updated-dependencies: - dependency-name: pnpm/action-setup dependency-version: 6.0.6 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build-assets.yml | 2 +- .github/workflows/comment-on-issue.yml | 2 +- .github/workflows/docker-test-cont.yml | 2 +- .github/workflows/format.yml | 2 +- .github/workflows/issue-command.yml | 2 +- .github/workflows/lint.yml | 2 +- .github/workflows/npm-publish.yml | 2 +- .github/workflows/test-full-routes.yml | 2 +- .github/workflows/test.yml | 6 +++--- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build-assets.yml b/.github/workflows/build-assets.yml index c5ba81619275..bdcf08469d1c 100644 --- a/.github/workflows/build-assets.yml +++ b/.github/workflows/build-assets.yml @@ -20,7 +20,7 @@ jobs: - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Install pnpm - uses: pnpm/action-setup@8912a9102ac27614460f54aedde9e1e7f9aec20d # v6.0.5 + uses: pnpm/action-setup@91ab88e2619ed1f46221f0ba42d1492c02baf788 # v6.0.6 - name: Use Node.js Active LTS uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: diff --git a/.github/workflows/comment-on-issue.yml b/.github/workflows/comment-on-issue.yml index 1b080a235164..48e973b1f522 100644 --- a/.github/workflows/comment-on-issue.yml +++ b/.github/workflows/comment-on-issue.yml @@ -14,7 +14,7 @@ jobs: if: github.event.sender.login != 'issuehunt-oss[bot]' steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@8912a9102ac27614460f54aedde9e1e7f9aec20d # v6.0.5 + - uses: pnpm/action-setup@91ab88e2619ed1f46221f0ba42d1492c02baf788 # v6.0.6 - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: lts/* diff --git a/.github/workflows/docker-test-cont.yml b/.github/workflows/docker-test-cont.yml index 63354d4fb459..f1fb54e6ee71 100644 --- a/.github/workflows/docker-test-cont.yml +++ b/.github/workflows/docker-test-cont.yml @@ -42,7 +42,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - uses: pnpm/action-setup@8912a9102ac27614460f54aedde9e1e7f9aec20d # v6.0.5 + - uses: pnpm/action-setup@91ab88e2619ed1f46221f0ba42d1492c02baf788 # v6.0.6 - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml index 582c2161ada6..3f520ba09d22 100644 --- a/.github/workflows/format.yml +++ b/.github/workflows/format.yml @@ -15,7 +15,7 @@ jobs: steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@8912a9102ac27614460f54aedde9e1e7f9aec20d # v6.0.5 + - uses: pnpm/action-setup@91ab88e2619ed1f46221f0ba42d1492c02baf788 # v6.0.6 - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: lts/* diff --git a/.github/workflows/issue-command.yml b/.github/workflows/issue-command.yml index 79bc948acd64..1b65ce41f14e 100644 --- a/.github/workflows/issue-command.yml +++ b/.github/workflows/issue-command.yml @@ -111,7 +111,7 @@ jobs: ref: ${{ fromJson(steps.pr-data.outputs.data).head.ref }} - name: Install pnpm - uses: pnpm/action-setup@8912a9102ac27614460f54aedde9e1e7f9aec20d # v6.0.5 + uses: pnpm/action-setup@91ab88e2619ed1f46221f0ba42d1492c02baf788 # v6.0.6 - name: Use Node.js Active LTS uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index f6c519f58379..073fc7cba8c4 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -21,7 +21,7 @@ jobs: security-events: write steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@8912a9102ac27614460f54aedde9e1e7f9aec20d # v6.0.5 + - uses: pnpm/action-setup@91ab88e2619ed1f46221f0ba42d1492c02baf788 # v6.0.6 - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: lts/* diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index f1c95cc35f02..79fececbc2ca 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -23,7 +23,7 @@ jobs: HUSKY: 0 steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@8912a9102ac27614460f54aedde9e1e7f9aec20d # v6.0.5 + - uses: pnpm/action-setup@91ab88e2619ed1f46221f0ba42d1492c02baf788 # v6.0.6 - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: lts/* diff --git a/.github/workflows/test-full-routes.yml b/.github/workflows/test-full-routes.yml index b65c471bb2c0..11f03e787b58 100644 --- a/.github/workflows/test-full-routes.yml +++ b/.github/workflows/test-full-routes.yml @@ -16,7 +16,7 @@ jobs: - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Install pnpm - uses: pnpm/action-setup@8912a9102ac27614460f54aedde9e1e7f9aec20d # v6.0.5 + uses: pnpm/action-setup@91ab88e2619ed1f46221f0ba42d1492c02baf788 # v6.0.6 - name: Use Node.js Active LTS uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 24216edbcee6..dc623d56a581 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -32,7 +32,7 @@ jobs: name: Vitest on Node ${{ matrix.node-version }} steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@8912a9102ac27614460f54aedde9e1e7f9aec20d # v6.0.5 + - uses: pnpm/action-setup@91ab88e2619ed1f46221f0ba42d1492c02baf788 # v6.0.6 - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: ${{ matrix.node-version }} @@ -77,7 +77,7 @@ jobs: name: Vitest Playwright on Node ${{ matrix.node-version }} with ${{ matrix.chromium.name }} steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@8912a9102ac27614460f54aedde9e1e7f9aec20d # v6.0.5 + - uses: pnpm/action-setup@91ab88e2619ed1f46221f0ba42d1492c02baf788 # v6.0.6 - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: ${{ matrix.node-version }} @@ -126,7 +126,7 @@ jobs: name: Build radar and maintainer on Node ${{ matrix.node-version }} steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@8912a9102ac27614460f54aedde9e1e7f9aec20d # v6.0.5 + - uses: pnpm/action-setup@91ab88e2619ed1f46221f0ba42d1492c02baf788 # v6.0.6 - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: ${{ matrix.node-version }} From a94c0326fbf25d0ad3894277951c8f20b1d7e7d9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 May 2026 10:41:56 +0000 Subject: [PATCH 373/439] chore(deps-dev): bump lint-staged from 17.0.2 to 17.0.4 (#21970) Bumps [lint-staged](https://github.com/lint-staged/lint-staged) from 17.0.2 to 17.0.4. - [Release notes](https://github.com/lint-staged/lint-staged/releases) - [Changelog](https://github.com/lint-staged/lint-staged/blob/main/CHANGELOG.md) - [Commits](https://github.com/lint-staged/lint-staged/compare/v17.0.2...v17.0.4) --- updated-dependencies: - dependency-name: lint-staged dependency-version: 17.0.4 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 56 +++++++++++++++++++++++++------------------------- 2 files changed, 29 insertions(+), 29 deletions(-) diff --git a/package.json b/package.json index 374bd3f1cba7..f675acecc933 100644 --- a/package.json +++ b/package.json @@ -187,7 +187,7 @@ "got": "15.0.5", "husky": "9.1.7", "js-beautify": "1.15.4", - "lint-staged": "17.0.2", + "lint-staged": "17.0.4", "magic-string": "0.30.21", "mockdate": "3.0.5", "msw": "2.13.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 40dbe42a4110..a00ef94d5f66 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -417,8 +417,8 @@ importers: specifier: 1.15.4 version: 1.15.4 lint-staged: - specifier: 17.0.2 - version: 17.0.2 + specifier: 17.0.4 + version: 17.0.4 magic-string: specifier: 0.30.21 version: 0.30.21 @@ -466,10 +466,10 @@ importers: version: 11.0.5 vite-tsconfig-paths: specifier: 6.1.1 - version: 6.1.1(typescript@5.9.3)(vite@7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.4)) + version: 6.1.1(typescript@5.9.3)(vite@7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)) vitest: specifier: 4.1.5 - version: 4.1.5(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.2)(@vitest/coverage-v8@4.1.5)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.2)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.4)) + version: 4.1.5(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.2)(@vitest/coverage-v8@4.1.5)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.2)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)) wrangler: specifier: 4.90.0 version: 4.90.0(@cloudflare/workers-types@4.20260511.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10) @@ -4138,8 +4138,8 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-east-asian-width@1.5.0: - resolution: {integrity: sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==} + get-east-asian-width@1.6.0: + resolution: {integrity: sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA==} engines: {node: '>=18'} get-stream@8.0.1: @@ -4655,8 +4655,8 @@ packages: linkify-it@5.0.0: resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} - lint-staged@17.0.2: - resolution: {integrity: sha512-Rbr6rdmbCn1fIDHBZpn0madg0hEkdlh+QwajnL3Qq0ZUq/icAJfLGj9BVBajAXi7657ZzKQ7kobGP9S5XOHYRw==} + lint-staged@17.0.4: + resolution: {integrity: sha512-+rU9lSUyVOZ/hDUmRLVGzyS2v73cDdQjX+XQz1AaOdIE4RysLq0HoPW2HrrgeNCLklkhi904VBU1bmgWLHVnkA==} engines: {node: '>=22.22.1'} hasBin: true @@ -6436,8 +6436,8 @@ packages: engines: {node: '>= 14.6'} hasBin: true - yaml@2.8.4: - resolution: {integrity: sha512-ml/JPOj9fOQK8RNnWojA67GbZ0ApXAUlN2UQclwv2eVgTgn7O9gg9o7paZWKMp4g0H3nTLtS9LVzhkpOFIKzog==} + yaml@2.9.0: + resolution: {integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==} engines: {node: '>= 14.6'} hasBin: true @@ -8628,7 +8628,7 @@ snapshots: obug: 2.1.1 std-env: 4.1.0 tinyrainbow: 3.1.0 - vitest: 4.1.5(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.2)(@vitest/coverage-v8@4.1.5)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.2)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.4)) + vitest: 4.1.5(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.2)(@vitest/coverage-v8@4.1.5)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.2)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)) '@vitest/expect@4.1.5': dependencies: @@ -8639,14 +8639,14 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.5(msw@2.13.4(@types/node@25.6.2)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.4))': + '@vitest/mocker@4.1.5(msw@2.13.4(@types/node@25.6.2)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0))': dependencies: '@vitest/spy': 4.1.5 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: msw: 2.13.4(@types/node@25.6.2)(typescript@5.9.3) - vite: 7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.4) + vite: 7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0) '@vitest/pretty-format@4.1.5': dependencies: @@ -9745,7 +9745,7 @@ snapshots: get-caller-file@2.0.5: {} - get-east-asian-width@1.5.0: {} + get-east-asian-width@1.6.0: {} get-stream@8.0.1: {} @@ -10129,7 +10129,7 @@ snapshots: is-fullwidth-code-point@5.1.0: dependencies: - get-east-asian-width: 1.5.0 + get-east-asian-width: 1.6.0 is-glob@4.0.3: dependencies: @@ -10347,14 +10347,14 @@ snapshots: dependencies: uc.micro: 2.1.0 - lint-staged@17.0.2: + lint-staged@17.0.4: dependencies: listr2: 10.2.1 picomatch: 4.0.4 string-argv: 0.3.2 tinyexec: 1.1.2 optionalDependencies: - yaml: 2.8.4 + yaml: 2.9.0 listr2@10.2.1: dependencies: @@ -10977,7 +10977,7 @@ snapshots: openapi3-ts@4.5.0: dependencies: - yaml: 2.8.4 + yaml: 2.9.0 optionator@0.9.4: dependencies: @@ -11774,12 +11774,12 @@ snapshots: string-width@7.2.0: dependencies: emoji-regex: 10.6.0 - get-east-asian-width: 1.5.0 + get-east-asian-width: 1.6.0 strip-ansi: 7.2.0 string-width@8.2.1: dependencies: - get-east-asian-width: 1.5.0 + get-east-asian-width: 1.6.0 strip-ansi: 7.2.0 string_decoder@1.3.0: @@ -12197,17 +12197,17 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vite-tsconfig-paths@6.1.1(typescript@5.9.3)(vite@7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.4)): + vite-tsconfig-paths@6.1.1(typescript@5.9.3)(vite@7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)): dependencies: debug: 4.4.3 globrex: 0.1.2 tsconfck: 3.1.6(typescript@5.9.3) - vite: 7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.4) + vite: 7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0) transitivePeerDependencies: - supports-color - typescript - vite@7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.4): + vite@7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0): dependencies: esbuild: 0.27.7 fdir: 6.5.0(picomatch@4.0.4) @@ -12220,12 +12220,12 @@ snapshots: fsevents: 2.3.3 jiti: 2.6.1 tsx: 4.21.0 - yaml: 2.8.4 + yaml: 2.9.0 - vitest@4.1.5(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.2)(@vitest/coverage-v8@4.1.5)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.2)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.4)): + vitest@4.1.5(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.2)(@vitest/coverage-v8@4.1.5)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.2)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)): dependencies: '@vitest/expect': 4.1.5 - '@vitest/mocker': 4.1.5(msw@2.13.4(@types/node@25.6.2)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.4)) + '@vitest/mocker': 4.1.5(msw@2.13.4(@types/node@25.6.2)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)) '@vitest/pretty-format': 4.1.5 '@vitest/runner': 4.1.5 '@vitest/snapshot': 4.1.5 @@ -12242,7 +12242,7 @@ snapshots: tinyexec: 1.1.1 tinyglobby: 0.2.16 tinyrainbow: 3.1.0 - vite: 7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.4) + vite: 7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: '@edge-runtime/vm': 3.2.0 @@ -12437,7 +12437,7 @@ snapshots: yaml@2.8.3: {} - yaml@2.8.4: {} + yaml@2.9.0: {} yargs-parser@21.1.1: {} From 7809d074fd0a7c0ddcf309456391ee8e3421ed5b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 May 2026 18:53:17 +0800 Subject: [PATCH 374/439] chore(deps): bump @hono/zod-openapi from 1.3.0 to 1.4.0 (#21966) Bumps [@hono/zod-openapi](https://github.com/honojs/middleware/tree/HEAD/packages/zod-openapi) from 1.3.0 to 1.4.0. - [Release notes](https://github.com/honojs/middleware/releases) - [Changelog](https://github.com/honojs/middleware/blob/main/packages/zod-openapi/CHANGELOG.md) - [Commits](https://github.com/honojs/middleware/commits/@hono/zod-openapi@1.4.0/packages/zod-openapi) --- updated-dependencies: - dependency-name: "@hono/zod-openapi" dependency-version: 1.4.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 22 +++++++++++----------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index f675acecc933..998753c0884c 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "@bbob/preset-html5": "4.3.1", "@honeybadger-io/js": "6.14.0", "@hono/node-server": "2.0.2", - "@hono/zod-openapi": "1.3.0", + "@hono/zod-openapi": "1.4.0", "@jocmp/mercury-parser": "3.0.8", "@notionhq/client": "5.20.0", "@opentelemetry/api": "1.9.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a00ef94d5f66..a1bfc12a6898 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,8 +47,8 @@ importers: specifier: 2.0.2 version: 2.0.2(hono@4.12.18) '@hono/zod-openapi': - specifier: 1.3.0 - version: 1.3.0(hono@4.12.18)(zod@4.4.3) + specifier: 1.4.0 + version: 1.4.0(hono@4.12.18)(zod@4.4.3) '@jocmp/mercury-parser': specifier: 3.0.8 version: 3.0.8 @@ -1257,17 +1257,17 @@ packages: peerDependencies: hono: ^4 - '@hono/zod-openapi@1.3.0': - resolution: {integrity: sha512-loDVevfMaaNa0slskhpMcqjSdidVXba2QJwNVmnS5Dp6L8AqSgtjJxWGJfRZtosyzYOb5gx4ZzXNCe+QhwY7xw==} + '@hono/zod-openapi@1.4.0': + resolution: {integrity: sha512-AFchqR1N/NxfI4hUOSGI2/g8zLROxA1OE7Oh5JJFlTaGxhrdRyH+93gd0tIBpb0z8s9r8hUoNnaOBfHbdb4NMw==} engines: {node: '>=16.0.0'} peerDependencies: - hono: '>=4.3.6' + hono: '>=4.10.0' zod: ^4.0.0 - '@hono/zod-validator@0.7.6': - resolution: {integrity: sha512-Io1B6d011Gj1KknV4rXYz4le5+5EubcWEU/speUjuw9XMMIaP3n78yXLhjd2A3PXaXaUwEAluOiAyLqhBEJgsw==} + '@hono/zod-validator@0.8.0': + resolution: {integrity: sha512-5uS4S1/LKtZQYvD4BtpPUFkOv8d1wNxHHrChm26buMiEYc1FrHWvDUaKVBwkiVtvSExHSpLGDvcnpI2Copyj9w==} peerDependencies: - hono: '>=3.9.0' + hono: '>=4.10.0' zod: ^3.25.0 || ^4.0.0 '@humanfs/core@0.19.2': @@ -7033,15 +7033,15 @@ snapshots: dependencies: hono: 4.12.18 - '@hono/zod-openapi@1.3.0(hono@4.12.18)(zod@4.4.3)': + '@hono/zod-openapi@1.4.0(hono@4.12.18)(zod@4.4.3)': dependencies: '@asteasolutions/zod-to-openapi': 8.5.0(zod@4.4.3) - '@hono/zod-validator': 0.7.6(hono@4.12.18)(zod@4.4.3) + '@hono/zod-validator': 0.8.0(hono@4.12.18)(zod@4.4.3) hono: 4.12.18 openapi3-ts: 4.5.0 zod: 4.4.3 - '@hono/zod-validator@0.7.6(hono@4.12.18)(zod@4.4.3)': + '@hono/zod-validator@0.8.0(hono@4.12.18)(zod@4.4.3)': dependencies: hono: 4.12.18 zod: 4.4.3 From 1fb9d12ed1e4ecdaa3f4a744368298ab87f78b7d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 May 2026 18:55:59 +0800 Subject: [PATCH 375/439] chore(deps): bump re2js from 2.3.2 to 2.6.1 (#21967) Bumps [re2js](https://github.com/le0pard/re2js) from 2.3.2 to 2.6.1. - [Release notes](https://github.com/le0pard/re2js/releases) - [Commits](https://github.com/le0pard/re2js/compare/2.3.2...2.6.1) --- updated-dependencies: - dependency-name: re2js dependency-version: 2.6.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 998753c0884c..35963dfbaa64 100644 --- a/package.json +++ b/package.json @@ -118,7 +118,7 @@ "playwright": "1.59.1", "query-string": "9.3.1", "rate-limiter-flexible": "11.1.0", - "re2js": "2.3.2", + "re2js": "2.6.1", "rfc4648": "1.5.4", "rss-parser": "3.13.0", "sanitize-html": "2.17.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a1bfc12a6898..1b4e2094b629 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -215,8 +215,8 @@ importers: specifier: 11.1.0 version: 11.1.0 re2js: - specifier: 2.3.2 - version: 2.3.2 + specifier: 2.6.1 + version: 2.6.1 rfc4648: specifier: 1.5.4 version: 1.5.4 @@ -5398,8 +5398,8 @@ packages: rate-limiter-flexible@11.1.0: resolution: {integrity: sha512-lyyC0SqKz+dE5JoHZ4JMqdrM3LSZKBxzuAFAyKCYAnmHnPz/Rb6iDquxoL4CMipDXoR0G+QRhOzYWL3JKihbNw==} - re2js@2.3.2: - resolution: {integrity: sha512-Y7oXKIPeei9mNLgi0kCbFrE3w+3sybHFh8UD3hE1EKU3/eY1ODjb4EBHUnZGL2TG3rnmqCex81Cevoy3wf8wEg==} + re2js@2.6.1: + resolution: {integrity: sha512-E5bG/nXPEcgd4yL+P8yYBd8FZ2z6zC+mj17iOMjqr8EhrWAO9W6GxwpaQaedIPNtm9dbKUbGVDOtj4CbJKJv9Q==} readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} @@ -11337,7 +11337,7 @@ snapshots: rate-limiter-flexible@11.1.0: {} - re2js@2.3.2: {} + re2js@2.6.1: {} readable-stream@3.6.2: dependencies: From 9ba8d9803478c2cd61932356727026e341e07fd7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 May 2026 19:00:42 +0800 Subject: [PATCH 376/439] chore(deps): bump devenv from `f8c5fcd` to `23120f1` (#21971) Bumps [devenv](https://github.com/cachix/devenv) from `f8c5fcd` to `23120f1`. - [Release notes](https://github.com/cachix/devenv/releases) - [Commits](https://github.com/cachix/devenv/compare/f8c5fcd9c049318a1fd15528e61e6eef902e225b...23120f1b923e80a27facbeb59433688772e854ab) --- updated-dependencies: - dependency-name: devenv dependency-version: 23120f1b923e80a27facbeb59433688772e854ab dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 794453d5ffcb..8cabeb96c339 100644 --- a/flake.lock +++ b/flake.lock @@ -164,11 +164,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1778186459, - "narHash": "sha256-Rv2EMtH1agSQlInQzDBjhdEDPegkdIaV/ViGlx0Dri0=", + "lastModified": 1778281489, + "narHash": "sha256-q/E8JCHXLp7+T/SfSR3vN9KjDtCi5lB0xdgh4LcEOJc=", "owner": "cachix", "repo": "devenv", - "rev": "f8c5fcd9c049318a1fd15528e61e6eef902e225b", + "rev": "23120f1b923e80a27facbeb59433688772e854ab", "type": "github" }, "original": { From 3c1883ce4d98cdd298f528f2320989b86d8a2547 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 11 May 2026 11:02:29 +0000 Subject: [PATCH 377/439] chore(nix): update dependencies hash to sha256-FIx5VgjPRiDgxwCYKp7XbE8bh8nZ5ejnC9Tl1e5vANI= --- flake.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flake.nix b/flake.nix index 1b14daae8213..8b6a1e7f18b7 100644 --- a/flake.nix +++ b/flake.nix @@ -16,7 +16,7 @@ deps = pkgs.fetchPnpmDeps { pname = "rsshub"; src = ./.; - hash = "sha256-rEc2nnQlkk8OOzMyqYTmgMGEDsGb/3pLKvlEmgi2bkw="; + hash = "sha256-FIx5VgjPRiDgxwCYKp7XbE8bh8nZ5ejnC9Tl1e5vANI="; fetcherVersion = 2; }; in From e55ade51176539648cbd728202dba03abe10af4d Mon Sep 17 00:00:00 2001 From: Tony Date: Mon, 11 May 2026 21:44:59 +0800 Subject: [PATCH 378/439] fix(route/github): fix pr url (#21974) --- lib/routes/github/notifications.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/routes/github/notifications.ts b/lib/routes/github/notifications.ts index 335fa58e230a..8b85c8ff8b03 100644 --- a/lib/routes/github/notifications.ts +++ b/lib/routes/github/notifications.ts @@ -48,6 +48,8 @@ async function handler(ctx) { let originUrl = item.subject.url ? item.subject.url.replace('https://api.github.com/repos/', 'https://github.com/') : 'https://github.com/notifications'; if (originUrl.includes('/releases/')) { originUrl = originUrl.replace(/\/releases\/\d+$/, '/releases'); + } else if (originUrl.includes('/pulls/')) { + originUrl = originUrl.replace(/\/pulls\/(\d+)$/, '/pull/$1'); } return { title: item.subject.title, From 898b3206440ce34df9ff9dbc4c9e9c1bccef48cd Mon Sep 17 00:00:00 2001 From: lex <33171229+zj1123581321@users.noreply.github.com> Date: Tue, 12 May 2026 00:03:51 +0800 Subject: [PATCH 379/439] feat(route): add /humanlayer/blog route (#21565) * feat(route): add /humanlayer/blog route Add RSS feed for HumanLayer blog (www.humanlayer.dev/blog), scraping blog listing and full article content with cheerio. via [HAPI](https://hapi.run) Co-Authored-By: HAPI Co-Authored-By: Claude Opus 4.6 (1M context) * refactor(route): use CSS :not() selector instead of JS filter for humanlayer blog Address PR review feedback: move /blog/tags/ exclusion into the CSS selector instead of using a separate .filter() call. via [HAPI](https://hapi.run) Co-Authored-By: HAPI Co-Authored-By: Claude Opus 4.6 (1M context) * fix(route): extract tags into category field for humanlayer blog Parse #-prefixed tags from the meta line and populate the category field. via [HAPI](https://hapi.run) Co-Authored-By: HAPI Co-Authored-By: Claude Opus 4.6 (1M context) * fix(route): address review feedback for humanlayer blog - Remove redundant :not() selector (tag links use different class) - Simplify tag extraction from parts.slice(3).join() to parts[3] - Fix tag regex to match hyphenated tags like best-practices via [HAPI](https://hapi.run) Co-Authored-By: HAPI Co-Authored-By: Claude Opus 4.6 (1M context) * fix(route): remove custom limit for humanlayer blog, use built-in via [HAPI](https://hapi.run) Co-Authored-By: HAPI Co-Authored-By: Claude Opus 4.6 (1M context) --------- Co-authored-by: HAPI Co-authored-by: Claude Opus 4.6 (1M context) Co-authored-by: zj1123581321 --- lib/routes/humanlayer/blog.ts | 97 ++++++++++++++++++++++++++++++ lib/routes/humanlayer/namespace.ts | 7 +++ 2 files changed, 104 insertions(+) create mode 100644 lib/routes/humanlayer/blog.ts create mode 100644 lib/routes/humanlayer/namespace.ts diff --git a/lib/routes/humanlayer/blog.ts b/lib/routes/humanlayer/blog.ts new file mode 100644 index 000000000000..270ce63ea137 --- /dev/null +++ b/lib/routes/humanlayer/blog.ts @@ -0,0 +1,97 @@ +import { load } from 'cheerio'; + +import type { DataItem, Route } from '@/types'; +import cache from '@/utils/cache'; +import ofetch from '@/utils/ofetch'; +import { parseDate } from '@/utils/parse-date'; + +export const route: Route = { + path: '/blog', + categories: ['blog'], + example: '/humanlayer/blog', + parameters: {}, + features: { + requireConfig: false, + requirePuppeteer: false, + antiCrawler: false, + supportBT: false, + supportPodcast: false, + supportScihub: false, + }, + radar: [ + { + source: ['www.humanlayer.dev/blog'], + target: '/humanlayer/blog', + }, + ], + name: 'Blog', + maintainers: ['zj1123581321'], + handler, + url: 'www.humanlayer.dev/blog', +}; + +async function handler() { + const baseUrl = 'https://www.humanlayer.dev'; + const listUrl = `${baseUrl}/blog`; + + const response = await ofetch(listUrl); + const $ = load(response); + + const list = $('a.block.py-2.group[href^="/blog/"]') + .toArray() + .map((el) => { + const $el = $(el); + const href = $el.attr('href')!; + const title = $el.find('h2').text().trim(); + const metaLine = $el.find('p.text-sm').text().trim(); + const description = $el.find('p[style]').text().trim(); + + // meta format: "Author · Date · Read time · #tag1 #tag2" + const parts = metaLine.split('·').map((s) => s.trim()); + const author = parts[0] || ''; + const dateStr = parts[1] || ''; + const category = parts[3]?.match(/#[\w-]+/g)?.map((t) => t.slice(1)); + + return { + title, + link: `${baseUrl}${href}`, + author, + description, + pubDate: dateStr ? parseDate(dateStr) : undefined, + category, + } as DataItem; + }); + + const items = (await Promise.all( + list.map((item) => + cache.tryGet(item.link!, async () => { + const resp = await ofetch(item.link!); + const $detail = load(resp); + + const ogTitle = $detail('meta[property="og:title"]').attr('content'); + const ogDesc = $detail('meta[property="og:description"]').attr('content'); + const publishedTime = $detail('meta[property="article:published_time"]').attr('content'); + const ogAuthor = $detail('meta[property="article:author"]').attr('content'); + const ogImage = $detail('meta[property="og:image"]').attr('content'); + + const content = $detail('div.prose').html(); + + return { + ...item, + title: ogTitle || item.title, + description: content || ogDesc || item.description, + pubDate: publishedTime ? parseDate(publishedTime) : item.pubDate, + author: ogAuthor || item.author, + banner: ogImage, + } as DataItem; + }) + ) + )) as DataItem[]; + + return { + title: 'HumanLayer Blog', + link: listUrl, + language: 'en', + item: items, + }; +} diff --git a/lib/routes/humanlayer/namespace.ts b/lib/routes/humanlayer/namespace.ts new file mode 100644 index 000000000000..9e5ffe1af94c --- /dev/null +++ b/lib/routes/humanlayer/namespace.ts @@ -0,0 +1,7 @@ +import type { Namespace } from '@/types'; + +export const namespace: Namespace = { + name: 'HumanLayer', + url: 'www.humanlayer.dev', + lang: 'en', +}; From 5cf0d2b13391970bf0f115d3d92b02202197a603 Mon Sep 17 00:00:00 2001 From: Shoggomo Date: Mon, 11 May 2026 18:25:01 +0200 Subject: [PATCH 380/439] feat(route/4chan): add filters for sticky threads and reply count (#21964) * feat(route/4chan): add filters for sticky threads and reply count * Revert formatting * Applied suggestion --- lib/routes/4chan/catalog.tsx | 7 +++++-- lib/routes/4chan/utils.tsx | 28 +++++++++++++++++++++++++--- 2 files changed, 30 insertions(+), 5 deletions(-) diff --git a/lib/routes/4chan/catalog.tsx b/lib/routes/4chan/catalog.tsx index 06faea5c9f1e..2abcc8062056 100644 --- a/lib/routes/4chan/catalog.tsx +++ b/lib/routes/4chan/catalog.tsx @@ -41,12 +41,15 @@ export const route: Route = { target: '/:board/catalog', }, ], - description: `Specify options (in the format of query string) in parameter \`routeParams\` to control some extra features for Tweets + description: `Specify options (in the format of query string) in parameter \`routeParams\` to control extra features for threads | Key | Description | Accepts | Defaults to | | ----------------- | ------------------------------------------------ | ---------------------- | ----------- | | \`showReplyCount\` | Show number of replies of each thread in catalog | \`0\`/\`1\`/\`true\`/\`false\` | \`false\` | | \`showLastReplies\` | Show last 5 replies of each thread | \`0\`/\`1\`/\`true\`/\`false\` | \`false\` | -| \`revealSpoilers\` | Don't wrap images tagged as spoilers | \`0\`/\`1\`/\`true\`/\`false\` | \`false\` |`, +| \`revealSpoilers\` | Don't wrap images tagged as spoilers | \`0\`/\`1\`/\`true\`/\`false\` | \`false\` | +| \`excludeSticky\` | Filter out sticky threads | \`0\`/\`1\`/\`true\`/\`false\` | \`false\` | +| \`minReplies\` | Minimum replies per thread | Integer | None | +| \`maxReplies\` | Maximum replies per thread | Integer | None |`, handler, }; diff --git a/lib/routes/4chan/utils.tsx b/lib/routes/4chan/utils.tsx index bc5b3631df82..463e4f70a4f0 100644 --- a/lib/routes/4chan/utils.tsx +++ b/lib/routes/4chan/utils.tsx @@ -5,11 +5,18 @@ import sanitizeHtml from 'sanitize-html'; import { parseDate } from '@/utils/parse-date'; import { queryToBoolean } from '@/utils/readable-social'; -const parseParams = (routeParams: string) => { - const parsed = new URLSearchParams(routeParams); +const parseParams = (routeParams?: string) => { + const parsed = new URLSearchParams(routeParams ?? ''); + const minRepliesRaw = parsed.get('minReplies'); + const maxRepliesRaw = parsed.get('maxReplies'); + const minReplies = minRepliesRaw === null ? undefined : Number(minRepliesRaw); + const maxReplies = maxRepliesRaw === null ? undefined : Number(maxRepliesRaw); const viewOptions = { + excludeSticky: !!queryToBoolean(parsed.get('excludeSticky')), includeLastReplies: !!queryToBoolean(parsed.get('showLastReplies')), includeReplyCount: !!queryToBoolean(parsed.get('showReplyCount')), + maxReplies: Number.isFinite(maxReplies) ? maxReplies : undefined, + minReplies: Number.isFinite(minReplies) ? minReplies : undefined, revealSpoilers: !!queryToBoolean(parsed.get('revealSpoilers')), }; return viewOptions; @@ -17,7 +24,22 @@ const parseParams = (routeParams: string) => { const processCatalog = ({ data, board, viewOptions }: { data: CatalogApiReturn; board: string; viewOptions: ViewOptions }) => { const transformedData = data.flatMap((page) => page.threads); - return transformedData.map((thread) => ({ + return transformedData.filter((thread) => { + if (viewOptions.excludeSticky && thread.sticky) { + return false; + } + + const replies = thread.replies ?? 0; + if (viewOptions.minReplies !== undefined && replies < viewOptions.minReplies) { + return false; + } + + if (viewOptions.maxReplies !== undefined && replies > viewOptions.maxReplies) { + return false; + } + + return true; + }).map((thread) => ({ author: `${thread.name} ${thread.trip ?? thread.no}`, description: renderToString(renderPost({ post: thread, board, viewOptions })), link: `https://boards.4chan.org/${board}/thread/${thread.no}`, From 6e12d60764940419f89daa13e31d38fd49bc4c9b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 11 May 2026 16:26:16 +0000 Subject: [PATCH 381/439] style: auto format --- lib/routes/4chan/catalog.tsx | 6 +++--- lib/routes/4chan/utils.tsx | 40 +++++++++++++++++++----------------- 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/lib/routes/4chan/catalog.tsx b/lib/routes/4chan/catalog.tsx index 2abcc8062056..8bed58e32bf1 100644 --- a/lib/routes/4chan/catalog.tsx +++ b/lib/routes/4chan/catalog.tsx @@ -48,8 +48,8 @@ export const route: Route = { | \`showReplyCount\` | Show number of replies of each thread in catalog | \`0\`/\`1\`/\`true\`/\`false\` | \`false\` | | \`showLastReplies\` | Show last 5 replies of each thread | \`0\`/\`1\`/\`true\`/\`false\` | \`false\` | | \`revealSpoilers\` | Don't wrap images tagged as spoilers | \`0\`/\`1\`/\`true\`/\`false\` | \`false\` | -| \`excludeSticky\` | Filter out sticky threads | \`0\`/\`1\`/\`true\`/\`false\` | \`false\` | -| \`minReplies\` | Minimum replies per thread | Integer | None | -| \`maxReplies\` | Maximum replies per thread | Integer | None |`, +| \`excludeSticky\` | Filter out sticky threads | \`0\`/\`1\`/\`true\`/\`false\` | \`false\` | +| \`minReplies\` | Minimum replies per thread | Integer | None | +| \`maxReplies\` | Maximum replies per thread | Integer | None |`, handler, }; diff --git a/lib/routes/4chan/utils.tsx b/lib/routes/4chan/utils.tsx index 463e4f70a4f0..726523378e9e 100644 --- a/lib/routes/4chan/utils.tsx +++ b/lib/routes/4chan/utils.tsx @@ -24,28 +24,30 @@ const parseParams = (routeParams?: string) => { const processCatalog = ({ data, board, viewOptions }: { data: CatalogApiReturn; board: string; viewOptions: ViewOptions }) => { const transformedData = data.flatMap((page) => page.threads); - return transformedData.filter((thread) => { - if (viewOptions.excludeSticky && thread.sticky) { - return false; - } + return transformedData + .filter((thread) => { + if (viewOptions.excludeSticky && thread.sticky) { + return false; + } - const replies = thread.replies ?? 0; - if (viewOptions.minReplies !== undefined && replies < viewOptions.minReplies) { - return false; - } + const replies = thread.replies ?? 0; + if (viewOptions.minReplies !== undefined && replies < viewOptions.minReplies) { + return false; + } - if (viewOptions.maxReplies !== undefined && replies > viewOptions.maxReplies) { - return false; - } + if (viewOptions.maxReplies !== undefined && replies > viewOptions.maxReplies) { + return false; + } - return true; - }).map((thread) => ({ - author: `${thread.name} ${thread.trip ?? thread.no}`, - description: renderToString(renderPost({ post: thread, board, viewOptions })), - link: `https://boards.4chan.org/${board}/thread/${thread.no}`, - pubDate: parseDate(thread.time * 1000), - title: thread.sub ?? sanitizeHtml(thread.com?.split('
    ')[0] ?? '', { allowedTags: [] }), - })); + return true; + }) + .map((thread) => ({ + author: `${thread.name} ${thread.trip ?? thread.no}`, + description: renderToString(renderPost({ post: thread, board, viewOptions })), + link: `https://boards.4chan.org/${board}/thread/${thread.no}`, + pubDate: parseDate(thread.time * 1000), + title: thread.sub ?? sanitizeHtml(thread.com?.split('
    ')[0] ?? '', { allowedTags: [] }), + })); }; const renderPost = ({ post, board, viewOptions }: { post: ChanPost; board: string; viewOptions: ViewOptions }) => { From dd8ee083934ff96caf06b9c6a947edeb6404ee21 Mon Sep 17 00:00:00 2001 From: Q16KBreak <51452206+Q16KBreak@users.noreply.github.com> Date: Tue, 12 May 2026 02:45:14 +0800 Subject: [PATCH 382/439] feat(route/nyaa): support fulltext mode (#21888) * feat(route): support fulltext mode for nyaa * feat(route): replace parameter name * feat(route): migrate from query parameters to route paths * feat(route): use mode=fulltext as trigger and update namespace * delete fulltext routes --- lib/routes/nyaa/main.ts | 73 +++++++++++++++++++++++++++++------- lib/routes/nyaa/namespace.ts | 1 + 2 files changed, 61 insertions(+), 13 deletions(-) diff --git a/lib/routes/nyaa/main.ts b/lib/routes/nyaa/main.ts index 24b46705b0a0..6184b8f00b45 100644 --- a/lib/routes/nyaa/main.ts +++ b/lib/routes/nyaa/main.ts @@ -1,7 +1,18 @@ +import { load } from 'cheerio'; +import MarkdownIt from 'markdown-it'; import Parser from 'rss-parser'; import { config } from '@/config'; import type { Route } from '@/types'; +import cache from '@/utils/cache'; +import ofetch from '@/utils/ofetch'; + +const md = MarkdownIt({ + breaks: true, + html: true, + linkify: true, + typographer: true, +}); export const route: Route = { path: ['/search/:query?', '/user/:username?', '/user/:username/search/:query?', '/sukebei/search/:query?', '/sukebei/user/:username?', '/sukebei/user/:username/search/:query?'], @@ -17,7 +28,7 @@ export const route: Route = { supportScihub: false, }, name: 'Search Result', - maintainers: ['Lava-Swimmer', 'noname1776', 'camera-2018'], + maintainers: ['Lava-Swimmer', 'noname1776', 'camera-2018', 'Q16KBreak'], handler, }; @@ -48,17 +59,53 @@ async function handler(ctx) { const feed = await parser.parseURL(currentRSSURL); - feed.items.map((item) => { - item.description = item.content; - item.enclosure_url = `magnet:?xt=urn:btih:${item.infoHash}`; - item.enclosure_type = 'application/x-bittorrent'; - return item; - }); + /** + * Shares the same `mode=fulltext` trigger condition with + * DIYgod/RSSHub/lib/middleware/parameter.ts + * + * @caution + * Due to semantic differences in Nyaa (where `link` = torrent file, `guid` = web page), + * the middleware may trigger unnecessary requests to torrent files, and when a 429 error occurs, + * you can observe request errors for the torrent file in the console. + * + * @impact + * Does NOT affect the final RSS output. The actual fulltext is correctly fetched from `item.guid`. + */ + if (ctx.req.query('mode')?.toLowerCase() === 'fulltext') { + const limit = Number.parseInt(ctx.req.query('limit')) || 6; // prevent 429 rate limiting + const items = await Promise.all( + feed.items.slice(0, limit).map((item) => + cache.tryGet(item.guid, async () => { + const response = await ofetch(item.guid); + const $ = load(response); + + item.description = md.render($('div#torrent-description.panel-body[markdown-text]').text()); + item.enclosure_url = `magnet:?xt=urn:btih:${item.infoHash}`; + item.enclosure_type = 'application/x-bittorrent'; + return item; + }) + ) + ); - return { - title: feed.title, - link: currentLink, - description: feed.description, - item: feed.items, - }; + return { + title: feed.title, + link: currentLink, + description: feed.description, + item: items, + }; + } else { + feed.items.map((item) => { + item.description = item.content; + item.enclosure_url = `magnet:?xt=urn:btih:${item.infoHash}`; + item.enclosure_type = 'application/x-bittorrent'; + return item; + }); + + return { + title: feed.title, + link: currentLink, + description: feed.description, + item: feed.items, + }; + } } diff --git a/lib/routes/nyaa/namespace.ts b/lib/routes/nyaa/namespace.ts index 5111922d0c9d..5b6d398a4d6f 100644 --- a/lib/routes/nyaa/namespace.ts +++ b/lib/routes/nyaa/namespace.ts @@ -12,6 +12,7 @@ The 'Nyaa' includes several routes to access different parts of the site: 4. \`/nyaa/sukebei/search/:query?\` - This route is for searching adult content with a specific query, e.g., \`/nyaa/sukebei/search/hentai\`. 5. \`/nyaa/sukebei/user/:username?\` - Access an adult content user's profile, e.g., \`/nyaa/sukebei/user/milannews\`. 6. \`/nyaa/sukebei/user/:username/search/:query?\` - Search within a specific user's adult content submissions, e.g., \`/nyaa/sukebei/user/milannews/search/hentai\`. +7. Append the query string \`?mode=fulltext\` to any URL to retrieve detailed descriptions. By default, it returns \`6\` entries, but this can be adjusted using the \`limit\` query string, e.g., \`/nyaa/user/VCB-Studio?mode=fulltext&limit=10\`. :::`, lang: 'en', From 399ab8efdf4f612fb558e2fa9dfa1de343600bcb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 May 2026 12:57:28 +0000 Subject: [PATCH 383/439] chore(deps-dev): bump the cloudflare group with 2 updates (#21986) Bumps the cloudflare group with 2 updates: [@cloudflare/containers](https://github.com/cloudflare/containers) and [wrangler](https://github.com/cloudflare/workers-sdk/tree/HEAD/packages/wrangler). Updates `@cloudflare/containers` from 0.3.3 to 0.3.4 - [Release notes](https://github.com/cloudflare/containers/releases) - [Changelog](https://github.com/cloudflare/containers/blob/main/CHANGELOG.md) - [Commits](https://github.com/cloudflare/containers/compare/v0.3.3...v0.3.4) Updates `wrangler` from 4.90.0 to 4.90.1 - [Release notes](https://github.com/cloudflare/workers-sdk/releases) - [Commits](https://github.com/cloudflare/workers-sdk/commits/wrangler@4.90.1/packages/wrangler) --- updated-dependencies: - dependency-name: "@cloudflare/containers" dependency-version: 0.3.4 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: cloudflare - dependency-name: wrangler dependency-version: 4.90.1 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: cloudflare ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 4 +-- pnpm-lock.yaml | 95 +++++++++++++++++++++++++++----------------------- 2 files changed, 53 insertions(+), 46 deletions(-) diff --git a/package.json b/package.json index 35963dfbaa64..69d1ba0a6c0c 100644 --- a/package.json +++ b/package.json @@ -145,7 +145,7 @@ "@actions/core": "3.0.1", "@actions/github": "9.1.1", "@bbob/types": "4.3.1", - "@cloudflare/containers": "0.3.3", + "@cloudflare/containers": "0.3.4", "@cloudflare/playwright": "1.3.0", "@cloudflare/workers-types": "4.20260511.1", "@eslint/eslintrc": "3.3.5", @@ -205,7 +205,7 @@ "unified": "11.0.5", "vite-tsconfig-paths": "6.1.1", "vitest": "4.1.5", - "wrangler": "4.90.0", + "wrangler": "4.90.1", "yaml-eslint-parser": "2.0.0" }, "lint-staged": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1b4e2094b629..a308c740375a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -291,8 +291,8 @@ importers: specifier: 4.3.1 version: 4.3.1 '@cloudflare/containers': - specifier: 0.3.3 - version: 0.3.3 + specifier: 0.3.4 + version: 0.3.4 '@cloudflare/playwright': specifier: 1.3.0 version: 1.3.0 @@ -471,8 +471,8 @@ importers: specifier: 4.1.5 version: 4.1.5(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.2)(@vitest/coverage-v8@4.1.5)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.2)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)) wrangler: - specifier: 4.90.0 - version: 4.90.0(@cloudflare/workers-types@4.20260511.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10) + specifier: 4.90.1 + version: 4.90.1(@cloudflare/workers-types@4.20260511.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10) yaml-eslint-parser: specifier: 2.0.0 version: 2.0.0 @@ -595,8 +595,8 @@ packages: '@bufbuild/protobuf@2.11.0': resolution: {integrity: sha512-sBXGT13cpmPR5BMgHE6UEEfEaShh5Ror6rfN3yEK5si7QVrtZg8LEPQb0VVhiLRUslD2yLnXtnRzG035J/mZXQ==} - '@cloudflare/containers@0.3.3': - resolution: {integrity: sha512-ZSXmArCoo5bVTp8pGAJdl5WKmwtZDcffJqr4JcZEbSmMIFjU+AlBqgysuxXMgu03Rp239cOdqerbjK7H0K2krQ==} + '@cloudflare/containers@0.3.4': + resolution: {integrity: sha512-6kWodmgBSug/rr9fjcWrZcKhxmWTEc1BTKC6nVv7yvYaRRvV3rZPZjq9R17eN0l9cl2LNc03wp/Z6OV+0uDwXA==} '@cloudflare/kv-asset-handler@0.5.0': resolution: {integrity: sha512-jxQYkj8dSIzc0cD6cMMNdOc1UVjqSqu8BZdor5s8cGjW2I8BjODt/kWPVdY+u9zj3ms75Q5qaZgnxUad83+eAg==} @@ -614,32 +614,32 @@ packages: workerd: optional: true - '@cloudflare/workerd-darwin-64@1.20260507.1': - resolution: {integrity: sha512-S85aMwcaPJUjKWDiG6iMMnioKWtPLACa6m0j/EhHR1GYfVpnxb974cBc6d25L+sf7jHWHJI2u5hGp0UTJ7MtXQ==} + '@cloudflare/workerd-darwin-64@1.20260508.1': + resolution: {integrity: sha512-IT3r6VgiSwIesL4AJbxjgxvIxwWZqM7BKkhYAzOKHl4GF2M0TxeOahUIXd+CYXVZgHX8ceEg+MXbEehPelJyNg==} engines: {node: '>=16'} cpu: [x64] os: [darwin] - '@cloudflare/workerd-darwin-arm64@1.20260507.1': - resolution: {integrity: sha512-GMEBu8Zp9Q97HLnf7bWJN4KjWpN5MxpeqdvHjBGWNl8UYprJI0k+Jkp89+Wh5S8vIon+HoVbDfOzPa7VwgL6Eg==} + '@cloudflare/workerd-darwin-arm64@1.20260508.1': + resolution: {integrity: sha512-JTVsisOJPcNKw0qovPjqyBWYahfdhUh7/9NICiG5wxaEQ45PYKdoqNq0hOAAIqvqoxsKZBvTgcPTJREPqk7avA==} engines: {node: '>=16'} cpu: [arm64] os: [darwin] - '@cloudflare/workerd-linux-64@1.20260507.1': - resolution: {integrity: sha512-QlrKEBdgA3uVc0Ok0Q3+0/CW0CTjgj5ySir1i1YY5FXVv0X6GpwtnB5umjunjF2MFprss+L+iFGZzxcSvMC1nA==} + '@cloudflare/workerd-linux-64@1.20260508.1': + resolution: {integrity: sha512-zO38pCc27YlsZiPYcaZnosy0/t7abXrRU3VEO1oKfUvnaCpHgphDG+VsrmHL+kntda6hrtNwg2jLeMAqqIjnjw==} engines: {node: '>=16'} cpu: [x64] os: [linux] - '@cloudflare/workerd-linux-arm64@1.20260507.1': - resolution: {integrity: sha512-eGbbupEtK2nh9V9Dhcx3vv3GTKeXqSVNgAEYVCCN0NGS9tl9HbMoHRX/4JL181FKXROMigWBCQVL//qPhsAzBQ==} + '@cloudflare/workerd-linux-arm64@1.20260508.1': + resolution: {integrity: sha512-XhJa780Ia6MNIrtxn/ruZHS79b9pu5EKPfRNReaUqxy8erPT2fs93axMfFoS9kIkcaRRj/1TOUKcTeAMoywY7w==} engines: {node: '>=16'} cpu: [arm64] os: [linux] - '@cloudflare/workerd-windows-64@1.20260507.1': - resolution: {integrity: sha512-dmClJ/E0BAcuDetQIZFqbeAXejWrG5pysGRMQ6T83Y0IW/7IAamY2zFEkAJ10I5xwZsdHuYsZtzlOxpEXpJs7A==} + '@cloudflare/workerd-windows-64@1.20260508.1': + resolution: {integrity: sha512-QdDOK3B/Ul1s3QmIwDrFyx9230to6LsNmWcVR8w+TYjNZuRPzqQBgusp78LO7MlqCoEl9dvIcN00jkJnLtBSfw==} engines: {node: '>=16'} cpu: [x64] os: [win32] @@ -4910,8 +4910,8 @@ packages: resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - miniflare@4.20260507.1: - resolution: {integrity: sha512-PSXBiLExTdZ4UGO/raKCHQauUpYL7F880ZRB7j0+78Rv8h7TsdN2E/iEDK9sK2Y+SPQ5wJSeAa+rDeVKoZZoEw==} + miniflare@4.20260508.0: + resolution: {integrity: sha512-h3aG+PA8jEH76V4ZtBAbs3g7kjMfHJUF8hPvxeeajLTKwir+G+dqfBODg5yF9MT29LqrZKCRQRqzfHPWX4kCIg==} engines: {node: '>=22.0.0'} hasBin: true @@ -5587,6 +5587,11 @@ packages: engines: {node: '>=10'} hasBin: true + semver@7.8.0: + resolution: {integrity: sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA==} + engines: {node: '>=10'} + hasBin: true + set-cookie-parser@3.1.0: resolution: {integrity: sha512-kjnC1DXBHcxaOaOXBHBeRtltsDG2nUiUni+jP92M9gYdW12rsmx92UsfpH7o5tDRs7I1ZZPSQJQGv3UaRfCiuw==} @@ -6324,17 +6329,17 @@ packages: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} - workerd@1.20260507.1: - resolution: {integrity: sha512-z7JhsFSe6+X1b5fUHaVpo15VM1IRMJiLofEkq8iKdCo+Veqc+FUg5lIsuz8NwePxuSKrXtO4ZQpGkQLbPVXFhg==} + workerd@1.20260508.1: + resolution: {integrity: sha512-VlnjyH3AjVddpSK7J54nsCVgf8i2733pl8GjKttfNi7vN/hEjjAk20d2b1nDToOLKvRQpTewRnVkqaaeGHCaAw==} engines: {node: '>=16'} hasBin: true - wrangler@4.90.0: - resolution: {integrity: sha512-bmNIykl59TfCUn5xQgU7IWylSsPx3LQaPLMSAq2VQHt89CBrcj9qXQ0eYfjBCWA5XTBVgten391evt7xxtXwcA==} + wrangler@4.90.1: + resolution: {integrity: sha512-u2KrieKSMfRM0toTst/CfDtcRraeoVjmcExcMWgILM/ytq3qcDhuOAULoZSyPHzma43lfLJy1BC544drFyqe1A==} engines: {node: '>=22.0.0'} hasBin: true peerDependencies: - '@cloudflare/workers-types': ^4.20260507.1 + '@cloudflare/workers-types': ^4.20260508.1 peerDependenciesMeta: '@cloudflare/workers-types': optional: true @@ -6629,31 +6634,31 @@ snapshots: '@bufbuild/protobuf@2.11.0': {} - '@cloudflare/containers@0.3.3': {} + '@cloudflare/containers@0.3.4': {} '@cloudflare/kv-asset-handler@0.5.0': {} '@cloudflare/playwright@1.3.0': {} - '@cloudflare/unenv-preset@2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260507.1)': + '@cloudflare/unenv-preset@2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260508.1)': dependencies: unenv: 2.0.0-rc.24 optionalDependencies: - workerd: 1.20260507.1 + workerd: 1.20260508.1 - '@cloudflare/workerd-darwin-64@1.20260507.1': + '@cloudflare/workerd-darwin-64@1.20260508.1': optional: true - '@cloudflare/workerd-darwin-arm64@1.20260507.1': + '@cloudflare/workerd-darwin-arm64@1.20260508.1': optional: true - '@cloudflare/workerd-linux-64@1.20260507.1': + '@cloudflare/workerd-linux-64@1.20260508.1': optional: true - '@cloudflare/workerd-linux-arm64@1.20260507.1': + '@cloudflare/workerd-linux-arm64@1.20260508.1': optional: true - '@cloudflare/workerd-windows-64@1.20260507.1': + '@cloudflare/workerd-windows-64@1.20260508.1': optional: true '@cloudflare/workers-types@4.20260511.1': {} @@ -10785,12 +10790,12 @@ snapshots: mimic-response@4.0.0: {} - miniflare@4.20260507.1(bufferutil@4.1.0)(utf-8-validate@5.0.10): + miniflare@4.20260508.0(bufferutil@4.1.0)(utf-8-validate@5.0.10): dependencies: '@cspotcode/source-map-support': 0.8.1 sharp: 0.34.5 undici: 7.24.8 - workerd: 1.20260507.1 + workerd: 1.20260508.1 ws: 8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) youch: 4.1.0-beta.10 transitivePeerDependencies: @@ -11612,13 +11617,15 @@ snapshots: semver@7.7.4: {} + semver@7.8.0: {} + set-cookie-parser@3.1.0: {} sharp@0.34.5: dependencies: '@img/colour': 1.1.0 detect-libc: 2.1.2 - semver: 7.7.4 + semver: 7.8.0 optionalDependencies: '@img/sharp-darwin-arm64': 0.34.5 '@img/sharp-darwin-x64': 0.34.5 @@ -12326,24 +12333,24 @@ snapshots: word-wrap@1.2.5: {} - workerd@1.20260507.1: + workerd@1.20260508.1: optionalDependencies: - '@cloudflare/workerd-darwin-64': 1.20260507.1 - '@cloudflare/workerd-darwin-arm64': 1.20260507.1 - '@cloudflare/workerd-linux-64': 1.20260507.1 - '@cloudflare/workerd-linux-arm64': 1.20260507.1 - '@cloudflare/workerd-windows-64': 1.20260507.1 + '@cloudflare/workerd-darwin-64': 1.20260508.1 + '@cloudflare/workerd-darwin-arm64': 1.20260508.1 + '@cloudflare/workerd-linux-64': 1.20260508.1 + '@cloudflare/workerd-linux-arm64': 1.20260508.1 + '@cloudflare/workerd-windows-64': 1.20260508.1 - wrangler@4.90.0(@cloudflare/workers-types@4.20260511.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10): + wrangler@4.90.1(@cloudflare/workers-types@4.20260511.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10): dependencies: '@cloudflare/kv-asset-handler': 0.5.0 - '@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260507.1) + '@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260508.1) blake3-wasm: 2.1.5 esbuild: 0.27.3 - miniflare: 4.20260507.1(bufferutil@4.1.0)(utf-8-validate@5.0.10) + miniflare: 4.20260508.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) path-to-regexp: 6.3.0 unenv: 2.0.0-rc.24 - workerd: 1.20260507.1 + workerd: 1.20260508.1 optionalDependencies: '@cloudflare/workers-types': 4.20260511.1 fsevents: 2.3.3 From f76cdfb43dbd759c178c6d50bf3b1521ef025e17 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 May 2026 13:10:07 +0000 Subject: [PATCH 384/439] chore(deps): bump pnpm/action-setup from 6.0.6 to 6.0.8 (#21988) Bumps [pnpm/action-setup](https://github.com/pnpm/action-setup) from 6.0.6 to 6.0.8. - [Release notes](https://github.com/pnpm/action-setup/releases) - [Commits](https://github.com/pnpm/action-setup/compare/91ab88e2619ed1f46221f0ba42d1492c02baf788...0e279bb959325dab635dd2c09392533439d90093) --- updated-dependencies: - dependency-name: pnpm/action-setup dependency-version: 6.0.8 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build-assets.yml | 2 +- .github/workflows/comment-on-issue.yml | 2 +- .github/workflows/docker-test-cont.yml | 2 +- .github/workflows/format.yml | 2 +- .github/workflows/issue-command.yml | 2 +- .github/workflows/lint.yml | 2 +- .github/workflows/npm-publish.yml | 2 +- .github/workflows/test-full-routes.yml | 2 +- .github/workflows/test.yml | 6 +++--- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build-assets.yml b/.github/workflows/build-assets.yml index bdcf08469d1c..56a44b3bebc5 100644 --- a/.github/workflows/build-assets.yml +++ b/.github/workflows/build-assets.yml @@ -20,7 +20,7 @@ jobs: - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Install pnpm - uses: pnpm/action-setup@91ab88e2619ed1f46221f0ba42d1492c02baf788 # v6.0.6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 - name: Use Node.js Active LTS uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: diff --git a/.github/workflows/comment-on-issue.yml b/.github/workflows/comment-on-issue.yml index 48e973b1f522..6e8924b9f3b6 100644 --- a/.github/workflows/comment-on-issue.yml +++ b/.github/workflows/comment-on-issue.yml @@ -14,7 +14,7 @@ jobs: if: github.event.sender.login != 'issuehunt-oss[bot]' steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@91ab88e2619ed1f46221f0ba42d1492c02baf788 # v6.0.6 + - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: lts/* diff --git a/.github/workflows/docker-test-cont.yml b/.github/workflows/docker-test-cont.yml index f1fb54e6ee71..aa12e7f8daf8 100644 --- a/.github/workflows/docker-test-cont.yml +++ b/.github/workflows/docker-test-cont.yml @@ -42,7 +42,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - uses: pnpm/action-setup@91ab88e2619ed1f46221f0ba42d1492c02baf788 # v6.0.6 + - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml index 3f520ba09d22..776717f4fc1c 100644 --- a/.github/workflows/format.yml +++ b/.github/workflows/format.yml @@ -15,7 +15,7 @@ jobs: steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@91ab88e2619ed1f46221f0ba42d1492c02baf788 # v6.0.6 + - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: lts/* diff --git a/.github/workflows/issue-command.yml b/.github/workflows/issue-command.yml index 1b65ce41f14e..f9d005fc5222 100644 --- a/.github/workflows/issue-command.yml +++ b/.github/workflows/issue-command.yml @@ -111,7 +111,7 @@ jobs: ref: ${{ fromJson(steps.pr-data.outputs.data).head.ref }} - name: Install pnpm - uses: pnpm/action-setup@91ab88e2619ed1f46221f0ba42d1492c02baf788 # v6.0.6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 - name: Use Node.js Active LTS uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 073fc7cba8c4..c269b1497144 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -21,7 +21,7 @@ jobs: security-events: write steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@91ab88e2619ed1f46221f0ba42d1492c02baf788 # v6.0.6 + - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: lts/* diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index 79fececbc2ca..5dcd201dc749 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -23,7 +23,7 @@ jobs: HUSKY: 0 steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@91ab88e2619ed1f46221f0ba42d1492c02baf788 # v6.0.6 + - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: lts/* diff --git a/.github/workflows/test-full-routes.yml b/.github/workflows/test-full-routes.yml index 11f03e787b58..d204d312e2d1 100644 --- a/.github/workflows/test-full-routes.yml +++ b/.github/workflows/test-full-routes.yml @@ -16,7 +16,7 @@ jobs: - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Install pnpm - uses: pnpm/action-setup@91ab88e2619ed1f46221f0ba42d1492c02baf788 # v6.0.6 + uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 - name: Use Node.js Active LTS uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index dc623d56a581..6f65ca996fca 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -32,7 +32,7 @@ jobs: name: Vitest on Node ${{ matrix.node-version }} steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@91ab88e2619ed1f46221f0ba42d1492c02baf788 # v6.0.6 + - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: ${{ matrix.node-version }} @@ -77,7 +77,7 @@ jobs: name: Vitest Playwright on Node ${{ matrix.node-version }} with ${{ matrix.chromium.name }} steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@91ab88e2619ed1f46221f0ba42d1492c02baf788 # v6.0.6 + - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: ${{ matrix.node-version }} @@ -126,7 +126,7 @@ jobs: name: Build radar and maintainer on Node ${{ matrix.node-version }} steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: pnpm/action-setup@91ab88e2619ed1f46221f0ba42d1492c02baf788 # v6.0.6 + - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: ${{ matrix.node-version }} From 432d6bae2191d42c3b3f161bc687e358c9ad1864 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 May 2026 13:12:46 +0000 Subject: [PATCH 385/439] chore(deps-dev): bump the typescript-eslint group with 2 updates (#21987) Bumps the typescript-eslint group with 2 updates: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) and [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser). Updates `@typescript-eslint/eslint-plugin` from 8.59.2 to 8.59.3 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.59.3/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.59.2 to 8.59.3 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.59.3/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-version: 8.59.3 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: typescript-eslint - dependency-name: "@typescript-eslint/parser" dependency-version: 8.59.3 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: typescript-eslint ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 4 +- pnpm-lock.yaml | 126 ++++++++++++++++++++++++------------------------- 2 files changed, 65 insertions(+), 65 deletions(-) diff --git a/package.json b/package.json index 69d1ba0a6c0c..e56368b43e03 100644 --- a/package.json +++ b/package.json @@ -168,8 +168,8 @@ "@types/module-alias": "2.0.4", "@types/node": "25.6.2", "@types/sanitize-html": "2.16.1", - "@typescript-eslint/eslint-plugin": "8.59.2", - "@typescript-eslint/parser": "8.59.2", + "@typescript-eslint/eslint-plugin": "8.59.3", + "@typescript-eslint/parser": "8.59.3", "@vercel/nft": "1.5.0", "@vitest/coverage-v8": "4.1.5", "discord-api-types": "0.38.47", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a308c740375a..19f6b37cdb82 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -360,11 +360,11 @@ importers: specifier: 2.16.1 version: 2.16.1 '@typescript-eslint/eslint-plugin': - specifier: 8.59.2 - version: 8.59.2(@typescript-eslint/parser@8.59.2(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3) + specifier: 8.59.3 + version: 8.59.3(@typescript-eslint/parser@8.59.3(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: 8.59.2 - version: 8.59.2(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3) + specifier: 8.59.3 + version: 8.59.3(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3) '@vercel/nft': specifier: 1.5.0 version: 1.5.0(rollup@4.60.3) @@ -385,7 +385,7 @@ importers: version: 9.1.1(@types/node@25.6.2)(eslint@10.3.0(jiti@2.6.1)) eslint-plugin-import-x: specifier: 4.16.2 - version: 4.16.2(@typescript-eslint/utils@8.59.2(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.3.0(jiti@2.6.1)) + version: 4.16.2(@typescript-eslint/utils@8.59.3(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.3.0(jiti@2.6.1)) eslint-plugin-n: specifier: 18.0.1 version: 18.0.1(eslint@10.3.0(jiti@2.6.1))(ts-declaration-location@1.0.7(typescript@5.9.3))(typescript@5.9.3) @@ -2916,39 +2916,39 @@ packages: '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - '@typescript-eslint/eslint-plugin@8.59.2': - resolution: {integrity: sha512-j/bwmkBvHUtPNxzuWe5z6BEk3q54YRyGlBXkSsmfoih7zNrBvl5A9A98anlp/7JbyZcWIJ8KXo/3Tq/DjFLtuQ==} + '@typescript-eslint/eslint-plugin@8.59.3': + resolution: {integrity: sha512-PwFvSKsXGShKGW6n5bZOhGHEcCZXM8HofLK9fNsEwZXzFRjoY+XT1Vsf1zgyXdwTr0ZYz1/2tkZ0DBTT9jZjhw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.59.2 + '@typescript-eslint/parser': ^8.59.3 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/parser@8.59.2': - resolution: {integrity: sha512-plR3pp6D+SSUn1HM7xvSkx12/DhoHInI2YF35KAcVFNZvlC0gtrWqx7Qq1oH2Ssgi0vlFRCTbP+DZc7B9+TtsQ==} + '@typescript-eslint/parser@8.59.3': + resolution: {integrity: sha512-HPwA+hVkfcriajbNvTmZv4VRauibay+cWArYUYq7u7W7PmGShMxbPxLvrwDme55a6d5alG3nrYfhyJ/G28XlLg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/project-service@8.59.2': - resolution: {integrity: sha512-+2hqvEkeyf/0FBor67duF0Ll7Ot8jyKzDQOSrxazF/danillRq2DwR9dLptsXpoZQqxE1UisSmoZewrlPas9Vw==} + '@typescript-eslint/project-service@8.59.3': + resolution: {integrity: sha512-ECiUWa/KYRGDFUqTNehaRgzDshnJfkTABJxVemHk4ko22gcr0ukloKjWvyQ64g8YCV/UI47kN1dbmjf/GaQYng==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/scope-manager@8.59.2': - resolution: {integrity: sha512-JzfyEpEtOU89CcFSwyNS3mu4MLvLSXqnmX05+aKBDM+TdR5jzcGOEBwxwGNxrEQ7p/z6kK2WyioCGBf2zZBnvg==} + '@typescript-eslint/scope-manager@8.59.3': + resolution: {integrity: sha512-t2LvZnoEfzKtnPjgeEu41xw5gxq9mQVfYy4OoZ4Vlt0sk3JwxmhCca/AR7DwOiHrjWgjAj6as4AhRLKSDfvZIA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.59.2': - resolution: {integrity: sha512-BKK4alN7oi4C/zv4VqHQ+uRU+lTa6JGIZ7s1juw7b3RHo9OfKB+bKX3u0iVZetdsUCBBkSbdWbarJbmN0fTeSw==} + '@typescript-eslint/tsconfig-utils@8.59.3': + resolution: {integrity: sha512-PcIJHjmaREXLgIAIzLnSY9VucEzz8FKXsRgFa1DmdGCK/5tJpW03TKJF01Q6VZd1lLdz2sIKPWaDUZN9dp//dw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/type-utils@8.59.2': - resolution: {integrity: sha512-nhqaj1nmTdVVl/BP5omXNRGO38jn5iosis2vbdmupF2txCf8ylWT8lx+JlvMYYVqzGVKtjojUFoQ3JRWK+mfzQ==} + '@typescript-eslint/type-utils@8.59.3': + resolution: {integrity: sha512-g71d8QD8UaiHGvrJwyIS1hCX5r63w6Jll+4VEYhEAHXTDIqX1JgxhTAbEHtKntL9kuc4jRo7/GWw5xfCepSccQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -2958,25 +2958,25 @@ packages: resolution: {integrity: sha512-O9CjxypDT89fbHxRfETNoAnHj/i6IpRK0CvbVN3qibxlLdo5p5hcLmUuCCrHMpxiWSwKyI8mCP7qRNYuOJ0Uww==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.59.2': - resolution: {integrity: sha512-e82GVOE8Ps3E++Egvb6Y3Dw0S10u8NkQ9KXmtRhCWJJ8kDhOJTvtMAWnFL16kB1583goCWXsr0NieKCZMs2/0Q==} + '@typescript-eslint/types@8.59.3': + resolution: {integrity: sha512-ePFoH0g4ludssdRFqqDxQePCxU4WQyRa9+XVwjm7yLn0FKhMeoetC+qBEEI1Eyb1pGSDveTIT09Bvw2WhlGayg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.59.2': - resolution: {integrity: sha512-o0XPGNwcWw+FIwStOWn+BwBuEmL6QXP0rsvAFg7ET1dey1Nr6Wb1ac8p5HEsK0ygO/6mUxlk+YWQD9xcb/nnXg==} + '@typescript-eslint/typescript-estree@8.59.3': + resolution: {integrity: sha512-CbRjVRAf7Lr9Kr8RopKcbY45p2VfmmHrm0ygOCYFi7oU8q19m0Fs/6iHS7kNOmwpp+ob07ZVcAqlxUod9lYdmg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/utils@8.59.2': - resolution: {integrity: sha512-Juw3EinkXqjaffxz6roowvV7GZT/kET5vSKKZT6upl5TXdWkLkYmNPXwDDL2Vkt2DPn0nODIS4egC/0AGxKo/Q==} + '@typescript-eslint/utils@8.59.3': + resolution: {integrity: sha512-JAvT14goBzRzzzZyqq3P9BLArIxTtQURUtFgQ/V7FO+eU+Gg6ES+5ymOPP1wRxXcxAYeivCk4uS3jCKWI1K8Zg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/visitor-keys@8.59.2': - resolution: {integrity: sha512-NwjLUnGy8/Zfx23fl50tRC8rYaYnM52xNRYFAXvmiil9yh1+K6aRVQMnzW6gQB/1DLgWt977lYQn7C+wtgXZiA==} + '@typescript-eslint/visitor-keys@8.59.3': + resolution: {integrity: sha512-f1UQF7ggd42YiwI5wGrRaPsa+P0CINBlrkLPmGfpq/u/I/oVtecoEIfFR9ag/oa1sLOsRNZ6xehf6qMZhQGBDg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@unrs/resolver-binding-android-arm-eabi@1.11.1': @@ -8450,14 +8450,14 @@ snapshots: '@types/unist@3.0.3': {} - '@typescript-eslint/eslint-plugin@8.59.2(@typescript-eslint/parser@8.59.2(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.59.3(@typescript-eslint/parser@8.59.3(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.59.2(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.59.2 - '@typescript-eslint/type-utils': 8.59.2(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/utils': 8.59.2(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.59.2 + '@typescript-eslint/parser': 8.59.3(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.59.3 + '@typescript-eslint/type-utils': 8.59.3(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.59.3(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.59.3 eslint: 10.3.0(jiti@2.6.1) ignore: 7.0.5 natural-compare: 1.4.0 @@ -8466,41 +8466,41 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.59.2(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/parser@8.59.3(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 8.59.2 - '@typescript-eslint/types': 8.59.2 - '@typescript-eslint/typescript-estree': 8.59.2(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.59.2 + '@typescript-eslint/scope-manager': 8.59.3 + '@typescript-eslint/types': 8.59.3 + '@typescript-eslint/typescript-estree': 8.59.3(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.59.3 debug: 4.4.3 eslint: 10.3.0(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.59.2(typescript@5.9.3)': + '@typescript-eslint/project-service@8.59.3(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.59.2(typescript@5.9.3) - '@typescript-eslint/types': 8.59.2 + '@typescript-eslint/tsconfig-utils': 8.59.3(typescript@5.9.3) + '@typescript-eslint/types': 8.59.3 debug: 4.4.3 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.59.2': + '@typescript-eslint/scope-manager@8.59.3': dependencies: - '@typescript-eslint/types': 8.59.2 - '@typescript-eslint/visitor-keys': 8.59.2 + '@typescript-eslint/types': 8.59.3 + '@typescript-eslint/visitor-keys': 8.59.3 - '@typescript-eslint/tsconfig-utils@8.59.2(typescript@5.9.3)': + '@typescript-eslint/tsconfig-utils@8.59.3(typescript@5.9.3)': dependencies: typescript: 5.9.3 - '@typescript-eslint/type-utils@8.59.2(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.59.3(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.59.2 - '@typescript-eslint/typescript-estree': 8.59.2(typescript@5.9.3) - '@typescript-eslint/utils': 8.59.2(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/types': 8.59.3 + '@typescript-eslint/typescript-estree': 8.59.3(typescript@5.9.3) + '@typescript-eslint/utils': 8.59.3(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3) debug: 4.4.3 eslint: 10.3.0(jiti@2.6.1) ts-api-utils: 2.5.0(typescript@5.9.3) @@ -8510,37 +8510,37 @@ snapshots: '@typescript-eslint/types@8.58.0': {} - '@typescript-eslint/types@8.59.2': {} + '@typescript-eslint/types@8.59.3': {} - '@typescript-eslint/typescript-estree@8.59.2(typescript@5.9.3)': + '@typescript-eslint/typescript-estree@8.59.3(typescript@5.9.3)': dependencies: - '@typescript-eslint/project-service': 8.59.2(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.59.2(typescript@5.9.3) - '@typescript-eslint/types': 8.59.2 - '@typescript-eslint/visitor-keys': 8.59.2 + '@typescript-eslint/project-service': 8.59.3(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.59.3(typescript@5.9.3) + '@typescript-eslint/types': 8.59.3 + '@typescript-eslint/visitor-keys': 8.59.3 debug: 4.4.3 minimatch: 10.2.5 - semver: 7.7.4 + semver: 7.8.0 tinyglobby: 0.2.16 ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.59.2(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/utils@8.59.3(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@10.3.0(jiti@2.6.1)) - '@typescript-eslint/scope-manager': 8.59.2 - '@typescript-eslint/types': 8.59.2 - '@typescript-eslint/typescript-estree': 8.59.2(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.59.3 + '@typescript-eslint/types': 8.59.3 + '@typescript-eslint/typescript-estree': 8.59.3(typescript@5.9.3) eslint: 10.3.0(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.59.2': + '@typescript-eslint/visitor-keys@8.59.3': dependencies: - '@typescript-eslint/types': 8.59.2 + '@typescript-eslint/types': 8.59.3 eslint-visitor-keys: 5.0.1 '@unrs/resolver-binding-android-arm-eabi@1.11.1': @@ -9430,7 +9430,7 @@ snapshots: eslint: 10.3.0(jiti@2.6.1) eslint-compat-utils: 0.5.1(eslint@10.3.0(jiti@2.6.1)) - eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.59.2(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.3.0(jiti@2.6.1)): + eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.59.3(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.3.0(jiti@2.6.1)): dependencies: '@package-json/types': 0.0.12 '@typescript-eslint/types': 8.58.0 @@ -9444,7 +9444,7 @@ snapshots: stable-hash-x: 0.2.0 unrs-resolver: 1.11.1 optionalDependencies: - '@typescript-eslint/utils': 8.59.2(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.59.3(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3) eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color From f8963bbb79910c38f1ed9d7c0fe57815a06220aa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 May 2026 13:16:26 +0000 Subject: [PATCH 386/439] chore(deps-dev): bump the vitest group across 1 directory with 2 updates (#21989) Bumps the vitest group with 2 updates in the / directory: [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) and [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Updates `@vitest/coverage-v8` from 4.1.5 to 4.1.6 - [Release notes](https://github.com/vitest-dev/vitest/releases) - [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.6/packages/coverage-v8) Updates `vitest` from 4.1.5 to 4.1.6 - [Release notes](https://github.com/vitest-dev/vitest/releases) - [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.6/packages/vitest) --- updated-dependencies: - dependency-name: "@vitest/coverage-v8" dependency-version: 4.1.6 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: vitest - dependency-name: vitest dependency-version: 4.1.6 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: vitest ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 4 +- pnpm-lock.yaml | 145 ++++++++++++++++++++++++------------------------- 2 files changed, 74 insertions(+), 75 deletions(-) diff --git a/package.json b/package.json index e56368b43e03..4ae21508bee1 100644 --- a/package.json +++ b/package.json @@ -171,7 +171,7 @@ "@typescript-eslint/eslint-plugin": "8.59.3", "@typescript-eslint/parser": "8.59.3", "@vercel/nft": "1.5.0", - "@vitest/coverage-v8": "4.1.5", + "@vitest/coverage-v8": "4.1.6", "discord-api-types": "0.38.47", "domhandler": "6.0.1", "eslint": "10.3.0", @@ -204,7 +204,7 @@ "typescript": "5.9.3", "unified": "11.0.5", "vite-tsconfig-paths": "6.1.1", - "vitest": "4.1.5", + "vitest": "4.1.6", "wrangler": "4.90.1", "yaml-eslint-parser": "2.0.0" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 19f6b37cdb82..a69854ebd5f9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -369,8 +369,8 @@ importers: specifier: 1.5.0 version: 1.5.0(rollup@4.60.3) '@vitest/coverage-v8': - specifier: 4.1.5 - version: 4.1.5(vitest@4.1.5) + specifier: 4.1.6 + version: 4.1.6(vitest@4.1.6) discord-api-types: specifier: 0.38.47 version: 0.38.47 @@ -468,8 +468,8 @@ importers: specifier: 6.1.1 version: 6.1.1(typescript@5.9.3)(vite@7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)) vitest: - specifier: 4.1.5 - version: 4.1.5(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.2)(@vitest/coverage-v8@4.1.5)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.2)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)) + specifier: 4.1.6 + version: 4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.2)(@vitest/coverage-v8@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.2)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)) wrangler: specifier: 4.90.1 version: 4.90.1(@cloudflare/workers-types@4.20260511.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10) @@ -541,8 +541,8 @@ packages: resolution: {integrity: sha512-HTD3bskipk5MSm08twTW6832jzIXUhxMddy4NPPzIMuyMEsrs0ZgwAaMj5ubB5+6hMlUjDu17vNconEmwsmpYg==} engines: {node: ^20.19.0 || >=22.12.0} - '@babel/parser@7.29.2': - resolution: {integrity: sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==} + '@babel/parser@7.29.3': + resolution: {integrity: sha512-b3ctpQwp+PROvU/cttc4OYl4MzfJUWy6FZg+PMXfzmt/+39iHVF0sDfqay8TQM3JA2EUOyKcFZt75jWriQijsA==} engines: {node: '>=6.0.0'} hasBin: true @@ -2799,6 +2799,9 @@ packages: '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + '@types/estree@1.0.9': + resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} + '@types/etag@1.8.4': resolution: {integrity: sha512-f1z/UMth8gQ6636NBqhFmJ3zES7EuDcUnV6K1gl1osHp+85KPKX+VixYWUpqLkw1fftCagyHJjJOZjZkEi2rHw==} @@ -3087,20 +3090,20 @@ packages: engines: {node: '>=20'} hasBin: true - '@vitest/coverage-v8@4.1.5': - resolution: {integrity: sha512-38C0/Ddb7HcRG0Z4/DUem8x57d2p9jYgp18mkaYswEOQBGsI1CG4f/hjm0ZCeaJfWhSZ4k7jgs29V1Zom7Ki9A==} + '@vitest/coverage-v8@4.1.6': + resolution: {integrity: sha512-36l628fQ/9a/8ihy97eOtEnvWQEdqULQOJtcaxtoNq0G1w3Mxd4szSahOaMM9/NGyZ+hyKcMtIW/WIxq0XQViQ==} peerDependencies: - '@vitest/browser': 4.1.5 - vitest: 4.1.5 + '@vitest/browser': 4.1.6 + vitest: 4.1.6 peerDependenciesMeta: '@vitest/browser': optional: true - '@vitest/expect@4.1.5': - resolution: {integrity: sha512-PWBaRY5JoKuRnHlUHfpV/KohFylaDZTupcXN1H9vYryNLOnitSw60Mw9IAE2r67NbwwzBw/Cc/8q9BK3kIX8Kw==} + '@vitest/expect@4.1.6': + resolution: {integrity: sha512-7EHDquPthALSV0jhhjgEW8FXaviMx7rSqu8W6oqCoAuOhKov814P99QDV1pxMA3QPv21YudvJngIhjrNI4opLg==} - '@vitest/mocker@4.1.5': - resolution: {integrity: sha512-/x2EmFC4mT4NNzqvC3fmesuV97w5FC903KPmey4gsnJiMQ3Be1IlDKVaDaG8iqaLFHqJ2FVEkxZk5VmeLjIItw==} + '@vitest/mocker@4.1.6': + resolution: {integrity: sha512-MCFc63czMjEInOlcY2cpQCvCN+KgbAn+60xu9cMgP4sKaLC5JNAKw7JH8QdAnoAC88hW1IiSNZ+GgVXlN1UcMQ==} peerDependencies: msw: ^2.4.9 vite: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -3110,20 +3113,20 @@ packages: vite: optional: true - '@vitest/pretty-format@4.1.5': - resolution: {integrity: sha512-7I3q6l5qr03dVfMX2wCo9FxwSJbPdwKjy2uu/YPpU3wfHvIL4QHwVRp57OfGrDFeUJ8/8QdfBKIV12FTtLn00g==} + '@vitest/pretty-format@4.1.6': + resolution: {integrity: sha512-h5SxD/IzNhZYnrSZRsUZQIC+vD0GY8cUvq0iwsmkFKixRCKLLWqCXa/FIQ4S1R+sI+PGoojkHsdNrbZiM9Qpgw==} - '@vitest/runner@4.1.5': - resolution: {integrity: sha512-2D+o7Pr82IEO46YPpoA/YU0neeyr6FTerQb5Ro7BUnBuv6NQtT/kmVnczngiMEBhzgqz2UZYl5gArejsyERDSQ==} + '@vitest/runner@4.1.6': + resolution: {integrity: sha512-nOPCmn2+yD0ZNmKdsXGv/UxMMWbMuKeD6GyYncNwdkYDxpQvrPSKYj2rWuDjC2Y4b6w6hjip5dBKFzEUuZe3vA==} - '@vitest/snapshot@4.1.5': - resolution: {integrity: sha512-zypXEt4KH/XgKGPUz4eC2AvErYx0My5hfL8oDb1HzGFpEk1P62bxSohdyOmvz+d9UJwanI68MKwr2EquOaOgMQ==} + '@vitest/snapshot@4.1.6': + resolution: {integrity: sha512-YhsdE6xAVfTDmzjxL2ZDUvjj+ZsgyOKe+TdQzqkD72wIOmHka8NuGQ6NpTNZv9D2Z63fbwWKJPeVpEw4EQgYxw==} - '@vitest/spy@4.1.5': - resolution: {integrity: sha512-2lNOsh6+R2Idnf1TCZqSwYlKN2E/iDlD8sgU59kYVl+OMDmvldO1VDk39smRfpUNwYpNRVn3w4YfuC7KfbBnkQ==} + '@vitest/spy@4.1.6': + resolution: {integrity: sha512-JFKxMx6udhwKh/Ldo270e17QX710vgunMkuPAvXjHSvC6oqLWAHhVhjg/I71q0u0CBSErIODV1Kjv0FQNSWjdg==} - '@vitest/utils@4.1.5': - resolution: {integrity: sha512-76wdkrmfXfqGjueGgnb45ITPyUi1ycZ4IHgC2bhPDUfWHklY/q3MdLOAB+TF1e6xfl8NxNY0ZYaPCFNWSsw3Ug==} + '@vitest/utils@4.1.6': + resolution: {integrity: sha512-FxIY+U81R3LGKCxaHHFRQ5+g6/iRgGLmeHWdp2Amj4ljQRrEIWHmZyDfDYBRZlpyqA7qKxtS9DD1dhk8RnRIVQ==} '@zone-eu/mailsplit@5.4.8': resolution: {integrity: sha512-eEyACj4JZ7sjzRvy26QhLgKEMWwQbsw1+QZnlLX+/gihcNH07lVPOcnwf5U6UAL7gkc//J3jVd76o/WS+taUiA==} @@ -3787,8 +3790,8 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-module-lexer@2.0.0: - resolution: {integrity: sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==} + es-module-lexer@2.1.0: + resolution: {integrity: sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==} es5-ext@0.10.64: resolution: {integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==} @@ -5821,10 +5824,6 @@ packages: tinybench@2.9.0: resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} - tinyexec@1.1.1: - resolution: {integrity: sha512-VKS/ZaQhhkKFMANmAOhhXVoIfBXblQxGX1myCQ2faQrfmobMftXeJPcZGp0gS07ocvGJWDLZGyOZDadDBqYIJg==} - engines: {node: '>=18'} - tinyexec@1.1.2: resolution: {integrity: sha512-dAqSqE/RabpBKI8+h26GfLq6Vb3JVXs30XYQjdMjaj/c2tS8IYYMbIzP599KtRj7c57/wYApb3QjgRgXmrCukA==} engines: {node: '>=18'} @@ -6227,20 +6226,20 @@ packages: yaml: optional: true - vitest@4.1.5: - resolution: {integrity: sha512-9Xx1v3/ih3m9hN+SbfkUyy0JAs72ap3r7joc87XL6jwF0jGg6mFBvQ1SrwaX+h8BlkX6Hz9shdd1uo6AF+ZGpg==} + vitest@4.1.6: + resolution: {integrity: sha512-6lvjbS3p9b4CrdCmguzbh2/4uoXhGE2q71R4OX5sqF9R1bo9Xd6fGrMAfvp5wnCzlBnFVdCOp6onuTQVbo8iUQ==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@opentelemetry/api': ^1.9.0 '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 - '@vitest/browser-playwright': 4.1.5 - '@vitest/browser-preview': 4.1.5 - '@vitest/browser-webdriverio': 4.1.5 - '@vitest/coverage-istanbul': 4.1.5 - '@vitest/coverage-v8': 4.1.5 - '@vitest/ui': 4.1.5 + '@vitest/browser-playwright': 4.1.6 + '@vitest/browser-preview': 4.1.6 + '@vitest/browser-webdriverio': 4.1.6 + '@vitest/coverage-istanbul': 4.1.6 + '@vitest/coverage-v8': 4.1.6 + '@vitest/ui': 4.1.6 happy-dom: '*' jsdom: '*' vite: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -6570,7 +6569,7 @@ snapshots: '@babel/helper-validator-identifier@8.0.0-rc.4': {} - '@babel/parser@7.29.2': + '@babel/parser@7.29.3': dependencies: '@babel/types': 7.29.0 @@ -8314,6 +8313,8 @@ snapshots: '@types/estree@1.0.8': {} + '@types/estree@1.0.9': {} + '@types/etag@1.8.4': dependencies: '@types/node': 25.6.2 @@ -8621,10 +8622,10 @@ snapshots: - rollup - supports-color - '@vitest/coverage-v8@4.1.5(vitest@4.1.5)': + '@vitest/coverage-v8@4.1.6(vitest@4.1.6)': dependencies: '@bcoe/v8-coverage': 1.0.2 - '@vitest/utils': 4.1.5 + '@vitest/utils': 4.1.6 ast-v8-to-istanbul: 1.0.0 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 @@ -8633,47 +8634,47 @@ snapshots: obug: 2.1.1 std-env: 4.1.0 tinyrainbow: 3.1.0 - vitest: 4.1.5(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.2)(@vitest/coverage-v8@4.1.5)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.2)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)) + vitest: 4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.2)(@vitest/coverage-v8@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.2)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)) - '@vitest/expect@4.1.5': + '@vitest/expect@4.1.6': dependencies: '@standard-schema/spec': 1.1.0 '@types/chai': 5.2.3 - '@vitest/spy': 4.1.5 - '@vitest/utils': 4.1.5 + '@vitest/spy': 4.1.6 + '@vitest/utils': 4.1.6 chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.5(msw@2.13.4(@types/node@25.6.2)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0))': + '@vitest/mocker@4.1.6(msw@2.13.4(@types/node@25.6.2)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0))': dependencies: - '@vitest/spy': 4.1.5 + '@vitest/spy': 4.1.6 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: msw: 2.13.4(@types/node@25.6.2)(typescript@5.9.3) vite: 7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0) - '@vitest/pretty-format@4.1.5': + '@vitest/pretty-format@4.1.6': dependencies: tinyrainbow: 3.1.0 - '@vitest/runner@4.1.5': + '@vitest/runner@4.1.6': dependencies: - '@vitest/utils': 4.1.5 + '@vitest/utils': 4.1.6 pathe: 2.0.3 - '@vitest/snapshot@4.1.5': + '@vitest/snapshot@4.1.6': dependencies: - '@vitest/pretty-format': 4.1.5 - '@vitest/utils': 4.1.5 + '@vitest/pretty-format': 4.1.6 + '@vitest/utils': 4.1.6 magic-string: 0.30.21 pathe: 2.0.3 - '@vitest/spy@4.1.5': {} + '@vitest/spy@4.1.6': {} - '@vitest/utils@4.1.5': + '@vitest/utils@4.1.6': dependencies: - '@vitest/pretty-format': 4.1.5 + '@vitest/pretty-format': 4.1.6 convert-source-map: 2.0.0 tinyrainbow: 3.1.0 @@ -9253,7 +9254,7 @@ snapshots: es-errors@1.3.0: optional: true - es-module-lexer@2.0.0: {} + es-module-lexer@2.1.0: {} es5-ext@0.10.64: dependencies: @@ -9584,7 +9585,7 @@ snapshots: estree-walker@3.0.3: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.9 esutils@2.0.3: {} @@ -10424,7 +10425,7 @@ snapshots: magicast@0.5.2: dependencies: - '@babel/parser': 7.29.2 + '@babel/parser': 7.29.3 '@babel/types': 7.29.0 source-map-js: 1.2.1 @@ -10443,7 +10444,7 @@ snapshots: make-dir@4.0.0: dependencies: - semver: 7.7.4 + semver: 7.8.0 map-obj@4.3.0: {} @@ -11876,8 +11877,6 @@ snapshots: tinybench@2.9.0: {} - tinyexec@1.1.1: {} - tinyexec@1.1.2: {} tinyglobby@0.2.16: @@ -12229,16 +12228,16 @@ snapshots: tsx: 4.21.0 yaml: 2.9.0 - vitest@4.1.5(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.2)(@vitest/coverage-v8@4.1.5)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.2)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)): + vitest@4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.2)(@vitest/coverage-v8@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.2)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)): dependencies: - '@vitest/expect': 4.1.5 - '@vitest/mocker': 4.1.5(msw@2.13.4(@types/node@25.6.2)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)) - '@vitest/pretty-format': 4.1.5 - '@vitest/runner': 4.1.5 - '@vitest/snapshot': 4.1.5 - '@vitest/spy': 4.1.5 - '@vitest/utils': 4.1.5 - es-module-lexer: 2.0.0 + '@vitest/expect': 4.1.6 + '@vitest/mocker': 4.1.6(msw@2.13.4(@types/node@25.6.2)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)) + '@vitest/pretty-format': 4.1.6 + '@vitest/runner': 4.1.6 + '@vitest/snapshot': 4.1.6 + '@vitest/spy': 4.1.6 + '@vitest/utils': 4.1.6 + es-module-lexer: 2.1.0 expect-type: 1.3.0 magic-string: 0.30.21 obug: 2.1.1 @@ -12246,7 +12245,7 @@ snapshots: picomatch: 4.0.4 std-env: 4.1.0 tinybench: 2.9.0 - tinyexec: 1.1.1 + tinyexec: 1.1.2 tinyglobby: 0.2.16 tinyrainbow: 3.1.0 vite: 7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0) @@ -12255,7 +12254,7 @@ snapshots: '@edge-runtime/vm': 3.2.0 '@opentelemetry/api': 1.9.1 '@types/node': 25.6.2 - '@vitest/coverage-v8': 4.1.5(vitest@4.1.5) + '@vitest/coverage-v8': 4.1.6(vitest@4.1.6) jsdom: 29.1.1(@noble/hashes@2.0.1) transitivePeerDependencies: - msw From c9120063957433c1de9d47c2dceb9a560b0b121b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 May 2026 21:48:21 +0800 Subject: [PATCH 387/439] chore(deps-dev): bump @types/node from 25.6.2 to 25.7.0 (#21992) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 25.6.2 to 25.7.0. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-version: 25.7.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 148 ++++++++++++++++++++++++------------------------- 2 files changed, 75 insertions(+), 75 deletions(-) diff --git a/package.json b/package.json index 4ae21508bee1..6846aec31bfa 100644 --- a/package.json +++ b/package.json @@ -166,7 +166,7 @@ "@types/mailparser": "3.4.6", "@types/markdown-it": "14.1.2", "@types/module-alias": "2.0.4", - "@types/node": "25.6.2", + "@types/node": "25.7.0", "@types/sanitize-html": "2.16.1", "@typescript-eslint/eslint-plugin": "8.59.3", "@typescript-eslint/parser": "8.59.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a69854ebd5f9..fd2a26768ea7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -354,8 +354,8 @@ importers: specifier: 2.0.4 version: 2.0.4 '@types/node': - specifier: 25.6.2 - version: 25.6.2 + specifier: 25.7.0 + version: 25.7.0 '@types/sanitize-html': specifier: 2.16.1 version: 2.16.1 @@ -382,7 +382,7 @@ importers: version: 10.3.0(jiti@2.6.1) eslint-nibble: specifier: 9.1.1 - version: 9.1.1(@types/node@25.6.2)(eslint@10.3.0(jiti@2.6.1)) + version: 9.1.1(@types/node@25.7.0)(eslint@10.3.0(jiti@2.6.1)) eslint-plugin-import-x: specifier: 4.16.2 version: 4.16.2(@typescript-eslint/utils@8.59.3(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.3.0(jiti@2.6.1)) @@ -427,7 +427,7 @@ importers: version: 3.0.5 msw: specifier: 2.13.4 - version: 2.13.4(@types/node@25.6.2)(typescript@5.9.3) + version: 2.13.4(@types/node@25.7.0)(typescript@5.9.3) node-network-devtools: specifier: 1.0.30 version: 1.0.30(undici@7.25.0)(utf-8-validate@5.0.10) @@ -466,10 +466,10 @@ importers: version: 11.0.5 vite-tsconfig-paths: specifier: 6.1.1 - version: 6.1.1(typescript@5.9.3)(vite@7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)) + version: 6.1.1(typescript@5.9.3)(vite@7.3.1(@types/node@25.7.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)) vitest: specifier: 4.1.6 - version: 4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.2)(@vitest/coverage-v8@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.2)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.7.0)(@vitest/coverage-v8@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.7.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.7.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)) wrangler: specifier: 4.90.1 version: 4.90.1(@cloudflare/workers-types@4.20260511.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10) @@ -2868,8 +2868,8 @@ packages: '@types/mysql@2.15.27': resolution: {integrity: sha512-YfWiV16IY0OeBfBCk8+hXKmdTKrKlwKN1MNKAPBu5JYxLwBEZl7QzeEpGnlZb3VMGJrrGmB84gXiH+ofs/TezA==} - '@types/node@25.6.2': - resolution: {integrity: sha512-sokuT28dxf9JT5Kady1fsXOvI4HVpjZa95NKT5y9PNTIrs2AsobR4GFAA90ZG8M+nxVRLysCXsVj6eGC7Vbrlw==} + '@types/node@25.7.0': + resolution: {integrity: sha512-z+pdZyxE+RTQE9AcboAZCb4otwcrvgHD+GlBpPgn0emDVt0ohrTMhAwlr2Wd9nZ+nihhYFxO2pThz3C5qSu2Eg==} '@types/pg-pool@2.0.7': resolution: {integrity: sha512-U4CwmGVQcbEuqpyju8/ptOKg6gEC+Tqsvj2xS9o1g71bUh8twxnC6ZL5rZKCsGN0iyH0CwgUyc9VR5owNQF9Ng==} @@ -6043,8 +6043,8 @@ packages: unconfig-core@7.5.0: resolution: {integrity: sha512-Su3FauozOGP44ZmKdHy2oE6LPjk51M/TRRjHv2HNCWiDvfvCoxC2lno6jevMA91MYAdCdwP05QnWdWpSbncX/w==} - undici-types@7.19.2: - resolution: {integrity: sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==} + undici-types@7.21.0: + resolution: {integrity: sha512-w9IMgQrz4O0YN1LtB7K5P63vhlIOvC7opSmouCJ+ZywlPAlO9gIkJ+otk6LvGpAs2wg4econaCz3TvQ9xPoyuQ==} undici-types@7.24.6: resolution: {integrity: sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==} @@ -7166,76 +7166,76 @@ snapshots: '@inquirer/ansi@2.0.5': {} - '@inquirer/checkbox@4.3.2(@types/node@25.6.2)': + '@inquirer/checkbox@4.3.2(@types/node@25.7.0)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@25.6.2) + '@inquirer/core': 10.3.2(@types/node@25.7.0) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@25.6.2) + '@inquirer/type': 3.0.10(@types/node@25.7.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 25.6.2 + '@types/node': 25.7.0 - '@inquirer/confirm@5.1.21(@types/node@25.6.2)': + '@inquirer/confirm@5.1.21(@types/node@25.7.0)': dependencies: - '@inquirer/core': 10.3.2(@types/node@25.6.2) - '@inquirer/type': 3.0.10(@types/node@25.6.2) + '@inquirer/core': 10.3.2(@types/node@25.7.0) + '@inquirer/type': 3.0.10(@types/node@25.7.0) optionalDependencies: - '@types/node': 25.6.2 + '@types/node': 25.7.0 - '@inquirer/confirm@6.0.11(@types/node@25.6.2)': + '@inquirer/confirm@6.0.11(@types/node@25.7.0)': dependencies: - '@inquirer/core': 11.1.8(@types/node@25.6.2) - '@inquirer/type': 4.0.5(@types/node@25.6.2) + '@inquirer/core': 11.1.8(@types/node@25.7.0) + '@inquirer/type': 4.0.5(@types/node@25.7.0) optionalDependencies: - '@types/node': 25.6.2 + '@types/node': 25.7.0 - '@inquirer/core@10.3.2(@types/node@25.6.2)': + '@inquirer/core@10.3.2(@types/node@25.7.0)': dependencies: '@inquirer/ansi': 1.0.2 '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@25.6.2) + '@inquirer/type': 3.0.10(@types/node@25.7.0) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 25.6.2 + '@types/node': 25.7.0 - '@inquirer/core@11.1.8(@types/node@25.6.2)': + '@inquirer/core@11.1.8(@types/node@25.7.0)': dependencies: '@inquirer/ansi': 2.0.5 '@inquirer/figures': 2.0.5 - '@inquirer/type': 4.0.5(@types/node@25.6.2) + '@inquirer/type': 4.0.5(@types/node@25.7.0) cli-width: 4.1.0 fast-wrap-ansi: 0.2.0 mute-stream: 3.0.0 signal-exit: 4.1.0 optionalDependencies: - '@types/node': 25.6.2 + '@types/node': 25.7.0 '@inquirer/figures@1.0.15': {} '@inquirer/figures@2.0.5': {} - '@inquirer/select@4.4.2(@types/node@25.6.2)': + '@inquirer/select@4.4.2(@types/node@25.7.0)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@25.6.2) + '@inquirer/core': 10.3.2(@types/node@25.7.0) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@25.6.2) + '@inquirer/type': 3.0.10(@types/node@25.7.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 25.6.2 + '@types/node': 25.7.0 - '@inquirer/type@3.0.10(@types/node@25.6.2)': + '@inquirer/type@3.0.10(@types/node@25.7.0)': optionalDependencies: - '@types/node': 25.6.2 + '@types/node': 25.7.0 - '@inquirer/type@4.0.5(@types/node@25.6.2)': + '@inquirer/type@4.0.5(@types/node@25.7.0)': optionalDependencies: - '@types/node': 25.6.2 + '@types/node': 25.7.0 '@ioredis/commands@1.5.1': {} @@ -8281,7 +8281,7 @@ snapshots: '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.38 - '@types/node': 25.6.2 + '@types/node': 25.7.0 '@types/caseless@0.12.5': {} @@ -8294,7 +8294,7 @@ snapshots: '@types/connect@3.4.38': dependencies: - '@types/node': 25.6.2 + '@types/node': 25.7.0 '@types/crypto-js@4.2.2': {} @@ -8317,11 +8317,11 @@ snapshots: '@types/etag@1.8.4': dependencies: - '@types/node': 25.6.2 + '@types/node': 25.7.0 '@types/express-serve-static-core@5.1.1': dependencies: - '@types/node': 25.6.2 + '@types/node': 25.7.0 '@types/qs': 6.15.1 '@types/range-parser': 1.2.7 '@types/send': 1.2.1 @@ -8335,7 +8335,7 @@ snapshots: '@types/fs-extra@11.0.4': dependencies: '@types/jsonfile': 6.1.4 - '@types/node': 25.6.2 + '@types/node': 25.7.0 '@types/html-to-text@9.0.4': {} @@ -8347,7 +8347,7 @@ snapshots: '@types/jsdom@28.0.1': dependencies: - '@types/node': 25.6.2 + '@types/node': 25.7.0 '@types/tough-cookie': 4.0.5 parse5: 7.3.0 undici-types: 7.24.6 @@ -8360,7 +8360,7 @@ snapshots: '@types/jsonfile@6.1.4': dependencies: - '@types/node': 25.6.2 + '@types/node': 25.7.0 '@types/jsrsasign@10.5.15': {} @@ -8368,7 +8368,7 @@ snapshots: '@types/mailparser@3.4.6': dependencies: - '@types/node': 25.6.2 + '@types/node': 25.7.0 iconv-lite: 0.6.3 '@types/markdown-it@14.1.2': @@ -8388,11 +8388,11 @@ snapshots: '@types/mysql@2.15.27': dependencies: - '@types/node': 25.6.2 + '@types/node': 25.7.0 - '@types/node@25.6.2': + '@types/node@25.7.0': dependencies: - undici-types: 7.19.2 + undici-types: 7.21.0 '@types/pg-pool@2.0.7': dependencies: @@ -8400,7 +8400,7 @@ snapshots: '@types/pg@8.15.6': dependencies: - '@types/node': 25.6.2 + '@types/node': 25.7.0 pg-protocol: 1.13.0 pg-types: 2.2.0 @@ -8416,7 +8416,7 @@ snapshots: '@types/request@2.48.13': dependencies: '@types/caseless': 0.12.5 - '@types/node': 25.6.2 + '@types/node': 25.7.0 '@types/tough-cookie': 4.0.5 form-data: 2.5.5 @@ -8426,22 +8426,22 @@ snapshots: '@types/send@1.2.1': dependencies: - '@types/node': 25.6.2 + '@types/node': 25.7.0 '@types/serve-static@2.2.0': dependencies: '@types/http-errors': 2.0.5 - '@types/node': 25.6.2 + '@types/node': 25.7.0 '@types/set-cookie-parser@2.4.10': dependencies: - '@types/node': 25.6.2 + '@types/node': 25.7.0 '@types/statuses@2.0.6': {} '@types/tedious@4.0.14': dependencies: - '@types/node': 25.6.2 + '@types/node': 25.7.0 '@types/tough-cookie@4.0.5': {} @@ -8634,7 +8634,7 @@ snapshots: obug: 2.1.1 std-env: 4.1.0 tinyrainbow: 3.1.0 - vitest: 4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.2)(@vitest/coverage-v8@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.2)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)) + vitest: 4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.7.0)(@vitest/coverage-v8@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.7.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.7.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)) '@vitest/expect@4.1.6': dependencies: @@ -8645,14 +8645,14 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.6(msw@2.13.4(@types/node@25.6.2)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0))': + '@vitest/mocker@4.1.6(msw@2.13.4(@types/node@25.7.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.7.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0))': dependencies: '@vitest/spy': 4.1.6 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - msw: 2.13.4(@types/node@25.6.2)(typescript@5.9.3) - vite: 7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0) + msw: 2.13.4(@types/node@25.7.0)(typescript@5.9.3) + vite: 7.3.1(@types/node@25.7.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0) '@vitest/pretty-format@4.1.6': dependencies: @@ -9410,12 +9410,12 @@ snapshots: - supports-color optional: true - eslint-nibble@9.1.1(@types/node@25.6.2)(eslint@10.3.0(jiti@2.6.1)): + eslint-nibble@9.1.1(@types/node@25.7.0)(eslint@10.3.0(jiti@2.6.1)): dependencies: '@babel/code-frame': 7.29.0 - '@inquirer/checkbox': 4.3.2(@types/node@25.6.2) - '@inquirer/confirm': 5.1.21(@types/node@25.6.2) - '@inquirer/select': 4.4.2(@types/node@25.6.2) + '@inquirer/checkbox': 4.3.2(@types/node@25.7.0) + '@inquirer/confirm': 5.1.21(@types/node@25.7.0) + '@inquirer/select': 4.4.2(@types/node@25.7.0) eslint: 10.3.0(jiti@2.6.1) eslint-filtered-fix: 0.3.0(eslint@10.3.0(jiti@2.6.1)) optionator: 0.9.4 @@ -10833,9 +10833,9 @@ snapshots: ms@2.1.3: {} - msw@2.13.4(@types/node@25.6.2)(typescript@5.9.3): + msw@2.13.4(@types/node@25.7.0)(typescript@5.9.3): dependencies: - '@inquirer/confirm': 6.0.11(@types/node@25.6.2) + '@inquirer/confirm': 6.0.11(@types/node@25.7.0) '@mswjs/interceptors': 0.41.3(patch_hash=5027fcc424409c41c41147fc6c90b36166061522e0b03e73b45f9a973fcd2a28) '@open-draft/deferred-promise': 3.0.0 '@types/statuses': 2.0.6 @@ -11285,7 +11285,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 25.6.2 + '@types/node': 25.7.0 long: 5.3.2 protobufjs@8.0.1: @@ -11300,7 +11300,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.1 - '@types/node': 25.6.2 + '@types/node': 25.7.0 long: 5.3.2 psl@1.15.0: @@ -12048,7 +12048,7 @@ snapshots: '@quansync/fs': 1.0.0 quansync: 1.0.0 - undici-types@7.19.2: {} + undici-types@7.21.0: {} undici-types@7.24.6: {} @@ -12203,17 +12203,17 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vite-tsconfig-paths@6.1.1(typescript@5.9.3)(vite@7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)): + vite-tsconfig-paths@6.1.1(typescript@5.9.3)(vite@7.3.1(@types/node@25.7.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)): dependencies: debug: 4.4.3 globrex: 0.1.2 tsconfck: 3.1.6(typescript@5.9.3) - vite: 7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0) + vite: 7.3.1(@types/node@25.7.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0) transitivePeerDependencies: - supports-color - typescript - vite@7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0): + vite@7.3.1(@types/node@25.7.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0): dependencies: esbuild: 0.27.7 fdir: 6.5.0(picomatch@4.0.4) @@ -12222,16 +12222,16 @@ snapshots: rollup: 4.60.3 tinyglobby: 0.2.16 optionalDependencies: - '@types/node': 25.6.2 + '@types/node': 25.7.0 fsevents: 2.3.3 jiti: 2.6.1 tsx: 4.21.0 yaml: 2.9.0 - vitest@4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.6.2)(@vitest/coverage-v8@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.6.2)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)): + vitest@4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.7.0)(@vitest/coverage-v8@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.7.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.7.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)): dependencies: '@vitest/expect': 4.1.6 - '@vitest/mocker': 4.1.6(msw@2.13.4(@types/node@25.6.2)(typescript@5.9.3))(vite@7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)) + '@vitest/mocker': 4.1.6(msw@2.13.4(@types/node@25.7.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.7.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)) '@vitest/pretty-format': 4.1.6 '@vitest/runner': 4.1.6 '@vitest/snapshot': 4.1.6 @@ -12248,12 +12248,12 @@ snapshots: tinyexec: 1.1.2 tinyglobby: 0.2.16 tinyrainbow: 3.1.0 - vite: 7.3.1(@types/node@25.6.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0) + vite: 7.3.1(@types/node@25.7.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: '@edge-runtime/vm': 3.2.0 '@opentelemetry/api': 1.9.1 - '@types/node': 25.6.2 + '@types/node': 25.7.0 '@vitest/coverage-v8': 4.1.6(vitest@4.1.6) jsdom: 29.1.1(@noble/hashes@2.0.1) transitivePeerDependencies: From 9e7766ef4ceb6109544ff3609eac681558116c24 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 May 2026 14:00:40 +0000 Subject: [PATCH 388/439] chore(deps-dev): bump @types/jsdom from 28.0.1 to 28.0.2 (#21990) Bumps [@types/jsdom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jsdom) from 28.0.1 to 28.0.2. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jsdom) --- updated-dependencies: - dependency-name: "@types/jsdom" dependency-version: 28.0.2 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index 6846aec31bfa..463067e19c9e 100644 --- a/package.json +++ b/package.json @@ -160,7 +160,7 @@ "@types/fs-extra": "11.0.4", "@types/html-to-text": "9.0.4", "@types/js-beautify": "1.14.3", - "@types/jsdom": "28.0.1", + "@types/jsdom": "28.0.2", "@types/json-bigint": "1.0.4", "@types/jsrsasign": "10.5.15", "@types/mailparser": "3.4.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fd2a26768ea7..5548a7bc2899 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -336,8 +336,8 @@ importers: specifier: 1.14.3 version: 1.14.3 '@types/jsdom': - specifier: 28.0.1 - version: 28.0.1 + specifier: 28.0.2 + version: 28.0.2 '@types/json-bigint': specifier: 1.0.4 version: 1.0.4 @@ -2826,8 +2826,8 @@ packages: '@types/js-beautify@1.14.3': resolution: {integrity: sha512-FMbQHz+qd9DoGvgLHxeqqVPaNRffpIu5ZjozwV8hf9JAGpIOzuAf4wGbRSo8LNITHqGjmmVjaMggTT5P4v4IHg==} - '@types/jsdom@28.0.1': - resolution: {integrity: sha512-GJq2QE4TAZ5ajSoCasn5DOFm8u1mI3tIFvM5tIq3W5U/RTB6gsHwc6Yhpl91X9VSDOUVblgXmG+2+sSvFQrdlw==} + '@types/jsdom@28.0.2': + resolution: {integrity: sha512-zZYItekplnGirFhVDrcB0+103TMakXfKfIp7uECxaFzFG3Ws5kYQSwVb1d4pQfJMMjQda6pfuZxueAv9CMiJbw==} '@types/jsesc@2.5.1': resolution: {integrity: sha512-9VN+6yxLOPLOav+7PwjZbxiID2bVaeq0ED4qSQmdQTdjnXJSaCVKTR58t15oqH1H5t8Ng2ZX1SabJVoN9Q34bw==} @@ -6046,8 +6046,8 @@ packages: undici-types@7.21.0: resolution: {integrity: sha512-w9IMgQrz4O0YN1LtB7K5P63vhlIOvC7opSmouCJ+ZywlPAlO9gIkJ+otk6LvGpAs2wg4econaCz3TvQ9xPoyuQ==} - undici-types@7.24.6: - resolution: {integrity: sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==} + undici-types@7.25.0: + resolution: {integrity: sha512-AXNgS1Byr27fTI+2bsPEkV9CxkT8H6xNyRI68b3TatlZo3RkzlqQBLL+w7SmGPVpokjHbcuNVQUWE7FRTg+LRA==} undici@6.25.0: resolution: {integrity: sha512-ZgpWDC5gmNiuY9CnLVXEH8rl50xhRCuLNA97fAUnKi8RRuV4E6KG31pDTsLVUKnohJE0I3XDrTeEydAXRw47xg==} @@ -8345,12 +8345,12 @@ snapshots: '@types/js-beautify@1.14.3': {} - '@types/jsdom@28.0.1': + '@types/jsdom@28.0.2': dependencies: '@types/node': 25.7.0 '@types/tough-cookie': 4.0.5 - parse5: 7.3.0 - undici-types: 7.24.6 + parse5: 8.0.1 + undici-types: 7.25.0 '@types/jsesc@2.5.1': {} @@ -12050,7 +12050,7 @@ snapshots: undici-types@7.21.0: {} - undici-types@7.24.6: {} + undici-types@7.25.0: {} undici@6.25.0: {} From 2afa3052b746909e10c330ee0d95d44d7554f171 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 May 2026 22:01:57 +0800 Subject: [PATCH 389/439] chore(deps): bump @notionhq/client from 5.20.0 to 5.21.0 (#21994) Bumps [@notionhq/client](https://github.com/makenotion/notion-sdk-js) from 5.20.0 to 5.21.0. - [Release notes](https://github.com/makenotion/notion-sdk-js/releases) - [Commits](https://github.com/makenotion/notion-sdk-js/compare/v5.20.0...v5.21.0) --- updated-dependencies: - dependency-name: "@notionhq/client" dependency-version: 5.21.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 463067e19c9e..3865be5d5fd0 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "@hono/node-server": "2.0.2", "@hono/zod-openapi": "1.4.0", "@jocmp/mercury-parser": "3.0.8", - "@notionhq/client": "5.20.0", + "@notionhq/client": "5.21.0", "@opentelemetry/api": "1.9.1", "@opentelemetry/exporter-prometheus": "0.217.0", "@opentelemetry/exporter-trace-otlp-http": "0.217.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5548a7bc2899..902c14331182 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -53,8 +53,8 @@ importers: specifier: 3.0.8 version: 3.0.8 '@notionhq/client': - specifier: 5.20.0 - version: 5.20.0 + specifier: 5.21.0 + version: 5.21.0 '@opentelemetry/api': specifier: 1.9.1 version: 1.9.1 @@ -1632,8 +1632,8 @@ packages: resolution: {integrity: sha512-y3SvzjuY1ygnzWA4Krwx/WaJAsTMP11DN+e21A8Fa8PW1oDtVB5NSRW7LWurAiS2oKRkuCgcjTYMkBuBkcPCRg==} engines: {node: '>=12.4.0'} - '@notionhq/client@5.20.0': - resolution: {integrity: sha512-MS0DFSfHPLZ0wi+e9mOP16gCCYbWAkaiMuu/rVK9KxDlKac4oAgHReOfTglcd77g/nlg78snp+KB7fNWP75bEw==} + '@notionhq/client@5.21.0': + resolution: {integrity: sha512-X+T+hzaQFleOUGm4xUOUm51pOpdZ1+6T4BsRjGlcdEOTJLNkUEv8nZATq9O3ZY4NQEgICc0qwQ0I25OdYprX0w==} engines: {node: '>=18'} '@octokit/auth-token@6.0.0': @@ -7351,7 +7351,7 @@ snapshots: '@nolyfill/side-channel@1.0.44': {} - '@notionhq/client@5.20.0': {} + '@notionhq/client@5.21.0': {} '@octokit/auth-token@6.0.0': {} From 5a24c7406d7db124ce66da578daa1b18469b1ee0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 May 2026 23:26:57 +0800 Subject: [PATCH 390/439] chore(deps): bump @sentry/node from 10.52.0 to 10.53.0 (#21993) Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 10.52.0 to 10.53.0. - [Release notes](https://github.com/getsentry/sentry-javascript/releases) - [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-javascript/compare/10.52.0...10.53.0) --- updated-dependencies: - dependency-name: "@sentry/node" dependency-version: 10.53.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 40 ++++++++++++++++++++-------------------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/package.json b/package.json index 3865be5d5fd0..6df2e12e2382 100644 --- a/package.json +++ b/package.json @@ -74,7 +74,7 @@ "@opentelemetry/semantic-conventions": "1.40.0", "@rss3/sdk": "0.0.25", "@scalar/hono-api-reference": "0.10.14", - "@sentry/node": "10.52.0", + "@sentry/node": "10.53.0", "aes-js": "3.1.2", "cheerio": "1.2.0", "city-timezones": "1.3.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 902c14331182..eb99956b4d20 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -83,8 +83,8 @@ importers: specifier: 0.10.14 version: 0.10.14(hono@4.12.18) '@sentry/node': - specifier: 10.52.0 - version: 10.52.0(@opentelemetry/exporter-trace-otlp-http@0.217.0(@opentelemetry/api@1.9.1)) + specifier: 10.53.0 + version: 10.53.0(@opentelemetry/exporter-trace-otlp-http@0.217.0(@opentelemetry/api@1.9.1)) aes-js: specifier: 3.1.2 version: 3.1.2 @@ -2680,12 +2680,12 @@ packages: peerDependencies: selderee: ~0.12.0 - '@sentry/core@10.52.0': - resolution: {integrity: sha512-VA/kAqLhkMnRWY2RXdBLyTemR9D4m7MVRy/gyapoq9yvllVPx9WXbvKgnMP2LQp7mFgT/oLFvw58aQKaYTGn3A==} + '@sentry/core@10.53.0': + resolution: {integrity: sha512-clFNN45Ry4QYn32yzdp7ZqwUrn1HWpd3URsD73L2hk1WS6KDNB2TtBaLNau+Z5hwTU61Kxezkn5FyoRb68/5Yw==} engines: {node: '>=18'} - '@sentry/node-core@10.52.0': - resolution: {integrity: sha512-IG7MBtLRPQ2LuU+kbD14AFZroZgAeUmJQTP1FI/F8n56O31+p+9R703LuBTpvZr6sm+eRYDMWcGYYkfLHRVjwg==} + '@sentry/node-core@10.53.0': + resolution: {integrity: sha512-pUc3wQ/iDZTDSxlG7RkD3E4D3pOKPCj4CFNde5MYutzJlEanLaQ6OnZ8onAb75xvEwh/jO/J3Ga+/FHN4UtFuw==} engines: {node: '>=18'} peerDependencies: '@opentelemetry/api': ^1.9.0 @@ -2708,12 +2708,12 @@ packages: '@opentelemetry/semantic-conventions': optional: true - '@sentry/node@10.52.0': - resolution: {integrity: sha512-9+p3KJUk3rHO1HOEZuSknP2RgKCJZONDm4HWgkVDtVBtocb66KLtVlMjc59d2/bWP7tM3wc877tpG30quFfU9g==} + '@sentry/node@10.53.0': + resolution: {integrity: sha512-h9X32QewxmAV02+0umprKIfJAJZUDezaE4OFQAx1yxbl2BvNKfEm6liTseBBovXpTSmEGkzRCkbxzhJa88+mBQ==} engines: {node: '>=18'} - '@sentry/opentelemetry@10.52.0': - resolution: {integrity: sha512-Sc7StsvC0bwhMcgDfTRWUIexO5cNzzKUurvUwtpgQUnxO7AzexU3lkY3yHYDsCbWYAEQMXAgQYQtbcqoh+Ie7g==} + '@sentry/opentelemetry@10.53.0': + resolution: {integrity: sha512-Dny8smmEMlHQuoqGqYl1BoGq/vBiC2Q+/XGn6Ns0Yzf19z/uPofKUuQebE7gQuup7+qDnF0RYcGQVeLl3XXvrA==} engines: {node: '>=18'} peerDependencies: '@opentelemetry/api': ^1.9.0 @@ -8177,12 +8177,12 @@ snapshots: domhandler: 5.0.3 selderee: 0.12.0 - '@sentry/core@10.52.0': {} + '@sentry/core@10.53.0': {} - '@sentry/node-core@10.52.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/exporter-trace-otlp-http@0.217.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0)': + '@sentry/node-core@10.53.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/exporter-trace-otlp-http@0.217.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0)': dependencies: - '@sentry/core': 10.52.0 - '@sentry/opentelemetry': 10.52.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) + '@sentry/core': 10.53.0 + '@sentry/opentelemetry': 10.53.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) import-in-the-middle: 3.0.1 optionalDependencies: '@opentelemetry/api': 1.9.1 @@ -8192,7 +8192,7 @@ snapshots: '@opentelemetry/sdk-trace-base': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 - '@sentry/node@10.52.0(@opentelemetry/exporter-trace-otlp-http@0.217.0(@opentelemetry/api@1.9.1))': + '@sentry/node@10.53.0(@opentelemetry/exporter-trace-otlp-http@0.217.0(@opentelemetry/api@1.9.1))': dependencies: '@fastify/otel': 0.18.0(@opentelemetry/api@1.9.1) '@opentelemetry/api': 1.9.1 @@ -8219,21 +8219,21 @@ snapshots: '@opentelemetry/sdk-trace-base': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 '@prisma/instrumentation': 7.6.0(@opentelemetry/api@1.9.1) - '@sentry/core': 10.52.0 - '@sentry/node-core': 10.52.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/exporter-trace-otlp-http@0.217.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) - '@sentry/opentelemetry': 10.52.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) + '@sentry/core': 10.53.0 + '@sentry/node-core': 10.53.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/exporter-trace-otlp-http@0.217.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) + '@sentry/opentelemetry': 10.53.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) import-in-the-middle: 3.0.1 transitivePeerDependencies: - '@opentelemetry/exporter-trace-otlp-http' - supports-color - '@sentry/opentelemetry@10.52.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0)': + '@sentry/opentelemetry@10.53.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0)': dependencies: '@opentelemetry/api': 1.9.1 '@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/sdk-trace-base': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 - '@sentry/core': 10.52.0 + '@sentry/core': 10.53.0 '@sindresorhus/is@4.6.0': {} From a4d4fd6b240725ebfd167a52acd1dd736620076f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 May 2026 01:31:35 +0800 Subject: [PATCH 391/439] chore(deps): bump devenv from `23120f1` to `bc9c0ba` (#21995) Bumps [devenv](https://github.com/cachix/devenv) from `23120f1` to `bc9c0ba`. - [Release notes](https://github.com/cachix/devenv/releases) - [Commits](https://github.com/cachix/devenv/compare/23120f1b923e80a27facbeb59433688772e854ab...bc9c0ba8d505476908739dbc5706e06b76afd091) --- updated-dependencies: - dependency-name: devenv dependency-version: bc9c0ba8d505476908739dbc5706e06b76afd091 dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 8cabeb96c339..7e860515f599 100644 --- a/flake.lock +++ b/flake.lock @@ -164,11 +164,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1778281489, - "narHash": "sha256-q/E8JCHXLp7+T/SfSR3vN9KjDtCi5lB0xdgh4LcEOJc=", + "lastModified": 1778546030, + "narHash": "sha256-Fsly+oPQRmfwMCovH4qCkhjHnTi7k3KUwS1o16Qj5Lk=", "owner": "cachix", "repo": "devenv", - "rev": "23120f1b923e80a27facbeb59433688772e854ab", + "rev": "bc9c0ba8d505476908739dbc5706e06b76afd091", "type": "github" }, "original": { From 26e66d00619b62accad034fccdea24d2eee4f7cd Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 12 May 2026 17:33:29 +0000 Subject: [PATCH 392/439] chore(nix): update dependencies hash to sha256-cXBqhjbB4KV8xvb0iC8zJ012D4p0jgMp3hGH2oN8yxc= --- flake.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flake.nix b/flake.nix index 8b6a1e7f18b7..8131fff1da81 100644 --- a/flake.nix +++ b/flake.nix @@ -16,7 +16,7 @@ deps = pkgs.fetchPnpmDeps { pname = "rsshub"; src = ./.; - hash = "sha256-FIx5VgjPRiDgxwCYKp7XbE8bh8nZ5ejnC9Tl1e5vANI="; + hash = "sha256-cXBqhjbB4KV8xvb0iC8zJ012D4p0jgMp3hGH2oN8yxc="; fetcherVersion = 2; }; in From ef15da5f2bbf9123cb83b0e0ce7a45d357f1f8e6 Mon Sep 17 00:00:00 2001 From: Tony Date: Wed, 13 May 2026 02:53:24 +0800 Subject: [PATCH 393/439] chore: simpler rss proposal --- .github/ISSUE_TEMPLATE/rss_request_en.yml | 9 +- .github/ISSUE_TEMPLATE/rss_request_zh.yml | 9 +- .github/workflows/comment-on-issue.yml | 36 ++++- scripts/workflow/test-issue/check-issue.mjs | 143 ++++++++++++++++++++ 4 files changed, 180 insertions(+), 17 deletions(-) create mode 100644 scripts/workflow/test-issue/check-issue.mjs diff --git a/.github/ISSUE_TEMPLATE/rss_request_en.yml b/.github/ISSUE_TEMPLATE/rss_request_en.yml index da24c323d72b..d753cba553a1 100644 --- a/.github/ISSUE_TEMPLATE/rss_request_en.yml +++ b/.github/ISSUE_TEMPLATE/rss_request_en.yml @@ -39,6 +39,7 @@ body: - Study - Scientific Journal - Finance + - Sport - Uncategorized validations: required: true @@ -51,14 +52,6 @@ body: validations: required: true - - type: textarea - id: description - attributes: - label: Website description - placeholder: A short description of the website - validations: - required: true - - type: textarea id: content attributes: diff --git a/.github/ISSUE_TEMPLATE/rss_request_zh.yml b/.github/ISSUE_TEMPLATE/rss_request_zh.yml index bb10bbf94073..9f4f13038685 100644 --- a/.github/ISSUE_TEMPLATE/rss_request_zh.yml +++ b/.github/ISSUE_TEMPLATE/rss_request_zh.yml @@ -39,6 +39,7 @@ body: - 学习 - 科学期刊 - 金融 + - 体育 - 其他 validations: required: true @@ -51,14 +52,6 @@ body: validations: required: true - - type: textarea - id: description - attributes: - label: 网站描述 - placeholder: 对网站的简短描述 - validations: - required: true - - type: textarea id: content attributes: diff --git a/.github/workflows/comment-on-issue.yml b/.github/workflows/comment-on-issue.yml index 6e8924b9f3b6..3778077b72c8 100644 --- a/.github/workflows/comment-on-issue.yml +++ b/.github/workflows/comment-on-issue.yml @@ -3,6 +3,12 @@ name: Comment on Issue on: issues: types: [opened, edited, reopened] + workflow_dispatch: + inputs: + issue_number: + description: 'Issue number to run the check issue job against' + required: true + type: number jobs: testRoute: @@ -11,7 +17,7 @@ jobs: timeout-minutes: 5 permissions: issues: write - if: github.event.sender.login != 'issuehunt-oss[bot]' + if: github.event_name == 'issues' && github.event.sender.login != 'issuehunt-oss[bot]' steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 @@ -28,3 +34,31 @@ jobs: script: | const { default: callMaintainer } = await import('${{ github.workspace }}/scripts/workflow/test-issue/call-maintainer.mjs') await callMaintainer({ github, context, core }) + + checkIssue: + name: Check issue + runs-on: ubuntu-slim + timeout-minutes: 5 + permissions: + issues: write + if: | + github.event_name == 'workflow_dispatch' || + (github.event_name == 'issues' && contains(fromJSON('["opened", "edited"]'), github.event.action) && github.event.sender.login != 'issuehunt-oss[bot]' && !contains(fromJSON('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.issue.author_association)) + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 + - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 + with: + node-version: lts/* + cache: 'pnpm' + - name: Install dependencies (pnpm) # import remark-parse and unified + run: pnpm i + - name: Check issue format + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + env: + ISSUE_NUMBER: ${{ inputs.issue_number }} + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + script: | + const { default: checkIssue } = await import('${{ github.workspace }}/scripts/workflow/test-issue/check-issue.mjs') + await checkIssue({ github, context, core }) diff --git a/scripts/workflow/test-issue/check-issue.mjs b/scripts/workflow/test-issue/check-issue.mjs new file mode 100644 index 000000000000..c866c029818e --- /dev/null +++ b/scripts/workflow/test-issue/check-issue.mjs @@ -0,0 +1,143 @@ +import remarkParse from 'remark-parse'; +import { unified } from 'unified'; + +const rssBugLabel = 'RSS bug'; +const rssEnhancementLabel = 'RSS enhancement'; +const rssProposalLabel = 'RSS proposal'; +const commentMarker = ''; +const triageLabels = new Set([rssBugLabel, rssEnhancementLabel, rssProposalLabel]); + +const bugReportTemplate = { + en: ['Routes', 'Related documentation', 'What is expected?', 'What is actually happening?'], + zh: ['路由地址', '相关文档', '预期是什么?', '实际发生了什么?'], + docs: { + en: 'https://github.com/DIYgod/RSSHub/blob/master/.github/ISSUE_TEMPLATE/bug_report_en.yml', + zh: 'https://github.com/DIYgod/RSSHub/blob/master/.github/ISSUE_TEMPLATE/bug_report_zh.yml', + }, +}; + +const rssProposalTemplate = { + en: ['Category', 'Website URL', 'What content should be included?'], + zh: ['类型', '网站地址', '需要生成什么内容?'], + docs: { + en: 'https://github.com/DIYgod/RSSHub/blob/master/.github/ISSUE_TEMPLATE/rss_request_en.yml', + zh: 'https://github.com/DIYgod/RSSHub/blob/master/.github/ISSUE_TEMPLATE/rss_request_zh.yml', + }, +}; + +const featureRequestTemplate = { + en: ['What feature is it?', 'What problem does this feature solve?'], + zh: ['这是一个什么样的功能?', '这个功能可以解决什么问题?'], + docs: { + en: 'https://github.com/DIYgod/RSSHub/blob/master/.github/ISSUE_TEMPLATE/feature_request_en.yml', + zh: 'https://github.com/DIYgod/RSSHub/blob/master/.github/ISSUE_TEMPLATE/feature_request_zh.yml', + }, +}; + +async function alreadyCommented(github, issueFacts) { + const comments = await github.paginate(github.rest.issues.listComments, { ...issueFacts, per_page: 100 }); + return comments.some((c) => c.body?.includes(commentMarker)); +} + +/** + * @param {import('mdast').Node} node + * @returns {string} + */ +function extractText(node) { + return node.type === 'text' ? node.value : node.children.map((c) => extractText(c)).join(''); +} + +/** + * @param {{ github: ReturnType, context: typeof import('@actions/github').context, core: typeof import('@actions/core') }} githubScript + * @returns {Promise} + */ +export default async function checkIssue({ github, context, core }) { + let issue = context.payload.issue; + if (!issue) { + core.info(`Fetching issue #${process.env.ISSUE_NUMBER} (workflow_dispatch)`); + const { data } = await github.rest.issues.get({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: Number(process.env.ISSUE_NUMBER), + }); + issue = data; + } + const issueFacts = { + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: issue.number, + }; + + const labels = issue.labels.map((l) => l.name); + core.debug(`labels: ${JSON.stringify(labels)}`); + + const matched = labels.find((l) => triageLabels.has(l)); + if (!matched) { + if (await alreadyCommented(github, issueFacts)) { + core.info('Already commented, skipping'); + return; + } + core.info('No triage label found, closing as not planned'); + await github.rest.issues.createComment({ + ...issueFacts, + body: `${commentMarker}\nThis issue was closed automatically because it bypasses the required template. Please open a new issue following the template.`, + }); + await github.rest.issues.update({ + ...issueFacts, + state: 'closed', + state_reason: 'not_planned', + }); + return; + } + + const ast = unified() + .use(remarkParse) + .parse(issue.body ?? ''); + const headings = new Set(ast.children.filter((n) => n.type === 'heading').map((n) => extractText(n).trim())); + core.debug(`headings: ${JSON.stringify([...headings])}`); + + const ctx = { github, core, issueFacts, headings }; + + switch (matched) { + case rssBugLabel: + await runHeadingCheck(ctx, 'bug report', bugReportTemplate); + break; + case rssProposalLabel: + await runHeadingCheck(ctx, 'RSS proposal', rssProposalTemplate); + break; + case rssEnhancementLabel: + await runHeadingCheck(ctx, 'feature request', featureRequestTemplate); + break; + // no default + } +} + +async function runHeadingCheck({ github, core, issueFacts, headings }, templateName, template) { + const enOk = template.en.every((h) => headings.has(h)); + const zhOk = template.zh.every((h) => headings.has(h)); + + if (enOk || zhOk) { + core.info(`${templateName} heading check passed`); + return; + } + + const missingEn = template.en.filter((h) => !headings.has(h)); + const missingZh = template.zh.filter((h) => !headings.has(h)); + const missing = missingEn.length <= missingZh.length ? missingEn : missingZh; + core.warning(`${templateName} heading check failed, missing: ${missing.join(', ')}`); + + if (await alreadyCommented(github, issueFacts)) { + core.info(`${templateName} already commented, skipping`); + return; + } + + await github.rest.issues.createComment({ + ...issueFacts, + body: `${commentMarker}\nThis issue was closed automatically because it bypasses the required template. Please open a new issue following the template.`, + }); + await github.rest.issues.update({ + ...issueFacts, + state: 'closed', + state_reason: 'not_planned', + }); +} From 98c2f523081ab9d946064731397a9f5c6dcc8a06 Mon Sep 17 00:00:00 2001 From: Tony Date: Wed, 13 May 2026 02:55:04 +0800 Subject: [PATCH 394/439] chore(deps): bump protobufjs and basic-ftp --- pnpm-lock.yaml | 32 +++++++++++--------------------- 1 file changed, 11 insertions(+), 21 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index eb99956b4d20..7a8021072de2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2260,9 +2260,6 @@ packages: '@protobufjs/base64@1.1.2': resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} - '@protobufjs/codegen@2.0.4': - resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} - '@protobufjs/codegen@2.0.5': resolution: {integrity: sha512-zgXFLzW3Ap33e6d0Wlj4MGIm6Ce8O89n/apUaGNB/jx+hw+ruWEp7EwGUshdLKVRCxZW12fp9r40E1mQrf/34g==} @@ -2287,9 +2284,6 @@ packages: '@protobufjs/pool@1.1.0': resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} - '@protobufjs/utf8@1.1.0': - resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@protobufjs/utf8@1.1.1': resolution: {integrity: sha512-oOAWABowe8EAbMyWKM0tYDKi8Yaox52D+HWZhAIJqQXbqe0xI/GV7FhLWqlEKreMkfDjshR5FKgi3mnle0h6Eg==} @@ -3267,8 +3261,8 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - basic-ftp@5.3.0: - resolution: {integrity: sha512-5K9eNNn7ywHPsYnFwjKgYH8Hf8B5emh7JKcPaVjjrMJFQQwGpwowEnZNEtHs7DfR7hCZsmaK3VA4HUK0YarT+w==} + basic-ftp@5.3.1: + resolution: {integrity: sha512-bopVNp6ugyA150DDuZfPFdt1KZ5a94ZDiwX4hMgZDzF+GttD80lEy8kj98kbyhLXnPvhtIo93mdnLIjpCAeeOw==} engines: {node: '>=10.0.0'} bcrypt-pbkdf@1.0.2: @@ -5340,8 +5334,8 @@ packages: proto-list@1.2.4: resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} - protobufjs@7.5.5: - resolution: {integrity: sha512-3wY1AxV+VBNW8Yypfd1yQY9pXnqTAN+KwQxL8iYm3/BjKYMNg4i0owhEe26PWDOMaIrzeeF98Lqd5NGz4omiIg==} + protobufjs@7.5.8: + resolution: {integrity: sha512-dvpCIeLPbXZS/Ete7yLaO7RenOdken2NHKykBXbsaGxZT0UTltcarBciw+A78SRQs9iMAAVpsYA+l8b1hTePIA==} engines: {node: '>=12.0.0'} protobufjs@8.0.1: @@ -7914,8 +7908,6 @@ snapshots: '@protobufjs/base64@1.1.2': {} - '@protobufjs/codegen@2.0.4': {} - '@protobufjs/codegen@2.0.5': {} '@protobufjs/eventemitter@1.1.0': {} @@ -7935,8 +7927,6 @@ snapshots: '@protobufjs/pool@1.1.0': {} - '@protobufjs/utf8@1.1.0': {} - '@protobufjs/utf8@1.1.1': {} '@quansync/fs@1.0.0': @@ -8789,7 +8779,7 @@ snapshots: baseline-browser-mapping@2.10.13: {} - basic-ftp@5.3.0: {} + basic-ftp@5.3.1: {} bcrypt-pbkdf@1.0.2: dependencies: @@ -9774,7 +9764,7 @@ snapshots: get-uri@8.0.0: dependencies: - basic-ftp: 5.3.0 + basic-ftp: 5.3.1 data-uri-to-buffer: 8.0.0 debug: 4.4.3 transitivePeerDependencies: @@ -10823,7 +10813,7 @@ snapshots: mixi2@0.2.2: dependencies: - protobufjs: 7.5.5 + protobufjs: 7.5.8 mockdate@3.0.5: {} @@ -11273,18 +11263,18 @@ snapshots: proto-list@1.2.4: {} - protobufjs@7.5.5: + protobufjs@7.5.8: dependencies: '@protobufjs/aspromise': 1.1.2 '@protobufjs/base64': 1.1.2 - '@protobufjs/codegen': 2.0.4 + '@protobufjs/codegen': 2.0.5 '@protobufjs/eventemitter': 1.1.0 '@protobufjs/fetch': 1.1.0 '@protobufjs/float': 1.0.2 - '@protobufjs/inquire': 1.1.0 + '@protobufjs/inquire': 1.1.1 '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 - '@protobufjs/utf8': 1.1.0 + '@protobufjs/utf8': 1.1.1 '@types/node': 25.7.0 long: 5.3.2 From 12a7918d4bc70e9a1e48050046527521c0c7cd73 Mon Sep 17 00:00:00 2001 From: Tony Date: Wed, 13 May 2026 03:58:39 +0800 Subject: [PATCH 395/439] chore: run check issue before call maintainers --- .github/workflows/comment-on-issue.yml | 43 ++++++++++++------- .../workflow/test-issue/call-maintainer.mjs | 4 +- scripts/workflow/test-issue/check-issue.mjs | 23 +++++----- 3 files changed, 41 insertions(+), 29 deletions(-) diff --git a/.github/workflows/comment-on-issue.yml b/.github/workflows/comment-on-issue.yml index 3778077b72c8..06d6825c0088 100644 --- a/.github/workflows/comment-on-issue.yml +++ b/.github/workflows/comment-on-issue.yml @@ -11,13 +11,20 @@ on: type: number jobs: - testRoute: - name: Call maintainers + checkIssue: + name: Check issue runs-on: ubuntu-slim timeout-minutes: 5 permissions: issues: write - if: github.event_name == 'issues' && github.event.sender.login != 'issuehunt-oss[bot]' + if: | + github.event_name == 'workflow_dispatch' || + (github.event_name == 'issues' && + contains(fromJSON('["opened", "edited"]'), github.event.action) && + github.event.sender.login != 'issuehunt-oss[bot]' && + !contains(fromJSON('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.issue.author_association)) + outputs: + closed: ${{ steps.check.outputs.closed }} steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 @@ -27,23 +34,31 @@ jobs: cache: 'pnpm' - name: Install dependencies (pnpm) # import remark-parse and unified run: pnpm i - - name: Generate feedback + - name: Check issue format + id: check uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + env: + ISSUE_NUMBER: ${{ inputs.issue_number }} with: github-token: ${{ secrets.GITHUB_TOKEN }} script: | - const { default: callMaintainer } = await import('${{ github.workspace }}/scripts/workflow/test-issue/call-maintainer.mjs') - await callMaintainer({ github, context, core }) + const { default: invalidIssue } = await import('${{ github.workspace }}/scripts/workflow/test-issue/check-issue.mjs') + const invalid = await invalidIssue({ github, context, core }) + core.setOutput('closed', invalid ? 'true' : 'false') - checkIssue: - name: Check issue + callMaintainers: + name: Call maintainers + needs: [checkIssue] runs-on: ubuntu-slim timeout-minutes: 5 permissions: issues: write if: | - github.event_name == 'workflow_dispatch' || - (github.event_name == 'issues' && contains(fromJSON('["opened", "edited"]'), github.event.action) && github.event.sender.login != 'issuehunt-oss[bot]' && !contains(fromJSON('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.issue.author_association)) + !cancelled() && + github.event_name == 'issues' && + github.event.sender.login != 'issuehunt-oss[bot]' && + (needs.checkIssue.result == 'success' || needs.checkIssue.result == 'skipped') && + needs.checkIssue.outputs.closed != 'true' steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 @@ -53,12 +68,10 @@ jobs: cache: 'pnpm' - name: Install dependencies (pnpm) # import remark-parse and unified run: pnpm i - - name: Check issue format + - name: Generate feedback uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 - env: - ISSUE_NUMBER: ${{ inputs.issue_number }} with: github-token: ${{ secrets.GITHUB_TOKEN }} script: | - const { default: checkIssue } = await import('${{ github.workspace }}/scripts/workflow/test-issue/check-issue.mjs') - await checkIssue({ github, context, core }) + const { default: callMaintainer } = await import('${{ github.workspace }}/scripts/workflow/test-issue/call-maintainer.mjs') + await callMaintainer({ github, context, core }) diff --git a/scripts/workflow/test-issue/call-maintainer.mjs b/scripts/workflow/test-issue/call-maintainer.mjs index 4f858dd30b19..3ba20d8b4f00 100644 --- a/scripts/workflow/test-issue/call-maintainer.mjs +++ b/scripts/workflow/test-issue/call-maintainer.mjs @@ -11,7 +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 +// oxlint-disable-next-line unicorn/no-useless-collection-argument const dndUsernames = new Set([]); /** @@ -100,7 +100,7 @@ export default async function callMaintainer({ github, context, core }) { core.warning(error); }); - if (context.payload.issue.state === 'closed') { + if (context.payload.issue.state === 'closed' && context.payload.issue.state_reason !== 'not_planned') { await updateIssueState('open'); } diff --git a/scripts/workflow/test-issue/check-issue.mjs b/scripts/workflow/test-issue/check-issue.mjs index c866c029818e..2831a65827f1 100644 --- a/scripts/workflow/test-issue/check-issue.mjs +++ b/scripts/workflow/test-issue/check-issue.mjs @@ -49,9 +49,9 @@ function extractText(node) { /** * @param {{ github: ReturnType, context: typeof import('@actions/github').context, core: typeof import('@actions/core') }} githubScript - * @returns {Promise} + * @returns {Promise} true if the issue is invalid, i.e. closed (or already closed) as not_planned, so downstream jobs should skip */ -export default async function checkIssue({ github, context, core }) { +export default async function invalidIssue({ github, context, core }) { let issue = context.payload.issue; if (!issue) { core.info(`Fetching issue #${process.env.ISSUE_NUMBER} (workflow_dispatch)`); @@ -75,7 +75,7 @@ export default async function checkIssue({ github, context, core }) { if (!matched) { if (await alreadyCommented(github, issueFacts)) { core.info('Already commented, skipping'); - return; + return true; } core.info('No triage label found, closing as not planned'); await github.rest.issues.createComment({ @@ -87,7 +87,7 @@ export default async function checkIssue({ github, context, core }) { state: 'closed', state_reason: 'not_planned', }); - return; + return true; } const ast = unified() @@ -100,16 +100,14 @@ export default async function checkIssue({ github, context, core }) { switch (matched) { case rssBugLabel: - await runHeadingCheck(ctx, 'bug report', bugReportTemplate); - break; + return runHeadingCheck(ctx, 'bug report', bugReportTemplate); case rssProposalLabel: - await runHeadingCheck(ctx, 'RSS proposal', rssProposalTemplate); - break; + return runHeadingCheck(ctx, 'RSS proposal', rssProposalTemplate); case rssEnhancementLabel: - await runHeadingCheck(ctx, 'feature request', featureRequestTemplate); - break; + return runHeadingCheck(ctx, 'feature request', featureRequestTemplate); // no default } + return false; } async function runHeadingCheck({ github, core, issueFacts, headings }, templateName, template) { @@ -118,7 +116,7 @@ async function runHeadingCheck({ github, core, issueFacts, headings }, templateN if (enOk || zhOk) { core.info(`${templateName} heading check passed`); - return; + return false; } const missingEn = template.en.filter((h) => !headings.has(h)); @@ -128,7 +126,7 @@ async function runHeadingCheck({ github, core, issueFacts, headings }, templateN if (await alreadyCommented(github, issueFacts)) { core.info(`${templateName} already commented, skipping`); - return; + return true; } await github.rest.issues.createComment({ @@ -140,4 +138,5 @@ async function runHeadingCheck({ github, core, issueFacts, headings }, templateN state: 'closed', state_reason: 'not_planned', }); + return true; } From 2812b7cd4b9a9bdd472e3905a046d01a4f57b64b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 May 2026 08:19:41 +0000 Subject: [PATCH 396/439] chore(deps): bump @sentry/node from 10.53.0 to 10.53.1 (#22003) Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 10.53.0 to 10.53.1. - [Release notes](https://github.com/getsentry/sentry-javascript/releases) - [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-javascript/compare/10.53.0...10.53.1) --- updated-dependencies: - dependency-name: "@sentry/node" dependency-version: 10.53.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 40 ++++++++++++++++++++-------------------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/package.json b/package.json index 6df2e12e2382..b16077ec9532 100644 --- a/package.json +++ b/package.json @@ -74,7 +74,7 @@ "@opentelemetry/semantic-conventions": "1.40.0", "@rss3/sdk": "0.0.25", "@scalar/hono-api-reference": "0.10.14", - "@sentry/node": "10.53.0", + "@sentry/node": "10.53.1", "aes-js": "3.1.2", "cheerio": "1.2.0", "city-timezones": "1.3.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7a8021072de2..ac6f2dd8ae23 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -83,8 +83,8 @@ importers: specifier: 0.10.14 version: 0.10.14(hono@4.12.18) '@sentry/node': - specifier: 10.53.0 - version: 10.53.0(@opentelemetry/exporter-trace-otlp-http@0.217.0(@opentelemetry/api@1.9.1)) + specifier: 10.53.1 + version: 10.53.1(@opentelemetry/exporter-trace-otlp-http@0.217.0(@opentelemetry/api@1.9.1)) aes-js: specifier: 3.1.2 version: 3.1.2 @@ -2674,12 +2674,12 @@ packages: peerDependencies: selderee: ~0.12.0 - '@sentry/core@10.53.0': - resolution: {integrity: sha512-clFNN45Ry4QYn32yzdp7ZqwUrn1HWpd3URsD73L2hk1WS6KDNB2TtBaLNau+Z5hwTU61Kxezkn5FyoRb68/5Yw==} + '@sentry/core@10.53.1': + resolution: {integrity: sha512-XG4ezlkyuAPjBC5+9kXC94rXXuqYTw9NRhfaDHssbTFaGnqBR8vQX2UUgZfY7ucbeelRDGfBu1sywoU+mB04uA==} engines: {node: '>=18'} - '@sentry/node-core@10.53.0': - resolution: {integrity: sha512-pUc3wQ/iDZTDSxlG7RkD3E4D3pOKPCj4CFNde5MYutzJlEanLaQ6OnZ8onAb75xvEwh/jO/J3Ga+/FHN4UtFuw==} + '@sentry/node-core@10.53.1': + resolution: {integrity: sha512-iH7SMcM/7jPbN+t7+7ussQOiIqI4BMOGt4VYWlV71/z7k0pY+YPaSvlfVkNXfISiDzFAKv0ecCY3BmsLMu1xDQ==} engines: {node: '>=18'} peerDependencies: '@opentelemetry/api': ^1.9.0 @@ -2702,12 +2702,12 @@ packages: '@opentelemetry/semantic-conventions': optional: true - '@sentry/node@10.53.0': - resolution: {integrity: sha512-h9X32QewxmAV02+0umprKIfJAJZUDezaE4OFQAx1yxbl2BvNKfEm6liTseBBovXpTSmEGkzRCkbxzhJa88+mBQ==} + '@sentry/node@10.53.1': + resolution: {integrity: sha512-rxHVil0tJAmz+keFcZCj1LaUdgdkK66E/l0gqh2p1209PNCGoD3lnClFr6vusy1aF3zF8O9JPtuMEJzXOKhs+w==} engines: {node: '>=18'} - '@sentry/opentelemetry@10.53.0': - resolution: {integrity: sha512-Dny8smmEMlHQuoqGqYl1BoGq/vBiC2Q+/XGn6Ns0Yzf19z/uPofKUuQebE7gQuup7+qDnF0RYcGQVeLl3XXvrA==} + '@sentry/opentelemetry@10.53.1': + resolution: {integrity: sha512-Zok6UXla0mFOjd1YnVb1TZtQNOry9v93fXUqx8jmDaygwWM2BwvP8rBQabLz0/OZXo8+35oge+Vmw+QY5aesnA==} engines: {node: '>=18'} peerDependencies: '@opentelemetry/api': ^1.9.0 @@ -8167,12 +8167,12 @@ snapshots: domhandler: 5.0.3 selderee: 0.12.0 - '@sentry/core@10.53.0': {} + '@sentry/core@10.53.1': {} - '@sentry/node-core@10.53.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/exporter-trace-otlp-http@0.217.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0)': + '@sentry/node-core@10.53.1(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/exporter-trace-otlp-http@0.217.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0)': dependencies: - '@sentry/core': 10.53.0 - '@sentry/opentelemetry': 10.53.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) + '@sentry/core': 10.53.1 + '@sentry/opentelemetry': 10.53.1(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) import-in-the-middle: 3.0.1 optionalDependencies: '@opentelemetry/api': 1.9.1 @@ -8182,7 +8182,7 @@ snapshots: '@opentelemetry/sdk-trace-base': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 - '@sentry/node@10.53.0(@opentelemetry/exporter-trace-otlp-http@0.217.0(@opentelemetry/api@1.9.1))': + '@sentry/node@10.53.1(@opentelemetry/exporter-trace-otlp-http@0.217.0(@opentelemetry/api@1.9.1))': dependencies: '@fastify/otel': 0.18.0(@opentelemetry/api@1.9.1) '@opentelemetry/api': 1.9.1 @@ -8209,21 +8209,21 @@ snapshots: '@opentelemetry/sdk-trace-base': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 '@prisma/instrumentation': 7.6.0(@opentelemetry/api@1.9.1) - '@sentry/core': 10.53.0 - '@sentry/node-core': 10.53.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/exporter-trace-otlp-http@0.217.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) - '@sentry/opentelemetry': 10.53.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) + '@sentry/core': 10.53.1 + '@sentry/node-core': 10.53.1(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/exporter-trace-otlp-http@0.217.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) + '@sentry/opentelemetry': 10.53.1(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) import-in-the-middle: 3.0.1 transitivePeerDependencies: - '@opentelemetry/exporter-trace-otlp-http' - supports-color - '@sentry/opentelemetry@10.53.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0)': + '@sentry/opentelemetry@10.53.1(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0)': dependencies: '@opentelemetry/api': 1.9.1 '@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/sdk-trace-base': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.40.0 - '@sentry/core': 10.53.0 + '@sentry/core': 10.53.1 '@sindresorhus/is@4.6.0': {} From 474a91a86eaf51c075ce228c6e4b44f951c9c228 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 May 2026 08:21:47 +0000 Subject: [PATCH 397/439] chore(deps-dev): bump @types/jsdom from 28.0.2 to 28.0.3 (#22004) Bumps [@types/jsdom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jsdom) from 28.0.2 to 28.0.3. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jsdom) --- updated-dependencies: - dependency-name: "@types/jsdom" dependency-version: 28.0.3 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index b16077ec9532..7e3c318abfd3 100644 --- a/package.json +++ b/package.json @@ -160,7 +160,7 @@ "@types/fs-extra": "11.0.4", "@types/html-to-text": "9.0.4", "@types/js-beautify": "1.14.3", - "@types/jsdom": "28.0.2", + "@types/jsdom": "28.0.3", "@types/json-bigint": "1.0.4", "@types/jsrsasign": "10.5.15", "@types/mailparser": "3.4.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ac6f2dd8ae23..6e5d47afe652 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -336,8 +336,8 @@ importers: specifier: 1.14.3 version: 1.14.3 '@types/jsdom': - specifier: 28.0.2 - version: 28.0.2 + specifier: 28.0.3 + version: 28.0.3 '@types/json-bigint': specifier: 1.0.4 version: 1.0.4 @@ -2820,8 +2820,8 @@ packages: '@types/js-beautify@1.14.3': resolution: {integrity: sha512-FMbQHz+qd9DoGvgLHxeqqVPaNRffpIu5ZjozwV8hf9JAGpIOzuAf4wGbRSo8LNITHqGjmmVjaMggTT5P4v4IHg==} - '@types/jsdom@28.0.2': - resolution: {integrity: sha512-zZYItekplnGirFhVDrcB0+103TMakXfKfIp7uECxaFzFG3Ws5kYQSwVb1d4pQfJMMjQda6pfuZxueAv9CMiJbw==} + '@types/jsdom@28.0.3': + resolution: {integrity: sha512-/HQ2uFoetFTXuye8vzIcHw2z6Fwi7Hi/qcgC+RoS9NCyewiqxhVGqlG+ViGB6lkax481R6dmhf1I7lIGlzJStQ==} '@types/jsesc@2.5.1': resolution: {integrity: sha512-9VN+6yxLOPLOav+7PwjZbxiID2bVaeq0ED4qSQmdQTdjnXJSaCVKTR58t15oqH1H5t8Ng2ZX1SabJVoN9Q34bw==} @@ -8335,7 +8335,7 @@ snapshots: '@types/js-beautify@1.14.3': {} - '@types/jsdom@28.0.2': + '@types/jsdom@28.0.3': dependencies: '@types/node': 25.7.0 '@types/tough-cookie': 4.0.5 From ddafb18258b2728655759a2b0c46108d2971c444 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 May 2026 08:48:24 +0000 Subject: [PATCH 398/439] chore(deps): bump devenv from `bc9c0ba` to `c9ee1d6` (#22006) Bumps [devenv](https://github.com/cachix/devenv) from `bc9c0ba` to `c9ee1d6`. - [Release notes](https://github.com/cachix/devenv/releases) - [Commits](https://github.com/cachix/devenv/compare/bc9c0ba8d505476908739dbc5706e06b76afd091...c9ee1d61986a6dde1cf45e738b01395cd5bce470) --- updated-dependencies: - dependency-name: devenv dependency-version: c9ee1d61986a6dde1cf45e738b01395cd5bce470 dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 7e860515f599..8adb45534d9c 100644 --- a/flake.lock +++ b/flake.lock @@ -164,11 +164,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1778546030, - "narHash": "sha256-Fsly+oPQRmfwMCovH4qCkhjHnTi7k3KUwS1o16Qj5Lk=", + "lastModified": 1778613747, + "narHash": "sha256-+FdF9iIvBQIC391Xkoso3IFIl/Iqp2NolSvCOgEIm78=", "owner": "cachix", "repo": "devenv", - "rev": "bc9c0ba8d505476908739dbc5706e06b76afd091", + "rev": "c9ee1d61986a6dde1cf45e738b01395cd5bce470", "type": "github" }, "original": { From 87485c96f6f84ba2f16550d7b4f8fbe3f4f31c02 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 13 May 2026 08:50:13 +0000 Subject: [PATCH 399/439] chore(nix): update dependencies hash to sha256-PSD9aILJ5Sz04WZDZHhe1fj8cXghsi4ecNYS7uovqow= --- flake.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flake.nix b/flake.nix index 8131fff1da81..912a267b9696 100644 --- a/flake.nix +++ b/flake.nix @@ -16,7 +16,7 @@ deps = pkgs.fetchPnpmDeps { pname = "rsshub"; src = ./.; - hash = "sha256-cXBqhjbB4KV8xvb0iC8zJ012D4p0jgMp3hGH2oN8yxc="; + hash = "sha256-PSD9aILJ5Sz04WZDZHhe1fj8cXghsi4ecNYS7uovqow="; fetcherVersion = 2; }; in From 9736c60a253ba0db855002f759fe0448a09f80ad Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 May 2026 16:52:54 +0800 Subject: [PATCH 400/439] chore(deps): bump nixpkgs from `549bd84` to `da5ad66` (#22005) Bumps [nixpkgs](https://github.com/NixOS/nixpkgs) from `549bd84` to `da5ad66`. - [Commits](https://github.com/NixOS/nixpkgs/compare/549bd84d6279f9852cae6225e372cc67fb91a4c1...da5ad661ba4e5ef59ba743f0d112cbc30e474f32) --- updated-dependencies: - dependency-name: nixpkgs dependency-version: da5ad661ba4e5ef59ba743f0d112cbc30e474f32 dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 8adb45534d9c..38577c2d7b95 100644 --- a/flake.lock +++ b/flake.lock @@ -824,11 +824,11 @@ }, "nixpkgs_7": { "locked": { - "lastModified": 1777954456, - "narHash": "sha256-hGdgeU2Nk87RAuZyYjyDjFL6LK7dAZN5RE9+hrDTkDU=", + "lastModified": 1778443072, + "narHash": "sha256-zi7/fsqM/kFdNuED//4WOCUtezGtKKqRNORjMvfwjnA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "549bd84d6279f9852cae6225e372cc67fb91a4c1", + "rev": "da5ad661ba4e5ef59ba743f0d112cbc30e474f32", "type": "github" }, "original": { From 11d16103a063a9a77f21ed14ba9c1fa9b5d71f76 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 May 2026 17:19:32 +0800 Subject: [PATCH 401/439] chore(deps): bump peaceiris/actions-gh-pages from 4.0.0 to 4.1.0 (#22001) Bumps [peaceiris/actions-gh-pages](https://github.com/peaceiris/actions-gh-pages) from 4.0.0 to 4.1.0. - [Release notes](https://github.com/peaceiris/actions-gh-pages/releases) - [Changelog](https://github.com/peaceiris/actions-gh-pages/blob/main/CHANGELOG.md) - [Commits](https://github.com/peaceiris/actions-gh-pages/compare/4f9cc6602d3f66b9c108549d475ec49e8ef4d45e...84c30a85c19949d7eee79c4ff27748b70285e453) --- updated-dependencies: - dependency-name: peaceiris/actions-gh-pages dependency-version: 4.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build-assets.yml | 2 +- .github/workflows/test-full-routes.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-assets.yml b/.github/workflows/build-assets.yml index 56a44b3bebc5..44e45a852264 100644 --- a/.github/workflows/build-assets.yml +++ b/.github/workflows/build-assets.yml @@ -33,7 +33,7 @@ jobs: - name: Build assets run: pnpm build - name: Deploy - uses: peaceiris/actions-gh-pages@4f9cc6602d3f66b9c108549d475ec49e8ef4d45e # v4.0.0 + uses: peaceiris/actions-gh-pages@84c30a85c19949d7eee79c4ff27748b70285e453 # v4.1.0 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./assets diff --git a/.github/workflows/test-full-routes.yml b/.github/workflows/test-full-routes.yml index d204d312e2d1..bf306839795d 100644 --- a/.github/workflows/test-full-routes.yml +++ b/.github/workflows/test-full-routes.yml @@ -30,7 +30,7 @@ jobs: continue-on-error: true run: pnpm vitest:fullroutes - name: Deploy - uses: peaceiris/actions-gh-pages@4f9cc6602d3f66b9c108549d475ec49e8ef4d45e # v4.0.0 + uses: peaceiris/actions-gh-pages@84c30a85c19949d7eee79c4ff27748b70285e453 # v4.1.0 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./assets From 50090d8e07a3df1bc6881b4564de00f186d74fa1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 May 2026 17:25:27 +0800 Subject: [PATCH 402/439] chore(deps): bump @opentelemetry/semantic-conventions (#22000) Bumps the opentelemetry group with 1 update in the / directory: [@opentelemetry/semantic-conventions](https://github.com/open-telemetry/opentelemetry-js). Updates `@opentelemetry/semantic-conventions` from 1.40.0 to 1.41.1 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/semconv/v1.40.0...semconv/v1.41.1) --- updated-dependencies: - dependency-name: "@opentelemetry/semantic-conventions" dependency-version: 1.41.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: opentelemetry ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 66 +++++++++++++++++++++++++------------------------- 2 files changed, 34 insertions(+), 34 deletions(-) diff --git a/package.json b/package.json index 7e3c318abfd3..b7215200fcac 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "@opentelemetry/resources": "2.7.1", "@opentelemetry/sdk-metrics": "2.7.1", "@opentelemetry/sdk-trace-base": "2.7.1", - "@opentelemetry/semantic-conventions": "1.40.0", + "@opentelemetry/semantic-conventions": "1.41.1", "@rss3/sdk": "0.0.25", "@scalar/hono-api-reference": "0.10.14", "@sentry/node": "10.53.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6e5d47afe652..31092621b622 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -74,8 +74,8 @@ importers: specifier: 2.7.1 version: 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': - specifier: 1.40.0 - version: 1.40.0 + specifier: 1.41.1 + version: 1.41.1 '@rss3/sdk': specifier: 0.0.25 version: 0.0.25 @@ -1899,8 +1899,8 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' - '@opentelemetry/semantic-conventions@1.40.0': - resolution: {integrity: sha512-cifvXDhcqMwwTlTK04GBNeIe7yyo28Mfby85QXFe1Yk8nmi36Ab/5UQwptOx84SsoGNRg+EVSjwzfSZMy6pmlw==} + '@opentelemetry/semantic-conventions@1.41.1': + resolution: {integrity: sha512-/UhIkaZgPutTFmQ7RnIJGgDXZmtEJ7Dvi86xNTFWcnRxVRNk/aotsqDJYeEvDP+FSMB2SdW+pQzNMcWP0rwuNA==} engines: {node: '>=14'} '@opentelemetry/sql-common@0.41.2': @@ -7011,7 +7011,7 @@ snapshots: '@opentelemetry/api': 1.9.1 '@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation': 0.212.0(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.41.1 minimatch: 10.2.5 transitivePeerDependencies: - supports-color @@ -7433,12 +7433,12 @@ snapshots: '@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.41.1 '@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.41.1 '@opentelemetry/exporter-prometheus@0.217.0(@opentelemetry/api@1.9.1)': dependencies: @@ -7446,7 +7446,7 @@ snapshots: '@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/resources': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/sdk-metrics': 2.7.1(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.41.1 '@opentelemetry/exporter-trace-otlp-http@0.217.0(@opentelemetry/api@1.9.1)': dependencies: @@ -7462,7 +7462,7 @@ snapshots: '@opentelemetry/api': 1.9.1 '@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.41.1 transitivePeerDependencies: - supports-color @@ -7471,7 +7471,7 @@ snapshots: '@opentelemetry/api': 1.9.1 '@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.41.1 '@types/connect': 3.4.38 transitivePeerDependencies: - supports-color @@ -7510,7 +7510,7 @@ snapshots: '@opentelemetry/api': 1.9.1 '@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.41.1 transitivePeerDependencies: - supports-color @@ -7519,7 +7519,7 @@ snapshots: '@opentelemetry/api': 1.9.1 '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.41.1 forwarded-parse: 2.1.2 transitivePeerDependencies: - supports-color @@ -7528,7 +7528,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.1 '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.41.1 transitivePeerDependencies: - supports-color @@ -7536,7 +7536,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.1 '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.41.1 transitivePeerDependencies: - supports-color @@ -7545,7 +7545,7 @@ snapshots: '@opentelemetry/api': 1.9.1 '@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.41.1 transitivePeerDependencies: - supports-color @@ -7560,7 +7560,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.1 '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.41.1 transitivePeerDependencies: - supports-color @@ -7569,7 +7569,7 @@ snapshots: '@opentelemetry/api': 1.9.1 '@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.41.1 transitivePeerDependencies: - supports-color @@ -7577,7 +7577,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.1 '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.41.1 '@opentelemetry/sql-common': 0.41.2(@opentelemetry/api@1.9.1) transitivePeerDependencies: - supports-color @@ -7586,7 +7586,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.1 '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.41.1 '@types/mysql': 2.15.27 transitivePeerDependencies: - supports-color @@ -7596,7 +7596,7 @@ snapshots: '@opentelemetry/api': 1.9.1 '@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.41.1 '@opentelemetry/sql-common': 0.41.2(@opentelemetry/api@1.9.1) '@types/pg': 8.15.6 '@types/pg-pool': 2.0.7 @@ -7607,7 +7607,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.1 '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.41.1 '@types/tedious': 4.0.14 transitivePeerDependencies: - supports-color @@ -7660,7 +7660,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.1 '@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.41.1 '@opentelemetry/sdk-logs@0.217.0(@opentelemetry/api@1.9.1)': dependencies: @@ -7668,7 +7668,7 @@ snapshots: '@opentelemetry/api-logs': 0.217.0 '@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/resources': 2.7.1(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.41.1 '@opentelemetry/sdk-metrics@2.7.1(@opentelemetry/api@1.9.1)': dependencies: @@ -7681,9 +7681,9 @@ snapshots: '@opentelemetry/api': 1.9.1 '@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/resources': 2.7.1(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.41.1 - '@opentelemetry/semantic-conventions@1.40.0': {} + '@opentelemetry/semantic-conventions@1.41.1': {} '@opentelemetry/sql-common@0.41.2(@opentelemetry/api@1.9.1)': dependencies: @@ -8169,10 +8169,10 @@ snapshots: '@sentry/core@10.53.1': {} - '@sentry/node-core@10.53.1(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/exporter-trace-otlp-http@0.217.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0)': + '@sentry/node-core@10.53.1(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/exporter-trace-otlp-http@0.217.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.41.1)': dependencies: '@sentry/core': 10.53.1 - '@sentry/opentelemetry': 10.53.1(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) + '@sentry/opentelemetry': 10.53.1(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.41.1) import-in-the-middle: 3.0.1 optionalDependencies: '@opentelemetry/api': 1.9.1 @@ -8180,7 +8180,7 @@ snapshots: '@opentelemetry/exporter-trace-otlp-http': 0.217.0(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) '@opentelemetry/sdk-trace-base': 2.7.1(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.41.1 '@sentry/node@10.53.1(@opentelemetry/exporter-trace-otlp-http@0.217.0(@opentelemetry/api@1.9.1))': dependencies: @@ -8207,22 +8207,22 @@ snapshots: '@opentelemetry/instrumentation-pg': 0.66.0(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation-tedious': 0.33.0(@opentelemetry/api@1.9.1) '@opentelemetry/sdk-trace-base': 2.7.1(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.41.1 '@prisma/instrumentation': 7.6.0(@opentelemetry/api@1.9.1) '@sentry/core': 10.53.1 - '@sentry/node-core': 10.53.1(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/exporter-trace-otlp-http@0.217.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) - '@sentry/opentelemetry': 10.53.1(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) + '@sentry/node-core': 10.53.1(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/exporter-trace-otlp-http@0.217.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.41.1) + '@sentry/opentelemetry': 10.53.1(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.41.1) import-in-the-middle: 3.0.1 transitivePeerDependencies: - '@opentelemetry/exporter-trace-otlp-http' - supports-color - '@sentry/opentelemetry@10.53.1(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0)': + '@sentry/opentelemetry@10.53.1(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.41.1)': dependencies: '@opentelemetry/api': 1.9.1 '@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/sdk-trace-base': 2.7.1(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/semantic-conventions': 1.41.1 '@sentry/core': 10.53.1 '@sindresorhus/is@4.6.0': {} From 9af890e8646c56896ec54322214ad5d1975a38f3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 May 2026 18:32:44 +0800 Subject: [PATCH 403/439] chore(deps): bump youtube-caption-extractor from 1.9.1 to 1.10.1 (#22002) Bumps [youtube-caption-extractor](https://github.com/devhims/youtube-caption-extractor) from 1.9.1 to 1.10.1. - [Release notes](https://github.com/devhims/youtube-caption-extractor/releases) - [Commits](https://github.com/devhims/youtube-caption-extractor/commits/v1.10.1) --- updated-dependencies: - dependency-name: youtube-caption-extractor dependency-version: 1.10.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index b7215200fcac..b7a647afc392 100644 --- a/package.json +++ b/package.json @@ -137,7 +137,7 @@ "uuid": "14.0.0", "winston": "3.19.0", "xxhash-wasm": "1.1.0", - "youtube-caption-extractor": "1.9.1", + "youtube-caption-extractor": "1.10.1", "youtubei.js": "17.0.1", "zod": "4.4.3" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 31092621b622..5cd2d8d1d1c1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -272,8 +272,8 @@ importers: specifier: 1.1.0 version: 1.1.0 youtube-caption-extractor: - specifier: 1.9.1 - version: 1.9.1 + specifier: 1.10.1 + version: 1.10.1 youtubei.js: specifier: 17.0.1 version: 17.0.1 @@ -6469,9 +6469,9 @@ packages: youch@4.1.0-beta.10: resolution: {integrity: sha512-rLfVLB4FgQneDr0dv1oddCVZmKjcJ6yX6mS4pU82Mq/Dt9a3cLZQ62pDBL4AUO+uVrCvtWz3ZFUL2HFAFJ/BXQ==} - youtube-caption-extractor@1.9.1: - resolution: {integrity: sha512-KK1OparV3kpIIRkMgLRsQPE73Tu0hYy0CDKcWkF8O3eikyib0IqVjoDNDiGt0KhGbg0/jhh+VUOCcWn/G6nvAw==} - engines: {node: '>=14.0.0'} + youtube-caption-extractor@1.10.1: + resolution: {integrity: sha512-XTSTDrS3hd3VN65gLQBXnjgrQzl/qgLeylCZlocEnGwe9kS8iS7vEbrPJkkRa+c2XBpX2B2nbO/BRxDdVV6nqQ==} + engines: {node: '>=18.0.0'} youtubei.js@17.0.1: resolution: {integrity: sha512-1lO4b8UqMDzE0oh2qEGzbBOd4UYRdxn/4PdpRM7BGTHxM6ddsEsKZTu90jp8V9FHVgC2h1UirQyqoqLiKwl+Zg==} @@ -12468,7 +12468,7 @@ snapshots: cookie: 1.1.1 youch-core: 0.3.3 - youtube-caption-extractor@1.9.1: + youtube-caption-extractor@1.10.1: dependencies: he: 1.2.0 striptags: 3.2.0 From a769e297b5acd37bc8ef341441c02e6650991a6b Mon Sep 17 00:00:00 2001 From: Tony Date: Wed, 13 May 2026 19:17:03 +0800 Subject: [PATCH 404/439] chore: enhance identify function --- scripts/workflow/test-route/identify.mjs | 30 ++++++++++++++++++++---- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/scripts/workflow/test-route/identify.mjs b/scripts/workflow/test-route/identify.mjs index 8da3bd6d4fe0..f0f6650e866d 100644 --- a/scripts/workflow/test-route/identify.mjs +++ b/scripts/workflow/test-route/identify.mjs @@ -5,7 +5,9 @@ const noFound = 'auto: route no found'; const criticalFailure = 'auto: DO NOT merge'; const routeTestFailed = 'auto: not ready to review'; const allowedUser = new Set(['dependabot[bot]', 'pull[bot]']); // dependabot and downstream PR requested by pull[bot] -const requiredHeading = 'Example for the Proposed Route(s) / 路由地址示例'; +const requiredHeadings = ['Involved Issue / 该 PR 相关 Issue', 'Example for the Proposed Route(s) / 路由地址示例', 'New RSS Route Checklist / 新 RSS 路由检查表', 'Note / 说明']; +const routeHeading = 'Example for the Proposed Route(s) / 路由地址示例'; +const requiredHeadingDepth = 2; /** @type {boolean} */ const isPR = Boolean(process.env.PULL_REQUEST); @@ -111,6 +113,19 @@ export default async function identify({ github, context, core }, body, number, core.debug('PR created by ' + sender); } + const hasWriteAccess = await github.rest.repos + .getCollaboratorPermissionLevel({ + owner: context.repo.owner, + repo: context.repo.repo, + username: sender, + }) + .then(({ data }) => ['admin', 'maintain', 'write'].includes(data.permission)) + .catch((error) => { + core.warning(error); + return false; + }); + core.debug(`hasWriteAccess: ${hasWriteAccess}`); + /** @type {string[] | undefined} */ let routes; @@ -121,12 +136,15 @@ export default async function identify({ github, context, core }, body, number, let searchEnd = ast.children.length; if (isPR) { - const headingIndex = ast.children.findIndex((node) => node.type === 'heading' && node.children?.some((child) => child.type === 'text' && child.value.trim() === requiredHeading)); - core.debug(`headingIndex: ${headingIndex}`); + /** @param {string} text */ + const findHeading = (text) => ast.children.findIndex((node) => node.type === 'heading' && node.depth === requiredHeadingDepth && node.children?.some((child) => child.type === 'text' && child.value.trim() === text)); - if (headingIndex === -1) { + const missingHeadings = requiredHeadings.filter((text) => findHeading(text) === -1); + if (missingHeadings.length > 0) { searchStart = -1; // skip search } else { + const headingIndex = findHeading(routeHeading); + core.debug(`headingIndex: ${headingIndex}`); searchStart = headingIndex + 1; const nextHeading = ast.children.findIndex((node, i) => i > headingIndex && node.type === 'heading'); if (nextHeading !== -1) { @@ -175,7 +193,9 @@ export default async function identify({ github, context, core }, body, number, await createFailedComment(); if (isPR) { await addLabels([noFound]); - await updatePrState('closed'); + if (!hasWriteAccess) { + await updatePrState('closed'); + } } throw new Error('Please follow the PR rules: failed to detect route'); From eda21bb48cdbdd2d82ff0e200da8174fc8a26bb7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 May 2026 19:54:56 +0800 Subject: [PATCH 405/439] chore(deps-dev): bump the oxc group across 1 directory with 4 updates (#21923) * chore(deps-dev): bump the oxc group across 1 directory with 4 updates Bumps the oxc group with 4 updates in the / directory: [@oxlint/plugins](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint-plugins), [oxfmt](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt), [oxlint](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint) and [oxlint-plugin-eslint](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint-plugin-eslint). Updates `@oxlint/plugins` from 1.62.0 to 1.64.0 - [Release notes](https://github.com/oxc-project/oxc/releases) - [Changelog](https://github.com/oxc-project/oxc/blob/main/CHANGELOG.md) - [Commits](https://github.com/oxc-project/oxc/commits/apps_v1.64.0/npm/oxlint-plugins) Updates `oxfmt` from 0.47.0 to 0.49.0 - [Release notes](https://github.com/oxc-project/oxc/releases) - [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxfmt/CHANGELOG.md) - [Commits](https://github.com/oxc-project/oxc/commits/oxfmt_v0.49.0/npm/oxfmt) Updates `oxlint` from 1.62.0 to 1.64.0 - [Release notes](https://github.com/oxc-project/oxc/releases) - [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxlint/CHANGELOG.md) - [Commits](https://github.com/oxc-project/oxc/commits/oxlint_v1.64.0/npm/oxlint) Updates `oxlint-plugin-eslint` from 1.62.0 to 1.64.0 - [Release notes](https://github.com/oxc-project/oxc/releases) - [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxlint-plugin-eslint/CHANGELOG.md) - [Commits](https://github.com/oxc-project/oxc/commits/apps_v1.64.0/npm/oxlint-plugin-eslint) --- updated-dependencies: - dependency-name: "@oxlint/plugins" dependency-version: 1.63.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: oxc - dependency-name: oxfmt dependency-version: 0.48.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: oxc - dependency-name: oxlint dependency-version: 1.63.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: oxc - dependency-name: oxlint-plugin-eslint dependency-version: 1.63.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: oxc ... Signed-off-by: dependabot[bot] * chore: use native prefer-regex-literals --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .oxlintrc.json | 4 +- package.json | 8 +- pnpm-lock.yaml | 353 +++++++++++++++++++++++++------------------------ 3 files changed, 185 insertions(+), 180 deletions(-) diff --git a/.oxlintrc.json b/.oxlintrc.json index 2be2bfecf557..83ae484d17f1 100644 --- a/.oxlintrc.json +++ b/.oxlintrc.json @@ -388,8 +388,8 @@ "eslint-js/prefer-arrow-callback": "error", // use jsPlugins "prefer-const": "error", "prefer-object-has-own": "error", - "eslint-js/prefer-regex-literals": [ - "error", // use jsPlugins + "prefer-regex-literals": [ + "error", { "disallowRedundantWrapping": true } diff --git a/package.json b/package.json index b7a647afc392..7d2f60740979 100644 --- a/package.json +++ b/package.json @@ -150,7 +150,7 @@ "@cloudflare/workers-types": "4.20260511.1", "@eslint/eslintrc": "3.3.5", "@eslint/js": "10.0.1", - "@oxlint/plugins": "1.62.0", + "@oxlint/plugins": "1.64.0", "@stylistic/eslint-plugin": "5.10.0", "@types/aes-js": "3.1.4", "@types/babel__preset-env": "7.10.0", @@ -192,9 +192,9 @@ "mockdate": "3.0.5", "msw": "2.13.4", "node-network-devtools": "1.0.30", - "oxfmt": "0.47.0", - "oxlint": "1.62.0", - "oxlint-plugin-eslint": "1.62.0", + "oxfmt": "0.49.0", + "oxlint": "1.64.0", + "oxlint-plugin-eslint": "1.64.0", "oxlint-tsgolint": "0.22.1", "remark": "15.0.1", "remark-gfm": "4.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5cd2d8d1d1c1..1ca9a4a12673 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -306,8 +306,8 @@ importers: specifier: 10.0.1 version: 10.0.1(eslint@10.3.0(jiti@2.6.1)) '@oxlint/plugins': - specifier: 1.62.0 - version: 1.62.0 + specifier: 1.64.0 + version: 1.64.0 '@stylistic/eslint-plugin': specifier: 5.10.0 version: 5.10.0(eslint@10.3.0(jiti@2.6.1)) @@ -432,14 +432,14 @@ importers: specifier: 1.0.30 version: 1.0.30(undici@7.25.0)(utf-8-validate@5.0.10) oxfmt: - specifier: 0.47.0 - version: 0.47.0 + specifier: 0.49.0 + version: 0.49.0 oxlint: - specifier: 1.62.0 - version: 1.62.0(oxlint-tsgolint@0.22.1) + specifier: 1.64.0 + version: 1.64.0(oxlint-tsgolint@0.22.1) oxlint-plugin-eslint: - specifier: 1.62.0 - version: 1.62.0 + specifier: 1.64.0 + version: 1.64.0 oxlint-tsgolint: specifier: 0.22.1 version: 0.22.1 @@ -1937,124 +1937,124 @@ packages: '@oxc-project/types@0.129.0': resolution: {integrity: sha512-3oz8m3FGdr2nDXVqmFUw7jolKliC4MoyXYIG2c7gpjBnzUWQpUGIYcXYKxTdTi+N2jusvt610ckTMkxdwHkYEg==} - '@oxfmt/binding-android-arm-eabi@0.47.0': - resolution: {integrity: sha512-KrMQRdMi/upr81qT4ijK6X6BNp6jqpMY7FwILQnwIy9QLc3qpnhUx5rsCLGzn4ewsCQ0CNAspN2ogmP1GXLyLw==} + '@oxfmt/binding-android-arm-eabi@0.49.0': + resolution: {integrity: sha512-HbifJ84prIh9+55CTPAU35JdRQrwg47y16cGerCC+iejSKOuHXYo2WDql6l7cQlzrYVtc3f4UWY+dBj2lRmOeA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@oxfmt/binding-android-arm64@0.47.0': - resolution: {integrity: sha512-r4ixS/PeUpAFKgrpDoZ5pSkthjZzVzKd95525Aazj+aOv9H4ulK5zYHGb7wFY5n5kZxHK8TbOJUZgoEb1ohddQ==} + '@oxfmt/binding-android-arm64@0.49.0': + resolution: {integrity: sha512-Ef7SKJqAaH2d7E6eXZZa2OffIShbhFMxnGK0zd93p4qiyTJr75B0qf7lrPD+qQOwcf04BrjYJ0JUxq8d5+yZwg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxfmt/binding-darwin-arm64@0.47.0': - resolution: {integrity: sha512-CLWxiKpMl+195cm09CuaWEhJK0CirRkoMa07aR9+9AFPat2LfIKtwx1JqxZM0MTvcMe6+adlJNdVL6jdInvq3g==} + '@oxfmt/binding-darwin-arm64@0.49.0': + resolution: {integrity: sha512-8x5DN9CsFfb432sHa9NyqX5XisGUdA53LPEGSdv/VniS+v4uEOR8Orv7A9QSB98Xxgp0t6r31DzQA/wpIobGqQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxfmt/binding-darwin-x64@0.47.0': - resolution: {integrity: sha512-Xq5fjTYDC50faUeLSm0rZdBqoTgleXEdD7NpJdARtQIczkCJn3xNjMUSQQkUmh4CtxkKTNL68lytcOK3e/osgg==} + '@oxfmt/binding-darwin-x64@0.49.0': + resolution: {integrity: sha512-e0+DSVzk4ewhMVKNYDaRTmP81jNMBWR1X9al0cVKWS+hDM/dElNqD5zjTOCuLOZc4oOdp2Gx2ldrVL+yYo9TZQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxfmt/binding-freebsd-x64@0.47.0': - resolution: {integrity: sha512-QOU9ZIJ52p5askcEC0QJvvr8trHAWoonul8bgISo6gYUL3s50zkqafBYcNAr9LJZQbsZtPfIWHk9+5+nUp1qJQ==} + '@oxfmt/binding-freebsd-x64@0.49.0': + resolution: {integrity: sha512-W+mjtYtrQvFbXT/uNT+221OBhGRZ8UqNsLxjTWsjZ4GsQnRdvRC/N2NCK86BcamWr7lsTxwpwN3PULnr78sgcQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxfmt/binding-linux-arm-gnueabihf@0.47.0': - resolution: {integrity: sha512-oJxDM1aBhPvz9gmElBv8UpxyiqhwfjcbrSxT5F0xtuUzY6dQI27/AQPIt3eu3Z5Yvn0kQl5R7MA3Z+MbnRvCBw==} + '@oxfmt/binding-linux-arm-gnueabihf@0.49.0': + resolution: {integrity: sha512-Rtv6UevV7czDlLqil+NZUe4d8gs8jQo/zScSpumwyf7I+fSdLc+hc8AF3MQC7ymxSMMD9+vfiqQlsIf7wOAzXA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxfmt/binding-linux-arm-musleabihf@0.47.0': - resolution: {integrity: sha512-g8Lh50VS4ibGz2q6v7r9UZY4D0dM16SdrFYOMzhqIoCwGcai8VMIRUAcqn1/jlCsOOzUXJ741+kCeJt0cofakQ==} + '@oxfmt/binding-linux-arm-musleabihf@0.49.0': + resolution: {integrity: sha512-sBi+8C/Q/MdKa5FL8ibAUCdhFBGFH7HFN/Qoyd5xQbZ/0ky3NMPpKfIBpaH0lhK2dXkGLczVQUoZ+xuNSerCdQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxfmt/binding-linux-arm64-gnu@0.47.0': - resolution: {integrity: sha512-YrNT1vQ0asaXoRbrvYENPqmBfOQ9Xr8enPNOULeYfg44VjCcrUowFy5QZr+WawE0zyP8cH9e9Gxxg0fDEFzhcg==} + '@oxfmt/binding-linux-arm64-gnu@0.49.0': + resolution: {integrity: sha512-JIfWenFhlzx+O8YygyZhoHFzTsdgDhxhbDRnE2iJLnnM5pWKScFvPECO2vOlA7JqJ/9S1g3uzEKuRCkHFwTjvA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-arm64-musl@0.47.0': - resolution: {integrity: sha512-IxtQC/sbBi4ubbY+MdwdanRWrG9InQJVZqyMsBa5IUaQcnSg86gQme574HxXMC1p4bo4YhV99zQ+wNnGCvEgzw==} + '@oxfmt/binding-linux-arm64-musl@0.49.0': + resolution: {integrity: sha512-iNzkMPG18jPkwBOZ4/HEjwqfzAjq4RrUQ0CgId/fC1ENvYD5jLVAaU/gWgpiqP1ys07kxSsSggDd1fp3E7mQHw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@oxfmt/binding-linux-ppc64-gnu@0.47.0': - resolution: {integrity: sha512-EWXEhOMbWO0q6eJSbu0QLkU8cKi0ljlYLngeDs2Ocu/pm1rrLwyQiYzlFbdnMRURI4w9ndr1sI9rSbhlJ5o23Q==} + '@oxfmt/binding-linux-ppc64-gnu@0.49.0': + resolution: {integrity: sha512-BPHA/NN3LvoIXiid+iz3BHt5V0Rzx0tXAqRUovwE1NsbDaLG9e8mtv7evDGRIkVQacqTDBv0XL25THHsxSJosQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-riscv64-gnu@0.47.0': - resolution: {integrity: sha512-tZrjS11TUiDuEpRaqdk8K9F9xETRyKXfuZKmdeW+Gj7coBnm7+8sBEfyt033EAFEQSlkniAXvBLh+Qja2ioGBQ==} + '@oxfmt/binding-linux-riscv64-gnu@0.49.0': + resolution: {integrity: sha512-3Eroshe+s69htC9JIL0+zLGQczLtRKezkMhwqQC21VC5Z/fuLvzLfbAOLgJLUq601H8gDYjy7deYycfOBjCvWg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-riscv64-musl@0.47.0': - resolution: {integrity: sha512-KBFy+2CFKUCZzYwX2ZOPQKck1vjQbz+hextuc19G4r0WRJwadfAeuQMQRQvB+Ivc8brlbOVg7et8K7E467440g==} + '@oxfmt/binding-linux-riscv64-musl@0.49.0': + resolution: {integrity: sha512-fnaERGgsxGm0lKAmO72EYR4BA3qBnzBTJBTi6EtUMq1D4R7EexRBMU4voXnx4TXla3SEDl9x4uNp/18SbkPjGg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [musl] - '@oxfmt/binding-linux-s390x-gnu@0.47.0': - resolution: {integrity: sha512-REUPFKVGSiK99B+9eaPhluEVglzaoj/SMykNC5SUiV2RSsBfV5lWN7Y0iCIc251Wz3GaeAGZsJ/zj3gjarxdFg==} + '@oxfmt/binding-linux-s390x-gnu@0.49.0': + resolution: {integrity: sha512-rBwasMl1Uul1MCCeTGEFKnOTL7VUxHf+634jWStrQAbzpBJgd5Yz5m4F7exVCsoI8PHn57dNjssXagXLCLB5yA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-x64-gnu@0.47.0': - resolution: {integrity: sha512-KVftVSVEDeIfRW3TIeLe3aNI/iY4m1fu5mDwHcisKMZSCMKLkrhFsjowC7o9RoqNPxbbglm2+/6KAKBIts2t0Q==} + '@oxfmt/binding-linux-x64-gnu@0.49.0': + resolution: {integrity: sha512-BoC/F9xHe2y/deuBGA5Aw7bes07OD2gcL2wlpzTrfImR92vPP7S/k3LBTyspQZCNIVNdagkELcqKELwMLGIfAg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-x64-musl@0.47.0': - resolution: {integrity: sha512-DTsmGEaA2860Aq5VUyDO8/MT9NFxwVL93RnRYmpMwK6DsSkThmvEpqoUDDljziEpAedMRG19SCogrNbINSbLUQ==} + '@oxfmt/binding-linux-x64-musl@0.49.0': + resolution: {integrity: sha512-umY6jFADAo/oztFKl8D/S6vSrG6oBpEskcentiRuz42kZVU2kfDXMWCYavxyZR2bwPjqkHpcHZ6EZFiH3Qj9ZA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@oxfmt/binding-openharmony-arm64@0.47.0': - resolution: {integrity: sha512-8r5BDro7fLOBoq1JXHLVSs55OlrxQhEso4HVo0TcY7OXJUPYfjPoOaYL5us+yIwqyP9rQwN+rxuiNFSmaxSuOQ==} + '@oxfmt/binding-openharmony-arm64@0.49.0': + resolution: {integrity: sha512-J85zQMiw2pXiGPK+OusmDvSnJ/dgpgN7VgmB2zOBtgS8F+nsOUfSg9ZEBrwbQscjZ7tkPbm38CG4VF5f53MsiA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@oxfmt/binding-win32-arm64-msvc@0.47.0': - resolution: {integrity: sha512-qtz/gzm8IjSPUlseZ0ofW8zyHLoZsuP5HTfcGGkWkUblB89JT8GNYH3ICqjbDsqsGqXum0/ZndXTFplSdXFIcg==} + '@oxfmt/binding-win32-arm64-msvc@0.49.0': + resolution: {integrity: sha512-38K67XR++CoFFORDd4sMFwUVAnD6msYBdGTei+qvKGrRPO6S2PbrYPNL/eQQ1RgnnxOegNba0YQwg6uRkNcw6A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxfmt/binding-win32-ia32-msvc@0.47.0': - resolution: {integrity: sha512-5vIcdcIDE7nCx+MXN6sm8kbC4zajDB31E86rez4i45iHNH/2NjdKlJ720xcHTr3eeiMcttCGPHPhE1TjtBDGZw==} + '@oxfmt/binding-win32-ia32-msvc@0.49.0': + resolution: {integrity: sha512-rXVe0HICwQF0dBgbQtBCoYf8x/SidPIdhyQl+iPuJlV7suV+qDv7yUEB3wQ4qC3nOeNxz287SwFXKzyr0kWgEg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@oxfmt/binding-win32-x64-msvc@0.47.0': - resolution: {integrity: sha512-Sr59Y5ms54ONBjxFeWhVlGyQcHXxcl9DxC23f6yXlRkcos7LXBLoO+KDfxexjHIOZh7cWqrWduzvUjJ+pHp8cQ==} + '@oxfmt/binding-win32-x64-msvc@0.49.0': + resolution: {integrity: sha512-gwWLwSEmBBfIK/Wh7GGd658161o4RKAvHWRaRQbJm571iQXGKfyr7UKsI1vsWvDlNLc30CxJDc8mMmCvJ/kczQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -2089,130 +2089,130 @@ packages: cpu: [x64] os: [win32] - '@oxlint/binding-android-arm-eabi@1.62.0': - resolution: {integrity: sha512-pKsthNECyvJh8lPTICz6VcwVy2jOqdhhsp1rlxCkhgZR47aKvXPmaRWQDv+zlXpRae4qm1MaaTnutkaOk5aofg==} + '@oxlint/binding-android-arm-eabi@1.64.0': + resolution: {integrity: sha512-2r6Nq3XXGLHEXKkSj8JtmJ6N4gDw431DPFOg0ZoJHlNjnG6HVMm/ksQ10m0HJ8WBvwgMe1L50UHPaYZutCRPCw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@oxlint/binding-android-arm64@1.62.0': - resolution: {integrity: sha512-b1AUNViByvgmR2xJDubvLIr+dSuu3uraG7bsAoKo+xrpspPvu6RIn6Fhr2JUhobfep3jwUTy18Huco6GkwdvGQ==} + '@oxlint/binding-android-arm64@1.64.0': + resolution: {integrity: sha512-ePJMpePgg7fBv+L/hVx1xXRU5/5gd5m0obLA6hPEfLXF3GjpR8idIDbY1dhQYhyz1ms2wdTccSboo6KEd2Oxtg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxlint/binding-darwin-arm64@1.62.0': - resolution: {integrity: sha512-iG+Tvf70UJ6otfwFYIHk36Sjq9cpPP5YLxkoggANNRtzgi3Tj3g8q6Ybqi6AtkU3+yg9QwF7bDCkCS6bbL4PCg==} + '@oxlint/binding-darwin-arm64@1.64.0': + resolution: {integrity: sha512-U4DMLQd10gJLuoSTLSGbfv3bGjTlUNsScm9Dgb8wwBqmCzidf1pE1pXV4doGNxqwH3KtVng1AGTINA0NvkGLvQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxlint/binding-darwin-x64@1.62.0': - resolution: {integrity: sha512-oOWI6YPPr5AJUx+yIDlxmuUbQjS5gZX3OH3QisawYvsZgLiQVvZtR0rPBcJTxLWqt2ClrWg0DlSrlUiG5SQNHg==} + '@oxlint/binding-darwin-x64@1.64.0': + resolution: {integrity: sha512-GoRIL48QWm4/TAvjN8pB1nAG+1/uqc9EdnWT9zqHeb6wsmjZtywj8VRe5aGW47Fdb64YtLOsdLqVxOvQuz98Wg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxlint/binding-freebsd-x64@1.62.0': - resolution: {integrity: sha512-dLP33T7VLCmLVv4cvjkVX+rmkcwNk2UfxmsZPNur/7BQHoQR60zJ7XLiRvNUawlzn0u8ngCa3itjEG73MAMa/w==} + '@oxlint/binding-freebsd-x64@1.64.0': + resolution: {integrity: sha512-5dFkv4tkg7PxJJGS9/OjrJwjhuHczrd3OQOkRE0wHcLM+ncUnULtzEPWjqGOxTXxZnLWcB91bGiIznx89TVXyQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxlint/binding-linux-arm-gnueabihf@1.62.0': - resolution: {integrity: sha512-fl//LWNks6qo9chNY60UDYyIwtp7a5cEx4Y/rHPjaarhuwqx6jtbzEpD5V5AqmdL4a6Y5D8zeXg5HF2Cr0QmSQ==} + '@oxlint/binding-linux-arm-gnueabihf@1.64.0': + resolution: {integrity: sha512-jsBqMLl/uOL5+Kq/+BtK9FrmiNGUbx8SiyZXv+WlUxA45KuwcLu9BfiSIL3I3DBDgWM3yZizDITnTK9BcqNBQg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxlint/binding-linux-arm-musleabihf@1.62.0': - resolution: {integrity: sha512-i5vkAuxvueTODV3J2dL61/TXewDHhMFKvtD156cIsk7GsdfiAu7zW7kY0NJXhKeFHeiMZIh7eFNjkPYH6J47HQ==} + '@oxlint/binding-linux-arm-musleabihf@1.64.0': + resolution: {integrity: sha512-1lrj8At/Uuc9GhjrVFBQo0NEjfBrTkzpmtHIGAhNnIXqn1CAyGL+qrztUsXb2GIluJrpl9Q7qRLJOb/NqydacQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxlint/binding-linux-arm64-gnu@1.62.0': - resolution: {integrity: sha512-QwN19LLuIGuOjEflSeJkZmOTfBdBMlTmW8xbMf8TZhjd//cxVNYQPq75q7oKZBJc6hRx3gY7sX0Egc8cEIFZYg==} + '@oxlint/binding-linux-arm64-gnu@1.64.0': + resolution: {integrity: sha512-HpSQbubwh03mMhAdy2BYtad/fsY8vDFHDAb6bUwuCYg2VD3xCQgn6ArKcO0oZyLCheacKTv4PrF3Mfu5hgoE2g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-arm64-musl@1.62.0': - resolution: {integrity: sha512-8eCy3FCDuWUM5hWujAv6heMvfZPbcCOU3SdQUAkixZLu5bSzOkNfirJiLGoQFO943xceOKkiQRMQNzH++jM3WA==} + '@oxlint/binding-linux-arm64-musl@1.64.0': + resolution: {integrity: sha512-00QQ0h0Y7u0G69BgiH3+ky2aaq/QvkDL6DYok8htIuJHxybiux5aQ8jwmg8qIk9wha6UagUP2BAwAzbemcJbpg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@oxlint/binding-linux-ppc64-gnu@1.62.0': - resolution: {integrity: sha512-NjQ7K7tpTPDe9J+yq8p/s/J0E7lRCkK2uDBDqvT4XIT6f4Z0tlnr59OBg/WcrmVHER1AbrcfyxhGTXgcG8ytWg==} + '@oxlint/binding-linux-ppc64-gnu@1.64.0': + resolution: {integrity: sha512-2GaimTV6EMW+s5HS0An3oGbQme3BgHswvfVdGk3EB57Xe9+/gyT+Qd7lNVzb3rtir52vbIPzXfaYArzs5b5zcw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-riscv64-gnu@1.62.0': - resolution: {integrity: sha512-oKZed9gmSwze29dEt3/Wnsv6l/Ygw/FUst+8Kfpv2SGeS/glEoTGZAMQw37SVyzFV76UTHJN2snGgxK2t2+8ow==} + '@oxlint/binding-linux-riscv64-gnu@1.64.0': + resolution: {integrity: sha512-H46AtFb9wypjoVwGdlxrm0DsD809NGmtiK9HiyPKTxkSte2YjhC4S+00rOIrwCaxcyPiGid3Y3OMXp5KMAkGZw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-riscv64-musl@1.62.0': - resolution: {integrity: sha512-gBjBxQ+9lGpAYq+ELqw0w8QXsBnkZclFc7GRX2r0LnEVn3ZTEqeIKpKcGjucmp76Q53bvJD0i4qBWBhcfhSfGA==} + '@oxlint/binding-linux-riscv64-musl@1.64.0': + resolution: {integrity: sha512-HEgsidjjvvyzdg82icYkuFCf7REDV7B9JFwbIMbVwrKLBY0MrXX+bku3POn/hduZ2yW91IyVDUMq0Bf02KwXQw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [musl] - '@oxlint/binding-linux-s390x-gnu@1.62.0': - resolution: {integrity: sha512-Ew2Kxs9EQ9/mbAIJ2hvocMC0wsOu6YKzStI2eFBDt+Td5O8seVC/oxgRIHqCcl5sf5ratA1nozQBAuv7tphkHg==} + '@oxlint/binding-linux-s390x-gnu@1.64.0': + resolution: {integrity: sha512-Axvm8qryotmKN00P5w4JapaSjvP2LOSbdbBJiX+2SuHd3QzhW7TUc8skqgw+ahQZ5DmzEYeHCqauvW8f32Ns6Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@oxlint/binding-linux-x64-gnu@1.62.0': - resolution: {integrity: sha512-5z25jcAA0gfKyVwz71A0VXgaPlocPoTAxhlv/hgoK6tlCrfoNuw7haWbDHvGMfjXhdic4EqVXGRv5XsTqFnbRQ==} + '@oxlint/binding-linux-x64-gnu@1.64.0': + resolution: {integrity: sha512-cR60vSd7+m+KRZ3GQGfDxWwahW5RMXg0qlGvAluZr0fTUYvw0H9N9AXAF/M/PMqgytyqvVNmBAkJG9l7U30Y1g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-x64-musl@1.62.0': - resolution: {integrity: sha512-IWpHmMB6ZDllPvqWDkG6AmXrN7JF5e/c4g/0PuURsmlK+vHoYZPB70rr4u1bn3I4LsKCSpqqfveyx6UCOC8wdg==} + '@oxlint/binding-linux-x64-musl@1.64.0': + resolution: {integrity: sha512-2u/aPZ9pEg7HnvZPDsHxUGNnrpr4qaHi+mCgLgpt+LYRzPrS4Px4wPfkIdRdr2GvKnaYyt+XSlto0Vm5sbStTg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@oxlint/binding-openharmony-arm64@1.62.0': - resolution: {integrity: sha512-fjlSxxrD5pA594vkyikCS9MnPRjQawW6/BLgyTYkO+73wwPlYjkcZ7LSd974l0Q2zkHQmu4DPvJFLYA7o8xrxQ==} + '@oxlint/binding-openharmony-arm64@1.64.0': + resolution: {integrity: sha512-kfhkGfCdoXLSxEkrhDlJrvBYajGmq+ma4EMc53dsOWTq+rIBOlI0vTBmpZNnM5oH2LY/K/w1HAK+UQEgjgpVUg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@oxlint/binding-win32-arm64-msvc@1.62.0': - resolution: {integrity: sha512-EiFXr8loNS0Ul3Gu80+9nr1T8jRmnKocqmHHg16tj5ZqTgUXyb97l2rrspVHdDluyFn9JfR4PoJFdNzw4paHww==} + '@oxlint/binding-win32-arm64-msvc@1.64.0': + resolution: {integrity: sha512-r/cNKBFieONoVu2bb1KkVouq9W+edDUgHumXJGphCRRj+U0xaD4nanrw8ZOqo0IsutPkEM4vCcGBpak6x5aXMg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxlint/binding-win32-ia32-msvc@1.62.0': - resolution: {integrity: sha512-IgOFvL73li1bFgab+hThXYA0N2Xms2kV2MvZN95cebV+fmrZ9AVui1JSxfeeqRLo3CpPxKZlzhyq4G0cnaAvIw==} + '@oxlint/binding-win32-ia32-msvc@1.64.0': + resolution: {integrity: sha512-tUw0xUUwEFVZbpJoeCblkv8SJA4Xz3CdXCJbAnBsiNLyxDrk2tLcxEAS6M73Q7hHHDg3OtwI8vZVK3t5RJt4Gw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@oxlint/binding-win32-x64-msvc@1.62.0': - resolution: {integrity: sha512-6hMpyDWQ2zGA1OXFKBrdYMUveUCO8UJhkO6JdwZPd78xIdHZNhjx+pib+4fC2Cljuhjyl0QwA2F3df/bs4Bp6A==} + '@oxlint/binding-win32-x64-msvc@1.64.0': + resolution: {integrity: sha512-9CBR+LO0JVST87fNTzzNxS5I29jIUO5gxT9i9+M3SDHHALElj9sY1Prf12tad3vIRC6OD7Ehtvvh+sn13vSwHw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] - '@oxlint/plugins@1.62.0': - resolution: {integrity: sha512-BgKRw631mImmxuGuRoWaRT8AvNSJCfJvR7lDzP1jR3sBAa7q8P/Ii+lcEOEFZsfcfpkXLyUKGEQLYXWqb60wvw==} + '@oxlint/plugins@1.64.0': + resolution: {integrity: sha512-aUOYj3qpaR/Mbo0HQo8CuwrxbkwRTpsxMlvaQ00INGXS1KdvllRHU1eEn7WYgwhgK3cXtAbLP13VjSknwdxvzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} '@package-json/types@0.0.12': @@ -5129,25 +5129,30 @@ packages: resolution: {integrity: sha512-dD4UpyBh/9m4X2NVjA+73/ZPBRF+uF4zIMFvvQsabMiEK8x41L3rQ8EENOi35kyyoaJwNxEeJcP6Fj1H4U409Q==} engines: {node: '>=12'} - oxfmt@0.47.0: - resolution: {integrity: sha512-OFbkbzxKCpooQEnRmpTDnuwTX8KHXzZTQ4Df/hz85fpS67Pl+lxPEFvUtin56HIIS0B1k4X8oIzTXRZPufA2CA==} + oxfmt@0.49.0: + resolution: {integrity: sha512-IAHFMdlJSWe+oAr65dx22UvjCtV9DBMisAuLnKpDqMQrctzCkGnj3QRwNHm0d+uwSWPalsDF8ZYLz9rh6nH2IQ==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true + peerDependencies: + svelte: ^5.0.0 + peerDependenciesMeta: + svelte: + optional: true - oxlint-plugin-eslint@1.62.0: - resolution: {integrity: sha512-O3P73cvhqepcccIscD0PJ0/JaJG/WJYm9Z7R3JUS0jcQggUSGTWE0ybNKMrZfsTsW+16qZ6etHPXn1Ce6ZLELQ==} + oxlint-plugin-eslint@1.64.0: + resolution: {integrity: sha512-YG7TwdWGsVQkZ9vPeW9dydXdK3VVHowyXCnOD22ibAQHouJNDMr2s7FpK7hevEmFutYamjn4VzY3hZaMOQatUQ==} engines: {node: ^20.19.0 || >=22.12.0} oxlint-tsgolint@0.22.1: resolution: {integrity: sha512-YUSGSLUnoolsu8gxISEDio3q1rtsCozwfOzASUn3DT2mR2EeQ93uEEnen7s+6LpF+lyTQFln1pQfqwBh/fsVEg==} hasBin: true - oxlint@1.62.0: - resolution: {integrity: sha512-1uFkg6HakjsGIpW9wNdeW4/2LOHW9MEkoWjZUTUfQtIHyLIZPYt00w3Sg+H3lH+206FgBPHBbW5dVE5l2ExECQ==} + oxlint@1.64.0: + resolution: {integrity: sha512-Star3SNpWPeWFPw7kRXIhXUSn6fdiAl25q15CQzH/9WaOtG6e9CWTc25vNZOCr4PE1yEP1GtKJKIKglhj3OmEQ==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: - oxlint-tsgolint: '>=0.18.0' + oxlint-tsgolint: '>=0.22.1' peerDependenciesMeta: oxlint-tsgolint: optional: true @@ -7724,61 +7729,61 @@ snapshots: '@oxc-project/types@0.129.0': {} - '@oxfmt/binding-android-arm-eabi@0.47.0': + '@oxfmt/binding-android-arm-eabi@0.49.0': optional: true - '@oxfmt/binding-android-arm64@0.47.0': + '@oxfmt/binding-android-arm64@0.49.0': optional: true - '@oxfmt/binding-darwin-arm64@0.47.0': + '@oxfmt/binding-darwin-arm64@0.49.0': optional: true - '@oxfmt/binding-darwin-x64@0.47.0': + '@oxfmt/binding-darwin-x64@0.49.0': optional: true - '@oxfmt/binding-freebsd-x64@0.47.0': + '@oxfmt/binding-freebsd-x64@0.49.0': optional: true - '@oxfmt/binding-linux-arm-gnueabihf@0.47.0': + '@oxfmt/binding-linux-arm-gnueabihf@0.49.0': optional: true - '@oxfmt/binding-linux-arm-musleabihf@0.47.0': + '@oxfmt/binding-linux-arm-musleabihf@0.49.0': optional: true - '@oxfmt/binding-linux-arm64-gnu@0.47.0': + '@oxfmt/binding-linux-arm64-gnu@0.49.0': optional: true - '@oxfmt/binding-linux-arm64-musl@0.47.0': + '@oxfmt/binding-linux-arm64-musl@0.49.0': optional: true - '@oxfmt/binding-linux-ppc64-gnu@0.47.0': + '@oxfmt/binding-linux-ppc64-gnu@0.49.0': optional: true - '@oxfmt/binding-linux-riscv64-gnu@0.47.0': + '@oxfmt/binding-linux-riscv64-gnu@0.49.0': optional: true - '@oxfmt/binding-linux-riscv64-musl@0.47.0': + '@oxfmt/binding-linux-riscv64-musl@0.49.0': optional: true - '@oxfmt/binding-linux-s390x-gnu@0.47.0': + '@oxfmt/binding-linux-s390x-gnu@0.49.0': optional: true - '@oxfmt/binding-linux-x64-gnu@0.47.0': + '@oxfmt/binding-linux-x64-gnu@0.49.0': optional: true - '@oxfmt/binding-linux-x64-musl@0.47.0': + '@oxfmt/binding-linux-x64-musl@0.49.0': optional: true - '@oxfmt/binding-openharmony-arm64@0.47.0': + '@oxfmt/binding-openharmony-arm64@0.49.0': optional: true - '@oxfmt/binding-win32-arm64-msvc@0.47.0': + '@oxfmt/binding-win32-arm64-msvc@0.49.0': optional: true - '@oxfmt/binding-win32-ia32-msvc@0.47.0': + '@oxfmt/binding-win32-ia32-msvc@0.49.0': optional: true - '@oxfmt/binding-win32-x64-msvc@0.47.0': + '@oxfmt/binding-win32-x64-msvc@0.49.0': optional: true '@oxlint-tsgolint/darwin-arm64@0.22.1': @@ -7799,64 +7804,64 @@ snapshots: '@oxlint-tsgolint/win32-x64@0.22.1': optional: true - '@oxlint/binding-android-arm-eabi@1.62.0': + '@oxlint/binding-android-arm-eabi@1.64.0': optional: true - '@oxlint/binding-android-arm64@1.62.0': + '@oxlint/binding-android-arm64@1.64.0': optional: true - '@oxlint/binding-darwin-arm64@1.62.0': + '@oxlint/binding-darwin-arm64@1.64.0': optional: true - '@oxlint/binding-darwin-x64@1.62.0': + '@oxlint/binding-darwin-x64@1.64.0': optional: true - '@oxlint/binding-freebsd-x64@1.62.0': + '@oxlint/binding-freebsd-x64@1.64.0': optional: true - '@oxlint/binding-linux-arm-gnueabihf@1.62.0': + '@oxlint/binding-linux-arm-gnueabihf@1.64.0': optional: true - '@oxlint/binding-linux-arm-musleabihf@1.62.0': + '@oxlint/binding-linux-arm-musleabihf@1.64.0': optional: true - '@oxlint/binding-linux-arm64-gnu@1.62.0': + '@oxlint/binding-linux-arm64-gnu@1.64.0': optional: true - '@oxlint/binding-linux-arm64-musl@1.62.0': + '@oxlint/binding-linux-arm64-musl@1.64.0': optional: true - '@oxlint/binding-linux-ppc64-gnu@1.62.0': + '@oxlint/binding-linux-ppc64-gnu@1.64.0': optional: true - '@oxlint/binding-linux-riscv64-gnu@1.62.0': + '@oxlint/binding-linux-riscv64-gnu@1.64.0': optional: true - '@oxlint/binding-linux-riscv64-musl@1.62.0': + '@oxlint/binding-linux-riscv64-musl@1.64.0': optional: true - '@oxlint/binding-linux-s390x-gnu@1.62.0': + '@oxlint/binding-linux-s390x-gnu@1.64.0': optional: true - '@oxlint/binding-linux-x64-gnu@1.62.0': + '@oxlint/binding-linux-x64-gnu@1.64.0': optional: true - '@oxlint/binding-linux-x64-musl@1.62.0': + '@oxlint/binding-linux-x64-musl@1.64.0': optional: true - '@oxlint/binding-openharmony-arm64@1.62.0': + '@oxlint/binding-openharmony-arm64@1.64.0': optional: true - '@oxlint/binding-win32-arm64-msvc@1.62.0': + '@oxlint/binding-win32-arm64-msvc@1.64.0': optional: true - '@oxlint/binding-win32-ia32-msvc@1.62.0': + '@oxlint/binding-win32-ia32-msvc@1.64.0': optional: true - '@oxlint/binding-win32-x64-msvc@1.62.0': + '@oxlint/binding-win32-x64-msvc@1.64.0': optional: true - '@oxlint/plugins@1.62.0': {} + '@oxlint/plugins@1.64.0': {} '@package-json/types@0.0.12': {} @@ -11005,31 +11010,31 @@ snapshots: lodash.isequal: 4.5.0 vali-date: 1.0.0 - oxfmt@0.47.0: + oxfmt@0.49.0: dependencies: tinypool: 2.1.0 optionalDependencies: - '@oxfmt/binding-android-arm-eabi': 0.47.0 - '@oxfmt/binding-android-arm64': 0.47.0 - '@oxfmt/binding-darwin-arm64': 0.47.0 - '@oxfmt/binding-darwin-x64': 0.47.0 - '@oxfmt/binding-freebsd-x64': 0.47.0 - '@oxfmt/binding-linux-arm-gnueabihf': 0.47.0 - '@oxfmt/binding-linux-arm-musleabihf': 0.47.0 - '@oxfmt/binding-linux-arm64-gnu': 0.47.0 - '@oxfmt/binding-linux-arm64-musl': 0.47.0 - '@oxfmt/binding-linux-ppc64-gnu': 0.47.0 - '@oxfmt/binding-linux-riscv64-gnu': 0.47.0 - '@oxfmt/binding-linux-riscv64-musl': 0.47.0 - '@oxfmt/binding-linux-s390x-gnu': 0.47.0 - '@oxfmt/binding-linux-x64-gnu': 0.47.0 - '@oxfmt/binding-linux-x64-musl': 0.47.0 - '@oxfmt/binding-openharmony-arm64': 0.47.0 - '@oxfmt/binding-win32-arm64-msvc': 0.47.0 - '@oxfmt/binding-win32-ia32-msvc': 0.47.0 - '@oxfmt/binding-win32-x64-msvc': 0.47.0 - - oxlint-plugin-eslint@1.62.0: {} + '@oxfmt/binding-android-arm-eabi': 0.49.0 + '@oxfmt/binding-android-arm64': 0.49.0 + '@oxfmt/binding-darwin-arm64': 0.49.0 + '@oxfmt/binding-darwin-x64': 0.49.0 + '@oxfmt/binding-freebsd-x64': 0.49.0 + '@oxfmt/binding-linux-arm-gnueabihf': 0.49.0 + '@oxfmt/binding-linux-arm-musleabihf': 0.49.0 + '@oxfmt/binding-linux-arm64-gnu': 0.49.0 + '@oxfmt/binding-linux-arm64-musl': 0.49.0 + '@oxfmt/binding-linux-ppc64-gnu': 0.49.0 + '@oxfmt/binding-linux-riscv64-gnu': 0.49.0 + '@oxfmt/binding-linux-riscv64-musl': 0.49.0 + '@oxfmt/binding-linux-s390x-gnu': 0.49.0 + '@oxfmt/binding-linux-x64-gnu': 0.49.0 + '@oxfmt/binding-linux-x64-musl': 0.49.0 + '@oxfmt/binding-openharmony-arm64': 0.49.0 + '@oxfmt/binding-win32-arm64-msvc': 0.49.0 + '@oxfmt/binding-win32-ia32-msvc': 0.49.0 + '@oxfmt/binding-win32-x64-msvc': 0.49.0 + + oxlint-plugin-eslint@1.64.0: {} oxlint-tsgolint@0.22.1: optionalDependencies: @@ -11040,27 +11045,27 @@ snapshots: '@oxlint-tsgolint/win32-arm64': 0.22.1 '@oxlint-tsgolint/win32-x64': 0.22.1 - oxlint@1.62.0(oxlint-tsgolint@0.22.1): + oxlint@1.64.0(oxlint-tsgolint@0.22.1): optionalDependencies: - '@oxlint/binding-android-arm-eabi': 1.62.0 - '@oxlint/binding-android-arm64': 1.62.0 - '@oxlint/binding-darwin-arm64': 1.62.0 - '@oxlint/binding-darwin-x64': 1.62.0 - '@oxlint/binding-freebsd-x64': 1.62.0 - '@oxlint/binding-linux-arm-gnueabihf': 1.62.0 - '@oxlint/binding-linux-arm-musleabihf': 1.62.0 - '@oxlint/binding-linux-arm64-gnu': 1.62.0 - '@oxlint/binding-linux-arm64-musl': 1.62.0 - '@oxlint/binding-linux-ppc64-gnu': 1.62.0 - '@oxlint/binding-linux-riscv64-gnu': 1.62.0 - '@oxlint/binding-linux-riscv64-musl': 1.62.0 - '@oxlint/binding-linux-s390x-gnu': 1.62.0 - '@oxlint/binding-linux-x64-gnu': 1.62.0 - '@oxlint/binding-linux-x64-musl': 1.62.0 - '@oxlint/binding-openharmony-arm64': 1.62.0 - '@oxlint/binding-win32-arm64-msvc': 1.62.0 - '@oxlint/binding-win32-ia32-msvc': 1.62.0 - '@oxlint/binding-win32-x64-msvc': 1.62.0 + '@oxlint/binding-android-arm-eabi': 1.64.0 + '@oxlint/binding-android-arm64': 1.64.0 + '@oxlint/binding-darwin-arm64': 1.64.0 + '@oxlint/binding-darwin-x64': 1.64.0 + '@oxlint/binding-freebsd-x64': 1.64.0 + '@oxlint/binding-linux-arm-gnueabihf': 1.64.0 + '@oxlint/binding-linux-arm-musleabihf': 1.64.0 + '@oxlint/binding-linux-arm64-gnu': 1.64.0 + '@oxlint/binding-linux-arm64-musl': 1.64.0 + '@oxlint/binding-linux-ppc64-gnu': 1.64.0 + '@oxlint/binding-linux-riscv64-gnu': 1.64.0 + '@oxlint/binding-linux-riscv64-musl': 1.64.0 + '@oxlint/binding-linux-s390x-gnu': 1.64.0 + '@oxlint/binding-linux-x64-gnu': 1.64.0 + '@oxlint/binding-linux-x64-musl': 1.64.0 + '@oxlint/binding-openharmony-arm64': 1.64.0 + '@oxlint/binding-win32-arm64-msvc': 1.64.0 + '@oxlint/binding-win32-ia32-msvc': 1.64.0 + '@oxlint/binding-win32-x64-msvc': 1.64.0 oxlint-tsgolint: 0.22.1 p-cancelable@4.0.1: {} From e12afa225dae935cc83b6cc96943364d18e60888 Mon Sep 17 00:00:00 2001 From: Tony Date: Wed, 13 May 2026 23:33:37 +0800 Subject: [PATCH 406/439] chore: update permissions to allow additional shell commands in PR review workflow --- .github/workflows/pr-review.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pr-review.yml b/.github/workflows/pr-review.yml index 213d6f9f951c..9befc89a1534 100644 --- a/.github/workflows/pr-review.yml +++ b/.github/workflows/pr-review.yml @@ -89,7 +89,14 @@ jobs: "*": "deny", "gh auth*": "allow", "gh pr*": "allow", - "gh api*": "allow" + "gh api*": "allow", + "grep*": "allow", + "git*": "allow", + "ls*": "allow", + "sed*": "allow", + "cat*": "allow", + "echo*": "allow", + "head*": "allow", }, "webfetch": "deny" } From f689331944596c85082bd05443735da5d74c9a02 Mon Sep 17 00:00:00 2001 From: Tony Date: Thu, 14 May 2026 01:14:15 +0800 Subject: [PATCH 407/439] chore(deps): pin cirrus-actions/rebase and codecov-action --- .github/workflows/issue-command.yml | 2 +- .github/workflows/test.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/issue-command.yml b/.github/workflows/issue-command.yml index f9d005fc5222..87e7edd967d4 100644 --- a/.github/workflows/issue-command.yml +++ b/.github/workflows/issue-command.yml @@ -19,7 +19,7 @@ jobs: with: fetch-depth: 0 - name: Automatic Rebase - uses: cirrus-actions/rebase@1.8 + uses: cirrus-actions/rebase@b87d48154a87a85666003575337e27b8cd65f691 # v1.8 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 6f65ca996fca..16818a4c188d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -53,7 +53,7 @@ jobs: REDIS_URL: redis://localhost:${{ job.services.redis.ports['6379'] }}/ - name: Upload coverage to Codecov if: ${{ matrix.node-version == 'lts/*' }} - uses: codecov/codecov-action@v6 + uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6.0.0 with: token: ${{ secrets.CODECOV_TOKEN }} # not required for public repos as documented, but seems broken From 68acb76471eb6c4529fd73442be60713a3c2c8c6 Mon Sep 17 00:00:00 2001 From: Tony Date: Thu, 14 May 2026 02:52:30 +0800 Subject: [PATCH 408/439] chore: fix pr-review typo --- .github/workflows/pr-review.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr-review.yml b/.github/workflows/pr-review.yml index 9befc89a1534..177e2dd12470 100644 --- a/.github/workflows/pr-review.yml +++ b/.github/workflows/pr-review.yml @@ -96,7 +96,7 @@ jobs: "sed*": "allow", "cat*": "allow", "echo*": "allow", - "head*": "allow", + "head*": "allow" }, "webfetch": "deny" } From 563ea58edc272d55f3628d5210e99520d5464405 Mon Sep 17 00:00:00 2001 From: Tony Date: Thu, 14 May 2026 03:28:42 +0800 Subject: [PATCH 409/439] chore: allow base64 command in PR review workflow permissions gh api returns source in base64 --- .github/workflows/pr-review.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pr-review.yml b/.github/workflows/pr-review.yml index 177e2dd12470..eb1cf4085076 100644 --- a/.github/workflows/pr-review.yml +++ b/.github/workflows/pr-review.yml @@ -90,13 +90,15 @@ jobs: "gh auth*": "allow", "gh pr*": "allow", "gh api*": "allow", + "gh search*": "allow", "grep*": "allow", "git*": "allow", "ls*": "allow", "sed*": "allow", "cat*": "allow", "echo*": "allow", - "head*": "allow" + "head*": "allow", + "base64*": "allow" }, "webfetch": "deny" } From 591dcb85be168b411ae86ae9bf22c145f086c87a Mon Sep 17 00:00:00 2001 From: chansantheman <52438416+chansantheman@users.noreply.github.com> Date: Wed, 13 May 2026 14:54:02 -0500 Subject: [PATCH 410/439] feat(route/gigazine): add English news full-text feed (#21757) * route(gigazine): add English news full-text feed Adds /gigazine/en route that fetches full article content from GIGAZINE's English news listing. Uses sequential fetching with delays to respect Cloudflare rate limits; subsequent loads are served from cache. Co-Authored-By: Claude Sonnet 4.6 * route(gigazine): improve english feed resilience * test(gigazine): add english route coverage * test(gigazine): move route coverage out of route tree * test(api): cover route status cache fallbacks * refactor(gigazine): apply PR review feedback to english route - Use ofetch built-in auto-retry instead of hand-rolled circuit breaker - Remove config.trueUA; let request-rewriter inject random browser UA - Simplify Number.parseInt call (drop redundant ?? '' fallback) - Update tests to match new retry and UA behaviour Co-Authored-By: Claude Sonnet 4.6 * chore: remove unrelated changes and unnecessary test file * refactor(gigazine): simplify selectors and cleanup logic per review --------- Co-authored-by: Claude Sonnet 4.6 --- lib/routes/gigazine/en.ts | 145 +++++++++++++++++++++++++++++++ lib/routes/gigazine/namespace.ts | 6 ++ 2 files changed, 151 insertions(+) create mode 100644 lib/routes/gigazine/en.ts create mode 100644 lib/routes/gigazine/namespace.ts diff --git a/lib/routes/gigazine/en.ts b/lib/routes/gigazine/en.ts new file mode 100644 index 000000000000..bd9127f7a4dc --- /dev/null +++ b/lib/routes/gigazine/en.ts @@ -0,0 +1,145 @@ +import { load } from 'cheerio'; +import pMap from 'p-map'; + +import type { DataItem, Route } from '@/types'; +import { ViewType } from '@/types'; +import cache from '@/utils/cache'; +import ofetch from '@/utils/ofetch'; +import { parseDate } from '@/utils/parse-date'; + +const ROOT_URL = 'https://gigazine.net'; +const LIST_URL = `${ROOT_URL}/gsc_news/en/`; +const DEFAULT_LIMIT = 10; +const DETAIL_FETCH_DELAY = 3000; + +const delay = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms)); +const getRequestOptions = (referer: string) => ({ + headers: { + Referer: referer, + }, +}); +const getAbsoluteUrl = (path: string | undefined) => (path ? new URL(path, ROOT_URL).href : undefined); +const getArticleAuthor = ($: ReturnType) => + $('#article .items p') + .text() + .match(/Posted by\s+(.+)$/)?.[1] + ?.trim(); +const getArticleCategories = ($: ReturnType) => [ + ...new Set( + $('#article .items p a[href*="/gsc_news/en/C"]') + .toArray() + .map((element) => $(element).text().trim()) + .filter(Boolean) + ), +]; +const fetchDescription = async (item: DataItem) => { + const articleHtml = await ofetch(item.link!, getRequestOptions(LIST_URL)); + const $ = load(articleHtml); + const content = $('#article .cntimage'); + + content.find('script').remove(); + content.find('h1.title, time.yeartime').remove(); + + content.find('img').each((_, img) => { + const src = $(img).attr('src') ?? $(img).attr('data-src'); + if (src) { + $(img).attr('src', getAbsoluteUrl(src)); + } + $(img).removeAttr('data-src'); + }); + + content.find('a[href]').each((_, anchor) => { + const href = $(anchor).attr('href'); + if (href) { + $(anchor).attr('href', getAbsoluteUrl(href)); + } + }); + + item.description = content.html()?.trim() ?? ''; + item.image = getAbsoluteUrl($('meta[property="og:image"]').attr('content')) ?? item.image; + item.author = getArticleAuthor($) ?? item.author; + const categories = getArticleCategories($); + item.category = categories.length > 0 ? categories : item.category; + + return item; +}; + +export const route: Route = { + path: '/en', + categories: ['new-media'], + view: ViewType.Articles, + example: '/gigazine/en', + name: 'English News', + url: 'gigazine.net/gsc_news/en/', + maintainers: ['chansantheman'], + features: { + requireConfig: false, + requirePuppeteer: false, + antiCrawler: true, + supportBT: false, + supportPodcast: false, + supportScihub: false, + }, + radar: [ + { + source: ['gigazine.net/gsc_news/en/', 'gigazine.net/gsc_news/en'], + target: '/en', + }, + ], + handler, + description: 'Full-text English articles from GIGAZINE. Detail pages are cached, and the common `limit` parameter controls how many recent entries are fetched.', +}; + +async function handler(ctx) { + const limit = Number.parseInt(ctx.req.query('limit'), 10) || DEFAULT_LIMIT; + + const html = await ofetch(LIST_URL, getRequestOptions(ROOT_URL)); + const $ = load(html); + + const list: DataItem[] = $('.card') + .toArray() + .map((el) => { + const card = $(el); + const anchor = card.find('h2 a'); + const path = anchor.attr('href'); + const link = path ? new URL(path, ROOT_URL).href : undefined; + const title = anchor.find('span').text(); + const pubDate = parseDate(card.find('time').attr('datetime') ?? ''); + const category = card.find('.catab').text().trim(); + const imagePath = card.find('.thumb img').attr('src') ?? card.find('.thumb img').attr('data-src'); + + return { + title, + link, + pubDate, + category: category ? [category] : undefined, + image: imagePath ? new URL(imagePath, ROOT_URL).href : undefined, + }; + }) + .filter((item) => item.title && item.link) + .slice(0, limit); + + const items = await pMap( + list, + async (item, index) => { + try { + return await cache.tryGet(item.link!, async () => { + if (index > 0) { + await delay(DETAIL_FETCH_DELAY); + } + return fetchDescription(item); + }); + } catch { + return item; + } + }, + { concurrency: 1 } + ); + + return { + title: 'GIGAZINE - English News', + link: LIST_URL, + language: 'en', + item: items, + }; +} diff --git a/lib/routes/gigazine/namespace.ts b/lib/routes/gigazine/namespace.ts new file mode 100644 index 000000000000..000b6cd6fdc1 --- /dev/null +++ b/lib/routes/gigazine/namespace.ts @@ -0,0 +1,6 @@ +import type { Namespace } from '@/types'; + +export const namespace: Namespace = { + name: 'GIGAZINE', + url: 'gigazine.net', +}; From 265921b7b8f52ae15f610379fa8ec27d16dab2ff Mon Sep 17 00:00:00 2001 From: DIYgod Date: Thu, 14 May 2026 13:18:46 +0800 Subject: [PATCH 411/439] fix(route): normalize Bilibili mall image URLs --- lib/routes/bilibili/mall-new.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/routes/bilibili/mall-new.ts b/lib/routes/bilibili/mall-new.ts index 1c3a1895fd8e..212da7d91f78 100644 --- a/lib/routes/bilibili/mall-new.ts +++ b/lib/routes/bilibili/mall-new.ts @@ -1,6 +1,8 @@ import type { Route } from '@/types'; import got from '@/utils/got'; +const resolveImageUrl = (imageUrl: string) => (imageUrl.startsWith('//') ? `https:${imageUrl}` : imageUrl); + export const route: Route = { path: '/mall/new/:category?', categories: ['social-media'], @@ -46,7 +48,7 @@ async function handler(ctx) { link: 'https://mall.bilibili.com/newdate.html?noTitleBar=1&page=new&from=new_product&loadingShow=1', item: items.map((item) => ({ title: item.name, - description: `${item.name}
    ${item.priceDesc ? `${item.pricePrefix}${item.priceSymbol}${item.priceDesc[0]}` : ''}

    APP 内打开`, + description: `${item.name}
    ${item.priceDesc ? `${item.pricePrefix}${item.priceSymbol}${item.priceDesc[0]}` : ''}

    APP 内打开`, link: item.itemUrlForH5, })), }; From 30776baef7ff8808d2a9bb1fcb2ec85d3ad1843e Mon Sep 17 00:00:00 2001 From: DIYgod Date: Thu, 14 May 2026 15:47:50 +0800 Subject: [PATCH 412/439] fix: update obsidian community routes --- lib/obsidian-routes.test.ts | 122 +++++++++++++++++++++++++++++++++ lib/routes/obsidian/plugins.ts | 34 ++------- lib/routes/obsidian/themes.ts | 16 +++++ lib/routes/obsidian/utils.ts | 98 ++++++++++++++++++++++++-- vitest.config.ts | 2 +- 5 files changed, 237 insertions(+), 35 deletions(-) create mode 100644 lib/obsidian-routes.test.ts create mode 100644 lib/routes/obsidian/themes.ts diff --git a/lib/obsidian-routes.test.ts b/lib/obsidian-routes.test.ts new file mode 100644 index 000000000000..2332501e7eab --- /dev/null +++ b/lib/obsidian-routes.test.ts @@ -0,0 +1,122 @@ +import { http, HttpResponse } from 'msw'; +import { describe, expect, it } from 'vitest'; + +import { route as pluginsRoute } from './routes/obsidian/plugins'; +import { route as themesRoute } from './routes/obsidian/themes'; + +const searchConfigHtml = ''; + +describe('/obsidian', () => { + it('builds the plugins feed from the community search API sorted by creation time', async () => { + const { default: server } = await import('@/setup.test'); + + server.use( + http.get('https://community.obsidian.md/search', ({ request }) => { + const url = new URL(request.url); + + expect(url.searchParams.get('type')).toBe('plugin'); + expect(url.searchParams.get('sort')).toBe('created'); + + return HttpResponse.html(searchConfigHtml); + }), + http.get('https://community.obsidian.md/api/search/collections/entries/documents/search', ({ request }) => { + const url = new URL(request.url); + + expect(request.headers.get('x-typesense-api-key')).toBe('test-search-key'); + expect(url.searchParams.get('q')).toBe('*'); + expect(url.searchParams.get('query_by')).toBe('name,authors,short_desc'); + expect(url.searchParams.get('filter_by')).toBe('type:=plugin'); + expect(url.searchParams.get('sort_by')).toBe('github_created_at:desc'); + expect(url.searchParams.get('per_page')).toBe('54'); + + return HttpResponse.json({ + hits: [ + { + document: { + authors: ['slaymish'], + downloads: 2, + github_created_at: '2026-05-14T05:08:50Z', + id: '5757', + name: 'Synod', + short_desc: 'Run a council of LLM value agents over your journal.', + slug: 'synod', + tags: ['ai', 'import'], + type: 'plugin', + }, + }, + ], + }); + }) + ); + + const feed = await pluginsRoute.handler(); + + expect(feed.title).toBe('Obsidian Plugins'); + expect(feed.link).toBe('https://community.obsidian.md/search?type=plugin&sort=created'); + expect(feed.item).toHaveLength(1); + expect(feed.item[0]).toMatchObject({ + title: 'Synod', + description: 'Run a council of LLM value agents over your journal.', + link: 'https://community.obsidian.md/plugins/synod', + guid: 'plugin:5757', + author: 'slaymish', + category: ['ai', 'import'], + }); + expect(feed.item[0].pubDate?.toISOString()).toBe('2026-05-14T05:08:50.000Z'); + }); + + it('builds the themes feed from the community search API sorted by creation time', async () => { + const { default: server } = await import('@/setup.test'); + + server.use( + http.get('https://community.obsidian.md/search', ({ request }) => { + const url = new URL(request.url); + + expect(url.searchParams.get('type')).toBe('theme'); + expect(url.searchParams.get('sort')).toBe('created'); + + return HttpResponse.html(searchConfigHtml); + }), + http.get('https://community.obsidian.md/api/search/collections/entries/documents/search', ({ request }) => { + const url = new URL(request.url); + + expect(request.headers.get('x-typesense-api-key')).toBe('test-search-key'); + expect(url.searchParams.get('filter_by')).toBe('type:=theme'); + expect(url.searchParams.get('sort_by')).toBe('github_created_at:desc'); + + return HttpResponse.json({ + hits: [ + { + document: { + authors: ['jshuntley'], + downloads: 0, + github_created_at: '2026-05-14T00:28:26Z', + id: '5749', + name: 'Fjord', + short_desc: 'Fjord colorscheme for Obsidian.', + slug: 'fjord', + tags: [], + type: 'theme', + }, + }, + ], + }); + }) + ); + + const feed = await themesRoute.handler(); + + expect(feed.title).toBe('Obsidian Themes'); + expect(feed.link).toBe('https://community.obsidian.md/search?type=theme&sort=created'); + expect(feed.item).toHaveLength(1); + expect(feed.item[0]).toMatchObject({ + title: 'Fjord', + description: 'Fjord colorscheme for Obsidian.', + link: 'https://community.obsidian.md/themes/fjord', + guid: 'theme:5749', + author: 'jshuntley', + category: [], + }); + expect(feed.item[0].pubDate?.toISOString()).toBe('2026-05-14T00:28:26.000Z'); + }); +}); diff --git a/lib/routes/obsidian/plugins.ts b/lib/routes/obsidian/plugins.ts index a2caa5fdc3db..e8a96abb9c71 100644 --- a/lib/routes/obsidian/plugins.ts +++ b/lib/routes/obsidian/plugins.ts @@ -1,40 +1,16 @@ import type { Route } from '@/types'; -import ofetch from '@/utils/ofetch'; + +import { buildCommunityFeed } from './utils'; export const route: Route = { path: '/plugins', - name: 'Obsidian Plugins', + name: 'Plugins', maintainers: ['DIYgod'], categories: ['program-update'], example: '/obsidian/plugins', handler, }; -async function handler() { - const data = JSON.parse(await ofetch('https://raw.githubusercontent.com/obsidianmd/obsidian-releases/refs/heads/master/community-plugins.json')) as Array<{ - id: string; - name: string; - author: string; - description: string; - repo: string; - }>; - const stats = JSON.parse(await ofetch('https://raw.githubusercontent.com/obsidianmd/obsidian-releases/HEAD/community-plugin-stats.json')) as { - [key: string]: { - downloads: number; - updated: number; - }; - }; - - return { - title: 'Obsidian Plugins', - link: 'https://obsidian.md/plugins', - item: data.map((item) => ({ - title: item.name, - description: `${item.description}

    Downloads: ${stats[item.id].downloads}`, - link: `https://github.com/${item.repo}`, - guid: item.id, - pubDate: new Date(stats[item.id].updated), - author: item.author, - })), - }; +function handler() { + return buildCommunityFeed('plugin'); } diff --git a/lib/routes/obsidian/themes.ts b/lib/routes/obsidian/themes.ts new file mode 100644 index 000000000000..5d3241ae0d84 --- /dev/null +++ b/lib/routes/obsidian/themes.ts @@ -0,0 +1,16 @@ +import type { Route } from '@/types'; + +import { buildCommunityFeed } from './utils'; + +export const route: Route = { + path: '/themes', + name: 'Themes', + maintainers: ['DIYgod'], + categories: ['program-update'], + example: '/obsidian/themes', + handler, +}; + +function handler() { + return buildCommunityFeed('theme'); +} diff --git a/lib/routes/obsidian/utils.ts b/lib/routes/obsidian/utils.ts index 39dfdee831c2..06e1917667c1 100644 --- a/lib/routes/obsidian/utils.ts +++ b/lib/routes/obsidian/utils.ts @@ -1,8 +1,96 @@ -const regex = /([^/]+)\.md$/; +import type { Data, DataItem } from '@/types'; +import ofetch from '@/utils/ofetch'; +import { parseDate } from '@/utils/parse-date'; -const getTitle = (path: string): string => { - const match = path.match(regex); - return match ? match[1] : ''; +type CommunityEntryType = 'plugin' | 'theme'; + +type CommunitySearchConfig = { + apiKey: string; + url: string; +}; + +type CommunitySearchHit = { + document: { + authors?: string[]; + github_created_at?: string; + github_updated_at?: string; + id: string; + latest_release_at?: string; + name: string; + short_desc?: string; + slug: string; + tags?: string[]; + type: CommunityEntryType; + }; }; -export { getTitle }; +type CommunitySearchResponse = { + hits?: CommunitySearchHit[]; +}; + +const hitsPerPage = 54; +const searchPageBaseUrl = 'https://community.obsidian.md/search'; +const titleRegex = /([^/]+)\.md$/; + +export async function buildCommunityFeed(type: CommunityEntryType): Promise { + const pageUrl = getSearchPageUrl(type); + const searchConfig = await getSearchConfig(pageUrl); + const data = await ofetch(`${searchConfig.url}/collections/entries/documents/search`, { + headers: { + 'X-TYPESENSE-API-KEY': searchConfig.apiKey, + }, + query: { + filter_by: `type:=${type}`, + per_page: hitsPerPage, + q: '*', + query_by: 'name,authors,short_desc', + sort_by: 'github_created_at:desc', + }, + }); + + return { + title: `Obsidian ${type === 'plugin' ? 'Plugins' : 'Themes'}`, + link: pageUrl, + item: data.hits?.map(({ document }) => buildItem(document)) ?? [], + }; +} + +export function getTitle(path: string): string { + const match = path.match(titleRegex); + return match ? match[1] : ''; +} + +function getSearchPageUrl(type: CommunityEntryType) { + const url = new URL(searchPageBaseUrl); + url.searchParams.set('type', type); + url.searchParams.set('sort', 'created'); + + return url.toString(); +} + +async function getSearchConfig(pageUrl: string): Promise { + const html = await ofetch(pageUrl); + const match = html.match(/apiKey\\":\\"([^"\\]+)\\"[\s\S]*?url\\":\\"([^"\\]+)\\"/) ?? html.match(/"apiKey":"([^"]+)"[\s\S]*?"url":"([^"]+)"/); + + if (!match) { + throw new Error('Unable to locate Obsidian community search API config'); + } + + return { + apiKey: match[1], + url: match[2].replaceAll(String.raw`\/`, '/'), + }; +} + +function buildItem(document: CommunitySearchHit['document']): DataItem { + return { + title: document.name, + description: document.short_desc, + link: `https://community.obsidian.md/${document.type}s/${document.slug}`, + guid: `${document.type}:${document.id}`, + pubDate: document.github_created_at ? parseDate(document.github_created_at) : undefined, + updated: document.latest_release_at ? parseDate(document.latest_release_at) : document.github_updated_at ? parseDate(document.github_updated_at) : undefined, + author: document.authors?.join(', '), + category: document.tags, + }; +} diff --git a/vitest.config.ts b/vitest.config.ts index 95bc7391ae62..668b66916a3e 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -2,7 +2,7 @@ import tsconfigPaths from 'vite-tsconfig-paths'; import { configDefaults, defineConfig } from 'vitest/config'; export default defineConfig({ - plugins: [tsconfigPaths()], + plugins: [tsconfigPaths({ root: '.' })], test: { watch: false, coverage: { From 4a758a33d7644bcbd9e44f019235089baf348f3e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 May 2026 08:12:47 +0000 Subject: [PATCH 413/439] chore(deps): bump sanitize-html from 2.17.3 to 2.17.4 (#22022) Bumps [sanitize-html](https://github.com/apostrophecms/apostrophe/tree/HEAD/packages/sanitize-html) from 2.17.3 to 2.17.4. - [Changelog](https://github.com/apostrophecms/apostrophe/blob/main/packages/sanitize-html/CHANGELOG.md) - [Commits](https://github.com/apostrophecms/apostrophe/commits/HEAD/packages/sanitize-html) --- updated-dependencies: - dependency-name: sanitize-html dependency-version: 2.17.4 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 37 ++++++++++++++----------------------- 2 files changed, 15 insertions(+), 24 deletions(-) diff --git a/package.json b/package.json index 7d2f60740979..5627a96fd3e8 100644 --- a/package.json +++ b/package.json @@ -121,7 +121,7 @@ "re2js": "2.6.1", "rfc4648": "1.5.4", "rss-parser": "3.13.0", - "sanitize-html": "2.17.3", + "sanitize-html": "2.17.4", "simplecc-wasm": "1.1.1", "socks-proxy-agent": "10.0.0", "source-map": "0.7.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1ca9a4a12673..fda78ff1eff6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -224,8 +224,8 @@ importers: specifier: 3.13.0 version: 3.13.0(patch_hash=afac79a31a3db94c953d49680bc5528468f051957d461e913d2e2dbf5cd22a8d) sanitize-html: - specifier: 2.17.3 - version: 2.17.3 + specifier: 2.17.4 + version: 2.17.4 simplecc-wasm: specifier: 1.1.1 version: 1.1.1 @@ -4627,6 +4627,9 @@ packages: kuler@2.0.0: resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} + launder@1.7.1: + resolution: {integrity: sha512-mU6WRz5EusL9ZZuiZ5SO4Y6C0P9PAUR9iwdb6bzj4KDihm28DiHFw+/yk9DBH4f+Pv1wuzQ4e2jV3oQ7mkIqvw==} + leac@0.6.0: resolution: {integrity: sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==} @@ -4967,11 +4970,6 @@ packages: nan@1.8.4: resolution: {integrity: sha512-609zQ1h3ApgH/94qmbbEklSrjcYYXCHnsWk4MAojq4OUk3tidhDYhPaMasMFKsZPZ96r4eQA1hbR2W4H7/77XA==} - nanoid@3.3.11: - resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - nanoid@3.3.12: resolution: {integrity: sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -5301,10 +5299,6 @@ packages: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} engines: {node: '>=4'} - postcss@8.5.10: - resolution: {integrity: sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ==} - engines: {node: ^10 || ^12 || >=14} - postcss@8.5.14: resolution: {integrity: sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==} engines: {node: ^10 || ^12 || >=14} @@ -5567,8 +5561,8 @@ packages: resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} engines: {node: '>=10'} - sanitize-html@2.17.3: - resolution: {integrity: sha512-Kn4srCAo2+wZyvCNKCSyB2g8RQ8IkX/gQs2uqoSRNu5t9I2qvUyAVvRDiFUVAiX3N3PNuwStY0eNr+ooBHVWEg==} + sanitize-html@2.17.4: + resolution: {integrity: sha512-2HW7v2ol/uAM7sX4hbD8Z59OGWmAPrvjL8E71UWlBcj6m+kcF6ilQBLny+cIgY214QJeJT5tQuxKKqX0SQqjGQ==} sax@1.6.0: resolution: {integrity: sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==} @@ -10317,6 +10311,10 @@ snapshots: kuler@2.0.0: {} + launder@1.7.1: + dependencies: + dayjs: 1.11.20 + leac@0.6.0: {} leac@0.7.0: {} @@ -10860,8 +10858,6 @@ snapshots: nan@1.8.4: optional: true - nanoid@3.3.11: {} - nanoid@3.3.12: {} nanoid@5.1.11: {} @@ -11215,12 +11211,6 @@ snapshots: pluralize@8.0.0: {} - postcss@8.5.10: - dependencies: - nanoid: 3.3.11 - picocolors: 1.1.1 - source-map-js: 1.2.1 - postcss@8.5.14: dependencies: nanoid: 3.3.12 @@ -11588,14 +11578,15 @@ snapshots: safe-stable-stringify@2.5.0: {} - sanitize-html@2.17.3: + sanitize-html@2.17.4: dependencies: deepmerge: 4.3.1 escape-string-regexp: 4.0.0 htmlparser2: 10.1.0 is-plain-object: 5.0.0 + launder: 1.7.1 parse-srcset: 1.0.2 - postcss: 8.5.10 + postcss: 8.5.14 sax@1.6.0: {} From 1d3c802b457e874a2a3e00fae69f16de55af227a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 May 2026 16:38:57 +0800 Subject: [PATCH 414/439] chore(deps): bump re2js from 2.6.1 to 2.8.0 (#22023) Bumps [re2js](https://github.com/le0pard/re2js) from 2.6.1 to 2.8.0. - [Release notes](https://github.com/le0pard/re2js/releases) - [Commits](https://github.com/le0pard/re2js/compare/2.6.1...2.8.0) --- updated-dependencies: - dependency-name: re2js dependency-version: 2.8.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 5627a96fd3e8..88f990374870 100644 --- a/package.json +++ b/package.json @@ -118,7 +118,7 @@ "playwright": "1.59.1", "query-string": "9.3.1", "rate-limiter-flexible": "11.1.0", - "re2js": "2.6.1", + "re2js": "2.8.0", "rfc4648": "1.5.4", "rss-parser": "3.13.0", "sanitize-html": "2.17.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fda78ff1eff6..f220d020211b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -215,8 +215,8 @@ importers: specifier: 11.1.0 version: 11.1.0 re2js: - specifier: 2.6.1 - version: 2.6.1 + specifier: 2.8.0 + version: 2.8.0 rfc4648: specifier: 1.5.4 version: 1.5.4 @@ -5394,8 +5394,8 @@ packages: rate-limiter-flexible@11.1.0: resolution: {integrity: sha512-lyyC0SqKz+dE5JoHZ4JMqdrM3LSZKBxzuAFAyKCYAnmHnPz/Rb6iDquxoL4CMipDXoR0G+QRhOzYWL3JKihbNw==} - re2js@2.6.1: - resolution: {integrity: sha512-E5bG/nXPEcgd4yL+P8yYBd8FZ2z6zC+mj17iOMjqr8EhrWAO9W6GxwpaQaedIPNtm9dbKUbGVDOtj4CbJKJv9Q==} + re2js@2.8.0: + resolution: {integrity: sha512-HCjH9S3vdPyoYqv6++dZGa0RtG9xr7cAV00I0ymNHaKgiYOISsfTOMAj2UAP9miRWP+786AO/a4bIvtzTFOI1Q==} readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} @@ -11328,7 +11328,7 @@ snapshots: rate-limiter-flexible@11.1.0: {} - re2js@2.6.1: {} + re2js@2.8.0: {} readable-stream@3.6.2: dependencies: From 973bd30459a9d3fca329a5bacdb622c67543fea7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 May 2026 17:02:32 +0800 Subject: [PATCH 415/439] chore(deps): bump devenv from `c9ee1d6` to `64d4353` (#22024) Bumps [devenv](https://github.com/cachix/devenv) from `c9ee1d6` to `64d4353`. - [Release notes](https://github.com/cachix/devenv/releases) - [Commits](https://github.com/cachix/devenv/compare/c9ee1d61986a6dde1cf45e738b01395cd5bce470...64d4353a3628c4138c84d8ba10987da2ba27fddd) --- updated-dependencies: - dependency-name: devenv dependency-version: 64d4353a3628c4138c84d8ba10987da2ba27fddd dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 38577c2d7b95..5b4a219ef300 100644 --- a/flake.lock +++ b/flake.lock @@ -164,11 +164,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1778613747, - "narHash": "sha256-+FdF9iIvBQIC391Xkoso3IFIl/Iqp2NolSvCOgEIm78=", + "lastModified": 1778705971, + "narHash": "sha256-n0LjnKBAjJ5/mgNzOCeVvAeHUrNMUZ3fBQx/UDCkHtQ=", "owner": "cachix", "repo": "devenv", - "rev": "c9ee1d61986a6dde1cf45e738b01395cd5bce470", + "rev": "64d4353a3628c4138c84d8ba10987da2ba27fddd", "type": "github" }, "original": { From 906449b8272cbfb2f17a224d741641c4693edf8a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 14 May 2026 09:04:27 +0000 Subject: [PATCH 416/439] chore(nix): update dependencies hash to sha256-NiD7cGU9PCM5DOAwBX18h8Hrrs6SkJyqMinwrqJDekM= --- flake.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flake.nix b/flake.nix index 912a267b9696..001736f26d14 100644 --- a/flake.nix +++ b/flake.nix @@ -16,7 +16,7 @@ deps = pkgs.fetchPnpmDeps { pname = "rsshub"; src = ./.; - hash = "sha256-PSD9aILJ5Sz04WZDZHhe1fj8cXghsi4ecNYS7uovqow="; + hash = "sha256-NiD7cGU9PCM5DOAwBX18h8Hrrs6SkJyqMinwrqJDekM="; fetcherVersion = 2; }; in From 0f164eb3489cac34d5ccfd709644d1fce868f1f6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 May 2026 17:05:30 +0800 Subject: [PATCH 417/439] chore(deps): bump the opentelemetry group with 2 updates (#22021) Bumps the opentelemetry group with 2 updates: [@opentelemetry/exporter-prometheus](https://github.com/open-telemetry/opentelemetry-js) and [@opentelemetry/exporter-trace-otlp-http](https://github.com/open-telemetry/opentelemetry-js). Updates `@opentelemetry/exporter-prometheus` from 0.217.0 to 0.218.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.217.0...experimental/v0.218.0) Updates `@opentelemetry/exporter-trace-otlp-http` from 0.217.0 to 0.218.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.217.0...experimental/v0.218.0) --- updated-dependencies: - dependency-name: "@opentelemetry/exporter-prometheus" dependency-version: 0.218.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: opentelemetry - dependency-name: "@opentelemetry/exporter-trace-otlp-http" dependency-version: 0.218.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: opentelemetry ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 4 +-- pnpm-lock.yaml | 86 +++++++++++++++++++------------------------------- 2 files changed, 35 insertions(+), 55 deletions(-) diff --git a/package.json b/package.json index 88f990374870..e0d552ebd917 100644 --- a/package.json +++ b/package.json @@ -66,8 +66,8 @@ "@jocmp/mercury-parser": "3.0.8", "@notionhq/client": "5.21.0", "@opentelemetry/api": "1.9.1", - "@opentelemetry/exporter-prometheus": "0.217.0", - "@opentelemetry/exporter-trace-otlp-http": "0.217.0", + "@opentelemetry/exporter-prometheus": "0.218.0", + "@opentelemetry/exporter-trace-otlp-http": "0.218.0", "@opentelemetry/resources": "2.7.1", "@opentelemetry/sdk-metrics": "2.7.1", "@opentelemetry/sdk-trace-base": "2.7.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f220d020211b..ff7b1a1e9bdc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -59,11 +59,11 @@ importers: specifier: 1.9.1 version: 1.9.1 '@opentelemetry/exporter-prometheus': - specifier: 0.217.0 - version: 0.217.0(@opentelemetry/api@1.9.1) + specifier: 0.218.0 + version: 0.218.0(@opentelemetry/api@1.9.1) '@opentelemetry/exporter-trace-otlp-http': - specifier: 0.217.0 - version: 0.217.0(@opentelemetry/api@1.9.1) + specifier: 0.218.0 + version: 0.218.0(@opentelemetry/api@1.9.1) '@opentelemetry/resources': specifier: 2.7.1 version: 2.7.1(@opentelemetry/api@1.9.1) @@ -84,7 +84,7 @@ importers: version: 0.10.14(hono@4.12.18) '@sentry/node': specifier: 10.53.1 - version: 10.53.1(@opentelemetry/exporter-trace-otlp-http@0.217.0(@opentelemetry/api@1.9.1)) + version: 10.53.1(@opentelemetry/exporter-trace-otlp-http@0.218.0(@opentelemetry/api@1.9.1)) aes-js: specifier: 3.1.2 version: 3.1.2 @@ -1705,8 +1705,8 @@ packages: resolution: {integrity: sha512-40lSJeqYO8Uz2Yj7u94/SJWE/wONa7rmMKjI1ZcIjgf3MHNHv1OZUCrCETGuaRF62d5pQD1wKIW+L4lmSMTzZA==} engines: {node: '>=8.0.0'} - '@opentelemetry/api-logs@0.217.0': - resolution: {integrity: sha512-Cdq0jW2lknrNfrAm92MyEAvpe2cRsKjdnQLHUL6xRA4IVUnsWx6P65E7NcUO0Y+L4w1Aee5iV8FvjSwd+lrs9A==} + '@opentelemetry/api-logs@0.218.0': + resolution: {integrity: sha512-fmEWp5kXlGEc3i/lR698Hz41DfGyN4Tbe4g7L1AxSc7fF8Xeh/FQ9Quqpa9dVA413Q1Ad43QOLzU4JoXgbFPWw==} engines: {node: '>=8.0.0'} '@opentelemetry/api@1.9.1': @@ -1725,14 +1725,14 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/exporter-prometheus@0.217.0': - resolution: {integrity: sha512-U9MCXxJu0sBCh5aEkylYRR4xVIL8D1CW6dGwvYXbfFr0qveSorfD0XJchCAWoW6QfAAIcY/yxjf4Dj8OgkHBPw==} + '@opentelemetry/exporter-prometheus@0.218.0': + resolution: {integrity: sha512-RT5oEyu1kddZJ1vt7/BUo5wV+P7hpNAESsR3dUd3+8deHuX7gWNoCOZn+SfDT+hJHlIJ5h/AxiCLXIrutswDJg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/exporter-trace-otlp-http@0.217.0': - resolution: {integrity: sha512-38YQoqtYjglz2GV94LGUN/djLvxtvGIQO68o6qAFPVshjmwSdX1F2i0c7vn3lEl1L5B/YqjB/bgKXaVx7KO+RQ==} + '@opentelemetry/exporter-trace-otlp-http@0.218.0': + resolution: {integrity: sha512-8dqezsmPhtKitIK/eTipZhYl9EX2/gNQ5zUMhaz3uxEURwfkNf8IPvo6yNfrzbxdtpAOybS/+h7wmIWYqFSpiw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -1863,14 +1863,14 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/otlp-exporter-base@0.217.0': - resolution: {integrity: sha512-eYfqnB3UhKu/5frhd1R6+FprKygbhkomuaceMXDyzxbfXB9tKgZOVmjaJ02CkLA6Tdzumxl+e2H+vo2a8jiMPQ==} + '@opentelemetry/otlp-exporter-base@0.218.0': + resolution: {integrity: sha512-ZwqpkNL5W7RyGJPDZ9g06DvKp8KFTWPJPN12anpMQYSKpTSU0z3EIZuPq9vPGpS8siFyOqDYDAuCwlNO9FqgbA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/otlp-transformer@0.217.0': - resolution: {integrity: sha512-MKK8UHKFUOGAvbZRWh90MhwHG+Fxm6OROBdjKPCF+HQobjuJ/Kuf8Chs8CR45X1aqotxrMj7OxTdsXe8sXuGVA==} + '@opentelemetry/otlp-transformer@0.218.0': + resolution: {integrity: sha512-CFaKH87WAzjuJ4awowTTLzUvMfaRfiOFG5+qm5S5ncyalRtN4ecQ+YmuANJSCrVPuvZFEkUgKhBPBndxi3rHsQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -1881,8 +1881,8 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' - '@opentelemetry/sdk-logs@0.217.0': - resolution: {integrity: sha512-BB+PcHItcZDL63dPMW+mJvwN9rk37wuIDjRxbVlg6pPDvDR/7GL7UJHbGsllgoggOoTimsKgENaWPoGch/oE1A==} + '@opentelemetry/sdk-logs@0.218.0': + resolution: {integrity: sha512-QvnNdugatFTVCJXH0Mcu7GOOJSylA9j127kIezOE4YwTI4YbowRons2K4WZTv5FMS8T4q9P0NdaRHdkSmeAIag==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.4.0 <1.10.0' @@ -5337,10 +5337,6 @@ packages: resolution: {integrity: sha512-dvpCIeLPbXZS/Ete7yLaO7RenOdken2NHKykBXbsaGxZT0UTltcarBciw+A78SRQs9iMAAVpsYA+l8b1hTePIA==} engines: {node: '>=12.0.0'} - protobufjs@8.0.1: - resolution: {integrity: sha512-NWWCCscLjs+cOKF/s/XVNFRW7Yih0fdH+9brffR5NZCy8k42yRdl5KlWKMVXuI1vfCoy4o1z80XR/W/QUb3V3w==} - engines: {node: '>=12.0.0'} - psl@1.15.0: resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} @@ -7423,7 +7419,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/api-logs@0.217.0': + '@opentelemetry/api-logs@0.218.0': dependencies: '@opentelemetry/api': 1.9.1 @@ -7439,7 +7435,7 @@ snapshots: '@opentelemetry/api': 1.9.1 '@opentelemetry/semantic-conventions': 1.41.1 - '@opentelemetry/exporter-prometheus@0.217.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/exporter-prometheus@0.218.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 '@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.1) @@ -7447,12 +7443,12 @@ snapshots: '@opentelemetry/sdk-metrics': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.41.1 - '@opentelemetry/exporter-trace-otlp-http@0.217.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/exporter-trace-otlp-http@0.218.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 '@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.1) - '@opentelemetry/otlp-exporter-base': 0.217.0(@opentelemetry/api@1.9.1) - '@opentelemetry/otlp-transformer': 0.217.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-exporter-base': 0.218.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.218.0(@opentelemetry/api@1.9.1) '@opentelemetry/resources': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/sdk-trace-base': 2.7.1(@opentelemetry/api@1.9.1) @@ -7638,22 +7634,21 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/otlp-exporter-base@0.217.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/otlp-exporter-base@0.218.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 '@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.1) - '@opentelemetry/otlp-transformer': 0.217.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.218.0(@opentelemetry/api@1.9.1) - '@opentelemetry/otlp-transformer@0.217.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/otlp-transformer@0.218.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/api-logs': 0.217.0 + '@opentelemetry/api-logs': 0.218.0 '@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/resources': 2.7.1(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-logs': 0.217.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-logs': 0.218.0(@opentelemetry/api@1.9.1) '@opentelemetry/sdk-metrics': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/sdk-trace-base': 2.7.1(@opentelemetry/api@1.9.1) - protobufjs: 8.0.1 '@opentelemetry/resources@2.7.1(@opentelemetry/api@1.9.1)': dependencies: @@ -7661,10 +7656,10 @@ snapshots: '@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.41.1 - '@opentelemetry/sdk-logs@0.217.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/sdk-logs@0.218.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/api-logs': 0.217.0 + '@opentelemetry/api-logs': 0.218.0 '@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/resources': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.41.1 @@ -8168,7 +8163,7 @@ snapshots: '@sentry/core@10.53.1': {} - '@sentry/node-core@10.53.1(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/exporter-trace-otlp-http@0.217.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.41.1)': + '@sentry/node-core@10.53.1(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/exporter-trace-otlp-http@0.218.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.41.1)': dependencies: '@sentry/core': 10.53.1 '@sentry/opentelemetry': 10.53.1(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.41.1) @@ -8176,12 +8171,12 @@ snapshots: optionalDependencies: '@opentelemetry/api': 1.9.1 '@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.1) - '@opentelemetry/exporter-trace-otlp-http': 0.217.0(@opentelemetry/api@1.9.1) + '@opentelemetry/exporter-trace-otlp-http': 0.218.0(@opentelemetry/api@1.9.1) '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) '@opentelemetry/sdk-trace-base': 2.7.1(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.41.1 - '@sentry/node@10.53.1(@opentelemetry/exporter-trace-otlp-http@0.217.0(@opentelemetry/api@1.9.1))': + '@sentry/node@10.53.1(@opentelemetry/exporter-trace-otlp-http@0.218.0(@opentelemetry/api@1.9.1))': dependencies: '@fastify/otel': 0.18.0(@opentelemetry/api@1.9.1) '@opentelemetry/api': 1.9.1 @@ -8209,7 +8204,7 @@ snapshots: '@opentelemetry/semantic-conventions': 1.41.1 '@prisma/instrumentation': 7.6.0(@opentelemetry/api@1.9.1) '@sentry/core': 10.53.1 - '@sentry/node-core': 10.53.1(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/exporter-trace-otlp-http@0.217.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.41.1) + '@sentry/node-core': 10.53.1(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/exporter-trace-otlp-http@0.218.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.41.1) '@sentry/opentelemetry': 10.53.1(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.1(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.41.1) import-in-the-middle: 3.0.1 transitivePeerDependencies: @@ -11273,21 +11268,6 @@ snapshots: '@types/node': 25.7.0 long: 5.3.2 - protobufjs@8.0.1: - dependencies: - '@protobufjs/aspromise': 1.1.2 - '@protobufjs/base64': 1.1.2 - '@protobufjs/codegen': 2.0.5 - '@protobufjs/eventemitter': 1.1.0 - '@protobufjs/fetch': 1.1.0 - '@protobufjs/float': 1.0.2 - '@protobufjs/inquire': 1.1.1 - '@protobufjs/path': 1.1.2 - '@protobufjs/pool': 1.1.0 - '@protobufjs/utf8': 1.1.1 - '@types/node': 25.7.0 - long: 5.3.2 - psl@1.15.0: dependencies: punycode: 2.3.1 From 5cb99133d94ab595945890ea5b4e56a55d3195da Mon Sep 17 00:00:00 2001 From: Jiamin Date: Thu, 14 May 2026 22:25:36 +0800 Subject: [PATCH 418/439] feat: add Shanghai Museum exhibition route (#21890) * feat: add Shanghai Museum exhibition route * Update shanghaimuseum.ts * feat: add Shanghai Museum exhibition route * Update shanghaimuseum.ts * Update shanghaimuseum.ts * docs: add namespace for shanghaimuseum * feat(route): rename to offline-exhibit and update metadata * fix: update with fixed output and fix errors * fix: fix errors * fix: add exhibitiontype * fix: refactor to JSX * feat: update shanghai museum route with type param * fix: update offline-exhibit to use path params * fix: exhibitItem from ExhibitItem * fix: update interface --- lib/routes/shanghaimuseum/namespace.ts | 10 ++ lib/routes/shanghaimuseum/offline-exhibit.tsx | 142 ++++++++++++++++++ 2 files changed, 152 insertions(+) create mode 100644 lib/routes/shanghaimuseum/namespace.ts create mode 100644 lib/routes/shanghaimuseum/offline-exhibit.tsx diff --git a/lib/routes/shanghaimuseum/namespace.ts b/lib/routes/shanghaimuseum/namespace.ts new file mode 100644 index 000000000000..ea08ac8909de --- /dev/null +++ b/lib/routes/shanghaimuseum/namespace.ts @@ -0,0 +1,10 @@ +import type { Namespace } from '@/types'; + +export const namespace: Namespace = { + name: 'Shanghai Museum', + url: 'www.shanghaimuseum.net', + + zh: { + name: '上海博物馆', + }, +}; \ No newline at end of file diff --git a/lib/routes/shanghaimuseum/offline-exhibit.tsx b/lib/routes/shanghaimuseum/offline-exhibit.tsx new file mode 100644 index 000000000000..6e784466de61 --- /dev/null +++ b/lib/routes/shanghaimuseum/offline-exhibit.tsx @@ -0,0 +1,142 @@ +import { renderToString } from 'hono/jsx/dom/server'; + +import type { Route } from '@/types'; +import got from '@/utils/got'; +import { parseDate } from '@/utils/parse-date'; + +import { namespace } from './namespace'; + +interface ExhibitItem { + code: string; + exhibitDateRange?: string; + exhibitPlace?: string; + issueTime: string; + name: string; + picPath?: string; +} + +export const route: Route = { + path: '/display/offline-exhibit/:type?', + categories: ['travel'], + example: '/shanghaimuseum/display/offline-exhibit/PRESENT', + parameters: { + type: 'Exhibition type, supported values: PRESENT (当期展览) | PAST (往期展览). Default: All exhibitions (both PRESENT and PAST).', + }, + // Use SHM English version channel name + name: 'Special Exhibitions', + maintainers: ['magazian'], + radar: [ + { + source: ['www.shanghaimuseum.net/mu/frontend/pg/display/offline-exhibit'], + target: '/display/offline-exhibit', + }, + ], + handler: async (ctx) => { + const type = ctx.req.param('type')?.toUpperCase(); + + const baseUrl = 'https://www.shanghaimuseum.net'; + const apiUrl = `${baseUrl}/mu/frontend/pg/display/search-exhibit`; + + const fetchExhibits = async (status: string, limit = 20): Promise => { + const response = await got.post(apiUrl, { + json: { + limit, + page: 1, + params: { + exhibitTypeCode: 'OFFLINE_EXHIBITION', + langCode: 'CHINESE', + offlineExhibitionType: status, + }, + }, + }); + return (response.data?.data as ExhibitItem[]) || []; + }; + + let rawItems: ExhibitItem[] = []; + let titleTag = ''; + + if (type === 'PAST' || type === 'PRESENT') { + // if user specified the type with past or present + rawItems = await fetchExhibits(type, 50); + titleTag = type === 'PAST' ? '往期展览' : '当期展览'; + } else { + // default to fetch both present and past exhibitions + const [presentItems, pastItems] = await Promise.all([fetchExhibits('PRESENT', 50), fetchExhibits('PAST', 20)]); + rawItems = [...presentItems, ...pastItems]; + titleTag = '当期展览&往期展览'; + } + + const museumName = namespace.zh?.name || namespace.name; + + const items = rawItems.map((item) => { + const title = item.name; + const itemLink = `${baseUrl}/mu/frontend/pg/article/id/${item.code}`; + const imgUrl = item.picPath ? `${baseUrl}/${item.picPath}` : ''; + const location = item.exhibitPlace || '上海博物馆'; + const pubDate = parseDate(item.issueTime); + + const fullDuration = item.exhibitDateRange || ''; + const [startDate, endDate] = fullDuration.includes(' - ') ? fullDuration.split(' - ').map((s) => s.trim()) : [fullDuration, '']; + + const description = renderToString( +
    + {imgUrl && ( + <> + +
    + + )} +

    + 地点: + {location} +

    +

    + 开展: + {startDate ?? '未定/常设'} +

    +

    + 闭展: + {endDate ?? '未定/常设'} +

    + + {fullDuration && ( +

    + + 原始展期: + {fullDuration.split('\n').map((line, i) => ( + + {line} +
    +
    + ))} +
    +

    + )} +
    + ); + + return { + title, + link: itemLink, + pubDate, + description, + // For further .ics file processing + _extra: { + museumName, + title, + location, + startDate, // format: YYYY-MM-DD or '未定/常设' + endDate, // format: YYYY-MM-DD or '未定/常设' + itemLink, + }, + }; + }); + + return { + title: `${museumName} - 特别展览 - ${titleTag}`, + link: `${baseUrl}/mu/frontend/pg/display/offline-exhibit`, + language: 'zh-CN', + item: items, + }; + }, +}; From 9d3790f73cc0a0131fe38378157f5e464d2e08ee Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 14 May 2026 14:26:50 +0000 Subject: [PATCH 419/439] style: auto format --- lib/routes/shanghaimuseum/namespace.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/routes/shanghaimuseum/namespace.ts b/lib/routes/shanghaimuseum/namespace.ts index ea08ac8909de..f9db199a932b 100644 --- a/lib/routes/shanghaimuseum/namespace.ts +++ b/lib/routes/shanghaimuseum/namespace.ts @@ -7,4 +7,4 @@ export const namespace: Namespace = { zh: { name: '上海博物馆', }, -}; \ No newline at end of file +}; From 30cc9e6a75bf34659dbc96a3117ddb23732453b1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 15 May 2026 18:12:22 +0800 Subject: [PATCH 420/439] chore(deps): bump devenv from `64d4353` to `e44d88a` (#22026) Bumps [devenv](https://github.com/cachix/devenv) from `64d4353` to `e44d88a`. - [Release notes](https://github.com/cachix/devenv/releases) - [Commits](https://github.com/cachix/devenv/compare/64d4353a3628c4138c84d8ba10987da2ba27fddd...e44d88a683bf945c72445babd85f1d2e4e933409) --- updated-dependencies: - dependency-name: devenv dependency-version: e44d88a683bf945c72445babd85f1d2e4e933409 dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 5b4a219ef300..7bff68eb7d5a 100644 --- a/flake.lock +++ b/flake.lock @@ -164,11 +164,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1778705971, - "narHash": "sha256-n0LjnKBAjJ5/mgNzOCeVvAeHUrNMUZ3fBQx/UDCkHtQ=", + "lastModified": 1778814374, + "narHash": "sha256-gZIaq9to5brzEsnlHE2D0FRN4ixZJEBd2ZV/3WNlt4Q=", "owner": "cachix", "repo": "devenv", - "rev": "64d4353a3628c4138c84d8ba10987da2ba27fddd", + "rev": "e44d88a683bf945c72445babd85f1d2e4e933409", "type": "github" }, "original": { From 77365011c44d8226ca70296b8a2f0cb56640e988 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 15 May 2026 10:14:16 +0000 Subject: [PATCH 421/439] chore(nix): update dependencies hash to sha256-7fqPDVqQglOp665prmFWcxqhUPM6BDk/DjAVIvBSFTQ= --- flake.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flake.nix b/flake.nix index 001736f26d14..8122f42ac7c8 100644 --- a/flake.nix +++ b/flake.nix @@ -16,7 +16,7 @@ deps = pkgs.fetchPnpmDeps { pname = "rsshub"; src = ./.; - hash = "sha256-NiD7cGU9PCM5DOAwBX18h8Hrrs6SkJyqMinwrqJDekM="; + hash = "sha256-7fqPDVqQglOp665prmFWcxqhUPM6BDk/DjAVIvBSFTQ="; fetcherVersion = 2; }; in From b8925632d05a2a71b22871f03beae6f443d1cdff Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 16 May 2026 08:59:37 +0000 Subject: [PATCH 422/439] chore(deps): bump @scalar/hono-api-reference from 0.10.14 to 0.10.16 (#22033) Bumps [@scalar/hono-api-reference](https://github.com/scalar/scalar/tree/HEAD/integrations/hono) from 0.10.14 to 0.10.16. - [Release notes](https://github.com/scalar/scalar/releases) - [Changelog](https://github.com/scalar/scalar/blob/main/integrations/hono/CHANGELOG.md) - [Commits](https://github.com/scalar/scalar/commits/HEAD/integrations/hono) --- updated-dependencies: - dependency-name: "@scalar/hono-api-reference" dependency-version: 0.10.16 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 268 ++++++++++++++++++++++++++----------------------- 2 files changed, 143 insertions(+), 127 deletions(-) diff --git a/package.json b/package.json index e0d552ebd917..a548e059a252 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,7 @@ "@opentelemetry/sdk-trace-base": "2.7.1", "@opentelemetry/semantic-conventions": "1.41.1", "@rss3/sdk": "0.0.25", - "@scalar/hono-api-reference": "0.10.14", + "@scalar/hono-api-reference": "0.10.16", "@sentry/node": "10.53.1", "aes-js": "3.1.2", "cheerio": "1.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ff7b1a1e9bdc..cb4cf392ae08 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -80,8 +80,8 @@ importers: specifier: 0.0.25 version: 0.0.25 '@scalar/hono-api-reference': - specifier: 0.10.14 - version: 0.10.14(hono@4.12.18) + specifier: 0.10.16 + version: 0.10.16(hono@4.12.18) '@sentry/node': specifier: 10.53.1 version: 10.53.1(@opentelemetry/exporter-trace-otlp-http@0.218.0(@opentelemetry/api@1.9.1)) @@ -367,7 +367,7 @@ importers: version: 8.59.3(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3) '@vercel/nft': specifier: 1.5.0 - version: 1.5.0(rollup@4.60.3) + version: 1.5.0(rollup@4.60.4) '@vitest/coverage-v8': specifier: 4.1.6 version: 4.1.6(vitest@4.1.6) @@ -2495,141 +2495,141 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.60.3': - resolution: {integrity: sha512-x35CNW/ANXG3hE/EZpRU8MXX1JDN86hBb2wMGAtltkz7pc6cxgjpy1OMMfDosOQ+2hWqIkag/fGok1Yady9nGw==} + '@rollup/rollup-android-arm-eabi@4.60.4': + resolution: {integrity: sha512-F5QXMSiFebS9hKZj02XhWLLnRpJ3B3AROP0tWbFBSj+6kCbg5m9j5JoHKd4mmSVy5mS/IMQloYgYxCuJC0fxEQ==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.60.3': - resolution: {integrity: sha512-xw3xtkDApIOGayehp2+Rz4zimfkaX65r4t47iy+ymQB2G4iJCBBfj0ogVg5jpvjpn8UWn/+q9tprxleYeNp3Hw==} + '@rollup/rollup-android-arm64@4.60.4': + resolution: {integrity: sha512-GxxTKApUpzRhof7poWvCJHRF51C67u1R7D6DiluBE8wKU1u5GWE8t+v81JvJYtbawoBFX1hLv5Ei4eVjkWokaw==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.60.3': - resolution: {integrity: sha512-vo6Y5Qfpx7/5EaamIwi0WqW2+zfiusVihKatLvtN1VFVy3D13uERk/6gZLU1UiHRL6fDXqj/ELIeVRGnvcTE1g==} + '@rollup/rollup-darwin-arm64@4.60.4': + resolution: {integrity: sha512-tua0TaJxMOB1R0V0RS1jFZ/RpURFDJIOR2A6jWwQeawuFyS4gBW+rntLRaQd0EQ4bd6Vp44Z2rXW+YYDBsj6IA==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.60.3': - resolution: {integrity: sha512-D+0QGcZhBzTN82weOnsSlY7V7+RMmPuF1CkbxyMAGE8+ZHeUjyb76ZiWmBlCu//AQQONvxcqRbwZTajZKqjuOw==} + '@rollup/rollup-darwin-x64@4.60.4': + resolution: {integrity: sha512-CSKq7MsP+5PFIcydhAiR1K0UhEI1A2jWXVKHPCBZ151yOutENwvnPocgVHkivu2kviURtCEB6zUQw0vs8RrhMg==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.60.3': - resolution: {integrity: sha512-6HnvHCT7fDyj6R0Ph7A6x8dQS/S38MClRWeDLqc0MdfWkxjiu1HSDYrdPhqSILzjTIC/pnXbbJbo+ft+gy/9hQ==} + '@rollup/rollup-freebsd-arm64@4.60.4': + resolution: {integrity: sha512-+O8OkVdyvXMtJEciu2wS/pzm1IxntEEQx3z5TAVy4l32G0etZn+RsA48ARRrFm6Ri8fvqPQfgrvNxSjKAbnd3g==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.60.3': - resolution: {integrity: sha512-KHLgC3WKlUYW3ShFKnnosZDOJ0xjg9zp7au3sIm2bs/tGBeC2ipmvRh/N7JKi0t9Ue20C0dpEshi8WUubg+cnA==} + '@rollup/rollup-freebsd-x64@4.60.4': + resolution: {integrity: sha512-Iw3oMskH3AfNuhU0MSN7vNbdi4me/NiYo2azqPz/Le16zHSa+3RRmliCMWWQmh4lcndccU40xcJuTYJZxNo/lw==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.60.3': - resolution: {integrity: sha512-DV6fJoxEYWJOvaZIsok7KrYl0tPvga5OZ2yvKHNNYyk/2roMLqQAbGhr78EQ5YhHpnhLKJD3S1WFusAkmUuV5g==} + '@rollup/rollup-linux-arm-gnueabihf@4.60.4': + resolution: {integrity: sha512-EIPRXTVQpHyF8WOo219AD2yEltPehLTcTMz2fn6JsatLYSzQf00hj3rulF+yauOlF9/FtM2WpkT/hJh/KJFGhA==} cpu: [arm] os: [linux] libc: [glibc] - '@rollup/rollup-linux-arm-musleabihf@4.60.3': - resolution: {integrity: sha512-mQKoJAzvuOs6F+TZybQO4GOTSMUu7v0WdxEk24krQ/uUxXoPTtHjuaUuPmFhtBcM4K0ons8nrE3JyhTuCFtT/w==} + '@rollup/rollup-linux-arm-musleabihf@4.60.4': + resolution: {integrity: sha512-J3Yh9PzzF1Ovah2At+lHiGQdsYgArxBbXv/zHfSyaiFQEqvNv7DcW98pCrmdjCZBrqBiKrKKe2V+aaSGWuBe/w==} cpu: [arm] os: [linux] libc: [musl] - '@rollup/rollup-linux-arm64-gnu@4.60.3': - resolution: {integrity: sha512-Whjj2qoiJ6+OOJMGptTYazaJvjOJm+iKHpXQM1P3LzGjt7Ff++Tp7nH4N8J/BUA7R9IHfDyx4DJIflifwnbmIA==} + '@rollup/rollup-linux-arm64-gnu@4.60.4': + resolution: {integrity: sha512-BFDEZMYfUvLn37ONE1yMBojPxnMlTFsdyNoqncT0qFq1mAfllL+ATMMJd8TeuVMiX84s1KbcxcZbXInmcO2mRg==} cpu: [arm64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-arm64-musl@4.60.3': - resolution: {integrity: sha512-4YTNHKqGng5+yiZt3mg77nmyuCfmNfX4fPmyUapBcIk+BdwSwmCWGXOUxhXbBEkFHtoN5boLj/5NON+u5QC9tg==} + '@rollup/rollup-linux-arm64-musl@4.60.4': + resolution: {integrity: sha512-pc9EYOSlOgdQ2uPl1o9PF6/kLSgaUosia7gOuS8mB69IxJvlclko1MECXysjs5ryez1/5zjYqx3+xYU0TU6R1A==} cpu: [arm64] os: [linux] libc: [musl] - '@rollup/rollup-linux-loong64-gnu@4.60.3': - resolution: {integrity: sha512-SU3kNlhkpI4UqlUc2VXPGK9o886ZsSeGfMAX2ba2b8DKmMXq4AL7KUrkSWVbb7koVqx41Yczx6dx5PNargIrEA==} + '@rollup/rollup-linux-loong64-gnu@4.60.4': + resolution: {integrity: sha512-NxnomyxYerDh5n4iLrNa+sH+Z+U4BMEE46V2PgQ/hoB909i8gV1M5wPojWg9fk1jWpO3IQnOs20K4wyZuFLEFQ==} cpu: [loong64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-loong64-musl@4.60.3': - resolution: {integrity: sha512-6lDLl5h4TXpB1mTf2rQWnAk/LcXrx9vBfu/DT5TIPhvMhRWaZ5MxkIc8u4lJAmBo6klTe1ywXIUHFjylW505sg==} + '@rollup/rollup-linux-loong64-musl@4.60.4': + resolution: {integrity: sha512-nbJnQ8a3z1mtmrwImCYhc6BGpThAyYVRQxw9uKSKG4wR6aAYno9sVjJ0zaZcW9BPJX1GbrDPf+SvdWjgTuDmnw==} cpu: [loong64] os: [linux] libc: [musl] - '@rollup/rollup-linux-ppc64-gnu@4.60.3': - resolution: {integrity: sha512-BMo8bOw8evlup/8G+cj5xWtPyp93xPdyoSN16Zy90Q2QZ0ZYRhCt6ZJSwbrRzG9HApFabjwj2p25TUPDWrhzqQ==} + '@rollup/rollup-linux-ppc64-gnu@4.60.4': + resolution: {integrity: sha512-2EU6acNrQLd8tYvo/LXW535wupT3m6fo7HKo6lr7ktQoItxTyOL1ZCR/GfGCuXl2vR+zmfI6eRXkSemafv+iVg==} cpu: [ppc64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-ppc64-musl@4.60.3': - resolution: {integrity: sha512-E0L8X1dZN1/Rph+5VPF6Xj2G7JJvMACVXtamTJIDrVI44Y3K+G8gQaMEAavbqCGTa16InptiVrX6eM6pmJ+7qA==} + '@rollup/rollup-linux-ppc64-musl@4.60.4': + resolution: {integrity: sha512-WeBtoMuaMxiiIrO2IYP3xs6GMWkJP2C0EoT8beTLkUPmzV1i/UcOSVw1d5r9KBODtHKilG5yFxsGRnBbK3wJ4A==} cpu: [ppc64] os: [linux] libc: [musl] - '@rollup/rollup-linux-riscv64-gnu@4.60.3': - resolution: {integrity: sha512-oZJ/WHaVfHUiRAtmTAeo3DcevNsVvH8mbvodjZy7D5QKvCefO371SiKRpxoDcCxB3PTRTLayWBkvmDQKTcX/sw==} + '@rollup/rollup-linux-riscv64-gnu@4.60.4': + resolution: {integrity: sha512-FJHFfqpKUI3A10WrWKiFbBZ7yVbGT4q4B5o1qKFFojqpaYoh9LrQgqWCmmcxQzVSXYtyB5bzkXrYzlHTs21MYA==} cpu: [riscv64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-riscv64-musl@4.60.3': - resolution: {integrity: sha512-Dhbyh7j9FybM3YaTgaHmVALwA8AkUwTPccyCQ79TG9AJUsMQqgN1DDEZNr4+QUfwiWvLDumW5vdwzoeUF+TNxQ==} + '@rollup/rollup-linux-riscv64-musl@4.60.4': + resolution: {integrity: sha512-mcEl6CUT5IAUmQf1m9FYSmVqCJlpQ8r8eyftFUHG8i9OhY7BkBXSUdnLH5DOf0wCOjcP9v/QO93zpmF1SptCCw==} cpu: [riscv64] os: [linux] libc: [musl] - '@rollup/rollup-linux-s390x-gnu@4.60.3': - resolution: {integrity: sha512-cJd1X5XhHHlltkaypz1UcWLA8AcoIi1aWhsvaWDskD1oz2eKCypnqvTQ8ykMNI0RSmm7NkTdSqSSD7zM0xa6Ig==} + '@rollup/rollup-linux-s390x-gnu@4.60.4': + resolution: {integrity: sha512-ynt3JxVd2w2buzoKDWIyiV1pJW93xlQic1THVLXilz429oijRpSHivZAgp65KBu+cMcgf1eVVjdnTLvPxgCuoQ==} cpu: [s390x] os: [linux] libc: [glibc] - '@rollup/rollup-linux-x64-gnu@4.60.3': - resolution: {integrity: sha512-DAZDBHQfG2oQuhY7mc6I3/qB4LU2fQCjRvxbDwd/Jdvb9fypP4IJ4qmtu6lNjes6B531AI8cg1aKC2di97bUxA==} + '@rollup/rollup-linux-x64-gnu@4.60.4': + resolution: {integrity: sha512-Boiz5+MsaROEWDf+GGEwF8VMHGhlUoQMtIPjOgA5fv4osupqTVnJteQNKJwUcnUog2G55jYXH7KZFFiJe0TEzQ==} cpu: [x64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-x64-musl@4.60.3': - resolution: {integrity: sha512-cRxsE8c13mZOh3vP+wLDxpQBRrOHDIGOWyDL93Sy0Ga8y515fBcC2pjUfFwUe5T7tqvTvWbCpg1URM/AXdWIXA==} + '@rollup/rollup-linux-x64-musl@4.60.4': + resolution: {integrity: sha512-+qfSY27qIrFfI/Hom04KYFw3GKZSGU4lXus51wsb5EuySfFlWRwjkKWoE9emgRw/ukoT4Udsj4W/+xxG8VbPKg==} cpu: [x64] os: [linux] libc: [musl] - '@rollup/rollup-openbsd-x64@4.60.3': - resolution: {integrity: sha512-QaWcIgRxqEdQdhJqW4DJctsH6HCmo5vHxY0krHSX4jMtOqfzC+dqDGuHM87bu4H8JBeibWx7jFz+h6/4C8wA5Q==} + '@rollup/rollup-openbsd-x64@4.60.4': + resolution: {integrity: sha512-VpTfOPHgVXEBeeR8hZ2O0F3aSso+JDWqTWmTmzcQKted54IAdUVbxE+j/MVxUsKa8L20HJhv3vUezVPoquqWjA==} cpu: [x64] os: [openbsd] - '@rollup/rollup-openharmony-arm64@4.60.3': - resolution: {integrity: sha512-AaXwSvUi3QIPtroAUw1t5yHGIyqKEXwH54WUocFolZhpGDruJcs8c+xPNDRn4XiQsS7MEwnYsHW2l0MBLDMkWg==} + '@rollup/rollup-openharmony-arm64@4.60.4': + resolution: {integrity: sha512-IPOsh5aRYuLv/nkU51X10Bf75Bsf6+gZdx1X+QP5QM6lIJFHHqbHLG0uJn/hWthzo13UAc2umiUorqZy3axoZg==} cpu: [arm64] os: [openharmony] - '@rollup/rollup-win32-arm64-msvc@4.60.3': - resolution: {integrity: sha512-65LAKM/bAWDqKNEelHlcHvm2V+Vfb8C6INFxQXRHCvaVN1rJfwr4NvdP4FyzUaLqWfaCGaadf6UbTm8xJeYfEg==} + '@rollup/rollup-win32-arm64-msvc@4.60.4': + resolution: {integrity: sha512-4QzE9E81OohJ/HKzHhsqU+zcYYojVOXlFMs1DdyMT6qXl/niOH7AVElmmEdUNHHS/oRkc++d5k6Vy85zFs0DEw==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.60.3': - resolution: {integrity: sha512-EEM2gyhBF5MFnI6vMKdX1LAosE627RGBzIoGMdLloPZkXrUN0Ckqgr2Qi8+J3zip/8NVVro3/FjB+tjhZUgUHA==} + '@rollup/rollup-win32-ia32-msvc@4.60.4': + resolution: {integrity: sha512-zTPgT1YuHHcd+Tmx7h8aml0FWFVelV5N54oHow9SLj+GfoDy/huQ+UV396N/C7KpMDMiPspRktzM1/0r1usYEA==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-gnu@4.60.3': - resolution: {integrity: sha512-E5Eb5H/DpxaoXH++Qkv28RcUJboMopmdDUALBczvHMf7hNIxaDZqwY5lK12UK1BHacSmvupoEWGu+n993Z0y1A==} + '@rollup/rollup-win32-x64-gnu@4.60.4': + resolution: {integrity: sha512-DRS4G7mi9lJxqEDezIkKCaUIKCrLUUDCUaCsTPCi/rtqaC6D/jjwslMQyiDU50Ka0JKpeXeRBFBAXwArY52vBw==} cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.60.3': - resolution: {integrity: sha512-hPt/bgL5cE+Qp+/TPHBqptcAgPzgj46mPcg/16zNUmbQk0j+mOEQV/+Lqu8QRtDV3Ek95Q6FeFITpuhl6OTsAA==} + '@rollup/rollup-win32-x64-msvc@4.60.4': + resolution: {integrity: sha512-QVTUovf40zgTqlFVrKA1uXMVvU2QWEFWfAH8Wdc48IxLvrJMQVMBRjuQyUpzZCDkakImib9eVazbWlC6ksWtJw==} cpu: [x64] os: [win32] @@ -2642,24 +2642,32 @@ packages: '@rss3/sdk@0.0.25': resolution: {integrity: sha512-jyXT4YTwefxxRZ0tt5xjbnw8e7zPg2OGdo/0xb+h/7qWnMNhLtWpc95DsYs/1C/I0rIyiDpZBhLI2DieQ9y+tw==} - '@scalar/client-side-rendering@0.1.7': - resolution: {integrity: sha512-IDzjKF93jrOljlvKBsLHXT1FPWgz56jFrMPC+iLihREp1qH8wF92mG8Zpakw8cURkEuw5WijRk0xNBP2moGyuw==} + '@scalar/client-side-rendering@0.1.9': + resolution: {integrity: sha512-Gv3CK0X+BqXYkVJLTQXNM8YgdquhuGV4hKlsM8S9k5GGonj8LBDSAiuU3W48JGX1pY7hRotBGcIIU+1a1X1mcw==} engines: {node: '>=22'} - '@scalar/helpers@0.6.0': - resolution: {integrity: sha512-pfSamAgBxqFeE8IpEG6uGkHlnPhY1CLeOTttV9+vKQbrBk5b7vvyTsUXv0Hz4kNU1TFrxcTTPE+Akn5S+jlTtQ==} + '@scalar/helpers@0.8.0': + resolution: {integrity: sha512-gmOC6VravNB9VDl6wnt/GOj4K/hn48tj5bpW4AM4MhH8Ubil6uu7g1DSoKHwltu8Ks79KEtR6JmOrROi9R7jaQ==} engines: {node: '>=22'} - '@scalar/hono-api-reference@0.10.14': - resolution: {integrity: sha512-LCIT4ul3c4MyD7shhxsWcvvOABt0fEHNQID2n+2TPeItc/MR2qCjjp/QfqD+JoQ7zbc0nnzh1kwRR06MVBmnUA==} + '@scalar/hono-api-reference@0.10.16': + resolution: {integrity: sha512-pllMIMZUXrTcbn1IeOhS5WHgpkw2kdtS3kFojz04DOdJptq3MawjHEunPhvydyMlIFlb1rhjieRllhPwt/y9Lw==} engines: {node: '>=22'} peerDependencies: hono: ^4.12.5 - '@scalar/types@0.9.6': - resolution: {integrity: sha512-UaCQQcscFTJdxZREE8KhUdSJgaDlc44TZbmWcZffs4m1hzqOvEI7lEBS13iBpLq7/cxUXFgyJdecywvNqJ0PkA==} + '@scalar/schemas@0.2.0': + resolution: {integrity: sha512-FOpNecNoEKo8SogHEsdWlVRN4Q4PH3dzuOBWMA5tGt1xLZu5iFnPG2X/h6+Z/mOR34c7iW+hiKTqdUZoDgT9CA==} engines: {node: '>=22'} + '@scalar/types@0.11.0': + resolution: {integrity: sha512-TGZR8sys1jRlaWxLYfBo8y6D1W4UClYuDmkJ6Hmsb7oNuqokEAAK+AVYIzascVdBmaly0D1fqoqK7CzuGYHgyg==} + engines: {node: '>=22'} + + '@scalar/validation@0.5.0': + resolution: {integrity: sha512-48CS1B0C7im57RQCHhS0GKt+qDLxB34IX8rO91jZj9D+Y/OosQZG3Gy57gJdHqZoD7l0sPUZtF8tVYry3BxRtw==} + engines: {node: '>=20'} + '@scure/base@2.0.0': resolution: {integrity: sha512-3E1kpuZginKkek01ovG8krQ0Z44E3DHPjc5S2rjJw9lZn3KSQOs8S7wqikF/AH7iRanHypj85uGyxk0XAyC37w==} @@ -5541,8 +5549,8 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} hasBin: true - rollup@4.60.3: - resolution: {integrity: sha512-pAQK9HalE84QSm4Po3EmWIZPd3FnjkShVkiMlz1iligWYkWQ7wHYd1PF/T7QZ5TVSD6uSTon5gBVMSM4JfBV+A==} + rollup@4.60.4: + resolution: {integrity: sha512-WHeFSbZYsPu3+bLoNRUuAO+wavNlocOPf3wSHTP7hcFKVnJeWsYlCDbr3mTS14FCizf9ccIxXA8sGL8zKeQN3g==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -8030,87 +8038,87 @@ snapshots: '@rolldown/pluginutils@1.0.0-rc.17': optional: true - '@rollup/pluginutils@5.3.0(rollup@4.60.3)': + '@rollup/pluginutils@5.3.0(rollup@4.60.4)': dependencies: '@types/estree': 1.0.8 estree-walker: 2.0.2 picomatch: 4.0.4 optionalDependencies: - rollup: 4.60.3 + rollup: 4.60.4 - '@rollup/rollup-android-arm-eabi@4.60.3': + '@rollup/rollup-android-arm-eabi@4.60.4': optional: true - '@rollup/rollup-android-arm64@4.60.3': + '@rollup/rollup-android-arm64@4.60.4': optional: true - '@rollup/rollup-darwin-arm64@4.60.3': + '@rollup/rollup-darwin-arm64@4.60.4': optional: true - '@rollup/rollup-darwin-x64@4.60.3': + '@rollup/rollup-darwin-x64@4.60.4': optional: true - '@rollup/rollup-freebsd-arm64@4.60.3': + '@rollup/rollup-freebsd-arm64@4.60.4': optional: true - '@rollup/rollup-freebsd-x64@4.60.3': + '@rollup/rollup-freebsd-x64@4.60.4': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.60.3': + '@rollup/rollup-linux-arm-gnueabihf@4.60.4': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.60.3': + '@rollup/rollup-linux-arm-musleabihf@4.60.4': optional: true - '@rollup/rollup-linux-arm64-gnu@4.60.3': + '@rollup/rollup-linux-arm64-gnu@4.60.4': optional: true - '@rollup/rollup-linux-arm64-musl@4.60.3': + '@rollup/rollup-linux-arm64-musl@4.60.4': optional: true - '@rollup/rollup-linux-loong64-gnu@4.60.3': + '@rollup/rollup-linux-loong64-gnu@4.60.4': optional: true - '@rollup/rollup-linux-loong64-musl@4.60.3': + '@rollup/rollup-linux-loong64-musl@4.60.4': optional: true - '@rollup/rollup-linux-ppc64-gnu@4.60.3': + '@rollup/rollup-linux-ppc64-gnu@4.60.4': optional: true - '@rollup/rollup-linux-ppc64-musl@4.60.3': + '@rollup/rollup-linux-ppc64-musl@4.60.4': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.60.3': + '@rollup/rollup-linux-riscv64-gnu@4.60.4': optional: true - '@rollup/rollup-linux-riscv64-musl@4.60.3': + '@rollup/rollup-linux-riscv64-musl@4.60.4': optional: true - '@rollup/rollup-linux-s390x-gnu@4.60.3': + '@rollup/rollup-linux-s390x-gnu@4.60.4': optional: true - '@rollup/rollup-linux-x64-gnu@4.60.3': + '@rollup/rollup-linux-x64-gnu@4.60.4': optional: true - '@rollup/rollup-linux-x64-musl@4.60.3': + '@rollup/rollup-linux-x64-musl@4.60.4': optional: true - '@rollup/rollup-openbsd-x64@4.60.3': + '@rollup/rollup-openbsd-x64@4.60.4': optional: true - '@rollup/rollup-openharmony-arm64@4.60.3': + '@rollup/rollup-openharmony-arm64@4.60.4': optional: true - '@rollup/rollup-win32-arm64-msvc@4.60.3': + '@rollup/rollup-win32-arm64-msvc@4.60.4': optional: true - '@rollup/rollup-win32-ia32-msvc@4.60.3': + '@rollup/rollup-win32-ia32-msvc@4.60.4': optional: true - '@rollup/rollup-win32-x64-gnu@4.60.3': + '@rollup/rollup-win32-x64-gnu@4.60.4': optional: true - '@rollup/rollup-win32-x64-msvc@4.60.3': + '@rollup/rollup-win32-x64-msvc@4.60.4': optional: true '@rss3/api-core@0.0.25': @@ -8128,24 +8136,32 @@ snapshots: '@rss3/api-core': 0.0.25 '@rss3/api-utils': 0.0.25 - '@scalar/client-side-rendering@0.1.7': + '@scalar/client-side-rendering@0.1.9': dependencies: - '@scalar/types': 0.9.6 + '@scalar/schemas': 0.2.0 + '@scalar/types': 0.11.0 + '@scalar/validation': 0.5.0 - '@scalar/helpers@0.6.0': {} + '@scalar/helpers@0.8.0': {} - '@scalar/hono-api-reference@0.10.14(hono@4.12.18)': + '@scalar/hono-api-reference@0.10.16(hono@4.12.18)': dependencies: - '@scalar/client-side-rendering': 0.1.7 + '@scalar/client-side-rendering': 0.1.9 hono: 4.12.18 - '@scalar/types@0.9.6': + '@scalar/schemas@0.2.0': dependencies: - '@scalar/helpers': 0.6.0 + '@scalar/validation': 0.5.0 + + '@scalar/types@0.11.0': + dependencies: + '@scalar/helpers': 0.8.0 nanoid: 5.1.11 type-fest: 5.6.0 zod: 4.4.3 + '@scalar/validation@0.5.0': {} + '@scure/base@2.0.0': {} '@sec-ant/readable-stream@0.4.1': {} @@ -8587,10 +8603,10 @@ snapshots: '@unrs/resolver-binding-win32-x64-msvc@1.11.1': optional: true - '@vercel/nft@1.5.0(rollup@4.60.3)': + '@vercel/nft@1.5.0(rollup@4.60.4)': dependencies: '@mapbox/node-pre-gyp': 2.0.3 - '@rollup/pluginutils': 5.3.0(rollup@4.60.3) + '@rollup/pluginutils': 5.3.0(rollup@4.60.4) acorn: 8.16.0 acorn-import-attributes: 1.9.5(acorn@8.16.0) async-sema: 3.1.1 @@ -11516,35 +11532,35 @@ snapshots: '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.17 optional: true - rollup@4.60.3: + rollup@4.60.4: dependencies: '@types/estree': 1.0.8 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.60.3 - '@rollup/rollup-android-arm64': 4.60.3 - '@rollup/rollup-darwin-arm64': 4.60.3 - '@rollup/rollup-darwin-x64': 4.60.3 - '@rollup/rollup-freebsd-arm64': 4.60.3 - '@rollup/rollup-freebsd-x64': 4.60.3 - '@rollup/rollup-linux-arm-gnueabihf': 4.60.3 - '@rollup/rollup-linux-arm-musleabihf': 4.60.3 - '@rollup/rollup-linux-arm64-gnu': 4.60.3 - '@rollup/rollup-linux-arm64-musl': 4.60.3 - '@rollup/rollup-linux-loong64-gnu': 4.60.3 - '@rollup/rollup-linux-loong64-musl': 4.60.3 - '@rollup/rollup-linux-ppc64-gnu': 4.60.3 - '@rollup/rollup-linux-ppc64-musl': 4.60.3 - '@rollup/rollup-linux-riscv64-gnu': 4.60.3 - '@rollup/rollup-linux-riscv64-musl': 4.60.3 - '@rollup/rollup-linux-s390x-gnu': 4.60.3 - '@rollup/rollup-linux-x64-gnu': 4.60.3 - '@rollup/rollup-linux-x64-musl': 4.60.3 - '@rollup/rollup-openbsd-x64': 4.60.3 - '@rollup/rollup-openharmony-arm64': 4.60.3 - '@rollup/rollup-win32-arm64-msvc': 4.60.3 - '@rollup/rollup-win32-ia32-msvc': 4.60.3 - '@rollup/rollup-win32-x64-gnu': 4.60.3 - '@rollup/rollup-win32-x64-msvc': 4.60.3 + '@rollup/rollup-android-arm-eabi': 4.60.4 + '@rollup/rollup-android-arm64': 4.60.4 + '@rollup/rollup-darwin-arm64': 4.60.4 + '@rollup/rollup-darwin-x64': 4.60.4 + '@rollup/rollup-freebsd-arm64': 4.60.4 + '@rollup/rollup-freebsd-x64': 4.60.4 + '@rollup/rollup-linux-arm-gnueabihf': 4.60.4 + '@rollup/rollup-linux-arm-musleabihf': 4.60.4 + '@rollup/rollup-linux-arm64-gnu': 4.60.4 + '@rollup/rollup-linux-arm64-musl': 4.60.4 + '@rollup/rollup-linux-loong64-gnu': 4.60.4 + '@rollup/rollup-linux-loong64-musl': 4.60.4 + '@rollup/rollup-linux-ppc64-gnu': 4.60.4 + '@rollup/rollup-linux-ppc64-musl': 4.60.4 + '@rollup/rollup-linux-riscv64-gnu': 4.60.4 + '@rollup/rollup-linux-riscv64-musl': 4.60.4 + '@rollup/rollup-linux-s390x-gnu': 4.60.4 + '@rollup/rollup-linux-x64-gnu': 4.60.4 + '@rollup/rollup-linux-x64-musl': 4.60.4 + '@rollup/rollup-openbsd-x64': 4.60.4 + '@rollup/rollup-openharmony-arm64': 4.60.4 + '@rollup/rollup-win32-arm64-msvc': 4.60.4 + '@rollup/rollup-win32-ia32-msvc': 4.60.4 + '@rollup/rollup-win32-x64-gnu': 4.60.4 + '@rollup/rollup-win32-x64-msvc': 4.60.4 fsevents: 2.3.3 rss-parser@3.13.0(patch_hash=afac79a31a3db94c953d49680bc5528468f051957d461e913d2e2dbf5cd22a8d): @@ -12185,7 +12201,7 @@ snapshots: fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 postcss: 8.5.14 - rollup: 4.60.3 + rollup: 4.60.4 tinyglobby: 0.2.16 optionalDependencies: '@types/node': 25.7.0 From 1212e1bd075a41f97df165041402b6916fb8a60b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 16 May 2026 17:24:58 +0800 Subject: [PATCH 423/439] chore(deps-dev): bump @types/node from 25.7.0 to 25.8.0 (#22034) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 25.7.0 to 25.8.0. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-version: 25.8.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 146 ++++++++++++++++++++++++------------------------- 2 files changed, 74 insertions(+), 74 deletions(-) diff --git a/package.json b/package.json index a548e059a252..f24947bcbf5e 100644 --- a/package.json +++ b/package.json @@ -166,7 +166,7 @@ "@types/mailparser": "3.4.6", "@types/markdown-it": "14.1.2", "@types/module-alias": "2.0.4", - "@types/node": "25.7.0", + "@types/node": "25.8.0", "@types/sanitize-html": "2.16.1", "@typescript-eslint/eslint-plugin": "8.59.3", "@typescript-eslint/parser": "8.59.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cb4cf392ae08..3f5695f6ee7f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -354,8 +354,8 @@ importers: specifier: 2.0.4 version: 2.0.4 '@types/node': - specifier: 25.7.0 - version: 25.7.0 + specifier: 25.8.0 + version: 25.8.0 '@types/sanitize-html': specifier: 2.16.1 version: 2.16.1 @@ -382,7 +382,7 @@ importers: version: 10.3.0(jiti@2.6.1) eslint-nibble: specifier: 9.1.1 - version: 9.1.1(@types/node@25.7.0)(eslint@10.3.0(jiti@2.6.1)) + version: 9.1.1(@types/node@25.8.0)(eslint@10.3.0(jiti@2.6.1)) eslint-plugin-import-x: specifier: 4.16.2 version: 4.16.2(@typescript-eslint/utils@8.59.3(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.3.0(jiti@2.6.1)) @@ -427,7 +427,7 @@ importers: version: 3.0.5 msw: specifier: 2.13.4 - version: 2.13.4(@types/node@25.7.0)(typescript@5.9.3) + version: 2.13.4(@types/node@25.8.0)(typescript@5.9.3) node-network-devtools: specifier: 1.0.30 version: 1.0.30(undici@7.25.0)(utf-8-validate@5.0.10) @@ -466,10 +466,10 @@ importers: version: 11.0.5 vite-tsconfig-paths: specifier: 6.1.1 - version: 6.1.1(typescript@5.9.3)(vite@7.3.1(@types/node@25.7.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)) + version: 6.1.1(typescript@5.9.3)(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)) vitest: specifier: 4.1.6 - version: 4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.7.0)(@vitest/coverage-v8@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.7.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.7.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.8.0)(@vitest/coverage-v8@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.8.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)) wrangler: specifier: 4.90.1 version: 4.90.1(@cloudflare/workers-types@4.20260511.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10) @@ -2870,8 +2870,8 @@ packages: '@types/mysql@2.15.27': resolution: {integrity: sha512-YfWiV16IY0OeBfBCk8+hXKmdTKrKlwKN1MNKAPBu5JYxLwBEZl7QzeEpGnlZb3VMGJrrGmB84gXiH+ofs/TezA==} - '@types/node@25.7.0': - resolution: {integrity: sha512-z+pdZyxE+RTQE9AcboAZCb4otwcrvgHD+GlBpPgn0emDVt0ohrTMhAwlr2Wd9nZ+nihhYFxO2pThz3C5qSu2Eg==} + '@types/node@25.8.0': + resolution: {integrity: sha512-TCFSk8IZh+iLX1xtksoBVtdmgL+1IX0fC9BeU4QqFSuNdN/K+HUlhqOzEmSYYpZUVsLYcPqc9KX+60iDuninSQ==} '@types/pg-pool@2.0.7': resolution: {integrity: sha512-U4CwmGVQcbEuqpyju8/ptOKg6gEC+Tqsvj2xS9o1g71bUh8twxnC6ZL5rZKCsGN0iyH0CwgUyc9VR5owNQF9Ng==} @@ -6040,8 +6040,8 @@ packages: unconfig-core@7.5.0: resolution: {integrity: sha512-Su3FauozOGP44ZmKdHy2oE6LPjk51M/TRRjHv2HNCWiDvfvCoxC2lno6jevMA91MYAdCdwP05QnWdWpSbncX/w==} - undici-types@7.21.0: - resolution: {integrity: sha512-w9IMgQrz4O0YN1LtB7K5P63vhlIOvC7opSmouCJ+ZywlPAlO9gIkJ+otk6LvGpAs2wg4econaCz3TvQ9xPoyuQ==} + undici-types@7.24.6: + resolution: {integrity: sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==} undici-types@7.25.0: resolution: {integrity: sha512-AXNgS1Byr27fTI+2bsPEkV9CxkT8H6xNyRI68b3TatlZo3RkzlqQBLL+w7SmGPVpokjHbcuNVQUWE7FRTg+LRA==} @@ -7163,76 +7163,76 @@ snapshots: '@inquirer/ansi@2.0.5': {} - '@inquirer/checkbox@4.3.2(@types/node@25.7.0)': + '@inquirer/checkbox@4.3.2(@types/node@25.8.0)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@25.7.0) + '@inquirer/core': 10.3.2(@types/node@25.8.0) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@25.7.0) + '@inquirer/type': 3.0.10(@types/node@25.8.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 25.7.0 + '@types/node': 25.8.0 - '@inquirer/confirm@5.1.21(@types/node@25.7.0)': + '@inquirer/confirm@5.1.21(@types/node@25.8.0)': dependencies: - '@inquirer/core': 10.3.2(@types/node@25.7.0) - '@inquirer/type': 3.0.10(@types/node@25.7.0) + '@inquirer/core': 10.3.2(@types/node@25.8.0) + '@inquirer/type': 3.0.10(@types/node@25.8.0) optionalDependencies: - '@types/node': 25.7.0 + '@types/node': 25.8.0 - '@inquirer/confirm@6.0.11(@types/node@25.7.0)': + '@inquirer/confirm@6.0.11(@types/node@25.8.0)': dependencies: - '@inquirer/core': 11.1.8(@types/node@25.7.0) - '@inquirer/type': 4.0.5(@types/node@25.7.0) + '@inquirer/core': 11.1.8(@types/node@25.8.0) + '@inquirer/type': 4.0.5(@types/node@25.8.0) optionalDependencies: - '@types/node': 25.7.0 + '@types/node': 25.8.0 - '@inquirer/core@10.3.2(@types/node@25.7.0)': + '@inquirer/core@10.3.2(@types/node@25.8.0)': dependencies: '@inquirer/ansi': 1.0.2 '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@25.7.0) + '@inquirer/type': 3.0.10(@types/node@25.8.0) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 25.7.0 + '@types/node': 25.8.0 - '@inquirer/core@11.1.8(@types/node@25.7.0)': + '@inquirer/core@11.1.8(@types/node@25.8.0)': dependencies: '@inquirer/ansi': 2.0.5 '@inquirer/figures': 2.0.5 - '@inquirer/type': 4.0.5(@types/node@25.7.0) + '@inquirer/type': 4.0.5(@types/node@25.8.0) cli-width: 4.1.0 fast-wrap-ansi: 0.2.0 mute-stream: 3.0.0 signal-exit: 4.1.0 optionalDependencies: - '@types/node': 25.7.0 + '@types/node': 25.8.0 '@inquirer/figures@1.0.15': {} '@inquirer/figures@2.0.5': {} - '@inquirer/select@4.4.2(@types/node@25.7.0)': + '@inquirer/select@4.4.2(@types/node@25.8.0)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@25.7.0) + '@inquirer/core': 10.3.2(@types/node@25.8.0) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@25.7.0) + '@inquirer/type': 3.0.10(@types/node@25.8.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 25.7.0 + '@types/node': 25.8.0 - '@inquirer/type@3.0.10(@types/node@25.7.0)': + '@inquirer/type@3.0.10(@types/node@25.8.0)': optionalDependencies: - '@types/node': 25.7.0 + '@types/node': 25.8.0 - '@inquirer/type@4.0.5(@types/node@25.7.0)': + '@inquirer/type@4.0.5(@types/node@25.8.0)': optionalDependencies: - '@types/node': 25.7.0 + '@types/node': 25.8.0 '@ioredis/commands@1.5.1': {} @@ -8281,7 +8281,7 @@ snapshots: '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.38 - '@types/node': 25.7.0 + '@types/node': 25.8.0 '@types/caseless@0.12.5': {} @@ -8294,7 +8294,7 @@ snapshots: '@types/connect@3.4.38': dependencies: - '@types/node': 25.7.0 + '@types/node': 25.8.0 '@types/crypto-js@4.2.2': {} @@ -8317,11 +8317,11 @@ snapshots: '@types/etag@1.8.4': dependencies: - '@types/node': 25.7.0 + '@types/node': 25.8.0 '@types/express-serve-static-core@5.1.1': dependencies: - '@types/node': 25.7.0 + '@types/node': 25.8.0 '@types/qs': 6.15.1 '@types/range-parser': 1.2.7 '@types/send': 1.2.1 @@ -8335,7 +8335,7 @@ snapshots: '@types/fs-extra@11.0.4': dependencies: '@types/jsonfile': 6.1.4 - '@types/node': 25.7.0 + '@types/node': 25.8.0 '@types/html-to-text@9.0.4': {} @@ -8347,7 +8347,7 @@ snapshots: '@types/jsdom@28.0.3': dependencies: - '@types/node': 25.7.0 + '@types/node': 25.8.0 '@types/tough-cookie': 4.0.5 parse5: 8.0.1 undici-types: 7.25.0 @@ -8360,7 +8360,7 @@ snapshots: '@types/jsonfile@6.1.4': dependencies: - '@types/node': 25.7.0 + '@types/node': 25.8.0 '@types/jsrsasign@10.5.15': {} @@ -8368,7 +8368,7 @@ snapshots: '@types/mailparser@3.4.6': dependencies: - '@types/node': 25.7.0 + '@types/node': 25.8.0 iconv-lite: 0.6.3 '@types/markdown-it@14.1.2': @@ -8388,11 +8388,11 @@ snapshots: '@types/mysql@2.15.27': dependencies: - '@types/node': 25.7.0 + '@types/node': 25.8.0 - '@types/node@25.7.0': + '@types/node@25.8.0': dependencies: - undici-types: 7.21.0 + undici-types: 7.24.6 '@types/pg-pool@2.0.7': dependencies: @@ -8400,7 +8400,7 @@ snapshots: '@types/pg@8.15.6': dependencies: - '@types/node': 25.7.0 + '@types/node': 25.8.0 pg-protocol: 1.13.0 pg-types: 2.2.0 @@ -8416,7 +8416,7 @@ snapshots: '@types/request@2.48.13': dependencies: '@types/caseless': 0.12.5 - '@types/node': 25.7.0 + '@types/node': 25.8.0 '@types/tough-cookie': 4.0.5 form-data: 2.5.5 @@ -8426,22 +8426,22 @@ snapshots: '@types/send@1.2.1': dependencies: - '@types/node': 25.7.0 + '@types/node': 25.8.0 '@types/serve-static@2.2.0': dependencies: '@types/http-errors': 2.0.5 - '@types/node': 25.7.0 + '@types/node': 25.8.0 '@types/set-cookie-parser@2.4.10': dependencies: - '@types/node': 25.7.0 + '@types/node': 25.8.0 '@types/statuses@2.0.6': {} '@types/tedious@4.0.14': dependencies: - '@types/node': 25.7.0 + '@types/node': 25.8.0 '@types/tough-cookie@4.0.5': {} @@ -8634,7 +8634,7 @@ snapshots: obug: 2.1.1 std-env: 4.1.0 tinyrainbow: 3.1.0 - vitest: 4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.7.0)(@vitest/coverage-v8@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.7.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.7.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)) + vitest: 4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.8.0)(@vitest/coverage-v8@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.8.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)) '@vitest/expect@4.1.6': dependencies: @@ -8645,14 +8645,14 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.6(msw@2.13.4(@types/node@25.7.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.7.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0))': + '@vitest/mocker@4.1.6(msw@2.13.4(@types/node@25.8.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0))': dependencies: '@vitest/spy': 4.1.6 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - msw: 2.13.4(@types/node@25.7.0)(typescript@5.9.3) - vite: 7.3.1(@types/node@25.7.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0) + msw: 2.13.4(@types/node@25.8.0)(typescript@5.9.3) + vite: 7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0) '@vitest/pretty-format@4.1.6': dependencies: @@ -9410,12 +9410,12 @@ snapshots: - supports-color optional: true - eslint-nibble@9.1.1(@types/node@25.7.0)(eslint@10.3.0(jiti@2.6.1)): + eslint-nibble@9.1.1(@types/node@25.8.0)(eslint@10.3.0(jiti@2.6.1)): dependencies: '@babel/code-frame': 7.29.0 - '@inquirer/checkbox': 4.3.2(@types/node@25.7.0) - '@inquirer/confirm': 5.1.21(@types/node@25.7.0) - '@inquirer/select': 4.4.2(@types/node@25.7.0) + '@inquirer/checkbox': 4.3.2(@types/node@25.8.0) + '@inquirer/confirm': 5.1.21(@types/node@25.8.0) + '@inquirer/select': 4.4.2(@types/node@25.8.0) eslint: 10.3.0(jiti@2.6.1) eslint-filtered-fix: 0.3.0(eslint@10.3.0(jiti@2.6.1)) optionator: 0.9.4 @@ -10837,9 +10837,9 @@ snapshots: ms@2.1.3: {} - msw@2.13.4(@types/node@25.7.0)(typescript@5.9.3): + msw@2.13.4(@types/node@25.8.0)(typescript@5.9.3): dependencies: - '@inquirer/confirm': 6.0.11(@types/node@25.7.0) + '@inquirer/confirm': 6.0.11(@types/node@25.8.0) '@mswjs/interceptors': 0.41.3(patch_hash=5027fcc424409c41c41147fc6c90b36166061522e0b03e73b45f9a973fcd2a28) '@open-draft/deferred-promise': 3.0.0 '@types/statuses': 2.0.6 @@ -11281,7 +11281,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.1 - '@types/node': 25.7.0 + '@types/node': 25.8.0 long: 5.3.2 psl@1.15.0: @@ -12030,7 +12030,7 @@ snapshots: '@quansync/fs': 1.0.0 quansync: 1.0.0 - undici-types@7.21.0: {} + undici-types@7.24.6: {} undici-types@7.25.0: {} @@ -12185,17 +12185,17 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vite-tsconfig-paths@6.1.1(typescript@5.9.3)(vite@7.3.1(@types/node@25.7.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)): + vite-tsconfig-paths@6.1.1(typescript@5.9.3)(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)): dependencies: debug: 4.4.3 globrex: 0.1.2 tsconfck: 3.1.6(typescript@5.9.3) - vite: 7.3.1(@types/node@25.7.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0) + vite: 7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0) transitivePeerDependencies: - supports-color - typescript - vite@7.3.1(@types/node@25.7.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0): + vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0): dependencies: esbuild: 0.27.7 fdir: 6.5.0(picomatch@4.0.4) @@ -12204,16 +12204,16 @@ snapshots: rollup: 4.60.4 tinyglobby: 0.2.16 optionalDependencies: - '@types/node': 25.7.0 + '@types/node': 25.8.0 fsevents: 2.3.3 jiti: 2.6.1 tsx: 4.21.0 yaml: 2.9.0 - vitest@4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.7.0)(@vitest/coverage-v8@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.7.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.7.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)): + vitest@4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.8.0)(@vitest/coverage-v8@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.8.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)): dependencies: '@vitest/expect': 4.1.6 - '@vitest/mocker': 4.1.6(msw@2.13.4(@types/node@25.7.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.7.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)) + '@vitest/mocker': 4.1.6(msw@2.13.4(@types/node@25.8.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)) '@vitest/pretty-format': 4.1.6 '@vitest/runner': 4.1.6 '@vitest/snapshot': 4.1.6 @@ -12230,12 +12230,12 @@ snapshots: tinyexec: 1.1.2 tinyglobby: 0.2.16 tinyrainbow: 3.1.0 - vite: 7.3.1(@types/node@25.7.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0) + vite: 7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: '@edge-runtime/vm': 3.2.0 '@opentelemetry/api': 1.9.1 - '@types/node': 25.7.0 + '@types/node': 25.8.0 '@vitest/coverage-v8': 4.1.6(vitest@4.1.6) jsdom: 29.1.1(@noble/hashes@2.0.1) transitivePeerDependencies: From f22b763e183fa94176da9a2be03efafc953260e8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 16 May 2026 22:04:38 +0800 Subject: [PATCH 424/439] chore(deps-dev): bump the cloudflare group across 1 directory with 2 updates (#22028) Bumps the cloudflare group with 2 updates in the / directory: [@cloudflare/workers-types](https://github.com/cloudflare/workerd) and [wrangler](https://github.com/cloudflare/workers-sdk/tree/HEAD/packages/wrangler). Updates `@cloudflare/workers-types` from 4.20260511.1 to 4.20260516.1 - [Release notes](https://github.com/cloudflare/workerd/releases) - [Changelog](https://github.com/cloudflare/workerd/blob/main/RELEASE.md) - [Commits](https://github.com/cloudflare/workerd/commits) Updates `wrangler` from 4.90.1 to 4.92.0 - [Release notes](https://github.com/cloudflare/workers-sdk/releases) - [Commits](https://github.com/cloudflare/workers-sdk/commits/wrangler@4.92.0/packages/wrangler) --- updated-dependencies: - dependency-name: "@cloudflare/workers-types" dependency-version: 4.20260516.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: cloudflare - dependency-name: wrangler dependency-version: 4.92.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: cloudflare ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 4 +-- pnpm-lock.yaml | 88 +++++++++++++++++++++++++------------------------- 2 files changed, 46 insertions(+), 46 deletions(-) diff --git a/package.json b/package.json index f24947bcbf5e..4269195b2732 100644 --- a/package.json +++ b/package.json @@ -147,7 +147,7 @@ "@bbob/types": "4.3.1", "@cloudflare/containers": "0.3.4", "@cloudflare/playwright": "1.3.0", - "@cloudflare/workers-types": "4.20260511.1", + "@cloudflare/workers-types": "4.20260516.1", "@eslint/eslintrc": "3.3.5", "@eslint/js": "10.0.1", "@oxlint/plugins": "1.64.0", @@ -205,7 +205,7 @@ "unified": "11.0.5", "vite-tsconfig-paths": "6.1.1", "vitest": "4.1.6", - "wrangler": "4.90.1", + "wrangler": "4.92.0", "yaml-eslint-parser": "2.0.0" }, "lint-staged": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3f5695f6ee7f..22f520a45ba1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -297,8 +297,8 @@ importers: specifier: 1.3.0 version: 1.3.0 '@cloudflare/workers-types': - specifier: 4.20260511.1 - version: 4.20260511.1 + specifier: 4.20260516.1 + version: 4.20260516.1 '@eslint/eslintrc': specifier: 3.3.5 version: 3.3.5 @@ -471,8 +471,8 @@ importers: specifier: 4.1.6 version: 4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.8.0)(@vitest/coverage-v8@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.8.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)) wrangler: - specifier: 4.90.1 - version: 4.90.1(@cloudflare/workers-types@4.20260511.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10) + specifier: 4.92.0 + version: 4.92.0(@cloudflare/workers-types@4.20260516.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10) yaml-eslint-parser: specifier: 2.0.0 version: 2.0.0 @@ -614,38 +614,38 @@ packages: workerd: optional: true - '@cloudflare/workerd-darwin-64@1.20260508.1': - resolution: {integrity: sha512-IT3r6VgiSwIesL4AJbxjgxvIxwWZqM7BKkhYAzOKHl4GF2M0TxeOahUIXd+CYXVZgHX8ceEg+MXbEehPelJyNg==} + '@cloudflare/workerd-darwin-64@1.20260515.1': + resolution: {integrity: sha512-Wtw44el2pNbzixvTkWdfeBDTrQwQbJRz7/JUvPKV27I0pQWXbhNJPpM8cstq/pbrU5AGcA/HjFH6yPMRTIRKig==} engines: {node: '>=16'} cpu: [x64] os: [darwin] - '@cloudflare/workerd-darwin-arm64@1.20260508.1': - resolution: {integrity: sha512-JTVsisOJPcNKw0qovPjqyBWYahfdhUh7/9NICiG5wxaEQ45PYKdoqNq0hOAAIqvqoxsKZBvTgcPTJREPqk7avA==} + '@cloudflare/workerd-darwin-arm64@1.20260515.1': + resolution: {integrity: sha512-X8EqkZej6FfmhF9AVAQ3FhyQRr9acS4RcDunMU2YiuxKHF1IU8zzH3vY30/POaG+rUu9vGDp/VgUl49VPenHJQ==} engines: {node: '>=16'} cpu: [arm64] os: [darwin] - '@cloudflare/workerd-linux-64@1.20260508.1': - resolution: {integrity: sha512-zO38pCc27YlsZiPYcaZnosy0/t7abXrRU3VEO1oKfUvnaCpHgphDG+VsrmHL+kntda6hrtNwg2jLeMAqqIjnjw==} + '@cloudflare/workerd-linux-64@1.20260515.1': + resolution: {integrity: sha512-CDC89QxQ7Y7t7RG1Jd9vj/qolE1sQRkI2OSEuV5BMJi0vW/gV4OVG6xjpdK3b1OYnSWDzF7NpvlR5Yg86q7k4g==} engines: {node: '>=16'} cpu: [x64] os: [linux] - '@cloudflare/workerd-linux-arm64@1.20260508.1': - resolution: {integrity: sha512-XhJa780Ia6MNIrtxn/ruZHS79b9pu5EKPfRNReaUqxy8erPT2fs93axMfFoS9kIkcaRRj/1TOUKcTeAMoywY7w==} + '@cloudflare/workerd-linux-arm64@1.20260515.1': + resolution: {integrity: sha512-WxbW/PToYES4fvHXzsr/5qOiETQs/Z9iZ0mjSZAiEwq5cMLZemzGN0COx+uFb9OvQwzh6Pg159qPFnw3+i9FuA==} engines: {node: '>=16'} cpu: [arm64] os: [linux] - '@cloudflare/workerd-windows-64@1.20260508.1': - resolution: {integrity: sha512-QdDOK3B/Ul1s3QmIwDrFyx9230to6LsNmWcVR8w+TYjNZuRPzqQBgusp78LO7MlqCoEl9dvIcN00jkJnLtBSfw==} + '@cloudflare/workerd-windows-64@1.20260515.1': + resolution: {integrity: sha512-WmV/iv+MHjYsvkcMVzpM2B5/mf06UUkdpVhZrtMfV9graWjBGPYFvE/eab8748RPVGKh1Xe1vXofLzDSwc08lA==} engines: {node: '>=16'} cpu: [x64] os: [win32] - '@cloudflare/workers-types@4.20260511.1': - resolution: {integrity: sha512-FA+si7cOq9i/gtCHhIc0XJL0l1F/ApF+m00752Aj7WZFJrj3ZulT2T8/+rT3BabMT0QEnqFEGIqCgrmqhgEfMg==} + '@cloudflare/workers-types@4.20260516.1': + resolution: {integrity: sha512-aPckyZSPQXhOo+nSIvGLtXVl9M2qmf2GwFZYmvut9z47F1XTjHYcaYpI9/BvxrI+Q5l99UtXZU4bmQtX10JG+w==} '@colors/colors@1.6.0': resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} @@ -4918,8 +4918,8 @@ packages: resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - miniflare@4.20260508.0: - resolution: {integrity: sha512-h3aG+PA8jEH76V4ZtBAbs3g7kjMfHJUF8hPvxeeajLTKwir+G+dqfBODg5yF9MT29LqrZKCRQRqzfHPWX4kCIg==} + miniflare@4.20260515.0: + resolution: {integrity: sha512-2j0oQWizk1Eu4Cm8tDX7Z+Nsjd0nebIj1TQcQ+Oy1QKeo0Ay9+bdn8wfLAtOj9znDCybDCUlnS1+nYvKXEdfNg==} engines: {node: '>=22.0.0'} hasBin: true @@ -6325,17 +6325,17 @@ packages: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} - workerd@1.20260508.1: - resolution: {integrity: sha512-VlnjyH3AjVddpSK7J54nsCVgf8i2733pl8GjKttfNi7vN/hEjjAk20d2b1nDToOLKvRQpTewRnVkqaaeGHCaAw==} + workerd@1.20260515.1: + resolution: {integrity: sha512-MjKOJLcvU45xXedQowvuiHtJTxu4WTHYQeIlF7YmjuqhiI6dImTFxWCEoRQHiskztxuVSNEmdO7/0UfDu6OMnQ==} engines: {node: '>=16'} hasBin: true - wrangler@4.90.1: - resolution: {integrity: sha512-u2KrieKSMfRM0toTst/CfDtcRraeoVjmcExcMWgILM/ytq3qcDhuOAULoZSyPHzma43lfLJy1BC544drFyqe1A==} + wrangler@4.92.0: + resolution: {integrity: sha512-/DKpQHPxkuZbQsO9dFW2700VTD/4DSZMHjy92fO/frNoDRi/zQsFCAd2ONCV6TGqcUoXcP3D8Bo2gj/L4M0qQQ==} engines: {node: '>=22.0.0'} hasBin: true peerDependencies: - '@cloudflare/workers-types': ^4.20260508.1 + '@cloudflare/workers-types': ^4.20260515.1 peerDependenciesMeta: '@cloudflare/workers-types': optional: true @@ -6636,28 +6636,28 @@ snapshots: '@cloudflare/playwright@1.3.0': {} - '@cloudflare/unenv-preset@2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260508.1)': + '@cloudflare/unenv-preset@2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260515.1)': dependencies: unenv: 2.0.0-rc.24 optionalDependencies: - workerd: 1.20260508.1 + workerd: 1.20260515.1 - '@cloudflare/workerd-darwin-64@1.20260508.1': + '@cloudflare/workerd-darwin-64@1.20260515.1': optional: true - '@cloudflare/workerd-darwin-arm64@1.20260508.1': + '@cloudflare/workerd-darwin-arm64@1.20260515.1': optional: true - '@cloudflare/workerd-linux-64@1.20260508.1': + '@cloudflare/workerd-linux-64@1.20260515.1': optional: true - '@cloudflare/workerd-linux-arm64@1.20260508.1': + '@cloudflare/workerd-linux-arm64@1.20260515.1': optional: true - '@cloudflare/workerd-windows-64@1.20260508.1': + '@cloudflare/workerd-windows-64@1.20260515.1': optional: true - '@cloudflare/workers-types@4.20260511.1': {} + '@cloudflare/workers-types@4.20260516.1': {} '@colors/colors@1.6.0': {} @@ -10795,12 +10795,12 @@ snapshots: mimic-response@4.0.0: {} - miniflare@4.20260508.0(bufferutil@4.1.0)(utf-8-validate@5.0.10): + miniflare@4.20260515.0(bufferutil@4.1.0)(utf-8-validate@5.0.10): dependencies: '@cspotcode/source-map-support': 0.8.1 sharp: 0.34.5 undici: 7.24.8 - workerd: 1.20260508.1 + workerd: 1.20260515.1 ws: 8.18.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) youch: 4.1.0-beta.10 transitivePeerDependencies: @@ -12314,26 +12314,26 @@ snapshots: word-wrap@1.2.5: {} - workerd@1.20260508.1: + workerd@1.20260515.1: optionalDependencies: - '@cloudflare/workerd-darwin-64': 1.20260508.1 - '@cloudflare/workerd-darwin-arm64': 1.20260508.1 - '@cloudflare/workerd-linux-64': 1.20260508.1 - '@cloudflare/workerd-linux-arm64': 1.20260508.1 - '@cloudflare/workerd-windows-64': 1.20260508.1 + '@cloudflare/workerd-darwin-64': 1.20260515.1 + '@cloudflare/workerd-darwin-arm64': 1.20260515.1 + '@cloudflare/workerd-linux-64': 1.20260515.1 + '@cloudflare/workerd-linux-arm64': 1.20260515.1 + '@cloudflare/workerd-windows-64': 1.20260515.1 - wrangler@4.90.1(@cloudflare/workers-types@4.20260511.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10): + wrangler@4.92.0(@cloudflare/workers-types@4.20260516.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10): dependencies: '@cloudflare/kv-asset-handler': 0.5.0 - '@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260508.1) + '@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260515.1) blake3-wasm: 2.1.5 esbuild: 0.27.3 - miniflare: 4.20260508.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) + miniflare: 4.20260515.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) path-to-regexp: 6.3.0 unenv: 2.0.0-rc.24 - workerd: 1.20260508.1 + workerd: 1.20260515.1 optionalDependencies: - '@cloudflare/workers-types': 4.20260511.1 + '@cloudflare/workers-types': 4.20260516.1 fsevents: 2.3.3 transitivePeerDependencies: - bufferutil From ae80d742a19d95490b7d6e675afc182a01ee1397 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 16 May 2026 23:23:35 +0800 Subject: [PATCH 425/439] chore(deps): bump tsx from 4.21.0 to 4.22.0 (#22031) Bumps [tsx](https://github.com/privatenumber/tsx) from 4.21.0 to 4.22.0. - [Release notes](https://github.com/privatenumber/tsx/releases) - [Changelog](https://github.com/privatenumber/tsx/blob/master/release.config.cjs) - [Commits](https://github.com/privatenumber/tsx/compare/v4.21.0...v4.22.0) --- updated-dependencies: - dependency-name: tsx dependency-version: 4.22.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 428 ++++++++++++++++++++++++------------------------- 2 files changed, 211 insertions(+), 219 deletions(-) diff --git a/package.json b/package.json index 4269195b2732..1baeb973b462 100644 --- a/package.json +++ b/package.json @@ -130,7 +130,7 @@ "tldts": "7.0.30", "tosource": "2.0.0-alpha.3", "tough-cookie": "6.0.1", - "tsx": "4.21.0", + "tsx": "4.22.0", "twitter-api-v2": "1.29.0", "ufo": "1.6.4", "undici": "7.25.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 22f520a45ba1..039d99363629 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -251,8 +251,8 @@ importers: specifier: 6.0.1 version: 6.0.1 tsx: - specifier: 4.21.0 - version: 4.21.0 + specifier: 4.22.0 + version: 4.22.0 twitter-api-v2: specifier: 1.29.0 version: 1.29.0 @@ -457,7 +457,7 @@ importers: version: 11.0.0 tsdown: specifier: 0.22.0 - version: 0.22.0(tsx@4.21.0)(typescript@5.9.3)(unrun@0.2.37(synckit@0.11.12)) + version: 0.22.0(tsx@4.22.0)(typescript@5.9.3)(unrun@0.2.37(synckit@0.11.12)) typescript: specifier: 5.9.3 version: 5.9.3 @@ -466,10 +466,10 @@ importers: version: 11.0.5 vite-tsconfig-paths: specifier: 6.1.1 - version: 6.1.1(typescript@5.9.3)(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)) + version: 6.1.1(typescript@5.9.3)(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.0)(yaml@2.9.0)) vitest: specifier: 4.1.6 - version: 4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.8.0)(@vitest/coverage-v8@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.8.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.8.0)(@vitest/coverage-v8@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.8.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.0)(yaml@2.9.0)) wrangler: specifier: 4.92.0 version: 4.92.0(@cloudflare/workers-types@4.20260516.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10) @@ -723,14 +723,14 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.27.4': - resolution: {integrity: sha512-cQPwL2mp2nSmHHJlCyoXgHGhbEPMrEEU5xhkcy3Hs/O7nGZqEpZ2sUtLaL9MORLtDfRvVl2/3PAuEkYZH0Ty8Q==} + '@esbuild/aix-ppc64@0.27.7': + resolution: {integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.27.7': - resolution: {integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==} + '@esbuild/aix-ppc64@0.28.0': + resolution: {integrity: sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] @@ -741,14 +741,14 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.27.4': - resolution: {integrity: sha512-gdLscB7v75wRfu7QSm/zg6Rx29VLdy9eTr2t44sfTW7CxwAtQghZ4ZnqHk3/ogz7xao0QAgrkradbBzcqFPasw==} + '@esbuild/android-arm64@0.27.7': + resolution: {integrity: sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.27.7': - resolution: {integrity: sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==} + '@esbuild/android-arm64@0.28.0': + resolution: {integrity: sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==} engines: {node: '>=18'} cpu: [arm64] os: [android] @@ -759,14 +759,14 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-arm@0.27.4': - resolution: {integrity: sha512-X9bUgvxiC8CHAGKYufLIHGXPJWnr0OCdR0anD2e21vdvgCI8lIfqFbnoeOz7lBjdrAGUhqLZLcQo6MLhTO2DKQ==} + '@esbuild/android-arm@0.27.7': + resolution: {integrity: sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-arm@0.27.7': - resolution: {integrity: sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==} + '@esbuild/android-arm@0.28.0': + resolution: {integrity: sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==} engines: {node: '>=18'} cpu: [arm] os: [android] @@ -777,14 +777,14 @@ packages: cpu: [x64] os: [android] - '@esbuild/android-x64@0.27.4': - resolution: {integrity: sha512-PzPFnBNVF292sfpfhiyiXCGSn9HZg5BcAz+ivBuSsl6Rk4ga1oEXAamhOXRFyMcjwr2DVtm40G65N3GLeH1Lvw==} + '@esbuild/android-x64@0.27.7': + resolution: {integrity: sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/android-x64@0.27.7': - resolution: {integrity: sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==} + '@esbuild/android-x64@0.28.0': + resolution: {integrity: sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==} engines: {node: '>=18'} cpu: [x64] os: [android] @@ -795,14 +795,14 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.27.4': - resolution: {integrity: sha512-b7xaGIwdJlht8ZFCvMkpDN6uiSmnxxK56N2GDTMYPr2/gzvfdQN8rTfBsvVKmIVY/X7EM+/hJKEIbbHs9oA4tQ==} + '@esbuild/darwin-arm64@0.27.7': + resolution: {integrity: sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.27.7': - resolution: {integrity: sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==} + '@esbuild/darwin-arm64@0.28.0': + resolution: {integrity: sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] @@ -813,14 +813,14 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.27.4': - resolution: {integrity: sha512-sR+OiKLwd15nmCdqpXMnuJ9W2kpy0KigzqScqHI3Hqwr7IXxBp3Yva+yJwoqh7rE8V77tdoheRYataNKL4QrPw==} + '@esbuild/darwin-x64@0.27.7': + resolution: {integrity: sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.27.7': - resolution: {integrity: sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==} + '@esbuild/darwin-x64@0.28.0': + resolution: {integrity: sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==} engines: {node: '>=18'} cpu: [x64] os: [darwin] @@ -831,14 +831,14 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.27.4': - resolution: {integrity: sha512-jnfpKe+p79tCnm4GVav68A7tUFeKQwQyLgESwEAUzyxk/TJr4QdGog9sqWNcUbr/bZt/O/HXouspuQDd9JxFSw==} + '@esbuild/freebsd-arm64@0.27.7': + resolution: {integrity: sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.27.7': - resolution: {integrity: sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==} + '@esbuild/freebsd-arm64@0.28.0': + resolution: {integrity: sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] @@ -849,14 +849,14 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.27.4': - resolution: {integrity: sha512-2kb4ceA/CpfUrIcTUl1wrP/9ad9Atrp5J94Lq69w7UwOMolPIGrfLSvAKJp0RTvkPPyn6CIWrNy13kyLikZRZQ==} + '@esbuild/freebsd-x64@0.27.7': + resolution: {integrity: sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.27.7': - resolution: {integrity: sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==} + '@esbuild/freebsd-x64@0.28.0': + resolution: {integrity: sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] @@ -867,14 +867,14 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.27.4': - resolution: {integrity: sha512-7nQOttdzVGth1iz57kxg9uCz57dxQLHWxopL6mYuYthohPKEK0vU0C3O21CcBK6KDlkYVcnDXY099HcCDXd9dA==} + '@esbuild/linux-arm64@0.27.7': + resolution: {integrity: sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.27.7': - resolution: {integrity: sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==} + '@esbuild/linux-arm64@0.28.0': + resolution: {integrity: sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==} engines: {node: '>=18'} cpu: [arm64] os: [linux] @@ -885,14 +885,14 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.27.4': - resolution: {integrity: sha512-aBYgcIxX/wd5n2ys0yESGeYMGF+pv6g0DhZr3G1ZG4jMfruU9Tl1i2Z+Wnj9/KjGz1lTLCcorqE2viePZqj4Eg==} + '@esbuild/linux-arm@0.27.7': + resolution: {integrity: sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.27.7': - resolution: {integrity: sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==} + '@esbuild/linux-arm@0.28.0': + resolution: {integrity: sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==} engines: {node: '>=18'} cpu: [arm] os: [linux] @@ -903,14 +903,14 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.27.4': - resolution: {integrity: sha512-oPtixtAIzgvzYcKBQM/qZ3R+9TEUd1aNJQu0HhGyqtx6oS7qTpvjheIWBbes4+qu1bNlo2V4cbkISr8q6gRBFA==} + '@esbuild/linux-ia32@0.27.7': + resolution: {integrity: sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.27.7': - resolution: {integrity: sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==} + '@esbuild/linux-ia32@0.28.0': + resolution: {integrity: sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==} engines: {node: '>=18'} cpu: [ia32] os: [linux] @@ -921,14 +921,14 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.27.4': - resolution: {integrity: sha512-8mL/vh8qeCoRcFH2nM8wm5uJP+ZcVYGGayMavi8GmRJjuI3g1v6Z7Ni0JJKAJW+m0EtUuARb6Lmp4hMjzCBWzA==} + '@esbuild/linux-loong64@0.27.7': + resolution: {integrity: sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.27.7': - resolution: {integrity: sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==} + '@esbuild/linux-loong64@0.28.0': + resolution: {integrity: sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==} engines: {node: '>=18'} cpu: [loong64] os: [linux] @@ -939,14 +939,14 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.27.4': - resolution: {integrity: sha512-1RdrWFFiiLIW7LQq9Q2NES+HiD4NyT8Itj9AUeCl0IVCA459WnPhREKgwrpaIfTOe+/2rdntisegiPWn/r/aAw==} + '@esbuild/linux-mips64el@0.27.7': + resolution: {integrity: sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.27.7': - resolution: {integrity: sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==} + '@esbuild/linux-mips64el@0.28.0': + resolution: {integrity: sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] @@ -957,14 +957,14 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.27.4': - resolution: {integrity: sha512-tLCwNG47l3sd9lpfyx9LAGEGItCUeRCWeAx6x2Jmbav65nAwoPXfewtAdtbtit/pJFLUWOhpv0FpS6GQAmPrHA==} + '@esbuild/linux-ppc64@0.27.7': + resolution: {integrity: sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.27.7': - resolution: {integrity: sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==} + '@esbuild/linux-ppc64@0.28.0': + resolution: {integrity: sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] @@ -975,14 +975,14 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.27.4': - resolution: {integrity: sha512-BnASypppbUWyqjd1KIpU4AUBiIhVr6YlHx/cnPgqEkNoVOhHg+YiSVxM1RLfiy4t9cAulbRGTNCKOcqHrEQLIw==} + '@esbuild/linux-riscv64@0.27.7': + resolution: {integrity: sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.27.7': - resolution: {integrity: sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==} + '@esbuild/linux-riscv64@0.28.0': + resolution: {integrity: sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] @@ -993,14 +993,14 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.27.4': - resolution: {integrity: sha512-+eUqgb/Z7vxVLezG8bVB9SfBie89gMueS+I0xYh2tJdw3vqA/0ImZJ2ROeWwVJN59ihBeZ7Tu92dF/5dy5FttA==} + '@esbuild/linux-s390x@0.27.7': + resolution: {integrity: sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.27.7': - resolution: {integrity: sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==} + '@esbuild/linux-s390x@0.28.0': + resolution: {integrity: sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==} engines: {node: '>=18'} cpu: [s390x] os: [linux] @@ -1011,14 +1011,14 @@ packages: cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.27.4': - resolution: {integrity: sha512-S5qOXrKV8BQEzJPVxAwnryi2+Iq5pB40gTEIT69BQONqR7JH1EPIcQ/Uiv9mCnn05jff9umq/5nqzxlqTOg9NA==} + '@esbuild/linux-x64@0.27.7': + resolution: {integrity: sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.27.7': - resolution: {integrity: sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==} + '@esbuild/linux-x64@0.28.0': + resolution: {integrity: sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==} engines: {node: '>=18'} cpu: [x64] os: [linux] @@ -1029,14 +1029,14 @@ packages: cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-arm64@0.27.4': - resolution: {integrity: sha512-xHT8X4sb0GS8qTqiwzHqpY00C95DPAq7nAwX35Ie/s+LO9830hrMd3oX0ZMKLvy7vsonee73x0lmcdOVXFzd6Q==} + '@esbuild/netbsd-arm64@0.27.7': + resolution: {integrity: sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-arm64@0.27.7': - resolution: {integrity: sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==} + '@esbuild/netbsd-arm64@0.28.0': + resolution: {integrity: sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] @@ -1047,14 +1047,14 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.27.4': - resolution: {integrity: sha512-RugOvOdXfdyi5Tyv40kgQnI0byv66BFgAqjdgtAKqHoZTbTF2QqfQrFwa7cHEORJf6X2ht+l9ABLMP0dnKYsgg==} + '@esbuild/netbsd-x64@0.27.7': + resolution: {integrity: sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.27.7': - resolution: {integrity: sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==} + '@esbuild/netbsd-x64@0.28.0': + resolution: {integrity: sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] @@ -1065,14 +1065,14 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-arm64@0.27.4': - resolution: {integrity: sha512-2MyL3IAaTX+1/qP0O1SwskwcwCoOI4kV2IBX1xYnDDqthmq5ArrW94qSIKCAuRraMgPOmG0RDTA74mzYNQA9ow==} + '@esbuild/openbsd-arm64@0.27.7': + resolution: {integrity: sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-arm64@0.27.7': - resolution: {integrity: sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==} + '@esbuild/openbsd-arm64@0.28.0': + resolution: {integrity: sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] @@ -1083,14 +1083,14 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.27.4': - resolution: {integrity: sha512-u8fg/jQ5aQDfsnIV6+KwLOf1CmJnfu1ShpwqdwC0uA7ZPwFws55Ngc12vBdeUdnuWoQYx/SOQLGDcdlfXhYmXQ==} + '@esbuild/openbsd-x64@0.27.7': + resolution: {integrity: sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.27.7': - resolution: {integrity: sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==} + '@esbuild/openbsd-x64@0.28.0': + resolution: {integrity: sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] @@ -1101,14 +1101,14 @@ packages: cpu: [arm64] os: [openharmony] - '@esbuild/openharmony-arm64@0.27.4': - resolution: {integrity: sha512-JkTZrl6VbyO8lDQO3yv26nNr2RM2yZzNrNHEsj9bm6dOwwu9OYN28CjzZkH57bh4w0I2F7IodpQvUAEd1mbWXg==} + '@esbuild/openharmony-arm64@0.27.7': + resolution: {integrity: sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] - '@esbuild/openharmony-arm64@0.27.7': - resolution: {integrity: sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==} + '@esbuild/openharmony-arm64@0.28.0': + resolution: {integrity: sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] @@ -1119,14 +1119,14 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.27.4': - resolution: {integrity: sha512-/gOzgaewZJfeJTlsWhvUEmUG4tWEY2Spp5M20INYRg2ZKl9QPO3QEEgPeRtLjEWSW8FilRNacPOg8R1uaYkA6g==} + '@esbuild/sunos-x64@0.27.7': + resolution: {integrity: sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.27.7': - resolution: {integrity: sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==} + '@esbuild/sunos-x64@0.28.0': + resolution: {integrity: sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==} engines: {node: '>=18'} cpu: [x64] os: [sunos] @@ -1137,14 +1137,14 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.27.4': - resolution: {integrity: sha512-Z9SExBg2y32smoDQdf1HRwHRt6vAHLXcxD2uGgO/v2jK7Y718Ix4ndsbNMU/+1Qiem9OiOdaqitioZwxivhXYg==} + '@esbuild/win32-arm64@0.27.7': + resolution: {integrity: sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.27.7': - resolution: {integrity: sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==} + '@esbuild/win32-arm64@0.28.0': + resolution: {integrity: sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==} engines: {node: '>=18'} cpu: [arm64] os: [win32] @@ -1155,14 +1155,14 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.27.4': - resolution: {integrity: sha512-DAyGLS0Jz5G5iixEbMHi5KdiApqHBWMGzTtMiJ72ZOLhbu/bzxgAe8Ue8CTS3n3HbIUHQz/L51yMdGMeoxXNJw==} + '@esbuild/win32-ia32@0.27.7': + resolution: {integrity: sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.27.7': - resolution: {integrity: sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==} + '@esbuild/win32-ia32@0.28.0': + resolution: {integrity: sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==} engines: {node: '>=18'} cpu: [ia32] os: [win32] @@ -1173,14 +1173,14 @@ packages: cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.27.4': - resolution: {integrity: sha512-+knoa0BDoeXgkNvvV1vvbZX4+hizelrkwmGJBdT17t8FNPwG2lKemmuMZlmaNQ3ws3DKKCxpb4zRZEIp3UxFCg==} + '@esbuild/win32-x64@0.27.7': + resolution: {integrity: sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==} engines: {node: '>=18'} cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.27.7': - resolution: {integrity: sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==} + '@esbuild/win32-x64@0.28.0': + resolution: {integrity: sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -3814,13 +3814,13 @@ packages: engines: {node: '>=18'} hasBin: true - esbuild@0.27.4: - resolution: {integrity: sha512-Rq4vbHnYkK5fws5NF7MYTU68FPRE1ajX7heQ/8QXXWqNgqqJ/GkmmyxIzUnf2Sr/bakf8l54716CcMGHYhMrrQ==} + esbuild@0.27.7: + resolution: {integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==} engines: {node: '>=18'} hasBin: true - esbuild@0.27.7: - resolution: {integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==} + esbuild@0.28.0: + resolution: {integrity: sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==} engines: {node: '>=18'} hasBin: true @@ -4155,9 +4155,6 @@ packages: resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==} engines: {node: '>=18'} - get-tsconfig@4.13.7: - resolution: {integrity: sha512-7tN6rFgBlMgpBML5j8typ92BKFi2sFQvIdpAqLA2beia5avZDrMs0FLZiM5etShWq5irVyGcGMEA1jcDaK7A/Q==} - get-tsconfig@4.14.0: resolution: {integrity: sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==} @@ -5967,8 +5964,8 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - tsx@4.21.0: - resolution: {integrity: sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==} + tsx@4.22.0: + resolution: {integrity: sha512-8ccZMPD69s1AbKXx0C5ddTNZfNjwV04iIKgjZmKfKxMynEtSYcK0Lh7iQFh53fI5Yu4pb9usgAiqyPmEONaALg==} engines: {node: '>=18.0.0'} hasBin: true @@ -6726,235 +6723,235 @@ snapshots: '@esbuild/aix-ppc64@0.27.3': optional: true - '@esbuild/aix-ppc64@0.27.4': + '@esbuild/aix-ppc64@0.27.7': optional: true - '@esbuild/aix-ppc64@0.27.7': + '@esbuild/aix-ppc64@0.28.0': optional: true '@esbuild/android-arm64@0.27.3': optional: true - '@esbuild/android-arm64@0.27.4': + '@esbuild/android-arm64@0.27.7': optional: true - '@esbuild/android-arm64@0.27.7': + '@esbuild/android-arm64@0.28.0': optional: true '@esbuild/android-arm@0.27.3': optional: true - '@esbuild/android-arm@0.27.4': + '@esbuild/android-arm@0.27.7': optional: true - '@esbuild/android-arm@0.27.7': + '@esbuild/android-arm@0.28.0': optional: true '@esbuild/android-x64@0.27.3': optional: true - '@esbuild/android-x64@0.27.4': + '@esbuild/android-x64@0.27.7': optional: true - '@esbuild/android-x64@0.27.7': + '@esbuild/android-x64@0.28.0': optional: true '@esbuild/darwin-arm64@0.27.3': optional: true - '@esbuild/darwin-arm64@0.27.4': + '@esbuild/darwin-arm64@0.27.7': optional: true - '@esbuild/darwin-arm64@0.27.7': + '@esbuild/darwin-arm64@0.28.0': optional: true '@esbuild/darwin-x64@0.27.3': optional: true - '@esbuild/darwin-x64@0.27.4': + '@esbuild/darwin-x64@0.27.7': optional: true - '@esbuild/darwin-x64@0.27.7': + '@esbuild/darwin-x64@0.28.0': optional: true '@esbuild/freebsd-arm64@0.27.3': optional: true - '@esbuild/freebsd-arm64@0.27.4': + '@esbuild/freebsd-arm64@0.27.7': optional: true - '@esbuild/freebsd-arm64@0.27.7': + '@esbuild/freebsd-arm64@0.28.0': optional: true '@esbuild/freebsd-x64@0.27.3': optional: true - '@esbuild/freebsd-x64@0.27.4': + '@esbuild/freebsd-x64@0.27.7': optional: true - '@esbuild/freebsd-x64@0.27.7': + '@esbuild/freebsd-x64@0.28.0': optional: true '@esbuild/linux-arm64@0.27.3': optional: true - '@esbuild/linux-arm64@0.27.4': + '@esbuild/linux-arm64@0.27.7': optional: true - '@esbuild/linux-arm64@0.27.7': + '@esbuild/linux-arm64@0.28.0': optional: true '@esbuild/linux-arm@0.27.3': optional: true - '@esbuild/linux-arm@0.27.4': + '@esbuild/linux-arm@0.27.7': optional: true - '@esbuild/linux-arm@0.27.7': + '@esbuild/linux-arm@0.28.0': optional: true '@esbuild/linux-ia32@0.27.3': optional: true - '@esbuild/linux-ia32@0.27.4': + '@esbuild/linux-ia32@0.27.7': optional: true - '@esbuild/linux-ia32@0.27.7': + '@esbuild/linux-ia32@0.28.0': optional: true '@esbuild/linux-loong64@0.27.3': optional: true - '@esbuild/linux-loong64@0.27.4': + '@esbuild/linux-loong64@0.27.7': optional: true - '@esbuild/linux-loong64@0.27.7': + '@esbuild/linux-loong64@0.28.0': optional: true '@esbuild/linux-mips64el@0.27.3': optional: true - '@esbuild/linux-mips64el@0.27.4': + '@esbuild/linux-mips64el@0.27.7': optional: true - '@esbuild/linux-mips64el@0.27.7': + '@esbuild/linux-mips64el@0.28.0': optional: true '@esbuild/linux-ppc64@0.27.3': optional: true - '@esbuild/linux-ppc64@0.27.4': + '@esbuild/linux-ppc64@0.27.7': optional: true - '@esbuild/linux-ppc64@0.27.7': + '@esbuild/linux-ppc64@0.28.0': optional: true '@esbuild/linux-riscv64@0.27.3': optional: true - '@esbuild/linux-riscv64@0.27.4': + '@esbuild/linux-riscv64@0.27.7': optional: true - '@esbuild/linux-riscv64@0.27.7': + '@esbuild/linux-riscv64@0.28.0': optional: true '@esbuild/linux-s390x@0.27.3': optional: true - '@esbuild/linux-s390x@0.27.4': + '@esbuild/linux-s390x@0.27.7': optional: true - '@esbuild/linux-s390x@0.27.7': + '@esbuild/linux-s390x@0.28.0': optional: true '@esbuild/linux-x64@0.27.3': optional: true - '@esbuild/linux-x64@0.27.4': + '@esbuild/linux-x64@0.27.7': optional: true - '@esbuild/linux-x64@0.27.7': + '@esbuild/linux-x64@0.28.0': optional: true '@esbuild/netbsd-arm64@0.27.3': optional: true - '@esbuild/netbsd-arm64@0.27.4': + '@esbuild/netbsd-arm64@0.27.7': optional: true - '@esbuild/netbsd-arm64@0.27.7': + '@esbuild/netbsd-arm64@0.28.0': optional: true '@esbuild/netbsd-x64@0.27.3': optional: true - '@esbuild/netbsd-x64@0.27.4': + '@esbuild/netbsd-x64@0.27.7': optional: true - '@esbuild/netbsd-x64@0.27.7': + '@esbuild/netbsd-x64@0.28.0': optional: true '@esbuild/openbsd-arm64@0.27.3': optional: true - '@esbuild/openbsd-arm64@0.27.4': + '@esbuild/openbsd-arm64@0.27.7': optional: true - '@esbuild/openbsd-arm64@0.27.7': + '@esbuild/openbsd-arm64@0.28.0': optional: true '@esbuild/openbsd-x64@0.27.3': optional: true - '@esbuild/openbsd-x64@0.27.4': + '@esbuild/openbsd-x64@0.27.7': optional: true - '@esbuild/openbsd-x64@0.27.7': + '@esbuild/openbsd-x64@0.28.0': optional: true '@esbuild/openharmony-arm64@0.27.3': optional: true - '@esbuild/openharmony-arm64@0.27.4': + '@esbuild/openharmony-arm64@0.27.7': optional: true - '@esbuild/openharmony-arm64@0.27.7': + '@esbuild/openharmony-arm64@0.28.0': optional: true '@esbuild/sunos-x64@0.27.3': optional: true - '@esbuild/sunos-x64@0.27.4': + '@esbuild/sunos-x64@0.27.7': optional: true - '@esbuild/sunos-x64@0.27.7': + '@esbuild/sunos-x64@0.28.0': optional: true '@esbuild/win32-arm64@0.27.3': optional: true - '@esbuild/win32-arm64@0.27.4': + '@esbuild/win32-arm64@0.27.7': optional: true - '@esbuild/win32-arm64@0.27.7': + '@esbuild/win32-arm64@0.28.0': optional: true '@esbuild/win32-ia32@0.27.3': optional: true - '@esbuild/win32-ia32@0.27.4': + '@esbuild/win32-ia32@0.27.7': optional: true - '@esbuild/win32-ia32@0.27.7': + '@esbuild/win32-ia32@0.28.0': optional: true '@esbuild/win32-x64@0.27.3': optional: true - '@esbuild/win32-x64@0.27.4': + '@esbuild/win32-x64@0.27.7': optional: true - '@esbuild/win32-x64@0.27.7': + '@esbuild/win32-x64@0.28.0': optional: true '@eslint-community/eslint-utils@4.9.1(eslint@10.3.0(jiti@2.6.1))': @@ -8634,7 +8631,7 @@ snapshots: obug: 2.1.1 std-env: 4.1.0 tinyrainbow: 3.1.0 - vitest: 4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.8.0)(@vitest/coverage-v8@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.8.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)) + vitest: 4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.8.0)(@vitest/coverage-v8@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.8.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.0)(yaml@2.9.0)) '@vitest/expect@4.1.6': dependencies: @@ -8645,14 +8642,14 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.6(msw@2.13.4(@types/node@25.8.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0))': + '@vitest/mocker@4.1.6(msw@2.13.4(@types/node@25.8.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.0)(yaml@2.9.0))': dependencies: '@vitest/spy': 4.1.6 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: msw: 2.13.4(@types/node@25.8.0)(typescript@5.9.3) - vite: 7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0) + vite: 7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.0)(yaml@2.9.0) '@vitest/pretty-format@4.1.6': dependencies: @@ -9310,35 +9307,6 @@ snapshots: '@esbuild/win32-ia32': 0.27.3 '@esbuild/win32-x64': 0.27.3 - esbuild@0.27.4: - optionalDependencies: - '@esbuild/aix-ppc64': 0.27.4 - '@esbuild/android-arm': 0.27.4 - '@esbuild/android-arm64': 0.27.4 - '@esbuild/android-x64': 0.27.4 - '@esbuild/darwin-arm64': 0.27.4 - '@esbuild/darwin-x64': 0.27.4 - '@esbuild/freebsd-arm64': 0.27.4 - '@esbuild/freebsd-x64': 0.27.4 - '@esbuild/linux-arm': 0.27.4 - '@esbuild/linux-arm64': 0.27.4 - '@esbuild/linux-ia32': 0.27.4 - '@esbuild/linux-loong64': 0.27.4 - '@esbuild/linux-mips64el': 0.27.4 - '@esbuild/linux-ppc64': 0.27.4 - '@esbuild/linux-riscv64': 0.27.4 - '@esbuild/linux-s390x': 0.27.4 - '@esbuild/linux-x64': 0.27.4 - '@esbuild/netbsd-arm64': 0.27.4 - '@esbuild/netbsd-x64': 0.27.4 - '@esbuild/openbsd-arm64': 0.27.4 - '@esbuild/openbsd-x64': 0.27.4 - '@esbuild/openharmony-arm64': 0.27.4 - '@esbuild/sunos-x64': 0.27.4 - '@esbuild/win32-arm64': 0.27.4 - '@esbuild/win32-ia32': 0.27.4 - '@esbuild/win32-x64': 0.27.4 - esbuild@0.27.7: optionalDependencies: '@esbuild/aix-ppc64': 0.27.7 @@ -9368,6 +9336,35 @@ snapshots: '@esbuild/win32-ia32': 0.27.7 '@esbuild/win32-x64': 0.27.7 + esbuild@0.28.0: + optionalDependencies: + '@esbuild/aix-ppc64': 0.28.0 + '@esbuild/android-arm': 0.28.0 + '@esbuild/android-arm64': 0.28.0 + '@esbuild/android-x64': 0.28.0 + '@esbuild/darwin-arm64': 0.28.0 + '@esbuild/darwin-x64': 0.28.0 + '@esbuild/freebsd-arm64': 0.28.0 + '@esbuild/freebsd-x64': 0.28.0 + '@esbuild/linux-arm': 0.28.0 + '@esbuild/linux-arm64': 0.28.0 + '@esbuild/linux-ia32': 0.28.0 + '@esbuild/linux-loong64': 0.28.0 + '@esbuild/linux-mips64el': 0.28.0 + '@esbuild/linux-ppc64': 0.28.0 + '@esbuild/linux-riscv64': 0.28.0 + '@esbuild/linux-s390x': 0.28.0 + '@esbuild/linux-x64': 0.28.0 + '@esbuild/netbsd-arm64': 0.28.0 + '@esbuild/netbsd-x64': 0.28.0 + '@esbuild/openbsd-arm64': 0.28.0 + '@esbuild/openbsd-x64': 0.28.0 + '@esbuild/openharmony-arm64': 0.28.0 + '@esbuild/sunos-x64': 0.28.0 + '@esbuild/win32-arm64': 0.28.0 + '@esbuild/win32-ia32': 0.28.0 + '@esbuild/win32-x64': 0.28.0 + escalade@3.2.0: {} escape-string-regexp@1.0.5: {} @@ -9760,10 +9757,6 @@ snapshots: '@sec-ant/readable-stream': 0.4.1 is-stream: 4.0.1 - get-tsconfig@4.13.7: - dependencies: - resolve-pkg-maps: 1.0.0 - get-tsconfig@4.14.0: dependencies: resolve-pkg-maps: 1.0.0 @@ -11939,7 +11932,7 @@ snapshots: optionalDependencies: typescript: 5.9.3 - tsdown@0.22.0(tsx@4.21.0)(typescript@5.9.3)(unrun@0.2.37(synckit@0.11.12)): + tsdown@0.22.0(tsx@4.22.0)(typescript@5.9.3)(unrun@0.2.37(synckit@0.11.12)): dependencies: ansis: 4.2.0 cac: 7.0.0 @@ -11957,7 +11950,7 @@ snapshots: tree-kill: 1.2.2 unconfig-core: 7.5.0 optionalDependencies: - tsx: 4.21.0 + tsx: 4.22.0 typescript: 5.9.3 unrun: 0.2.37(synckit@0.11.12) transitivePeerDependencies: @@ -11970,10 +11963,9 @@ snapshots: tslib@2.8.1: {} - tsx@4.21.0: + tsx@4.22.0: dependencies: - esbuild: 0.27.4 - get-tsconfig: 4.13.7 + esbuild: 0.28.0 optionalDependencies: fsevents: 2.3.3 @@ -12185,17 +12177,17 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vite-tsconfig-paths@6.1.1(typescript@5.9.3)(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)): + vite-tsconfig-paths@6.1.1(typescript@5.9.3)(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.0)(yaml@2.9.0)): dependencies: debug: 4.4.3 globrex: 0.1.2 tsconfck: 3.1.6(typescript@5.9.3) - vite: 7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0) + vite: 7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.0)(yaml@2.9.0) transitivePeerDependencies: - supports-color - typescript - vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0): + vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.0)(yaml@2.9.0): dependencies: esbuild: 0.27.7 fdir: 6.5.0(picomatch@4.0.4) @@ -12207,13 +12199,13 @@ snapshots: '@types/node': 25.8.0 fsevents: 2.3.3 jiti: 2.6.1 - tsx: 4.21.0 + tsx: 4.22.0 yaml: 2.9.0 - vitest@4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.8.0)(@vitest/coverage-v8@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.8.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)): + vitest@4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.8.0)(@vitest/coverage-v8@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.8.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.0)(yaml@2.9.0)): dependencies: '@vitest/expect': 4.1.6 - '@vitest/mocker': 4.1.6(msw@2.13.4(@types/node@25.8.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0)) + '@vitest/mocker': 4.1.6(msw@2.13.4(@types/node@25.8.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.0)(yaml@2.9.0)) '@vitest/pretty-format': 4.1.6 '@vitest/runner': 4.1.6 '@vitest/snapshot': 4.1.6 @@ -12230,7 +12222,7 @@ snapshots: tinyexec: 1.1.2 tinyglobby: 0.2.16 tinyrainbow: 3.1.0 - vite: 7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.9.0) + vite: 7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.0)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: '@edge-runtime/vm': 3.2.0 From 0a00732f7750e0e575604048bdf5b911da833deb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 16 May 2026 23:56:39 +0800 Subject: [PATCH 426/439] chore(deps-dev): bump eslint in the eslint group across 1 directory (#22029) Bumps the eslint group with 1 update in the / directory: [eslint](https://github.com/eslint/eslint). Updates `eslint` from 10.3.0 to 10.4.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Commits](https://github.com/eslint/eslint/compare/v10.3.0...v10.4.0) --- updated-dependencies: - dependency-name: eslint dependency-version: 10.4.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: eslint ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 158 ++++++++++++++++++++++++++----------------------- 2 files changed, 85 insertions(+), 75 deletions(-) diff --git a/package.json b/package.json index 1baeb973b462..453d56a7a676 100644 --- a/package.json +++ b/package.json @@ -174,7 +174,7 @@ "@vitest/coverage-v8": "4.1.6", "discord-api-types": "0.38.47", "domhandler": "6.0.1", - "eslint": "10.3.0", + "eslint": "10.4.0", "eslint-nibble": "9.1.1", "eslint-plugin-import-x": "4.16.2", "eslint-plugin-n": "18.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 039d99363629..3d7b5f17693b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -304,13 +304,13 @@ importers: version: 3.3.5 '@eslint/js': specifier: 10.0.1 - version: 10.0.1(eslint@10.3.0(jiti@2.6.1)) + version: 10.0.1(eslint@10.4.0(jiti@2.6.1)) '@oxlint/plugins': specifier: 1.64.0 version: 1.64.0 '@stylistic/eslint-plugin': specifier: 5.10.0 - version: 5.10.0(eslint@10.3.0(jiti@2.6.1)) + version: 5.10.0(eslint@10.4.0(jiti@2.6.1)) '@types/aes-js': specifier: 3.1.4 version: 3.1.4 @@ -361,10 +361,10 @@ importers: version: 2.16.1 '@typescript-eslint/eslint-plugin': specifier: 8.59.3 - version: 8.59.3(@typescript-eslint/parser@8.59.3(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3) + version: 8.59.3(@typescript-eslint/parser@8.59.3(eslint@10.4.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.4.0(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: 8.59.3 - version: 8.59.3(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3) + version: 8.59.3(eslint@10.4.0(jiti@2.6.1))(typescript@5.9.3) '@vercel/nft': specifier: 1.5.0 version: 1.5.0(rollup@4.60.4) @@ -378,26 +378,26 @@ importers: specifier: 6.0.1 version: 6.0.1 eslint: - specifier: 10.3.0 - version: 10.3.0(jiti@2.6.1) + specifier: 10.4.0 + version: 10.4.0(jiti@2.6.1) eslint-nibble: specifier: 9.1.1 - version: 9.1.1(@types/node@25.8.0)(eslint@10.3.0(jiti@2.6.1)) + version: 9.1.1(@types/node@25.8.0)(eslint@10.4.0(jiti@2.6.1)) eslint-plugin-import-x: specifier: 4.16.2 - version: 4.16.2(@typescript-eslint/utils@8.59.3(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.3.0(jiti@2.6.1)) + version: 4.16.2(@typescript-eslint/utils@8.59.3(eslint@10.4.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.4.0(jiti@2.6.1)) eslint-plugin-n: specifier: 18.0.1 - version: 18.0.1(eslint@10.3.0(jiti@2.6.1))(ts-declaration-location@1.0.7(typescript@5.9.3))(typescript@5.9.3) + version: 18.0.1(eslint@10.4.0(jiti@2.6.1))(ts-declaration-location@1.0.7(typescript@5.9.3))(typescript@5.9.3) eslint-plugin-simple-import-sort: specifier: 13.0.0 - version: 13.0.0(eslint@10.3.0(jiti@2.6.1)) + version: 13.0.0(eslint@10.4.0(jiti@2.6.1)) eslint-plugin-unicorn: specifier: 64.0.0 - version: 64.0.0(eslint@10.3.0(jiti@2.6.1)) + version: 64.0.0(eslint@10.4.0(jiti@2.6.1)) eslint-plugin-yml: specifier: 3.3.2 - version: 3.3.2(eslint@10.3.0(jiti@2.6.1)) + version: 3.3.2(eslint@10.4.0(jiti@2.6.1)) fast-string-width: specifier: 3.0.2 version: 3.0.2 @@ -1199,8 +1199,8 @@ packages: resolution: {integrity: sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/config-helpers@0.5.5': - resolution: {integrity: sha512-eIJYKTCECbP/nsKaaruF6LW967mtbQbsw4JTtSVkUQc9MneSkbrgPJAbKl9nWr0ZeowV8BfsarBmPpBzGelA2w==} + '@eslint/config-helpers@0.6.0': + resolution: {integrity: sha512-ii6Bw9jJ2zi2cWA2Z+9/QZ/+3DX6kwaV5Q986D/CdP3Lap3w/pgQZ373FV7byY/i7L4IRH/G43I5dz1ClsCbpA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} '@eslint/core@1.2.1': @@ -3177,6 +3177,9 @@ packages: ajv@6.14.0: resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==} + ajv@6.15.0: + resolution: {integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==} + ansi-escapes@7.3.0: resolution: {integrity: sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==} engines: {node: '>=18'} @@ -3316,8 +3319,8 @@ packages: brace-expansion@2.1.0: resolution: {integrity: sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==} - brace-expansion@5.0.5: - resolution: {integrity: sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==} + brace-expansion@5.0.6: + resolution: {integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==} engines: {node: 18 || 20 || >=22} browserslist@4.28.2: @@ -3941,8 +3944,8 @@ packages: resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - eslint@10.3.0: - resolution: {integrity: sha512-XbEXaRva5cF0ZQB8w6MluHA0kZZfV2DuCMJ3ozyEOHLwDpZX2Lmm/7Pp0xdJmI0GL1W05VH5VwIFHEm1Vcw2gw==} + eslint@10.4.0: + resolution: {integrity: sha512-loXy6bWOoP3EP6JA7jo6p5jMpBJmHmsNZM5SFRHLdh1MGOPurMnNBj4ZlAbaqUAaQWbCr7jHV4P7gzAyryZWkQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} hasBin: true peerDependencies: @@ -6954,9 +6957,9 @@ snapshots: '@esbuild/win32-x64@0.28.0': optional: true - '@eslint-community/eslint-utils@4.9.1(eslint@10.3.0(jiti@2.6.1))': + '@eslint-community/eslint-utils@4.9.1(eslint@10.4.0(jiti@2.6.1))': dependencies: - eslint: 10.3.0(jiti@2.6.1) + eslint: 10.4.0(jiti@2.6.1) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.2': {} @@ -6969,7 +6972,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/config-helpers@0.5.5': + '@eslint/config-helpers@0.6.0': dependencies: '@eslint/core': 1.2.1 @@ -6991,9 +6994,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@10.0.1(eslint@10.3.0(jiti@2.6.1))': + '@eslint/js@10.0.1(eslint@10.4.0(jiti@2.6.1))': optionalDependencies: - eslint: 10.3.0(jiti@2.6.1) + eslint: 10.4.0(jiti@2.6.1) '@eslint/object-schema@3.0.5': {} @@ -8037,7 +8040,7 @@ snapshots: '@rollup/pluginutils@5.3.0(rollup@4.60.4)': dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.9 estree-walker: 2.0.2 picomatch: 4.0.4 optionalDependencies: @@ -8247,11 +8250,11 @@ snapshots: '@standard-schema/spec@1.1.0': {} - '@stylistic/eslint-plugin@5.10.0(eslint@10.3.0(jiti@2.6.1))': + '@stylistic/eslint-plugin@5.10.0(eslint@10.4.0(jiti@2.6.1))': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.3.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.0(jiti@2.6.1)) '@typescript-eslint/types': 8.58.0 - eslint: 10.3.0(jiti@2.6.1) + eslint: 10.4.0(jiti@2.6.1) eslint-visitor-keys: 4.2.1 espree: 10.4.0 estraverse: 5.3.0 @@ -8448,15 +8451,15 @@ snapshots: '@types/unist@3.0.3': {} - '@typescript-eslint/eslint-plugin@8.59.3(@typescript-eslint/parser@8.59.3(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.59.3(@typescript-eslint/parser@8.59.3(eslint@10.4.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.4.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.59.3(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.59.3(eslint@10.4.0(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/scope-manager': 8.59.3 - '@typescript-eslint/type-utils': 8.59.3(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/utils': 8.59.3(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/type-utils': 8.59.3(eslint@10.4.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.59.3(eslint@10.4.0(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/visitor-keys': 8.59.3 - eslint: 10.3.0(jiti@2.6.1) + eslint: 10.4.0(jiti@2.6.1) ignore: 7.0.5 natural-compare: 1.4.0 ts-api-utils: 2.5.0(typescript@5.9.3) @@ -8464,14 +8467,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.59.3(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/parser@8.59.3(eslint@10.4.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@typescript-eslint/scope-manager': 8.59.3 '@typescript-eslint/types': 8.59.3 '@typescript-eslint/typescript-estree': 8.59.3(typescript@5.9.3) '@typescript-eslint/visitor-keys': 8.59.3 debug: 4.4.3 - eslint: 10.3.0(jiti@2.6.1) + eslint: 10.4.0(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -8494,13 +8497,13 @@ snapshots: dependencies: typescript: 5.9.3 - '@typescript-eslint/type-utils@8.59.3(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.59.3(eslint@10.4.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@typescript-eslint/types': 8.59.3 '@typescript-eslint/typescript-estree': 8.59.3(typescript@5.9.3) - '@typescript-eslint/utils': 8.59.3(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.59.3(eslint@10.4.0(jiti@2.6.1))(typescript@5.9.3) debug: 4.4.3 - eslint: 10.3.0(jiti@2.6.1) + eslint: 10.4.0(jiti@2.6.1) ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: @@ -8525,13 +8528,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.59.3(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/utils@8.59.3(eslint@10.4.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.3.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.0(jiti@2.6.1)) '@typescript-eslint/scope-manager': 8.59.3 '@typescript-eslint/types': 8.59.3 '@typescript-eslint/typescript-estree': 8.59.3(typescript@5.9.3) - eslint: 10.3.0(jiti@2.6.1) + eslint: 10.4.0(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -8716,6 +8719,13 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 + ajv@6.15.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + ansi-escapes@7.3.0: dependencies: environment: 1.1.0 @@ -8828,7 +8838,7 @@ snapshots: dependencies: balanced-match: 1.0.2 - brace-expansion@5.0.5: + brace-expansion@5.0.6: dependencies: balanced-match: 4.0.4 @@ -9381,14 +9391,14 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-compat-utils@0.5.1(eslint@10.3.0(jiti@2.6.1)): + eslint-compat-utils@0.5.1(eslint@10.4.0(jiti@2.6.1)): dependencies: - eslint: 10.3.0(jiti@2.6.1) + eslint: 10.4.0(jiti@2.6.1) semver: 7.7.4 - eslint-filtered-fix@0.3.0(eslint@10.3.0(jiti@2.6.1)): + eslint-filtered-fix@0.3.0(eslint@10.4.0(jiti@2.6.1)): dependencies: - eslint: 10.3.0(jiti@2.6.1) + eslint: 10.4.0(jiti@2.6.1) optionator: 0.9.4 eslint-import-context@0.1.9(unrs-resolver@1.11.1): @@ -9407,34 +9417,34 @@ snapshots: - supports-color optional: true - eslint-nibble@9.1.1(@types/node@25.8.0)(eslint@10.3.0(jiti@2.6.1)): + eslint-nibble@9.1.1(@types/node@25.8.0)(eslint@10.4.0(jiti@2.6.1)): dependencies: '@babel/code-frame': 7.29.0 '@inquirer/checkbox': 4.3.2(@types/node@25.8.0) '@inquirer/confirm': 5.1.21(@types/node@25.8.0) '@inquirer/select': 4.4.2(@types/node@25.8.0) - eslint: 10.3.0(jiti@2.6.1) - eslint-filtered-fix: 0.3.0(eslint@10.3.0(jiti@2.6.1)) + eslint: 10.4.0(jiti@2.6.1) + eslint-filtered-fix: 0.3.0(eslint@10.4.0(jiti@2.6.1)) optionator: 0.9.4 text-table: 0.2.0 yoctocolors: 2.1.2 transitivePeerDependencies: - '@types/node' - eslint-plugin-es-x@7.8.0(eslint@10.3.0(jiti@2.6.1)): + eslint-plugin-es-x@7.8.0(eslint@10.4.0(jiti@2.6.1)): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.3.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.0(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.2 - eslint: 10.3.0(jiti@2.6.1) - eslint-compat-utils: 0.5.1(eslint@10.3.0(jiti@2.6.1)) + eslint: 10.4.0(jiti@2.6.1) + eslint-compat-utils: 0.5.1(eslint@10.4.0(jiti@2.6.1)) - eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.59.3(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.3.0(jiti@2.6.1)): + eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.59.3(eslint@10.4.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.4.0(jiti@2.6.1)): dependencies: '@package-json/types': 0.0.12 '@typescript-eslint/types': 8.58.0 comment-parser: 1.4.6 debug: 4.4.3 - eslint: 10.3.0(jiti@2.6.1) + eslint: 10.4.0(jiti@2.6.1) eslint-import-context: 0.1.9(unrs-resolver@1.11.1) is-glob: 4.0.3 minimatch: 10.2.5 @@ -9442,17 +9452,17 @@ snapshots: stable-hash-x: 0.2.0 unrs-resolver: 1.11.1 optionalDependencies: - '@typescript-eslint/utils': 8.59.3(eslint@10.3.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.59.3(eslint@10.4.0(jiti@2.6.1))(typescript@5.9.3) eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-n@18.0.1(eslint@10.3.0(jiti@2.6.1))(ts-declaration-location@1.0.7(typescript@5.9.3))(typescript@5.9.3): + eslint-plugin-n@18.0.1(eslint@10.4.0(jiti@2.6.1))(ts-declaration-location@1.0.7(typescript@5.9.3))(typescript@5.9.3): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.3.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.0(jiti@2.6.1)) enhanced-resolve: 5.21.0 - eslint: 10.3.0(jiti@2.6.1) - eslint-plugin-es-x: 7.8.0(eslint@10.3.0(jiti@2.6.1)) + eslint: 10.4.0(jiti@2.6.1) + eslint-plugin-es-x: 7.8.0(eslint@10.4.0(jiti@2.6.1)) get-tsconfig: 4.14.0 globals: 15.15.0 globrex: 0.1.2 @@ -9462,19 +9472,19 @@ snapshots: ts-declaration-location: 1.0.7(typescript@5.9.3) typescript: 5.9.3 - eslint-plugin-simple-import-sort@13.0.0(eslint@10.3.0(jiti@2.6.1)): + eslint-plugin-simple-import-sort@13.0.0(eslint@10.4.0(jiti@2.6.1)): dependencies: - eslint: 10.3.0(jiti@2.6.1) + eslint: 10.4.0(jiti@2.6.1) - eslint-plugin-unicorn@64.0.0(eslint@10.3.0(jiti@2.6.1)): + eslint-plugin-unicorn@64.0.0(eslint@10.4.0(jiti@2.6.1)): dependencies: '@babel/helper-validator-identifier': 7.28.5 - '@eslint-community/eslint-utils': 4.9.1(eslint@10.3.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.0(jiti@2.6.1)) change-case: 5.4.4 ci-info: 4.4.0 clean-regexp: 1.0.0 core-js-compat: 3.49.0 - eslint: 10.3.0(jiti@2.6.1) + eslint: 10.4.0(jiti@2.6.1) find-up-simple: 1.0.1 globals: 17.6.0 indent-string: 5.0.0 @@ -9486,21 +9496,21 @@ snapshots: semver: 7.7.4 strip-indent: 4.1.1 - eslint-plugin-yml@3.3.2(eslint@10.3.0(jiti@2.6.1)): + eslint-plugin-yml@3.3.2(eslint@10.4.0(jiti@2.6.1)): dependencies: '@eslint/core': 1.2.1 '@eslint/plugin-kit': 0.7.1 '@ota-meshi/ast-token-store': 0.3.0 diff-sequences: 29.6.3 escape-string-regexp: 5.0.0 - eslint: 10.3.0(jiti@2.6.1) + eslint: 10.4.0(jiti@2.6.1) natural-compare: 1.4.0 yaml-eslint-parser: 2.0.0 eslint-scope@9.1.2: dependencies: '@types/esrecurse': 4.3.1 - '@types/estree': 1.0.8 + '@types/estree': 1.0.9 esrecurse: 4.3.0 estraverse: 5.3.0 @@ -9510,19 +9520,19 @@ snapshots: eslint-visitor-keys@5.0.1: {} - eslint@10.3.0(jiti@2.6.1): + eslint@10.4.0(jiti@2.6.1): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.3.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.0(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.2 '@eslint/config-array': 0.23.5 - '@eslint/config-helpers': 0.5.5 + '@eslint/config-helpers': 0.6.0 '@eslint/core': 1.2.1 '@eslint/plugin-kit': 0.7.1 '@humanfs/node': 0.16.8 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 - '@types/estree': 1.0.8 - ajv: 6.14.0 + '@types/estree': 1.0.9 + ajv: 6.15.0 cross-spawn: 7.0.6 debug: 4.4.3 escape-string-regexp: 4.0.0 @@ -9883,7 +9893,7 @@ snapshots: har-validator@5.1.5: dependencies: - ajv: 6.14.0 + ajv: 6.15.0 har-schema: 2.0.0 has-flag@4.0.0: {} @@ -10802,7 +10812,7 @@ snapshots: minimatch@10.2.5: dependencies: - brace-expansion: 5.0.5 + brace-expansion: 5.0.6 minimatch@3.1.5: dependencies: From 9a62bd570a6664301df111fb7bde388c49674430 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 17 May 2026 00:48:35 +0800 Subject: [PATCH 427/439] chore(deps-dev): bump the oxc group across 1 directory with 4 updates (#22030) * chore(deps-dev): bump the oxc group across 1 directory with 4 updates Bumps the oxc group with 4 updates in the / directory: [@oxlint/plugins](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint-plugins), [oxfmt](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt), [oxlint](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint) and [oxlint-plugin-eslint](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint-plugin-eslint). Updates `@oxlint/plugins` from 1.64.0 to 1.65.0 - [Release notes](https://github.com/oxc-project/oxc/releases) - [Changelog](https://github.com/oxc-project/oxc/blob/main/CHANGELOG.md) - [Commits](https://github.com/oxc-project/oxc/commits/apps_v1.65.0/npm/oxlint-plugins) Updates `oxfmt` from 0.49.0 to 0.50.0 - [Release notes](https://github.com/oxc-project/oxc/releases) - [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxfmt/CHANGELOG.md) - [Commits](https://github.com/oxc-project/oxc/commits/oxfmt_v0.50.0/npm/oxfmt) Updates `oxlint` from 1.64.0 to 1.65.0 - [Release notes](https://github.com/oxc-project/oxc/releases) - [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxlint/CHANGELOG.md) - [Commits](https://github.com/oxc-project/oxc/commits/oxlint_v1.65.0/npm/oxlint) Updates `oxlint-plugin-eslint` from 1.64.0 to 1.65.0 - [Release notes](https://github.com/oxc-project/oxc/releases) - [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxlint-plugin-eslint/CHANGELOG.md) - [Commits](https://github.com/oxc-project/oxc/commits/apps_v1.65.0/npm/oxlint-plugin-eslint) --- updated-dependencies: - dependency-name: "@oxlint/plugins" dependency-version: 1.65.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: oxc - dependency-name: oxfmt dependency-version: 0.50.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: oxc - dependency-name: oxlint dependency-version: 1.65.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: oxc - dependency-name: oxlint-plugin-eslint dependency-version: 1.65.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: oxc ... Signed-off-by: dependabot[bot] * chore: use native prefer-arrow-callback --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .oxlintrc.json | 2 +- package.json | 8 +- pnpm-lock.yaml | 346 ++++++++++++++++++++++++------------------------- 3 files changed, 178 insertions(+), 178 deletions(-) diff --git a/.oxlintrc.json b/.oxlintrc.json index 83ae484d17f1..e65aeb3e85ba 100644 --- a/.oxlintrc.json +++ b/.oxlintrc.json @@ -385,7 +385,7 @@ "no-useless-rename": "error", "no-var": "error", "eslint-js/object-shorthand": "error", // use jsPlugins - "eslint-js/prefer-arrow-callback": "error", // use jsPlugins + "prefer-arrow-callback": "error", "prefer-const": "error", "prefer-object-has-own": "error", "prefer-regex-literals": [ diff --git a/package.json b/package.json index 453d56a7a676..88438833855b 100644 --- a/package.json +++ b/package.json @@ -150,7 +150,7 @@ "@cloudflare/workers-types": "4.20260516.1", "@eslint/eslintrc": "3.3.5", "@eslint/js": "10.0.1", - "@oxlint/plugins": "1.64.0", + "@oxlint/plugins": "1.65.0", "@stylistic/eslint-plugin": "5.10.0", "@types/aes-js": "3.1.4", "@types/babel__preset-env": "7.10.0", @@ -192,9 +192,9 @@ "mockdate": "3.0.5", "msw": "2.13.4", "node-network-devtools": "1.0.30", - "oxfmt": "0.49.0", - "oxlint": "1.64.0", - "oxlint-plugin-eslint": "1.64.0", + "oxfmt": "0.50.0", + "oxlint": "1.65.0", + "oxlint-plugin-eslint": "1.65.0", "oxlint-tsgolint": "0.22.1", "remark": "15.0.1", "remark-gfm": "4.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3d7b5f17693b..32f6ec1e4764 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -306,8 +306,8 @@ importers: specifier: 10.0.1 version: 10.0.1(eslint@10.4.0(jiti@2.6.1)) '@oxlint/plugins': - specifier: 1.64.0 - version: 1.64.0 + specifier: 1.65.0 + version: 1.65.0 '@stylistic/eslint-plugin': specifier: 5.10.0 version: 5.10.0(eslint@10.4.0(jiti@2.6.1)) @@ -432,14 +432,14 @@ importers: specifier: 1.0.30 version: 1.0.30(undici@7.25.0)(utf-8-validate@5.0.10) oxfmt: - specifier: 0.49.0 - version: 0.49.0 + specifier: 0.50.0 + version: 0.50.0 oxlint: - specifier: 1.64.0 - version: 1.64.0(oxlint-tsgolint@0.22.1) + specifier: 1.65.0 + version: 1.65.0(oxlint-tsgolint@0.22.1) oxlint-plugin-eslint: - specifier: 1.64.0 - version: 1.64.0 + specifier: 1.65.0 + version: 1.65.0 oxlint-tsgolint: specifier: 0.22.1 version: 0.22.1 @@ -1937,124 +1937,124 @@ packages: '@oxc-project/types@0.129.0': resolution: {integrity: sha512-3oz8m3FGdr2nDXVqmFUw7jolKliC4MoyXYIG2c7gpjBnzUWQpUGIYcXYKxTdTi+N2jusvt610ckTMkxdwHkYEg==} - '@oxfmt/binding-android-arm-eabi@0.49.0': - resolution: {integrity: sha512-HbifJ84prIh9+55CTPAU35JdRQrwg47y16cGerCC+iejSKOuHXYo2WDql6l7cQlzrYVtc3f4UWY+dBj2lRmOeA==} + '@oxfmt/binding-android-arm-eabi@0.50.0': + resolution: {integrity: sha512-ICXQVKrDvsWUtfx6EiVJxfWrajKTwTfRV8vz2XiMkxZeuCKJLgD4YAj6dE3BWvpqDlkVkie4VSTAtMUWO9LDXg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@oxfmt/binding-android-arm64@0.49.0': - resolution: {integrity: sha512-Ef7SKJqAaH2d7E6eXZZa2OffIShbhFMxnGK0zd93p4qiyTJr75B0qf7lrPD+qQOwcf04BrjYJ0JUxq8d5+yZwg==} + '@oxfmt/binding-android-arm64@0.50.0': + resolution: {integrity: sha512-quwjLQFkuW6OwLHeDeIXsTzOmipQFQbqsYN9HLk2B5I01IlAQZHP1UiLIg0O7pP+dUgPD2AD7SCYA3gs6NH5/g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxfmt/binding-darwin-arm64@0.49.0': - resolution: {integrity: sha512-8x5DN9CsFfb432sHa9NyqX5XisGUdA53LPEGSdv/VniS+v4uEOR8Orv7A9QSB98Xxgp0t6r31DzQA/wpIobGqQ==} + '@oxfmt/binding-darwin-arm64@0.50.0': + resolution: {integrity: sha512-ikU5umElcMi78/TNI334wtjr5WZ5F4nWa1aIDseAKKGL0W3ygxeYKkrIJ0fggWa8MOon66BmG3xCqmX1m9YAOw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxfmt/binding-darwin-x64@0.49.0': - resolution: {integrity: sha512-e0+DSVzk4ewhMVKNYDaRTmP81jNMBWR1X9al0cVKWS+hDM/dElNqD5zjTOCuLOZc4oOdp2Gx2ldrVL+yYo9TZQ==} + '@oxfmt/binding-darwin-x64@0.50.0': + resolution: {integrity: sha512-WT4MOYG4mv9IXrH0m60vHsJh+rRMPSOKTQmwDpwmgQ+DuW/i5dU4pqc0HDO5uclO5vjz5IFX5z/taW86LSVe/g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxfmt/binding-freebsd-x64@0.49.0': - resolution: {integrity: sha512-W+mjtYtrQvFbXT/uNT+221OBhGRZ8UqNsLxjTWsjZ4GsQnRdvRC/N2NCK86BcamWr7lsTxwpwN3PULnr78sgcQ==} + '@oxfmt/binding-freebsd-x64@0.50.0': + resolution: {integrity: sha512-gH0rycVXqV4juWkvLs2uPMtTyppDc7qEUVzXAxnQ7FpcSZNXqKowUgtjH8q67ngj416r8+4NnAlyR/D35zwwhQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxfmt/binding-linux-arm-gnueabihf@0.49.0': - resolution: {integrity: sha512-Rtv6UevV7czDlLqil+NZUe4d8gs8jQo/zScSpumwyf7I+fSdLc+hc8AF3MQC7ymxSMMD9+vfiqQlsIf7wOAzXA==} + '@oxfmt/binding-linux-arm-gnueabihf@0.50.0': + resolution: {integrity: sha512-wL/k+o0hiTeRvi/gPzeC1L/yTHTXIeHDKWU09s2zTBmv7ma59wTm+fADNSGYxhJQDxyavQbwTf1QpW3Zj924tQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxfmt/binding-linux-arm-musleabihf@0.49.0': - resolution: {integrity: sha512-sBi+8C/Q/MdKa5FL8ibAUCdhFBGFH7HFN/Qoyd5xQbZ/0ky3NMPpKfIBpaH0lhK2dXkGLczVQUoZ+xuNSerCdQ==} + '@oxfmt/binding-linux-arm-musleabihf@0.50.0': + resolution: {integrity: sha512-Y59FKqoUM3Gf00E395b4ixfWyJGwO2GzaZawF5MZoVWcb3f6CkWUXyao0jyOvoIxDMzMybcVRuXyG7ih/Nxweg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxfmt/binding-linux-arm64-gnu@0.49.0': - resolution: {integrity: sha512-JIfWenFhlzx+O8YygyZhoHFzTsdgDhxhbDRnE2iJLnnM5pWKScFvPECO2vOlA7JqJ/9S1g3uzEKuRCkHFwTjvA==} + '@oxfmt/binding-linux-arm64-gnu@0.50.0': + resolution: {integrity: sha512-OvXbfTjMignXWyJXg/NOFsiy996vFe8wb9tkxJaUq8ylq0XrzJg3ttavC5Tcmm6F8/GUs2r3XFJWWu9q/27uYw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-arm64-musl@0.49.0': - resolution: {integrity: sha512-iNzkMPG18jPkwBOZ4/HEjwqfzAjq4RrUQ0CgId/fC1ENvYD5jLVAaU/gWgpiqP1ys07kxSsSggDd1fp3E7mQHw==} + '@oxfmt/binding-linux-arm64-musl@0.50.0': + resolution: {integrity: sha512-rqmvHZm7vMa3NLYa0khwkhReCmp9tqKnF23TFZ7S5cYJLvIE4b0k8famWE7kO897/DXznJe675n5SohFBggbxA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@oxfmt/binding-linux-ppc64-gnu@0.49.0': - resolution: {integrity: sha512-BPHA/NN3LvoIXiid+iz3BHt5V0Rzx0tXAqRUovwE1NsbDaLG9e8mtv7evDGRIkVQacqTDBv0XL25THHsxSJosQ==} + '@oxfmt/binding-linux-ppc64-gnu@0.50.0': + resolution: {integrity: sha512-49bAdYbMSde42tzPDtuHnBWzOgmoS0PT9THCjvMnDVYMQYiHzPc2Mv5rkpBHVQOXM+PHfafJlxgK0anXSWBVvw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-riscv64-gnu@0.49.0': - resolution: {integrity: sha512-3Eroshe+s69htC9JIL0+zLGQczLtRKezkMhwqQC21VC5Z/fuLvzLfbAOLgJLUq601H8gDYjy7deYycfOBjCvWg==} + '@oxfmt/binding-linux-riscv64-gnu@0.50.0': + resolution: {integrity: sha512-VFT25/6kckkIM62KeWB2bi+xCEmC/zC+DcMaIpEfaio8ulkGDLSiTz11TyK0eqgTl3x5OklYEGDWohvAgOr8Bw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-riscv64-musl@0.49.0': - resolution: {integrity: sha512-fnaERGgsxGm0lKAmO72EYR4BA3qBnzBTJBTi6EtUMq1D4R7EexRBMU4voXnx4TXla3SEDl9x4uNp/18SbkPjGg==} + '@oxfmt/binding-linux-riscv64-musl@0.50.0': + resolution: {integrity: sha512-BBJMuNy6jjkXjUUINF5UTQqb/nvjmtJad43Gp7bab0AAURAdthhJvduR7rHpWInpWYiaMzYsdrmURNcrmpxdZA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [musl] - '@oxfmt/binding-linux-s390x-gnu@0.49.0': - resolution: {integrity: sha512-rBwasMl1Uul1MCCeTGEFKnOTL7VUxHf+634jWStrQAbzpBJgd5Yz5m4F7exVCsoI8PHn57dNjssXagXLCLB5yA==} + '@oxfmt/binding-linux-s390x-gnu@0.50.0': + resolution: {integrity: sha512-Xd4y+yjAYHKmryXhyUUwbyRD01iKfcvI74iE01L6p4F8SwjhZQXDshK+T8PcrPZLiFqH263P5xqJk94amjkjzQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-x64-gnu@0.49.0': - resolution: {integrity: sha512-BoC/F9xHe2y/deuBGA5Aw7bes07OD2gcL2wlpzTrfImR92vPP7S/k3LBTyspQZCNIVNdagkELcqKELwMLGIfAg==} + '@oxfmt/binding-linux-x64-gnu@0.50.0': + resolution: {integrity: sha512-Qp96rYJru7l++7mk4R+eh8qq9GFfFAMdmoN6VGoRHI8AA1XMnUIzH4u+zOcKZZwY+irHdsaBldDearwB4nOH7A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-x64-musl@0.49.0': - resolution: {integrity: sha512-umY6jFADAo/oztFKl8D/S6vSrG6oBpEskcentiRuz42kZVU2kfDXMWCYavxyZR2bwPjqkHpcHZ6EZFiH3Qj9ZA==} + '@oxfmt/binding-linux-x64-musl@0.50.0': + resolution: {integrity: sha512-5XLGp+yd5w2Key5LMqJO+X3XVsJKgeeUKljy32+MBF/J/JZ5m8WHl6dI5eOQOr3ixopxPiXIyDAxn3slI3UXiQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@oxfmt/binding-openharmony-arm64@0.49.0': - resolution: {integrity: sha512-J85zQMiw2pXiGPK+OusmDvSnJ/dgpgN7VgmB2zOBtgS8F+nsOUfSg9ZEBrwbQscjZ7tkPbm38CG4VF5f53MsiA==} + '@oxfmt/binding-openharmony-arm64@0.50.0': + resolution: {integrity: sha512-QAxwzh7+GHugCD7WuERolVs8TKQwXNIAZXAHHTecbKVc9oWBkWzOiLauQuezXS57tVcof5zhi1IjZ8tOV0htTg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@oxfmt/binding-win32-arm64-msvc@0.49.0': - resolution: {integrity: sha512-38K67XR++CoFFORDd4sMFwUVAnD6msYBdGTei+qvKGrRPO6S2PbrYPNL/eQQ1RgnnxOegNba0YQwg6uRkNcw6A==} + '@oxfmt/binding-win32-arm64-msvc@0.50.0': + resolution: {integrity: sha512-3nKN/kqClm9iCFWTwtJ9UpR5SGyExp5l3nw6uIiBt+3XitQtszin+vjHrL7JHfDksZ7Svigdaow2zqz/IKCfqw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxfmt/binding-win32-ia32-msvc@0.49.0': - resolution: {integrity: sha512-rXVe0HICwQF0dBgbQtBCoYf8x/SidPIdhyQl+iPuJlV7suV+qDv7yUEB3wQ4qC3nOeNxz287SwFXKzyr0kWgEg==} + '@oxfmt/binding-win32-ia32-msvc@0.50.0': + resolution: {integrity: sha512-3r6XZ8+X6qlLbXaPW2NygfiAWSpKbkE36pAVzS83mY+cYY+pSMalJ+qnCgkr92tr+Iqv988XKQ1CpARTg9ITbQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@oxfmt/binding-win32-x64-msvc@0.49.0': - resolution: {integrity: sha512-gwWLwSEmBBfIK/Wh7GGd658161o4RKAvHWRaRQbJm571iQXGKfyr7UKsI1vsWvDlNLc30CxJDc8mMmCvJ/kczQ==} + '@oxfmt/binding-win32-x64-msvc@0.50.0': + resolution: {integrity: sha512-BSE8D8KsvquMG9vU+Qt4qGuoOcZ36rxU5S6ZkHNguj+MlWkXWCBETnno3yJ9CfWvfCrbmieaN9LK6hdcdHNZ/w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -2089,130 +2089,130 @@ packages: cpu: [x64] os: [win32] - '@oxlint/binding-android-arm-eabi@1.64.0': - resolution: {integrity: sha512-2r6Nq3XXGLHEXKkSj8JtmJ6N4gDw431DPFOg0ZoJHlNjnG6HVMm/ksQ10m0HJ8WBvwgMe1L50UHPaYZutCRPCw==} + '@oxlint/binding-android-arm-eabi@1.65.0': + resolution: {integrity: sha512-jDVaGNURT5pEA9qcabh6WusIoBNybOMMDPCx+EFt+gxo6rVvoUf0+73Xy5x81+ZrxU+ewk5uRBYifjy5pgkcnA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@oxlint/binding-android-arm64@1.64.0': - resolution: {integrity: sha512-ePJMpePgg7fBv+L/hVx1xXRU5/5gd5m0obLA6hPEfLXF3GjpR8idIDbY1dhQYhyz1ms2wdTccSboo6KEd2Oxtg==} + '@oxlint/binding-android-arm64@1.65.0': + resolution: {integrity: sha512-v0z80IWNA7c9RhUydq9YprBxCVZrQ6Ixls2tdxUC1F/1FFqSfa7xTX+EJf0mj6+BKRg2zWXqWfcbJUnETlLlIw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxlint/binding-darwin-arm64@1.64.0': - resolution: {integrity: sha512-U4DMLQd10gJLuoSTLSGbfv3bGjTlUNsScm9Dgb8wwBqmCzidf1pE1pXV4doGNxqwH3KtVng1AGTINA0NvkGLvQ==} + '@oxlint/binding-darwin-arm64@1.65.0': + resolution: {integrity: sha512-pL/mG/5gMzBwp1gdc5+Cwi87F9j3XRnPxHGyVj5Zd+dCEV5YkKt0L70PB3EGmEEHxgn4H+jnMS3xLuXs6mZW/Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxlint/binding-darwin-x64@1.64.0': - resolution: {integrity: sha512-GoRIL48QWm4/TAvjN8pB1nAG+1/uqc9EdnWT9zqHeb6wsmjZtywj8VRe5aGW47Fdb64YtLOsdLqVxOvQuz98Wg==} + '@oxlint/binding-darwin-x64@1.65.0': + resolution: {integrity: sha512-jVTneaeuHtqTrKYnhrdH1buhnSorinvpy1sv43ayclfWx/e/DfdRWv+h1fopJcHQbYr5WMcZMmDvnfEBkPZ+1A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxlint/binding-freebsd-x64@1.64.0': - resolution: {integrity: sha512-5dFkv4tkg7PxJJGS9/OjrJwjhuHczrd3OQOkRE0wHcLM+ncUnULtzEPWjqGOxTXxZnLWcB91bGiIznx89TVXyQ==} + '@oxlint/binding-freebsd-x64@1.65.0': + resolution: {integrity: sha512-8lJQ7B6RloYDUhwVdbSpwT2eKsCN5KP1Scn18ly1tytCuhXhbs0nkfKHT4jWWZBJqmynWuzd+78bF7wILrj6pw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxlint/binding-linux-arm-gnueabihf@1.64.0': - resolution: {integrity: sha512-jsBqMLl/uOL5+Kq/+BtK9FrmiNGUbx8SiyZXv+WlUxA45KuwcLu9BfiSIL3I3DBDgWM3yZizDITnTK9BcqNBQg==} + '@oxlint/binding-linux-arm-gnueabihf@1.65.0': + resolution: {integrity: sha512-EgmZY+DeWhLLEnNl70/49j3ltA8I6X9kxMfexupWi2Vwfp6RonGsBaHtGoedLolaU37ne7eDUgoxa3CFB95GZA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxlint/binding-linux-arm-musleabihf@1.64.0': - resolution: {integrity: sha512-1lrj8At/Uuc9GhjrVFBQo0NEjfBrTkzpmtHIGAhNnIXqn1CAyGL+qrztUsXb2GIluJrpl9Q7qRLJOb/NqydacQ==} + '@oxlint/binding-linux-arm-musleabihf@1.65.0': + resolution: {integrity: sha512-OJMWmAYRVBCPPxnYr3j5sXRwHPh1bAuMlTStGco1Z8q3HkvSH4h+A10E9MiRNYmLhUuli5a2P5wmfj8cagiF5Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxlint/binding-linux-arm64-gnu@1.64.0': - resolution: {integrity: sha512-HpSQbubwh03mMhAdy2BYtad/fsY8vDFHDAb6bUwuCYg2VD3xCQgn6ArKcO0oZyLCheacKTv4PrF3Mfu5hgoE2g==} + '@oxlint/binding-linux-arm64-gnu@1.65.0': + resolution: {integrity: sha512-D8uNi50LsYKgS0vGARZDRx05TBZeSxAVdLGddSEqQLSU7xsiqdImHPEw55xq8sKA5rCc/4au/5uS7FQALWdLCg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-arm64-musl@1.64.0': - resolution: {integrity: sha512-00QQ0h0Y7u0G69BgiH3+ky2aaq/QvkDL6DYok8htIuJHxybiux5aQ8jwmg8qIk9wha6UagUP2BAwAzbemcJbpg==} + '@oxlint/binding-linux-arm64-musl@1.65.0': + resolution: {integrity: sha512-IpbA8QGbwFehQhO+YaHwmoI81f93xvywpspf8HrdPCWOIeKwYfM1dhVhO4YKfZewTRRQEPY/JFjTOXTgkwhKrA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@oxlint/binding-linux-ppc64-gnu@1.64.0': - resolution: {integrity: sha512-2GaimTV6EMW+s5HS0An3oGbQme3BgHswvfVdGk3EB57Xe9+/gyT+Qd7lNVzb3rtir52vbIPzXfaYArzs5b5zcw==} + '@oxlint/binding-linux-ppc64-gnu@1.65.0': + resolution: {integrity: sha512-ZSe8HgaZdgyHSv2+/pTG68z10+OarB18CkFKQOhRs3lmmP/p2vuigedK2e9d0ztoG2DU/duJzhxXBSjy/492HQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-riscv64-gnu@1.64.0': - resolution: {integrity: sha512-H46AtFb9wypjoVwGdlxrm0DsD809NGmtiK9HiyPKTxkSte2YjhC4S+00rOIrwCaxcyPiGid3Y3OMXp5KMAkGZw==} + '@oxlint/binding-linux-riscv64-gnu@1.65.0': + resolution: {integrity: sha512-DcTERf++v6HyPHukKAr0JFTRqB+YeDEvqzRgNDMaz7jITPf+tlJIwRxodlAqoXMYhNVEZhXdQM5RAAYH8/oPuw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-riscv64-musl@1.64.0': - resolution: {integrity: sha512-HEgsidjjvvyzdg82icYkuFCf7REDV7B9JFwbIMbVwrKLBY0MrXX+bku3POn/hduZ2yW91IyVDUMq0Bf02KwXQw==} + '@oxlint/binding-linux-riscv64-musl@1.65.0': + resolution: {integrity: sha512-xjhMwuFJwRh40NOBzol4gM5gqAa0xPCJU+GQLM6BydV8TbfkIA7JeyCFNhyfbE9Q/5EWcKYTx62R0cRcjP7DAA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [musl] - '@oxlint/binding-linux-s390x-gnu@1.64.0': - resolution: {integrity: sha512-Axvm8qryotmKN00P5w4JapaSjvP2LOSbdbBJiX+2SuHd3QzhW7TUc8skqgw+ahQZ5DmzEYeHCqauvW8f32Ns6Q==} + '@oxlint/binding-linux-s390x-gnu@1.65.0': + resolution: {integrity: sha512-lrWSXb8JzboPWYBG6Kunt/eemvjo2oCFXktShsm3yMToY7HjzKLjxh7CljSvGnnZH9oohNFHOKc9xYpGKCPm6w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@oxlint/binding-linux-x64-gnu@1.64.0': - resolution: {integrity: sha512-cR60vSd7+m+KRZ3GQGfDxWwahW5RMXg0qlGvAluZr0fTUYvw0H9N9AXAF/M/PMqgytyqvVNmBAkJG9l7U30Y1g==} + '@oxlint/binding-linux-x64-gnu@1.65.0': + resolution: {integrity: sha512-A7xfghw250m4a1sPV+q44Mow2G5bhiC9FBvhAuIhJS6QovWnqzuL5AFQPEuwOB+PM4DhABkqxVa3Iwe3Y/nFlQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-x64-musl@1.64.0': - resolution: {integrity: sha512-2u/aPZ9pEg7HnvZPDsHxUGNnrpr4qaHi+mCgLgpt+LYRzPrS4Px4wPfkIdRdr2GvKnaYyt+XSlto0Vm5sbStTg==} + '@oxlint/binding-linux-x64-musl@1.65.0': + resolution: {integrity: sha512-reqOun1+pWO3fW6cv7bsa8hHG0TN3t/82qPdaoJo90FwugXiMjKhZMChmH5Z01cFNRHmxN4+543Fy8478cM/iA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@oxlint/binding-openharmony-arm64@1.64.0': - resolution: {integrity: sha512-kfhkGfCdoXLSxEkrhDlJrvBYajGmq+ma4EMc53dsOWTq+rIBOlI0vTBmpZNnM5oH2LY/K/w1HAK+UQEgjgpVUg==} + '@oxlint/binding-openharmony-arm64@1.65.0': + resolution: {integrity: sha512-KQpqOb/juDBO0xyloDkVDhOVxDUgAfZ2OAAVq99TJScJDzT319xry1QzB9LQohV9QGnA7p6m/XATZkMXc84lwA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@oxlint/binding-win32-arm64-msvc@1.64.0': - resolution: {integrity: sha512-r/cNKBFieONoVu2bb1KkVouq9W+edDUgHumXJGphCRRj+U0xaD4nanrw8ZOqo0IsutPkEM4vCcGBpak6x5aXMg==} + '@oxlint/binding-win32-arm64-msvc@1.65.0': + resolution: {integrity: sha512-xfqcOc3nJFeAd1kDY4T9d3XeJIhr00twaaW0kOAzGPyUHkruXtNJv6zz1Ra9fRtSek5VpW2Yoj5AcwPIlT0ZiQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxlint/binding-win32-ia32-msvc@1.64.0': - resolution: {integrity: sha512-tUw0xUUwEFVZbpJoeCblkv8SJA4Xz3CdXCJbAnBsiNLyxDrk2tLcxEAS6M73Q7hHHDg3OtwI8vZVK3t5RJt4Gw==} + '@oxlint/binding-win32-ia32-msvc@1.65.0': + resolution: {integrity: sha512-JV+pXm45p8sdgs3c7LOPAohW23optCNZETFOXUcjn6cS4PYZhEU/RI54Z5dHdMudab3nw7T48PZILthM+Q0COQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@oxlint/binding-win32-x64-msvc@1.64.0': - resolution: {integrity: sha512-9CBR+LO0JVST87fNTzzNxS5I29jIUO5gxT9i9+M3SDHHALElj9sY1Prf12tad3vIRC6OD7Ehtvvh+sn13vSwHw==} + '@oxlint/binding-win32-x64-msvc@1.65.0': + resolution: {integrity: sha512-D7L/oBbskLss21bYrRbFuIs81AiSQV+wRzwck54dOkHIlq2qu1xjLz8u6jCqGH8Fltk8bB5DLBpVhE7v/fA8XQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] - '@oxlint/plugins@1.64.0': - resolution: {integrity: sha512-aUOYj3qpaR/Mbo0HQo8CuwrxbkwRTpsxMlvaQ00INGXS1KdvllRHU1eEn7WYgwhgK3cXtAbLP13VjSknwdxvzA==} + '@oxlint/plugins@1.65.0': + resolution: {integrity: sha512-xUg0v7/+xyDZHkjCie/OW9dqRW8ItEGt2xM90ry3lOc67Ehtj2swGz3d3vfYC+gxiV7n+1fI3jeciFAKuzuHvQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} '@package-json/types@0.0.12': @@ -5135,8 +5135,8 @@ packages: resolution: {integrity: sha512-dD4UpyBh/9m4X2NVjA+73/ZPBRF+uF4zIMFvvQsabMiEK8x41L3rQ8EENOi35kyyoaJwNxEeJcP6Fj1H4U409Q==} engines: {node: '>=12'} - oxfmt@0.49.0: - resolution: {integrity: sha512-IAHFMdlJSWe+oAr65dx22UvjCtV9DBMisAuLnKpDqMQrctzCkGnj3QRwNHm0d+uwSWPalsDF8ZYLz9rh6nH2IQ==} + oxfmt@0.50.0: + resolution: {integrity: sha512-owwjTnhfM5aCOJhYeqDvk7iM504OeYFZpdRU7cxx7xtZMo4uVpjlryTUon+Cf76CugsvnqA32e6rC73pr1hXaw==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -5145,16 +5145,16 @@ packages: svelte: optional: true - oxlint-plugin-eslint@1.64.0: - resolution: {integrity: sha512-YG7TwdWGsVQkZ9vPeW9dydXdK3VVHowyXCnOD22ibAQHouJNDMr2s7FpK7hevEmFutYamjn4VzY3hZaMOQatUQ==} + oxlint-plugin-eslint@1.65.0: + resolution: {integrity: sha512-qzUr8spsbIeJGL3Hcrki4L3+O67uYXGoWqsSDMor4ZubasGFgsOe7I91II/PbM5Rp5EL1znO7i2HDIzYjCpjkQ==} engines: {node: ^20.19.0 || >=22.12.0} oxlint-tsgolint@0.22.1: resolution: {integrity: sha512-YUSGSLUnoolsu8gxISEDio3q1rtsCozwfOzASUn3DT2mR2EeQ93uEEnen7s+6LpF+lyTQFln1pQfqwBh/fsVEg==} hasBin: true - oxlint@1.64.0: - resolution: {integrity: sha512-Star3SNpWPeWFPw7kRXIhXUSn6fdiAl25q15CQzH/9WaOtG6e9CWTc25vNZOCr4PE1yEP1GtKJKIKglhj3OmEQ==} + oxlint@1.65.0: + resolution: {integrity: sha512-ChUuE3Q7XnAbscvT4XLMsH7HFJmLgLVv9lu+RRgFL5wSXnDqUOzTp5IS8qWDBGd/ZDSzQ2tbX8fjAmijlGLC7A==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -7726,61 +7726,61 @@ snapshots: '@oxc-project/types@0.129.0': {} - '@oxfmt/binding-android-arm-eabi@0.49.0': + '@oxfmt/binding-android-arm-eabi@0.50.0': optional: true - '@oxfmt/binding-android-arm64@0.49.0': + '@oxfmt/binding-android-arm64@0.50.0': optional: true - '@oxfmt/binding-darwin-arm64@0.49.0': + '@oxfmt/binding-darwin-arm64@0.50.0': optional: true - '@oxfmt/binding-darwin-x64@0.49.0': + '@oxfmt/binding-darwin-x64@0.50.0': optional: true - '@oxfmt/binding-freebsd-x64@0.49.0': + '@oxfmt/binding-freebsd-x64@0.50.0': optional: true - '@oxfmt/binding-linux-arm-gnueabihf@0.49.0': + '@oxfmt/binding-linux-arm-gnueabihf@0.50.0': optional: true - '@oxfmt/binding-linux-arm-musleabihf@0.49.0': + '@oxfmt/binding-linux-arm-musleabihf@0.50.0': optional: true - '@oxfmt/binding-linux-arm64-gnu@0.49.0': + '@oxfmt/binding-linux-arm64-gnu@0.50.0': optional: true - '@oxfmt/binding-linux-arm64-musl@0.49.0': + '@oxfmt/binding-linux-arm64-musl@0.50.0': optional: true - '@oxfmt/binding-linux-ppc64-gnu@0.49.0': + '@oxfmt/binding-linux-ppc64-gnu@0.50.0': optional: true - '@oxfmt/binding-linux-riscv64-gnu@0.49.0': + '@oxfmt/binding-linux-riscv64-gnu@0.50.0': optional: true - '@oxfmt/binding-linux-riscv64-musl@0.49.0': + '@oxfmt/binding-linux-riscv64-musl@0.50.0': optional: true - '@oxfmt/binding-linux-s390x-gnu@0.49.0': + '@oxfmt/binding-linux-s390x-gnu@0.50.0': optional: true - '@oxfmt/binding-linux-x64-gnu@0.49.0': + '@oxfmt/binding-linux-x64-gnu@0.50.0': optional: true - '@oxfmt/binding-linux-x64-musl@0.49.0': + '@oxfmt/binding-linux-x64-musl@0.50.0': optional: true - '@oxfmt/binding-openharmony-arm64@0.49.0': + '@oxfmt/binding-openharmony-arm64@0.50.0': optional: true - '@oxfmt/binding-win32-arm64-msvc@0.49.0': + '@oxfmt/binding-win32-arm64-msvc@0.50.0': optional: true - '@oxfmt/binding-win32-ia32-msvc@0.49.0': + '@oxfmt/binding-win32-ia32-msvc@0.50.0': optional: true - '@oxfmt/binding-win32-x64-msvc@0.49.0': + '@oxfmt/binding-win32-x64-msvc@0.50.0': optional: true '@oxlint-tsgolint/darwin-arm64@0.22.1': @@ -7801,64 +7801,64 @@ snapshots: '@oxlint-tsgolint/win32-x64@0.22.1': optional: true - '@oxlint/binding-android-arm-eabi@1.64.0': + '@oxlint/binding-android-arm-eabi@1.65.0': optional: true - '@oxlint/binding-android-arm64@1.64.0': + '@oxlint/binding-android-arm64@1.65.0': optional: true - '@oxlint/binding-darwin-arm64@1.64.0': + '@oxlint/binding-darwin-arm64@1.65.0': optional: true - '@oxlint/binding-darwin-x64@1.64.0': + '@oxlint/binding-darwin-x64@1.65.0': optional: true - '@oxlint/binding-freebsd-x64@1.64.0': + '@oxlint/binding-freebsd-x64@1.65.0': optional: true - '@oxlint/binding-linux-arm-gnueabihf@1.64.0': + '@oxlint/binding-linux-arm-gnueabihf@1.65.0': optional: true - '@oxlint/binding-linux-arm-musleabihf@1.64.0': + '@oxlint/binding-linux-arm-musleabihf@1.65.0': optional: true - '@oxlint/binding-linux-arm64-gnu@1.64.0': + '@oxlint/binding-linux-arm64-gnu@1.65.0': optional: true - '@oxlint/binding-linux-arm64-musl@1.64.0': + '@oxlint/binding-linux-arm64-musl@1.65.0': optional: true - '@oxlint/binding-linux-ppc64-gnu@1.64.0': + '@oxlint/binding-linux-ppc64-gnu@1.65.0': optional: true - '@oxlint/binding-linux-riscv64-gnu@1.64.0': + '@oxlint/binding-linux-riscv64-gnu@1.65.0': optional: true - '@oxlint/binding-linux-riscv64-musl@1.64.0': + '@oxlint/binding-linux-riscv64-musl@1.65.0': optional: true - '@oxlint/binding-linux-s390x-gnu@1.64.0': + '@oxlint/binding-linux-s390x-gnu@1.65.0': optional: true - '@oxlint/binding-linux-x64-gnu@1.64.0': + '@oxlint/binding-linux-x64-gnu@1.65.0': optional: true - '@oxlint/binding-linux-x64-musl@1.64.0': + '@oxlint/binding-linux-x64-musl@1.65.0': optional: true - '@oxlint/binding-openharmony-arm64@1.64.0': + '@oxlint/binding-openharmony-arm64@1.65.0': optional: true - '@oxlint/binding-win32-arm64-msvc@1.64.0': + '@oxlint/binding-win32-arm64-msvc@1.65.0': optional: true - '@oxlint/binding-win32-ia32-msvc@1.64.0': + '@oxlint/binding-win32-ia32-msvc@1.65.0': optional: true - '@oxlint/binding-win32-x64-msvc@1.64.0': + '@oxlint/binding-win32-x64-msvc@1.65.0': optional: true - '@oxlint/plugins@1.64.0': {} + '@oxlint/plugins@1.65.0': {} '@package-json/types@0.0.12': {} @@ -11020,31 +11020,31 @@ snapshots: lodash.isequal: 4.5.0 vali-date: 1.0.0 - oxfmt@0.49.0: + oxfmt@0.50.0: dependencies: tinypool: 2.1.0 optionalDependencies: - '@oxfmt/binding-android-arm-eabi': 0.49.0 - '@oxfmt/binding-android-arm64': 0.49.0 - '@oxfmt/binding-darwin-arm64': 0.49.0 - '@oxfmt/binding-darwin-x64': 0.49.0 - '@oxfmt/binding-freebsd-x64': 0.49.0 - '@oxfmt/binding-linux-arm-gnueabihf': 0.49.0 - '@oxfmt/binding-linux-arm-musleabihf': 0.49.0 - '@oxfmt/binding-linux-arm64-gnu': 0.49.0 - '@oxfmt/binding-linux-arm64-musl': 0.49.0 - '@oxfmt/binding-linux-ppc64-gnu': 0.49.0 - '@oxfmt/binding-linux-riscv64-gnu': 0.49.0 - '@oxfmt/binding-linux-riscv64-musl': 0.49.0 - '@oxfmt/binding-linux-s390x-gnu': 0.49.0 - '@oxfmt/binding-linux-x64-gnu': 0.49.0 - '@oxfmt/binding-linux-x64-musl': 0.49.0 - '@oxfmt/binding-openharmony-arm64': 0.49.0 - '@oxfmt/binding-win32-arm64-msvc': 0.49.0 - '@oxfmt/binding-win32-ia32-msvc': 0.49.0 - '@oxfmt/binding-win32-x64-msvc': 0.49.0 - - oxlint-plugin-eslint@1.64.0: {} + '@oxfmt/binding-android-arm-eabi': 0.50.0 + '@oxfmt/binding-android-arm64': 0.50.0 + '@oxfmt/binding-darwin-arm64': 0.50.0 + '@oxfmt/binding-darwin-x64': 0.50.0 + '@oxfmt/binding-freebsd-x64': 0.50.0 + '@oxfmt/binding-linux-arm-gnueabihf': 0.50.0 + '@oxfmt/binding-linux-arm-musleabihf': 0.50.0 + '@oxfmt/binding-linux-arm64-gnu': 0.50.0 + '@oxfmt/binding-linux-arm64-musl': 0.50.0 + '@oxfmt/binding-linux-ppc64-gnu': 0.50.0 + '@oxfmt/binding-linux-riscv64-gnu': 0.50.0 + '@oxfmt/binding-linux-riscv64-musl': 0.50.0 + '@oxfmt/binding-linux-s390x-gnu': 0.50.0 + '@oxfmt/binding-linux-x64-gnu': 0.50.0 + '@oxfmt/binding-linux-x64-musl': 0.50.0 + '@oxfmt/binding-openharmony-arm64': 0.50.0 + '@oxfmt/binding-win32-arm64-msvc': 0.50.0 + '@oxfmt/binding-win32-ia32-msvc': 0.50.0 + '@oxfmt/binding-win32-x64-msvc': 0.50.0 + + oxlint-plugin-eslint@1.65.0: {} oxlint-tsgolint@0.22.1: optionalDependencies: @@ -11055,27 +11055,27 @@ snapshots: '@oxlint-tsgolint/win32-arm64': 0.22.1 '@oxlint-tsgolint/win32-x64': 0.22.1 - oxlint@1.64.0(oxlint-tsgolint@0.22.1): + oxlint@1.65.0(oxlint-tsgolint@0.22.1): optionalDependencies: - '@oxlint/binding-android-arm-eabi': 1.64.0 - '@oxlint/binding-android-arm64': 1.64.0 - '@oxlint/binding-darwin-arm64': 1.64.0 - '@oxlint/binding-darwin-x64': 1.64.0 - '@oxlint/binding-freebsd-x64': 1.64.0 - '@oxlint/binding-linux-arm-gnueabihf': 1.64.0 - '@oxlint/binding-linux-arm-musleabihf': 1.64.0 - '@oxlint/binding-linux-arm64-gnu': 1.64.0 - '@oxlint/binding-linux-arm64-musl': 1.64.0 - '@oxlint/binding-linux-ppc64-gnu': 1.64.0 - '@oxlint/binding-linux-riscv64-gnu': 1.64.0 - '@oxlint/binding-linux-riscv64-musl': 1.64.0 - '@oxlint/binding-linux-s390x-gnu': 1.64.0 - '@oxlint/binding-linux-x64-gnu': 1.64.0 - '@oxlint/binding-linux-x64-musl': 1.64.0 - '@oxlint/binding-openharmony-arm64': 1.64.0 - '@oxlint/binding-win32-arm64-msvc': 1.64.0 - '@oxlint/binding-win32-ia32-msvc': 1.64.0 - '@oxlint/binding-win32-x64-msvc': 1.64.0 + '@oxlint/binding-android-arm-eabi': 1.65.0 + '@oxlint/binding-android-arm64': 1.65.0 + '@oxlint/binding-darwin-arm64': 1.65.0 + '@oxlint/binding-darwin-x64': 1.65.0 + '@oxlint/binding-freebsd-x64': 1.65.0 + '@oxlint/binding-linux-arm-gnueabihf': 1.65.0 + '@oxlint/binding-linux-arm-musleabihf': 1.65.0 + '@oxlint/binding-linux-arm64-gnu': 1.65.0 + '@oxlint/binding-linux-arm64-musl': 1.65.0 + '@oxlint/binding-linux-ppc64-gnu': 1.65.0 + '@oxlint/binding-linux-riscv64-gnu': 1.65.0 + '@oxlint/binding-linux-riscv64-musl': 1.65.0 + '@oxlint/binding-linux-s390x-gnu': 1.65.0 + '@oxlint/binding-linux-x64-gnu': 1.65.0 + '@oxlint/binding-linux-x64-musl': 1.65.0 + '@oxlint/binding-openharmony-arm64': 1.65.0 + '@oxlint/binding-win32-arm64-msvc': 1.65.0 + '@oxlint/binding-win32-ia32-msvc': 1.65.0 + '@oxlint/binding-win32-x64-msvc': 1.65.0 oxlint-tsgolint: 0.22.1 p-cancelable@4.0.1: {} From 32870678028bae1bdfc57bbcba427efa57fc0785 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 May 2026 12:01:59 +0000 Subject: [PATCH 428/439] chore(deps): bump youtube-caption-extractor from 1.10.1 to 1.10.2 (#22042) Bumps [youtube-caption-extractor](https://github.com/devhims/youtube-caption-extractor) from 1.10.1 to 1.10.2. - [Release notes](https://github.com/devhims/youtube-caption-extractor/releases) - [Commits](https://github.com/devhims/youtube-caption-extractor/compare/v1.10.1...v1.10.2) --- updated-dependencies: - dependency-name: youtube-caption-extractor dependency-version: 1.10.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 88438833855b..ec0da5066cf6 100644 --- a/package.json +++ b/package.json @@ -137,7 +137,7 @@ "uuid": "14.0.0", "winston": "3.19.0", "xxhash-wasm": "1.1.0", - "youtube-caption-extractor": "1.10.1", + "youtube-caption-extractor": "1.10.2", "youtubei.js": "17.0.1", "zod": "4.4.3" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 32f6ec1e4764..243afa133234 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -272,8 +272,8 @@ importers: specifier: 1.1.0 version: 1.1.0 youtube-caption-extractor: - specifier: 1.10.1 - version: 1.10.1 + specifier: 1.10.2 + version: 1.10.2 youtubei.js: specifier: 17.0.1 version: 17.0.1 @@ -6472,8 +6472,8 @@ packages: youch@4.1.0-beta.10: resolution: {integrity: sha512-rLfVLB4FgQneDr0dv1oddCVZmKjcJ6yX6mS4pU82Mq/Dt9a3cLZQ62pDBL4AUO+uVrCvtWz3ZFUL2HFAFJ/BXQ==} - youtube-caption-extractor@1.10.1: - resolution: {integrity: sha512-XTSTDrS3hd3VN65gLQBXnjgrQzl/qgLeylCZlocEnGwe9kS8iS7vEbrPJkkRa+c2XBpX2B2nbO/BRxDdVV6nqQ==} + youtube-caption-extractor@1.10.2: + resolution: {integrity: sha512-G/WSJStuTrWiqXZ5PpmMtS6LInCQueN/47lz5dNUnIPm7cRIX0RGI+fhkuNEipavQprQH6m2URBn5Xc0jhh1wA==} engines: {node: '>=18.0.0'} youtubei.js@17.0.1: @@ -12462,7 +12462,7 @@ snapshots: cookie: 1.1.1 youch-core: 0.3.3 - youtube-caption-extractor@1.10.1: + youtube-caption-extractor@1.10.2: dependencies: he: 1.2.0 striptags: 3.2.0 From 12595e6563da63b34f6f7e01a2b9cdfe5f6d5694 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 May 2026 12:04:11 +0000 Subject: [PATCH 429/439] chore(deps): bump tsx from 4.22.0 to 4.22.1 (#22041) Bumps [tsx](https://github.com/privatenumber/tsx) from 4.22.0 to 4.22.1. - [Release notes](https://github.com/privatenumber/tsx/releases) - [Changelog](https://github.com/privatenumber/tsx/blob/master/release.config.cjs) - [Commits](https://github.com/privatenumber/tsx/compare/v4.22.0...v4.22.1) --- updated-dependencies: - dependency-name: tsx dependency-version: 4.22.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 40 ++++++++++++++++++++-------------------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/package.json b/package.json index ec0da5066cf6..09c560f52f01 100644 --- a/package.json +++ b/package.json @@ -130,7 +130,7 @@ "tldts": "7.0.30", "tosource": "2.0.0-alpha.3", "tough-cookie": "6.0.1", - "tsx": "4.22.0", + "tsx": "4.22.1", "twitter-api-v2": "1.29.0", "ufo": "1.6.4", "undici": "7.25.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 243afa133234..c3b71eedc8eb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -251,8 +251,8 @@ importers: specifier: 6.0.1 version: 6.0.1 tsx: - specifier: 4.22.0 - version: 4.22.0 + specifier: 4.22.1 + version: 4.22.1 twitter-api-v2: specifier: 1.29.0 version: 1.29.0 @@ -457,7 +457,7 @@ importers: version: 11.0.0 tsdown: specifier: 0.22.0 - version: 0.22.0(tsx@4.22.0)(typescript@5.9.3)(unrun@0.2.37(synckit@0.11.12)) + version: 0.22.0(tsx@4.22.1)(typescript@5.9.3)(unrun@0.2.37(synckit@0.11.12)) typescript: specifier: 5.9.3 version: 5.9.3 @@ -466,10 +466,10 @@ importers: version: 11.0.5 vite-tsconfig-paths: specifier: 6.1.1 - version: 6.1.1(typescript@5.9.3)(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.0)(yaml@2.9.0)) + version: 6.1.1(typescript@5.9.3)(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.1)(yaml@2.9.0)) vitest: specifier: 4.1.6 - version: 4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.8.0)(@vitest/coverage-v8@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.8.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.0)(yaml@2.9.0)) + version: 4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.8.0)(@vitest/coverage-v8@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.8.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.1)(yaml@2.9.0)) wrangler: specifier: 4.92.0 version: 4.92.0(@cloudflare/workers-types@4.20260516.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10) @@ -5967,8 +5967,8 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - tsx@4.22.0: - resolution: {integrity: sha512-8ccZMPD69s1AbKXx0C5ddTNZfNjwV04iIKgjZmKfKxMynEtSYcK0Lh7iQFh53fI5Yu4pb9usgAiqyPmEONaALg==} + tsx@4.22.1: + resolution: {integrity: sha512-TvncJykhxAzFCk0VQZKBTClall4Pm7qXDSodb6uxi8QFa8X8mT6ABjxxsQ2opDRYxG7AzcRWXaFtruz5HJKuWg==} engines: {node: '>=18.0.0'} hasBin: true @@ -8634,7 +8634,7 @@ snapshots: obug: 2.1.1 std-env: 4.1.0 tinyrainbow: 3.1.0 - vitest: 4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.8.0)(@vitest/coverage-v8@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.8.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.0)(yaml@2.9.0)) + vitest: 4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.8.0)(@vitest/coverage-v8@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.8.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.1)(yaml@2.9.0)) '@vitest/expect@4.1.6': dependencies: @@ -8645,14 +8645,14 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.6(msw@2.13.4(@types/node@25.8.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.0)(yaml@2.9.0))': + '@vitest/mocker@4.1.6(msw@2.13.4(@types/node@25.8.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.1)(yaml@2.9.0))': dependencies: '@vitest/spy': 4.1.6 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: msw: 2.13.4(@types/node@25.8.0)(typescript@5.9.3) - vite: 7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.0)(yaml@2.9.0) + vite: 7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.1)(yaml@2.9.0) '@vitest/pretty-format@4.1.6': dependencies: @@ -11942,7 +11942,7 @@ snapshots: optionalDependencies: typescript: 5.9.3 - tsdown@0.22.0(tsx@4.22.0)(typescript@5.9.3)(unrun@0.2.37(synckit@0.11.12)): + tsdown@0.22.0(tsx@4.22.1)(typescript@5.9.3)(unrun@0.2.37(synckit@0.11.12)): dependencies: ansis: 4.2.0 cac: 7.0.0 @@ -11960,7 +11960,7 @@ snapshots: tree-kill: 1.2.2 unconfig-core: 7.5.0 optionalDependencies: - tsx: 4.22.0 + tsx: 4.22.1 typescript: 5.9.3 unrun: 0.2.37(synckit@0.11.12) transitivePeerDependencies: @@ -11973,7 +11973,7 @@ snapshots: tslib@2.8.1: {} - tsx@4.22.0: + tsx@4.22.1: dependencies: esbuild: 0.28.0 optionalDependencies: @@ -12187,17 +12187,17 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vite-tsconfig-paths@6.1.1(typescript@5.9.3)(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.0)(yaml@2.9.0)): + vite-tsconfig-paths@6.1.1(typescript@5.9.3)(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.1)(yaml@2.9.0)): dependencies: debug: 4.4.3 globrex: 0.1.2 tsconfck: 3.1.6(typescript@5.9.3) - vite: 7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.0)(yaml@2.9.0) + vite: 7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.1)(yaml@2.9.0) transitivePeerDependencies: - supports-color - typescript - vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.0)(yaml@2.9.0): + vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.1)(yaml@2.9.0): dependencies: esbuild: 0.27.7 fdir: 6.5.0(picomatch@4.0.4) @@ -12209,13 +12209,13 @@ snapshots: '@types/node': 25.8.0 fsevents: 2.3.3 jiti: 2.6.1 - tsx: 4.22.0 + tsx: 4.22.1 yaml: 2.9.0 - vitest@4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.8.0)(@vitest/coverage-v8@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.8.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.0)(yaml@2.9.0)): + vitest@4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.8.0)(@vitest/coverage-v8@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.8.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.1)(yaml@2.9.0)): dependencies: '@vitest/expect': 4.1.6 - '@vitest/mocker': 4.1.6(msw@2.13.4(@types/node@25.8.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.0)(yaml@2.9.0)) + '@vitest/mocker': 4.1.6(msw@2.13.4(@types/node@25.8.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.1)(yaml@2.9.0)) '@vitest/pretty-format': 4.1.6 '@vitest/runner': 4.1.6 '@vitest/snapshot': 4.1.6 @@ -12232,7 +12232,7 @@ snapshots: tinyexec: 1.1.2 tinyglobby: 0.2.16 tinyrainbow: 3.1.0 - vite: 7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.0)(yaml@2.9.0) + vite: 7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.1)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: '@edge-runtime/vm': 3.2.0 From ba1fb25d8bd5c10d52d6c23ee8a760f8900f03a5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 May 2026 12:06:05 +0000 Subject: [PATCH 430/439] chore(deps-dev): bump lint-staged from 17.0.4 to 17.0.5 (#22043) Bumps [lint-staged](https://github.com/lint-staged/lint-staged) from 17.0.4 to 17.0.5. - [Release notes](https://github.com/lint-staged/lint-staged/releases) - [Changelog](https://github.com/lint-staged/lint-staged/blob/main/CHANGELOG.md) - [Commits](https://github.com/lint-staged/lint-staged/compare/v17.0.4...v17.0.5) --- updated-dependencies: - dependency-name: lint-staged dependency-version: 17.0.5 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 09c560f52f01..fab08ffc66a6 100644 --- a/package.json +++ b/package.json @@ -187,7 +187,7 @@ "got": "15.0.5", "husky": "9.1.7", "js-beautify": "1.15.4", - "lint-staged": "17.0.4", + "lint-staged": "17.0.5", "magic-string": "0.30.21", "mockdate": "3.0.5", "msw": "2.13.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c3b71eedc8eb..0fe85c4e3d31 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -417,8 +417,8 @@ importers: specifier: 1.15.4 version: 1.15.4 lint-staged: - specifier: 17.0.4 - version: 17.0.4 + specifier: 17.0.5 + version: 17.0.5 magic-string: specifier: 0.30.21 version: 0.30.21 @@ -4663,8 +4663,8 @@ packages: linkify-it@5.0.0: resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} - lint-staged@17.0.4: - resolution: {integrity: sha512-+rU9lSUyVOZ/hDUmRLVGzyS2v73cDdQjX+XQz1AaOdIE4RysLq0HoPW2HrrgeNCLklkhi904VBU1bmgWLHVnkA==} + lint-staged@17.0.5: + resolution: {integrity: sha512-d12yC+/e8RhBjZtaxZn71FyrgU/P5e+uAPifhCLwdosQZP/zamSdKRWDC30ocVIbzDKiFG1McHc/LUgB92GIPw==} engines: {node: '>=22.22.1'} hasBin: true @@ -10360,7 +10360,7 @@ snapshots: dependencies: uc.micro: 2.1.0 - lint-staged@17.0.4: + lint-staged@17.0.5: dependencies: listr2: 10.2.1 picomatch: 4.0.4 From 2e6e33dd3693af755c0432f4499deb3baa15fb3e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 May 2026 20:19:02 +0800 Subject: [PATCH 431/439] chore(deps-dev): bump @cloudflare/workers-types (#22036) Bumps the cloudflare group with 1 update in the / directory: [@cloudflare/workers-types](https://github.com/cloudflare/workerd). Updates `@cloudflare/workers-types` from 4.20260516.1 to 4.20260518.1 - [Release notes](https://github.com/cloudflare/workerd/releases) - [Changelog](https://github.com/cloudflare/workerd/blob/main/RELEASE.md) - [Commits](https://github.com/cloudflare/workerd/commits) --- updated-dependencies: - dependency-name: "@cloudflare/workers-types" dependency-version: 4.20260518.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: cloudflare ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index fab08ffc66a6..cff94628ebad 100644 --- a/package.json +++ b/package.json @@ -147,7 +147,7 @@ "@bbob/types": "4.3.1", "@cloudflare/containers": "0.3.4", "@cloudflare/playwright": "1.3.0", - "@cloudflare/workers-types": "4.20260516.1", + "@cloudflare/workers-types": "4.20260518.1", "@eslint/eslintrc": "3.3.5", "@eslint/js": "10.0.1", "@oxlint/plugins": "1.65.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0fe85c4e3d31..15cd23839aca 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -297,8 +297,8 @@ importers: specifier: 1.3.0 version: 1.3.0 '@cloudflare/workers-types': - specifier: 4.20260516.1 - version: 4.20260516.1 + specifier: 4.20260518.1 + version: 4.20260518.1 '@eslint/eslintrc': specifier: 3.3.5 version: 3.3.5 @@ -472,7 +472,7 @@ importers: version: 4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.8.0)(@vitest/coverage-v8@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.8.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.1)(yaml@2.9.0)) wrangler: specifier: 4.92.0 - version: 4.92.0(@cloudflare/workers-types@4.20260516.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10) + version: 4.92.0(@cloudflare/workers-types@4.20260518.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10) yaml-eslint-parser: specifier: 2.0.0 version: 2.0.0 @@ -644,8 +644,8 @@ packages: cpu: [x64] os: [win32] - '@cloudflare/workers-types@4.20260516.1': - resolution: {integrity: sha512-aPckyZSPQXhOo+nSIvGLtXVl9M2qmf2GwFZYmvut9z47F1XTjHYcaYpI9/BvxrI+Q5l99UtXZU4bmQtX10JG+w==} + '@cloudflare/workers-types@4.20260518.1': + resolution: {integrity: sha512-xXzGrbRi8RHRBNQFgXYkzrB4DgF0RXvmp8E1vCxoBmINpeitM/ZjVDd1CNC+N3uXjgcNjacoz4OgTa0rxgig1A==} '@colors/colors@1.6.0': resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} @@ -6657,7 +6657,7 @@ snapshots: '@cloudflare/workerd-windows-64@1.20260515.1': optional: true - '@cloudflare/workers-types@4.20260516.1': {} + '@cloudflare/workers-types@4.20260518.1': {} '@colors/colors@1.6.0': {} @@ -12324,7 +12324,7 @@ snapshots: '@cloudflare/workerd-linux-arm64': 1.20260515.1 '@cloudflare/workerd-windows-64': 1.20260515.1 - wrangler@4.92.0(@cloudflare/workers-types@4.20260516.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10): + wrangler@4.92.0(@cloudflare/workers-types@4.20260518.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10): dependencies: '@cloudflare/kv-asset-handler': 0.5.0 '@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260515.1) @@ -12335,7 +12335,7 @@ snapshots: unenv: 2.0.0-rc.24 workerd: 1.20260515.1 optionalDependencies: - '@cloudflare/workers-types': 4.20260516.1 + '@cloudflare/workers-types': 4.20260518.1 fsevents: 2.3.3 transitivePeerDependencies: - bufferutil From 9af246f0e9fb849139454b8435d6ae95232d33a8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 May 2026 20:38:56 +0800 Subject: [PATCH 432/439] chore(deps-dev): bump oxlint-tsgolint in the oxc group (#22037) Bumps the oxc group with 1 update: [oxlint-tsgolint](https://github.com/oxc-project/tsgolint). Updates `oxlint-tsgolint` from 0.22.1 to 0.23.0 - [Release notes](https://github.com/oxc-project/tsgolint/releases) - [Commits](https://github.com/oxc-project/tsgolint/compare/v0.22.1...v0.23.0) --- updated-dependencies: - dependency-name: oxlint-tsgolint dependency-version: 0.23.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: oxc ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 66 +++++++++++++++++++++++++------------------------- 2 files changed, 34 insertions(+), 34 deletions(-) diff --git a/package.json b/package.json index cff94628ebad..606836915574 100644 --- a/package.json +++ b/package.json @@ -195,7 +195,7 @@ "oxfmt": "0.50.0", "oxlint": "1.65.0", "oxlint-plugin-eslint": "1.65.0", - "oxlint-tsgolint": "0.22.1", + "oxlint-tsgolint": "0.23.0", "remark": "15.0.1", "remark-gfm": "4.0.1", "remark-pangu": "2.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 15cd23839aca..a086c8b88d59 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -436,13 +436,13 @@ importers: version: 0.50.0 oxlint: specifier: 1.65.0 - version: 1.65.0(oxlint-tsgolint@0.22.1) + version: 1.65.0(oxlint-tsgolint@0.23.0) oxlint-plugin-eslint: specifier: 1.65.0 version: 1.65.0 oxlint-tsgolint: - specifier: 0.22.1 - version: 0.22.1 + specifier: 0.23.0 + version: 0.23.0 remark: specifier: 15.0.1 version: 15.0.1 @@ -2059,33 +2059,33 @@ packages: cpu: [x64] os: [win32] - '@oxlint-tsgolint/darwin-arm64@0.22.1': - resolution: {integrity: sha512-4150Lpgc1YM09GcjA6GSrra1JoPjC7aOpfywLjWEY4vW0Sd1qKzqHF1WRaiw0/qUZ40OATYdv3aRd7ipPkWQbw==} + '@oxlint-tsgolint/darwin-arm64@0.23.0': + resolution: {integrity: sha512-gOs9PVr2wEg4ox9z0aJo+RKhhImW86YL5N6yav8BK/rgPsIrwN/igSZ+pbRr723NFvUNKde9fgMhRA6JrXAOZw==} cpu: [arm64] os: [darwin] - '@oxlint-tsgolint/darwin-x64@0.22.1': - resolution: {integrity: sha512-vFWcPWYOgZs4HWcgS1EjUZg33NLcNfEYU49KGImmCfZWkflENrmBYV4HN/C0YeAPum6ZZ/goPSvQrB/cOD+NfA==} + '@oxlint-tsgolint/darwin-x64@0.23.0': + resolution: {integrity: sha512-kjJ8B+7n4tB9VJdxS5A9GdJt6/bYpzbu4lXp2uO1S3sRmCB5gDEABlGoiePNApRWaW+xqL4b4xgiE727jSLhuA==} cpu: [x64] os: [darwin] - '@oxlint-tsgolint/linux-arm64@0.22.1': - resolution: {integrity: sha512-6LiUpP0Zir3+29FvBm7Y28q/dBjSHqTZ5MhG1Ckw4fGhI4cAvbcwXaKvbjx1TP7rRmBNOoq/M5xdpHjTb+GAew==} + '@oxlint-tsgolint/linux-arm64@0.23.0': + resolution: {integrity: sha512-6dCZuKNu135seMXilkRk9SpCx6i1XgmiipYGalLij5WVRX6ZYS8c4xI7preN/zv9fCXhsQclTIMDu2Y/cytTjw==} cpu: [arm64] os: [linux] - '@oxlint-tsgolint/linux-x64@0.22.1': - resolution: {integrity: sha512-fuX1hEQfpHauUbXADsfqVhRzrUrGabzGXbj5wsp2vKhV5uk/Rze8Mba9GdjFGECzvXudMGqHqxB4r6jGRdhxVA==} + '@oxlint-tsgolint/linux-x64@0.23.0': + resolution: {integrity: sha512-3bdilnyA7kmSTjK27rvjIjSxL5SIg3wt7vwNiRkouWB83ytssyKnuGvxSYJxgMEmFpSutzaBzcCUM2jDtPGcgA==} cpu: [x64] os: [linux] - '@oxlint-tsgolint/win32-arm64@0.22.1': - resolution: {integrity: sha512-8SZidAj+jrbZf9ZjBEYW0tiNZ+KasqB2zgW26qdiPpQSF/DzURnPmXz651IeA9YsmbVdHGIooEHUmev6QJdquA==} + '@oxlint-tsgolint/win32-arm64@0.23.0': + resolution: {integrity: sha512-j+OEp44SVYiQ+ZD+uttsX7u6L9SvmbbQ77SO1pSFCcJlsVMeCk8qZsjhKfGKuT/jIA+ipOJMVs/+pqUfObBWNw==} cpu: [arm64] os: [win32] - '@oxlint-tsgolint/win32-x64@0.22.1': - resolution: {integrity: sha512-QweSk9H5lFh5Y+WUf2Kq/OAN88V6+62ZwGhP38gqdRotI90luXSMkruFTj7Q2rYrzH4ZVNaSqx7NY8JpSfIzqg==} + '@oxlint-tsgolint/win32-x64@0.23.0': + resolution: {integrity: sha512-5MyjFuqf+g8OUPJBSGWHJtmoWnzFJYyOg4To9WMQshZYEWig/vtu7JtJ03VWnzHv9LJkAUeApY0gVCOywFR/iQ==} cpu: [x64] os: [win32] @@ -5149,8 +5149,8 @@ packages: resolution: {integrity: sha512-qzUr8spsbIeJGL3Hcrki4L3+O67uYXGoWqsSDMor4ZubasGFgsOe7I91II/PbM5Rp5EL1znO7i2HDIzYjCpjkQ==} engines: {node: ^20.19.0 || >=22.12.0} - oxlint-tsgolint@0.22.1: - resolution: {integrity: sha512-YUSGSLUnoolsu8gxISEDio3q1rtsCozwfOzASUn3DT2mR2EeQ93uEEnen7s+6LpF+lyTQFln1pQfqwBh/fsVEg==} + oxlint-tsgolint@0.23.0: + resolution: {integrity: sha512-3mBv3CoPbh8dFbzfDGIWa2ytZjn2v+3EX4aKRXjIhsoGFzG8GCjfRirz3rwZf1wYbZzsNLTSgpw8VjQuWdp/jA==} hasBin: true oxlint@1.65.0: @@ -7783,22 +7783,22 @@ snapshots: '@oxfmt/binding-win32-x64-msvc@0.50.0': optional: true - '@oxlint-tsgolint/darwin-arm64@0.22.1': + '@oxlint-tsgolint/darwin-arm64@0.23.0': optional: true - '@oxlint-tsgolint/darwin-x64@0.22.1': + '@oxlint-tsgolint/darwin-x64@0.23.0': optional: true - '@oxlint-tsgolint/linux-arm64@0.22.1': + '@oxlint-tsgolint/linux-arm64@0.23.0': optional: true - '@oxlint-tsgolint/linux-x64@0.22.1': + '@oxlint-tsgolint/linux-x64@0.23.0': optional: true - '@oxlint-tsgolint/win32-arm64@0.22.1': + '@oxlint-tsgolint/win32-arm64@0.23.0': optional: true - '@oxlint-tsgolint/win32-x64@0.22.1': + '@oxlint-tsgolint/win32-x64@0.23.0': optional: true '@oxlint/binding-android-arm-eabi@1.65.0': @@ -11046,16 +11046,16 @@ snapshots: oxlint-plugin-eslint@1.65.0: {} - oxlint-tsgolint@0.22.1: + oxlint-tsgolint@0.23.0: optionalDependencies: - '@oxlint-tsgolint/darwin-arm64': 0.22.1 - '@oxlint-tsgolint/darwin-x64': 0.22.1 - '@oxlint-tsgolint/linux-arm64': 0.22.1 - '@oxlint-tsgolint/linux-x64': 0.22.1 - '@oxlint-tsgolint/win32-arm64': 0.22.1 - '@oxlint-tsgolint/win32-x64': 0.22.1 - - oxlint@1.65.0(oxlint-tsgolint@0.22.1): + '@oxlint-tsgolint/darwin-arm64': 0.23.0 + '@oxlint-tsgolint/darwin-x64': 0.23.0 + '@oxlint-tsgolint/linux-arm64': 0.23.0 + '@oxlint-tsgolint/linux-x64': 0.23.0 + '@oxlint-tsgolint/win32-arm64': 0.23.0 + '@oxlint-tsgolint/win32-x64': 0.23.0 + + oxlint@1.65.0(oxlint-tsgolint@0.23.0): optionalDependencies: '@oxlint/binding-android-arm-eabi': 1.65.0 '@oxlint/binding-android-arm64': 1.65.0 @@ -11076,7 +11076,7 @@ snapshots: '@oxlint/binding-win32-arm64-msvc': 1.65.0 '@oxlint/binding-win32-ia32-msvc': 1.65.0 '@oxlint/binding-win32-x64-msvc': 1.65.0 - oxlint-tsgolint: 0.22.1 + oxlint-tsgolint: 0.23.0 p-cancelable@4.0.1: {} From 873b6bec64d7d05769f03fffee9883b79bb984c8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 May 2026 20:52:55 +0800 Subject: [PATCH 433/439] chore(deps): bump lru-cache from 11.3.6 to 11.4.0 (#22038) Bumps [lru-cache](https://github.com/isaacs/node-lru-cache) from 11.3.6 to 11.4.0. - [Changelog](https://github.com/isaacs/node-lru-cache/blob/main/CHANGELOG.md) - [Commits](https://github.com/isaacs/node-lru-cache/compare/v11.3.6...v11.4.0) --- updated-dependencies: - dependency-name: lru-cache dependency-version: 11.4.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 606836915574..213de6921d36 100644 --- a/package.json +++ b/package.json @@ -103,7 +103,7 @@ "json-bigint": "1.0.0", "jsonpath-plus": "10.4.0", "jsrsasign": "11.1.3", - "lru-cache": "11.3.6", + "lru-cache": "11.4.0", "lz-string": "1.5.0", "mailparser": "3.9.8", "markdown-it": "14.1.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a086c8b88d59..5379096ea0cc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -170,8 +170,8 @@ importers: specifier: 11.1.3 version: 11.1.3 lru-cache: - specifier: 11.3.6 - version: 11.3.6 + specifier: 11.4.0 + version: 11.4.0 lz-string: specifier: 1.5.0 version: 1.5.0 @@ -4714,8 +4714,8 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - lru-cache@11.3.6: - resolution: {integrity: sha512-Gf/KoL3C/MlI7Bt0PGI9I+TeTC/I6r/csU58N4BSNc4lppLBeKsOdFYkK+dX0ABDUMJNfCHTyPpzwwO21Awd3A==} + lru-cache@11.4.0: + resolution: {integrity: sha512-W+R+kFL4HgVxONq2bhXPi3bGpzGe/yEhVOp233qw9wCRtgncJ15P3bC+e4zZMu4Cq7d+WAJjXGW0uUkifhcatA==} engines: {node: 20 || >=22} lru-queue@0.1.0: @@ -10238,7 +10238,7 @@ snapshots: decimal.js: 10.6.0 html-encoding-sniffer: 6.0.0(@noble/hashes@2.0.1) is-potential-custom-element-name: 1.0.1 - lru-cache: 11.3.6 + lru-cache: 11.4.0 parse5: 8.0.1 saxes: 6.0.0 symbol-tree: 3.2.4 @@ -10416,7 +10416,7 @@ snapshots: lru-cache@10.4.3: {} - lru-cache@11.3.6: {} + lru-cache@11.4.0: {} lru-queue@0.1.0: dependencies: @@ -11166,7 +11166,7 @@ snapshots: path-scurry@2.0.2: dependencies: - lru-cache: 11.3.6 + lru-cache: 11.4.0 minipass: 7.1.3 path-to-regexp@6.3.0: {} From d57822a999eedf3d41e20d189d40883d6a76ac43 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 May 2026 21:01:57 +0800 Subject: [PATCH 434/439] chore(deps): bump @hono/node-server from 2.0.2 to 2.0.3 (#22039) Bumps [@hono/node-server](https://github.com/honojs/node-server) from 2.0.2 to 2.0.3. - [Release notes](https://github.com/honojs/node-server/releases) - [Commits](https://github.com/honojs/node-server/compare/v2.0.2...v2.0.3) --- updated-dependencies: - dependency-name: "@hono/node-server" dependency-version: 2.0.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 213de6921d36..5f76a48f58c0 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "@bbob/plugin-helper": "4.3.1", "@bbob/preset-html5": "4.3.1", "@honeybadger-io/js": "6.14.0", - "@hono/node-server": "2.0.2", + "@hono/node-server": "2.0.3", "@hono/zod-openapi": "1.4.0", "@jocmp/mercury-parser": "3.0.8", "@notionhq/client": "5.21.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5379096ea0cc..f793fcfb2d5b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -44,8 +44,8 @@ importers: specifier: 6.14.0 version: 6.14.0 '@hono/node-server': - specifier: 2.0.2 - version: 2.0.2(hono@4.12.18) + specifier: 2.0.3 + version: 2.0.3(hono@4.12.18) '@hono/zod-openapi': specifier: 1.4.0 version: 1.4.0(hono@4.12.18)(zod@4.4.3) @@ -1251,8 +1251,8 @@ packages: engines: {node: '>=14'} hasBin: true - '@hono/node-server@2.0.2': - resolution: {integrity: sha512-tXlTi1h/4V7sDe7i97IVP+9re9ZU7wXZZggnR5ucCRclf1+AX6YhGStrR5w8bLj+3Mlyl0pKfBh9gqTqqnGKfQ==} + '@hono/node-server@2.0.3': + resolution: {integrity: sha512-a0jV+/HRe3G5zjFID3zObAQFdkl6zpxTuqktdDDXS3MJKcrZIkB8OkLpNBlY/WXFqv2HF4a0takPej+aNFczWA==} engines: {node: '>=20'} peerDependencies: hono: ^4 @@ -7030,7 +7030,7 @@ snapshots: '@types/aws-lambda': 8.10.161 '@types/express': 5.0.6 - '@hono/node-server@2.0.2(hono@4.12.18)': + '@hono/node-server@2.0.3(hono@4.12.18)': dependencies: hono: 4.12.18 From ffc98cad2265e0fb1eb713385fdca2283e85d297 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 May 2026 13:02:40 +0000 Subject: [PATCH 435/439] chore(deps): bump re2js from 2.8.0 to 2.8.1 (#22044) Bumps [re2js](https://github.com/le0pard/re2js) from 2.8.0 to 2.8.1. - [Release notes](https://github.com/le0pard/re2js/releases) - [Commits](https://github.com/le0pard/re2js/compare/2.8.0...2.8.1) --- updated-dependencies: - dependency-name: re2js dependency-version: 2.8.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 5f76a48f58c0..1a8f7cbe6031 100644 --- a/package.json +++ b/package.json @@ -118,7 +118,7 @@ "playwright": "1.59.1", "query-string": "9.3.1", "rate-limiter-flexible": "11.1.0", - "re2js": "2.8.0", + "re2js": "2.8.1", "rfc4648": "1.5.4", "rss-parser": "3.13.0", "sanitize-html": "2.17.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f793fcfb2d5b..cdc41ac3be36 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -215,8 +215,8 @@ importers: specifier: 11.1.0 version: 11.1.0 re2js: - specifier: 2.8.0 - version: 2.8.0 + specifier: 2.8.1 + version: 2.8.1 rfc4648: specifier: 1.5.4 version: 1.5.4 @@ -5398,8 +5398,9 @@ packages: rate-limiter-flexible@11.1.0: resolution: {integrity: sha512-lyyC0SqKz+dE5JoHZ4JMqdrM3LSZKBxzuAFAyKCYAnmHnPz/Rb6iDquxoL4CMipDXoR0G+QRhOzYWL3JKihbNw==} - re2js@2.8.0: - resolution: {integrity: sha512-HCjH9S3vdPyoYqv6++dZGa0RtG9xr7cAV00I0ymNHaKgiYOISsfTOMAj2UAP9miRWP+786AO/a4bIvtzTFOI1Q==} + re2js@2.8.1: + resolution: {integrity: sha512-+wf41CqW1qX1vRhjcBA13FCXnKnJOLD+115wavTVJXI6LInQsl9CT+Bop4W25Dz7eRfUrCzH6JTpObrkxm3uBA==} + engines: {node: '>=18.0.0'} readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} @@ -11327,7 +11328,7 @@ snapshots: rate-limiter-flexible@11.1.0: {} - re2js@2.8.0: {} + re2js@2.8.1: {} readable-stream@3.6.2: dependencies: From 810dcdf943091ac3487787a40269d24228bc0824 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 May 2026 21:48:42 +0800 Subject: [PATCH 436/439] chore(deps): bump hono from 4.12.18 to 4.12.19 (#22040) Bumps [hono](https://github.com/honojs/hono) from 4.12.18 to 4.12.19. - [Release notes](https://github.com/honojs/hono/releases) - [Commits](https://github.com/honojs/hono/compare/v4.12.18...v4.12.19) --- updated-dependencies: - dependency-name: hono dependency-version: 4.12.19 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 34 +++++++++++++++++----------------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index 1a8f7cbe6031..74721807db9f 100644 --- a/package.json +++ b/package.json @@ -90,7 +90,7 @@ "google-play-scraper": "10.1.2", "googleapis": "171.4.0", "header-generator": "2.1.82", - "hono": "4.12.18", + "hono": "4.12.19", "html-to-text": "10.0.0", "http-cookie-agent": "8.0.0", "https-proxy-agent": "9.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cdc41ac3be36..8bc46311a2c7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -45,10 +45,10 @@ importers: version: 6.14.0 '@hono/node-server': specifier: 2.0.3 - version: 2.0.3(hono@4.12.18) + version: 2.0.3(hono@4.12.19) '@hono/zod-openapi': specifier: 1.4.0 - version: 1.4.0(hono@4.12.18)(zod@4.4.3) + version: 1.4.0(hono@4.12.19)(zod@4.4.3) '@jocmp/mercury-parser': specifier: 3.0.8 version: 3.0.8 @@ -81,7 +81,7 @@ importers: version: 0.0.25 '@scalar/hono-api-reference': specifier: 0.10.16 - version: 0.10.16(hono@4.12.18) + version: 0.10.16(hono@4.12.19) '@sentry/node': specifier: 10.53.1 version: 10.53.1(@opentelemetry/exporter-trace-otlp-http@0.218.0(@opentelemetry/api@1.9.1)) @@ -131,8 +131,8 @@ importers: specifier: 2.1.82 version: 2.1.82 hono: - specifier: 4.12.18 - version: 4.12.18 + specifier: 4.12.19 + version: 4.12.19 html-to-text: specifier: 10.0.0 version: 10.0.0 @@ -4264,8 +4264,8 @@ packages: hmacsha1@1.0.0: resolution: {integrity: sha512-4FP6J0oI8jqb6gLLl9tSwVdosWJ/AKSGJ+HwYf6Ixe4MUcEkst4uWzpVQrNOCin0fzTRQbXV8ePheU8WiiDYBw==} - hono@4.12.18: - resolution: {integrity: sha512-RWzP96k/yv0PQfyXnWjs6zot20TqfpfsNXhOnev8d1InAxubW93L11/oNUc3tQqn2G0bSdAOBpX+2uDFHV7kdQ==} + hono@4.12.19: + resolution: {integrity: sha512-xa3eYXYXx68XTT4hZ7dRzsXBhaq85ToSrlUJNoR0gwz/1Ap/CNwX47wfvV7pc/xWhjKVVkLT7zBJy8chhNguqQ==} engines: {node: '>=16.9.0'} hookable@6.1.1: @@ -7031,21 +7031,21 @@ snapshots: '@types/aws-lambda': 8.10.161 '@types/express': 5.0.6 - '@hono/node-server@2.0.3(hono@4.12.18)': + '@hono/node-server@2.0.3(hono@4.12.19)': dependencies: - hono: 4.12.18 + hono: 4.12.19 - '@hono/zod-openapi@1.4.0(hono@4.12.18)(zod@4.4.3)': + '@hono/zod-openapi@1.4.0(hono@4.12.19)(zod@4.4.3)': dependencies: '@asteasolutions/zod-to-openapi': 8.5.0(zod@4.4.3) - '@hono/zod-validator': 0.8.0(hono@4.12.18)(zod@4.4.3) - hono: 4.12.18 + '@hono/zod-validator': 0.8.0(hono@4.12.19)(zod@4.4.3) + hono: 4.12.19 openapi3-ts: 4.5.0 zod: 4.4.3 - '@hono/zod-validator@0.8.0(hono@4.12.18)(zod@4.4.3)': + '@hono/zod-validator@0.8.0(hono@4.12.19)(zod@4.4.3)': dependencies: - hono: 4.12.18 + hono: 4.12.19 zod: 4.4.3 '@humanfs/core@0.19.2': @@ -8145,10 +8145,10 @@ snapshots: '@scalar/helpers@0.8.0': {} - '@scalar/hono-api-reference@0.10.16(hono@4.12.18)': + '@scalar/hono-api-reference@0.10.16(hono@4.12.19)': dependencies: '@scalar/client-side-rendering': 0.1.9 - hono: 4.12.18 + hono: 4.12.19 '@scalar/schemas@0.2.0': dependencies: @@ -9917,7 +9917,7 @@ snapshots: hmacsha1@1.0.0: {} - hono@4.12.18: {} + hono@4.12.19: {} hookable@6.1.1: {} From b0ed6a69f156c201f5fdf6fd4e065a6b96eb9eaa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 May 2026 22:17:47 +0800 Subject: [PATCH 437/439] chore(deps-dev): bump @types/node from 25.8.0 to 25.9.0 (#22045) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 25.8.0 to 25.9.0. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-version: 25.9.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 138 ++++++++++++++++++++++++------------------------- 2 files changed, 70 insertions(+), 70 deletions(-) diff --git a/package.json b/package.json index 74721807db9f..145c7f896608 100644 --- a/package.json +++ b/package.json @@ -166,7 +166,7 @@ "@types/mailparser": "3.4.6", "@types/markdown-it": "14.1.2", "@types/module-alias": "2.0.4", - "@types/node": "25.8.0", + "@types/node": "25.9.0", "@types/sanitize-html": "2.16.1", "@typescript-eslint/eslint-plugin": "8.59.3", "@typescript-eslint/parser": "8.59.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8bc46311a2c7..399319b1b073 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -354,8 +354,8 @@ importers: specifier: 2.0.4 version: 2.0.4 '@types/node': - specifier: 25.8.0 - version: 25.8.0 + specifier: 25.9.0 + version: 25.9.0 '@types/sanitize-html': specifier: 2.16.1 version: 2.16.1 @@ -382,7 +382,7 @@ importers: version: 10.4.0(jiti@2.6.1) eslint-nibble: specifier: 9.1.1 - version: 9.1.1(@types/node@25.8.0)(eslint@10.4.0(jiti@2.6.1)) + version: 9.1.1(@types/node@25.9.0)(eslint@10.4.0(jiti@2.6.1)) eslint-plugin-import-x: specifier: 4.16.2 version: 4.16.2(@typescript-eslint/utils@8.59.3(eslint@10.4.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@10.4.0(jiti@2.6.1)) @@ -427,7 +427,7 @@ importers: version: 3.0.5 msw: specifier: 2.13.4 - version: 2.13.4(@types/node@25.8.0)(typescript@5.9.3) + version: 2.13.4(@types/node@25.9.0)(typescript@5.9.3) node-network-devtools: specifier: 1.0.30 version: 1.0.30(undici@7.25.0)(utf-8-validate@5.0.10) @@ -466,10 +466,10 @@ importers: version: 11.0.5 vite-tsconfig-paths: specifier: 6.1.1 - version: 6.1.1(typescript@5.9.3)(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.1)(yaml@2.9.0)) + version: 6.1.1(typescript@5.9.3)(vite@7.3.1(@types/node@25.9.0)(jiti@2.6.1)(tsx@4.22.1)(yaml@2.9.0)) vitest: specifier: 4.1.6 - version: 4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.8.0)(@vitest/coverage-v8@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.8.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.1)(yaml@2.9.0)) + version: 4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.9.0)(@vitest/coverage-v8@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.9.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.9.0)(jiti@2.6.1)(tsx@4.22.1)(yaml@2.9.0)) wrangler: specifier: 4.92.0 version: 4.92.0(@cloudflare/workers-types@4.20260518.1)(bufferutil@4.1.0)(utf-8-validate@5.0.10) @@ -2870,8 +2870,8 @@ packages: '@types/mysql@2.15.27': resolution: {integrity: sha512-YfWiV16IY0OeBfBCk8+hXKmdTKrKlwKN1MNKAPBu5JYxLwBEZl7QzeEpGnlZb3VMGJrrGmB84gXiH+ofs/TezA==} - '@types/node@25.8.0': - resolution: {integrity: sha512-TCFSk8IZh+iLX1xtksoBVtdmgL+1IX0fC9BeU4QqFSuNdN/K+HUlhqOzEmSYYpZUVsLYcPqc9KX+60iDuninSQ==} + '@types/node@25.9.0': + resolution: {integrity: sha512-AOQwYUNolgy3VosiRqXrACUXTN8nJUtPl7FJXMqZVyxiiCLhQuG3jXKvCS1ALr+Y2OmZhzzLVlYPEqJaiqkaJQ==} '@types/pg-pool@2.0.7': resolution: {integrity: sha512-U4CwmGVQcbEuqpyju8/ptOKg6gEC+Tqsvj2xS9o1g71bUh8twxnC6ZL5rZKCsGN0iyH0CwgUyc9VR5owNQF9Ng==} @@ -7164,76 +7164,76 @@ snapshots: '@inquirer/ansi@2.0.5': {} - '@inquirer/checkbox@4.3.2(@types/node@25.8.0)': + '@inquirer/checkbox@4.3.2(@types/node@25.9.0)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@25.8.0) + '@inquirer/core': 10.3.2(@types/node@25.9.0) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@25.8.0) + '@inquirer/type': 3.0.10(@types/node@25.9.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 25.8.0 + '@types/node': 25.9.0 - '@inquirer/confirm@5.1.21(@types/node@25.8.0)': + '@inquirer/confirm@5.1.21(@types/node@25.9.0)': dependencies: - '@inquirer/core': 10.3.2(@types/node@25.8.0) - '@inquirer/type': 3.0.10(@types/node@25.8.0) + '@inquirer/core': 10.3.2(@types/node@25.9.0) + '@inquirer/type': 3.0.10(@types/node@25.9.0) optionalDependencies: - '@types/node': 25.8.0 + '@types/node': 25.9.0 - '@inquirer/confirm@6.0.11(@types/node@25.8.0)': + '@inquirer/confirm@6.0.11(@types/node@25.9.0)': dependencies: - '@inquirer/core': 11.1.8(@types/node@25.8.0) - '@inquirer/type': 4.0.5(@types/node@25.8.0) + '@inquirer/core': 11.1.8(@types/node@25.9.0) + '@inquirer/type': 4.0.5(@types/node@25.9.0) optionalDependencies: - '@types/node': 25.8.0 + '@types/node': 25.9.0 - '@inquirer/core@10.3.2(@types/node@25.8.0)': + '@inquirer/core@10.3.2(@types/node@25.9.0)': dependencies: '@inquirer/ansi': 1.0.2 '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@25.8.0) + '@inquirer/type': 3.0.10(@types/node@25.9.0) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 25.8.0 + '@types/node': 25.9.0 - '@inquirer/core@11.1.8(@types/node@25.8.0)': + '@inquirer/core@11.1.8(@types/node@25.9.0)': dependencies: '@inquirer/ansi': 2.0.5 '@inquirer/figures': 2.0.5 - '@inquirer/type': 4.0.5(@types/node@25.8.0) + '@inquirer/type': 4.0.5(@types/node@25.9.0) cli-width: 4.1.0 fast-wrap-ansi: 0.2.0 mute-stream: 3.0.0 signal-exit: 4.1.0 optionalDependencies: - '@types/node': 25.8.0 + '@types/node': 25.9.0 '@inquirer/figures@1.0.15': {} '@inquirer/figures@2.0.5': {} - '@inquirer/select@4.4.2(@types/node@25.8.0)': + '@inquirer/select@4.4.2(@types/node@25.9.0)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@25.8.0) + '@inquirer/core': 10.3.2(@types/node@25.9.0) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@25.8.0) + '@inquirer/type': 3.0.10(@types/node@25.9.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 25.8.0 + '@types/node': 25.9.0 - '@inquirer/type@3.0.10(@types/node@25.8.0)': + '@inquirer/type@3.0.10(@types/node@25.9.0)': optionalDependencies: - '@types/node': 25.8.0 + '@types/node': 25.9.0 - '@inquirer/type@4.0.5(@types/node@25.8.0)': + '@inquirer/type@4.0.5(@types/node@25.9.0)': optionalDependencies: - '@types/node': 25.8.0 + '@types/node': 25.9.0 '@ioredis/commands@1.5.1': {} @@ -8282,7 +8282,7 @@ snapshots: '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.38 - '@types/node': 25.8.0 + '@types/node': 25.9.0 '@types/caseless@0.12.5': {} @@ -8295,7 +8295,7 @@ snapshots: '@types/connect@3.4.38': dependencies: - '@types/node': 25.8.0 + '@types/node': 25.9.0 '@types/crypto-js@4.2.2': {} @@ -8318,11 +8318,11 @@ snapshots: '@types/etag@1.8.4': dependencies: - '@types/node': 25.8.0 + '@types/node': 25.9.0 '@types/express-serve-static-core@5.1.1': dependencies: - '@types/node': 25.8.0 + '@types/node': 25.9.0 '@types/qs': 6.15.1 '@types/range-parser': 1.2.7 '@types/send': 1.2.1 @@ -8336,7 +8336,7 @@ snapshots: '@types/fs-extra@11.0.4': dependencies: '@types/jsonfile': 6.1.4 - '@types/node': 25.8.0 + '@types/node': 25.9.0 '@types/html-to-text@9.0.4': {} @@ -8348,7 +8348,7 @@ snapshots: '@types/jsdom@28.0.3': dependencies: - '@types/node': 25.8.0 + '@types/node': 25.9.0 '@types/tough-cookie': 4.0.5 parse5: 8.0.1 undici-types: 7.25.0 @@ -8361,7 +8361,7 @@ snapshots: '@types/jsonfile@6.1.4': dependencies: - '@types/node': 25.8.0 + '@types/node': 25.9.0 '@types/jsrsasign@10.5.15': {} @@ -8369,7 +8369,7 @@ snapshots: '@types/mailparser@3.4.6': dependencies: - '@types/node': 25.8.0 + '@types/node': 25.9.0 iconv-lite: 0.6.3 '@types/markdown-it@14.1.2': @@ -8389,9 +8389,9 @@ snapshots: '@types/mysql@2.15.27': dependencies: - '@types/node': 25.8.0 + '@types/node': 25.9.0 - '@types/node@25.8.0': + '@types/node@25.9.0': dependencies: undici-types: 7.24.6 @@ -8401,7 +8401,7 @@ snapshots: '@types/pg@8.15.6': dependencies: - '@types/node': 25.8.0 + '@types/node': 25.9.0 pg-protocol: 1.13.0 pg-types: 2.2.0 @@ -8417,7 +8417,7 @@ snapshots: '@types/request@2.48.13': dependencies: '@types/caseless': 0.12.5 - '@types/node': 25.8.0 + '@types/node': 25.9.0 '@types/tough-cookie': 4.0.5 form-data: 2.5.5 @@ -8427,22 +8427,22 @@ snapshots: '@types/send@1.2.1': dependencies: - '@types/node': 25.8.0 + '@types/node': 25.9.0 '@types/serve-static@2.2.0': dependencies: '@types/http-errors': 2.0.5 - '@types/node': 25.8.0 + '@types/node': 25.9.0 '@types/set-cookie-parser@2.4.10': dependencies: - '@types/node': 25.8.0 + '@types/node': 25.9.0 '@types/statuses@2.0.6': {} '@types/tedious@4.0.14': dependencies: - '@types/node': 25.8.0 + '@types/node': 25.9.0 '@types/tough-cookie@4.0.5': {} @@ -8635,7 +8635,7 @@ snapshots: obug: 2.1.1 std-env: 4.1.0 tinyrainbow: 3.1.0 - vitest: 4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.8.0)(@vitest/coverage-v8@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.8.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.1)(yaml@2.9.0)) + vitest: 4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.9.0)(@vitest/coverage-v8@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.9.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.9.0)(jiti@2.6.1)(tsx@4.22.1)(yaml@2.9.0)) '@vitest/expect@4.1.6': dependencies: @@ -8646,14 +8646,14 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.6(msw@2.13.4(@types/node@25.8.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.1)(yaml@2.9.0))': + '@vitest/mocker@4.1.6(msw@2.13.4(@types/node@25.9.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.9.0)(jiti@2.6.1)(tsx@4.22.1)(yaml@2.9.0))': dependencies: '@vitest/spy': 4.1.6 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - msw: 2.13.4(@types/node@25.8.0)(typescript@5.9.3) - vite: 7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.1)(yaml@2.9.0) + msw: 2.13.4(@types/node@25.9.0)(typescript@5.9.3) + vite: 7.3.1(@types/node@25.9.0)(jiti@2.6.1)(tsx@4.22.1)(yaml@2.9.0) '@vitest/pretty-format@4.1.6': dependencies: @@ -9418,12 +9418,12 @@ snapshots: - supports-color optional: true - eslint-nibble@9.1.1(@types/node@25.8.0)(eslint@10.4.0(jiti@2.6.1)): + eslint-nibble@9.1.1(@types/node@25.9.0)(eslint@10.4.0(jiti@2.6.1)): dependencies: '@babel/code-frame': 7.29.0 - '@inquirer/checkbox': 4.3.2(@types/node@25.8.0) - '@inquirer/confirm': 5.1.21(@types/node@25.8.0) - '@inquirer/select': 4.4.2(@types/node@25.8.0) + '@inquirer/checkbox': 4.3.2(@types/node@25.9.0) + '@inquirer/confirm': 5.1.21(@types/node@25.9.0) + '@inquirer/select': 4.4.2(@types/node@25.9.0) eslint: 10.4.0(jiti@2.6.1) eslint-filtered-fix: 0.3.0(eslint@10.4.0(jiti@2.6.1)) optionator: 0.9.4 @@ -10841,9 +10841,9 @@ snapshots: ms@2.1.3: {} - msw@2.13.4(@types/node@25.8.0)(typescript@5.9.3): + msw@2.13.4(@types/node@25.9.0)(typescript@5.9.3): dependencies: - '@inquirer/confirm': 6.0.11(@types/node@25.8.0) + '@inquirer/confirm': 6.0.11(@types/node@25.9.0) '@mswjs/interceptors': 0.41.3(patch_hash=5027fcc424409c41c41147fc6c90b36166061522e0b03e73b45f9a973fcd2a28) '@open-draft/deferred-promise': 3.0.0 '@types/statuses': 2.0.6 @@ -11285,7 +11285,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.1 - '@types/node': 25.8.0 + '@types/node': 25.9.0 long: 5.3.2 psl@1.15.0: @@ -12188,17 +12188,17 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vite-tsconfig-paths@6.1.1(typescript@5.9.3)(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.1)(yaml@2.9.0)): + vite-tsconfig-paths@6.1.1(typescript@5.9.3)(vite@7.3.1(@types/node@25.9.0)(jiti@2.6.1)(tsx@4.22.1)(yaml@2.9.0)): dependencies: debug: 4.4.3 globrex: 0.1.2 tsconfck: 3.1.6(typescript@5.9.3) - vite: 7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.1)(yaml@2.9.0) + vite: 7.3.1(@types/node@25.9.0)(jiti@2.6.1)(tsx@4.22.1)(yaml@2.9.0) transitivePeerDependencies: - supports-color - typescript - vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.1)(yaml@2.9.0): + vite@7.3.1(@types/node@25.9.0)(jiti@2.6.1)(tsx@4.22.1)(yaml@2.9.0): dependencies: esbuild: 0.27.7 fdir: 6.5.0(picomatch@4.0.4) @@ -12207,16 +12207,16 @@ snapshots: rollup: 4.60.4 tinyglobby: 0.2.16 optionalDependencies: - '@types/node': 25.8.0 + '@types/node': 25.9.0 fsevents: 2.3.3 jiti: 2.6.1 tsx: 4.22.1 yaml: 2.9.0 - vitest@4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.8.0)(@vitest/coverage-v8@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.8.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.1)(yaml@2.9.0)): + vitest@4.1.6(@edge-runtime/vm@3.2.0)(@opentelemetry/api@1.9.1)(@types/node@25.9.0)(@vitest/coverage-v8@4.1.6)(jsdom@29.1.1(@noble/hashes@2.0.1))(msw@2.13.4(@types/node@25.9.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.9.0)(jiti@2.6.1)(tsx@4.22.1)(yaml@2.9.0)): dependencies: '@vitest/expect': 4.1.6 - '@vitest/mocker': 4.1.6(msw@2.13.4(@types/node@25.8.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.1)(yaml@2.9.0)) + '@vitest/mocker': 4.1.6(msw@2.13.4(@types/node@25.9.0)(typescript@5.9.3))(vite@7.3.1(@types/node@25.9.0)(jiti@2.6.1)(tsx@4.22.1)(yaml@2.9.0)) '@vitest/pretty-format': 4.1.6 '@vitest/runner': 4.1.6 '@vitest/snapshot': 4.1.6 @@ -12233,12 +12233,12 @@ snapshots: tinyexec: 1.1.2 tinyglobby: 0.2.16 tinyrainbow: 3.1.0 - vite: 7.3.1(@types/node@25.8.0)(jiti@2.6.1)(tsx@4.22.1)(yaml@2.9.0) + vite: 7.3.1(@types/node@25.9.0)(jiti@2.6.1)(tsx@4.22.1)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: '@edge-runtime/vm': 3.2.0 '@opentelemetry/api': 1.9.1 - '@types/node': 25.8.0 + '@types/node': 25.9.0 '@vitest/coverage-v8': 4.1.6(vitest@4.1.6) jsdom: 29.1.1(@noble/hashes@2.0.1) transitivePeerDependencies: From 741ac133df756af18bce94c56f410f4e2908eeb6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 May 2026 22:33:28 +0800 Subject: [PATCH 438/439] chore(deps): bump nixpkgs from `da5ad66` to `d233902` (#22047) Bumps [nixpkgs](https://github.com/NixOS/nixpkgs) from `da5ad66` to `d233902`. - [Commits](https://github.com/NixOS/nixpkgs/compare/da5ad661ba4e5ef59ba743f0d112cbc30e474f32...d233902339c02a9c334e7e593de68855ad26c4cb) --- updated-dependencies: - dependency-name: nixpkgs dependency-version: d233902339c02a9c334e7e593de68855ad26c4cb dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 7bff68eb7d5a..c4259049c8be 100644 --- a/flake.lock +++ b/flake.lock @@ -824,11 +824,11 @@ }, "nixpkgs_7": { "locked": { - "lastModified": 1778443072, - "narHash": "sha256-zi7/fsqM/kFdNuED//4WOCUtezGtKKqRNORjMvfwjnA=", + "lastModified": 1778869304, + "narHash": "sha256-30sZNZoA1cqF5JNO9fVX+wgiQYjB7HJqqJ4ztCDeBZE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "da5ad661ba4e5ef59ba743f0d112cbc30e474f32", + "rev": "d233902339c02a9c334e7e593de68855ad26c4cb", "type": "github" }, "original": { From ee10e29b80fe262fe68eec046e22b37413c22583 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 May 2026 22:52:21 +0800 Subject: [PATCH 439/439] chore(deps): bump devenv from `e44d88a` to `58b0452` (#22048) Bumps [devenv](https://github.com/cachix/devenv) from `e44d88a` to `58b0452`. - [Release notes](https://github.com/cachix/devenv/releases) - [Commits](https://github.com/cachix/devenv/compare/e44d88a683bf945c72445babd85f1d2e4e933409...58b04522edfe56e4b37a4d4600104db6429f4667) --- updated-dependencies: - dependency-name: devenv dependency-version: 58b04522edfe56e4b37a4d4600104db6429f4667 dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index c4259049c8be..f35fbb39b876 100644 --- a/flake.lock +++ b/flake.lock @@ -164,11 +164,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1778814374, - "narHash": "sha256-gZIaq9to5brzEsnlHE2D0FRN4ixZJEBd2ZV/3WNlt4Q=", + "lastModified": 1779032662, + "narHash": "sha256-+qN6YTSArEThWA8XGCyIz0qZz1GTNRLRUcHxPjf1eZk=", "owner": "cachix", "repo": "devenv", - "rev": "e44d88a683bf945c72445babd85f1d2e4e933409", + "rev": "58b04522edfe56e4b37a4d4600104db6429f4667", "type": "github" }, "original": {