From bdc4b2bfbff1b2278565289b6fbbcbfce396b9a5 Mon Sep 17 00:00:00 2001
From: Ethan Shen <42264778+nczitzk@users.noreply.github.com>
Date: Mon, 20 Nov 2023 20:18:50 +0800
Subject: [PATCH 01/10] =?UTF-8?q?feat(route):=20add=20=E4=B8=AD=E5=8D=8E?=
=?UTF-8?q?=E4=BA=BA=E6=B0=91=E5=85=B1=E5=92=8C=E5=9B=BD=E5=86=9C=E4=B8=9A?=
=?UTF-8?q?=E5=86=9C=E6=9D=91=E9=83=A8=E6=95=B0=E6=8D=AE=20(#13828)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
lib/router.js | 4 +-
lib/routes/gov/moa/sjzxfb.js | 20 ------
lib/v2/gov/maintainer.js | 2 +
lib/{routes => v2}/gov/moa/moa.js | 0
lib/v2/gov/moa/zdscxx.js | 104 +++++++++++++++++++++++++++++
lib/v2/gov/radar.js | 29 ++++++++
lib/v2/gov/router.js | 3 +
website/docs/routes/government.mdx | 34 +++++++++-
8 files changed, 172 insertions(+), 24 deletions(-)
delete mode 100644 lib/routes/gov/moa/sjzxfb.js
rename lib/{routes => v2}/gov/moa/moa.js (100%)
create mode 100644 lib/v2/gov/moa/zdscxx.js
diff --git a/lib/router.js b/lib/router.js
index 3e78f10e4c50f6..36a357b75135f5 100644
--- a/lib/router.js
+++ b/lib/router.js
@@ -1047,8 +1047,8 @@ router.get('/im2maker/:channel?', lazyloadRouteHandler('./routes/im2maker/index'
router.get('/cninfo/announcement/:column/:code/:orgId/:category?/:search?', lazyloadRouteHandler('./routes/cninfo/announcement'));
// 中华人民共和国农业农村部
-router.get('/gov/moa/sjzxfb', lazyloadRouteHandler('./routes/gov/moa/sjzxfb'));
-router.get('/gov/moa/:suburl(.*)', lazyloadRouteHandler('./routes/gov/moa/moa'));
+// router.get('/gov/moa/sjzxfb', lazyloadRouteHandler('./routes/gov/moa/sjzxfb'));
+// router.get('/gov/moa/:suburl(.*)', lazyloadRouteHandler('./routes/gov/moa/moa'));
// 香水时代
router.get('/nosetime/:id/:type/:sort?', lazyloadRouteHandler('./routes/nosetime/comment'));
diff --git a/lib/routes/gov/moa/sjzxfb.js b/lib/routes/gov/moa/sjzxfb.js
deleted file mode 100644
index c9058775dcb7d3..00000000000000
--- a/lib/routes/gov/moa/sjzxfb.js
+++ /dev/null
@@ -1,20 +0,0 @@
-const got = require('@/utils/got');
-
-module.exports = async (ctx) => {
- const response = await got({
- method: 'get',
- url: `http://zdscxx.moa.gov.cn:8080/misportal/echartReport/webData/%E6%9C%80%E6%96%B0%E5%8F%91%E5%B8%83/page1.json`,
- });
- const data = response.data;
-
- ctx.state.data = {
- title: '中华人民共和国农业农村部 - 数据 - 最新发布',
- link: `http://zdscxx.moa.gov.cn:8080/nyb/pc/index.jsp`,
- item: data.map((item) => ({
- title: item.title,
- description: item.content,
- link: `http://zdscxx.moa.gov.cn:8080/misportal/public/agricultureMessageViewDC.jsp?page=1&channel=%E6%9C%80%E6%96%B0%E5%8F%91%E5%B8%83&id=${item._id}`,
- pubDate: new Date(item.publishTime),
- })),
- };
-};
diff --git a/lib/v2/gov/maintainer.js b/lib/v2/gov/maintainer.js
index b743963c3f5699..b2c1bc1b922be8 100644
--- a/lib/v2/gov/maintainer.js
+++ b/lib/v2/gov/maintainer.js
@@ -29,6 +29,8 @@ module.exports = {
'/miit/zcwj': ['Yoge-Code'],
'/miit/wjgs': ['Yoge-Code'],
'/miit/zcjd': ['Yoge-Code'],
+ '/moa/zdscxx/:channel?/:source?': ['MisteryMonster', 'nczitzk'],
+ '/moa/:suburl': ['Origami404'],
'/moe/:type': ['Crawler995'],
'/moe/s78/:column': ['TonyRL'],
'/mofcom/article/:suffix+': ['LogicJake'],
diff --git a/lib/routes/gov/moa/moa.js b/lib/v2/gov/moa/moa.js
similarity index 100%
rename from lib/routes/gov/moa/moa.js
rename to lib/v2/gov/moa/moa.js
diff --git a/lib/v2/gov/moa/zdscxx.js b/lib/v2/gov/moa/zdscxx.js
new file mode 100644
index 00000000000000..d37cd20bcd2dfb
--- /dev/null
+++ b/lib/v2/gov/moa/zdscxx.js
@@ -0,0 +1,104 @@
+const got = require('@/utils/got');
+const cheerio = require('cheerio');
+const { parseDate } = require('@/utils/parse-date');
+
+module.exports = async (ctx) => {
+ const { category } = ctx.params;
+ const limit = ctx.query.limit ? parseInt(ctx.query.limit, 10) : 5;
+
+ const domain = 'moa.gov.cn';
+ const rootFrameUrl = `http://www.${domain}`;
+ const rootUrl = `http://zdscxx.${domain}:8080`;
+ const apiUrl = new URL('nyb/getMessages', rootUrl).href;
+ const apiDetailUrl = new URL('nyb/getMessagesById', rootUrl).href;
+ const currentUrl = new URL('nyb/pc/messageList.jsp', rootUrl).href;
+ const frameUrl = new URL('iframe/top_sj', rootFrameUrl).href;
+
+ let filterForm = {};
+
+ if (category) {
+ const apiFilterUrl = new URL('nyb/getMessageFilters', rootUrl).href;
+
+ const { data: filterResponse } = await got.post(apiFilterUrl, {
+ form: {
+ type: '',
+ isLatestMessage: false,
+ },
+ });
+
+ const filters = filterResponse.result.reduce((filters, f) => {
+ filters[f.name] = f.data.map((d) => d.name);
+ return filters;
+ }, {});
+
+ filterForm = category.split(/\//).reduce((form, c) => {
+ Object.keys(filters)
+ .filter((key) => filters[key].includes(c))
+ .forEach((key) => {
+ form[key] = c;
+ });
+ return form;
+ }, {});
+ }
+
+ const { data: response } = await got.post(apiUrl, {
+ form: {
+ page: 1,
+ rows: limit,
+ type: '',
+ isLatestMessage: false,
+ ...filterForm,
+ },
+ });
+
+ let items = response.result.table.slice(0, limit).map((item) => ({
+ title: item.title,
+ link: item.id,
+ guid: `moa-zdscxx-${item.id}`,
+ pubDate: parseDate(item.date),
+ }));
+
+ items = await Promise.all(
+ items.map((item) =>
+ ctx.cache.tryGet(item.guid, async () => {
+ const { data: detailResponse } = await got.post(apiDetailUrl, {
+ form: {
+ id: item.link,
+ },
+ });
+
+ const data = detailResponse.result;
+
+ item.title = data.title;
+ item.link = new URL(`nyb/pc/messageView.jsp?id=${item.link}`, rootUrl).href;
+ item.description = data.content;
+ item.author = data.source;
+ item.pubDate = parseDate(data.date);
+
+ return item;
+ })
+ )
+ );
+
+ const { data: frameResponse } = await got(frameUrl);
+
+ const $ = cheerio.load(frameResponse);
+
+ const title = $('title').text();
+ const description = '数据';
+ const icon = new URL('favicon.ico', rootUrl).href;
+
+ ctx.state.data = {
+ item: items,
+ title: `${title} - ${description} - ${category}`,
+ link: currentUrl,
+ description,
+ language: 'zh',
+ image: $('h1.logo a img').prop('src'),
+ icon,
+ logo: icon,
+ subtitle: category,
+ author: title,
+ allowEmpty: true,
+ };
+};
diff --git a/lib/v2/gov/radar.js b/lib/v2/gov/radar.js
index 38e3447bdaddda..13bd7aef27fbe1 100644
--- a/lib/v2/gov/radar.js
+++ b/lib/v2/gov/radar.js
@@ -816,6 +816,35 @@ module.exports = {
},
],
},
+ 'moa.gov.cn': {
+ _name: '中华人民共和国农业农村部',
+ '.': [
+ {
+ title: '新闻',
+ docs: 'https://docs.rsshub.app/routes/government#zhong-hua-ren-min-gong-he-guo-jiao-yu-bu-xin-wen',
+ source: ['/'],
+ target: '/gov/moa/:suburl',
+ },
+ ],
+ zdscxx: [
+ {
+ title: '数据',
+ docs: 'https://docs.rsshub.app/routes/government#zhong-hua-ren-min-gong-he-guo-jiao-yu-bu',
+ source: ['/nyb/pc/messageView.jsp'],
+ target: (document) => {
+ if (!document) {
+ return '/gov/moa/zdscxx';
+ }
+ const selected = document.querySelectorAll('.colorRed');
+ const categories = Array.from(selected)
+ .map((s) => s.getAttribute('_key'))
+ .join('/');
+
+ return `/gov/moa/zdscxx${categories ? `/${categories}` : ''}`;
+ },
+ },
+ ],
+ },
'moe.gov.cn': {
_name: '中华人民共和国教育部',
'.': [
diff --git a/lib/v2/gov/router.js b/lib/v2/gov/router.js
index ebd1258ecccf17..98d2cc4bd7a402 100644
--- a/lib/v2/gov/router.js
+++ b/lib/v2/gov/router.js
@@ -21,6 +21,9 @@ module.exports = function (router) {
router.get('/miit/zcwj', require('./miit/zcwj'));
router.get('/miit/wjgs', require('./miit/wjgs'));
router.get('/miit/zcjd', require('./miit/zcjd'));
+ router.get('/moa/sjzxfb/:category*', require('./moa/zdscxx'));
+ router.get('/moa/zdscxx/:category*', require('./moa/zdscxx'));
+ router.get('/moa/:suburl(.*)', require('./moa/moa'));
router.get('/moe/:type', require('./moe/moe'));
router.get('/moe/s78/:column', require('./moe/s78'));
router.get('/mofcom/article/:suffix+', require('./mofcom/article'));
diff --git a/website/docs/routes/government.mdx b/website/docs/routes/government.mdx
index 4133a8ce791c41..2ff76eb152923d 100644
--- a/website/docs/routes/government.mdx
+++ b/website/docs/routes/government.mdx
@@ -1808,9 +1808,39 @@ Language
-### 数据 - 最新发布 {#zhong-hua-ren-min-gong-he-guo-nong-ye-nong-cun-bu-shu-ju-zui-xin-fa-bu}
+### 数据 {#zhong-hua-ren-min-gong-he-guo-nong-ye-nong-cun-bu-shu-ju}
-
+
+
+#### 报告主题 {#zhong-hua-ren-min-gong-he-guo-nong-ye-nong-cun-bu-shu-ju-bao-gao-zhu-ti}
+
+| 价格指数 | 供需月报 | 日历信息 | 蔬菜生产 |
+| -------- | -------- | -------- | -------- |
+
+#### 报告来源 {#zhong-hua-ren-min-gong-he-guo-nong-ye-nong-cun-bu-shu-ju-bao-gao-lai-yuan}
+
+| 农业农村部市场与信息化司 | 农业农村部畜牧兽医局 | 农业农村部种植业管理司 | 农业农村部信息中心 | 农业农村部农业贸易促进中心 |
+| ------------------------ | -------------------- | ---------------------- | ------------------ | -------------------------- |
+
+| 新华网 | 新闻晨报 | 楚天都市报 | 中国兴农网 | 泉州晚报 |
+| ------ | -------- | ---------- | ---------- | -------- |
+
+| 潇湘晨报 | 澎湃新闻 | 环京津网 | 经济日报 | 腾讯网 |
+| -------- | -------- | -------- | -------- | ------ |
+
+| 贵阳晚报 | 山东广播电视台闪电新闻客户端 | 央视网 | 农产品;平衡表;供需分析 | 农民日报 |
+| -------- | ---------------------------- | ------ | ---------------------- | -------- |
+
+| 重庆市黔江区人民政府 | 农业农村部新闻办公室 | 农业农村部市场预警专家委员会 | 农业农村部市场畜牧兽医局 | 其它来源 |
+| -------------------- | -------------------- | ---------------------------- | ------------------------ | -------- |
+
+| 人民网 | 人民日报 | 中央气象台 | 中国证券报 | 中国网 |
+| ------ | -------- | ---------- | ---------- | ------ |
+
+| 中国新闻网 | 南方日报 | 黑龙江省政府新闻办 |
+| ---------- | -------- | ------------------ |
+
+
## 中华人民共和国人力资源和社会保障部 {#zhong-hua-ren-min-gong-he-guo-ren-li-zi-yuan-he-she-hui-bao-zhang-bu}
From c8bb9dcc4a76e912bd171909d2399a29ee6fc770 Mon Sep 17 00:00:00 2001
From: Tony
Date: Mon, 20 Nov 2023 16:04:58 +0000
Subject: [PATCH 02/10] fix(route/nature): fix item.category (#13839)
* fix(route/nature): fix item.category
* fix: shared cookieJar
---
lib/v2/nature/cover.js | 74 ++++++++---------
lib/v2/nature/highlight.js | 4 +-
lib/v2/nature/news-and-comment.js | 4 +-
lib/v2/nature/news.js | 4 +-
lib/v2/nature/research.js | 4 +-
lib/v2/nature/siteindex.js | 10 +--
lib/v2/nature/utils.js | 129 ++++++++++++++++++++++++++++--
7 files changed, 169 insertions(+), 60 deletions(-)
diff --git a/lib/v2/nature/cover.js b/lib/v2/nature/cover.js
index c08bb161d467c5..cecc930ea11ae9 100644
--- a/lib/v2/nature/cover.js
+++ b/lib/v2/nature/cover.js
@@ -18,56 +18,46 @@ const got = require('@/utils/got');
const cheerio = require('cheerio');
const { parseDate } = require('@/utils/parse-date');
const { baseUrl, journalMap } = require('./utils');
+const { CookieJar } = require('tough-cookie');
module.exports = async (ctx) => {
- const journals = journalMap.items;
+ const cookieJar = new CookieJar();
+
+ await got('https://www.nature.com', { cookieJar });
+
+ const journals = journalMap.items
+ .filter((j) => j.id)
+ .map((j) => ({
+ ...j,
+ link: `${baseUrl}/${j.title}/current-issue`,
+ }));
+
const out = await Promise.all(
- journals
- .filter((j) => j.id)
- .map(async (journal) => {
- // get the lastest volumn and issue id
- const pageURL = `${baseUrl}/${journal.title}/current-issue`;
- const cookieData = await got
- .extend({
- prefixUrl: 'https://idp.nature.com/authorize',
- followRedirect: false,
- })
- .get(`?response_type=cookie&client_id=grover&redirect_uri=${encodeURI(pageURL)}`)
- .then((response) => response.headers['set-cookie'].join(' '));
- const issueURL = await got
- .extend({
- prefixUrl: pageURL,
- headers: {
- cookie: cookieData,
- },
- followRedirect: false,
- })
- .get('')
- .then((response) => response.headers.location);
- const capturingRegex = /volumes\/(?\d+)\/issues\/(?\d+)/;
- const { volumes, issues } = issueURL.match(capturingRegex).groups;
+ journals.map((journal) =>
+ ctx.cache.tryGet(journal.link, async () => {
+ const { id } = journal;
- const address = `${baseUrl}${issueURL}`;
- return ctx.cache.tryGet(address, async () => {
- const id = journal.id;
- const imageURL = `https://media.springernature.com/full/springer-static/cover-hires/journal/${id}/${volumes}/${issues}?as=webp`;
- const contents = ``;
+ const response = await got(journal.link, { cookieJar });
- const response = await got(address);
- const $ = cheerio.load(response.data);
- const date = $('title').text().split(',')[1].trim();
- const issueDescription = $('div[data-test=issue-description]').html() ?? '';
+ const capturingRegex = /volumes\/(?\d+)\/issues\/(?\d+)/;
+ const { volume, issue } = response.url.match(capturingRegex).groups;
+ const imageUrl = `https://media.springernature.com/full/springer-static/cover-hires/journal/${id}/${volume}/${issue}?as=webp`;
+ const contents = ``;
- const single = {
- title: `${journal.name} | Volume ${volumes} Issue ${issues}`,
- description: contents + issueDescription,
- link: address,
- pubDate: parseDate(date, 'MMMM YYYY'),
- };
- return single;
- });
+ const $ = cheerio.load(response.data);
+ const date = $('title').text().split(',')[1].trim();
+ const issueDescription = $('div[data-test=issue-description]').html() ?? '';
+
+ return {
+ title: `${journal.name} | Volume ${volume} Issue ${issue}`,
+ description: contents + issueDescription,
+ link: response.url,
+ pubDate: parseDate(date, 'MMMM YYYY'),
+ };
})
+ )
);
+
ctx.state.data = {
title: 'Nature Covers Story',
description: 'Find out the cover story of some Nature journals.',
diff --git a/lib/v2/nature/highlight.js b/lib/v2/nature/highlight.js
index f8a4bf0cd652ca..d8c6a6a8b41b2c 100644
--- a/lib/v2/nature/highlight.js
+++ b/lib/v2/nature/highlight.js
@@ -1,12 +1,12 @@
const cheerio = require('cheerio');
const got = require('@/utils/got');
-const { baseUrl, getArticleList, getArticle } = require('./utils');
+const { baseUrl, cookieJar, getArticleList, getArticle } = require('./utils');
module.exports = async (ctx) => {
const { journal = 'nature' } = ctx.params;
const url = `${baseUrl}/${journal}/articles?type=research-highlight`;
- const res = await got(url);
+ const res = await got(url, { cookieJar });
const $ = cheerio.load(res.data);
let items = getArticleList($);
diff --git a/lib/v2/nature/news-and-comment.js b/lib/v2/nature/news-and-comment.js
index 9b0ebd046c3e6b..d0c73e534f8ca9 100644
--- a/lib/v2/nature/news-and-comment.js
+++ b/lib/v2/nature/news-and-comment.js
@@ -14,13 +14,13 @@
const cheerio = require('cheerio');
const got = require('@/utils/got');
-const { baseUrl, getArticleList, getArticle } = require('./utils');
+const { baseUrl, cookieJar, getArticleList, getArticle } = require('./utils');
module.exports = async (ctx) => {
const journal = ctx.params.journal;
const pageURL = `${baseUrl}/${journal}/news-and-comment`;
- const pageResponse = await got(pageURL);
+ const pageResponse = await got(pageURL, { cookieJar });
const pageCapture = cheerio.load(pageResponse.data);
const pageDescription = pageCapture('meta[name=description]').attr('content') || 'Nature, a nature research journal';
diff --git a/lib/v2/nature/news.js b/lib/v2/nature/news.js
index 911edf0e60904e..717695fc54eabf 100644
--- a/lib/v2/nature/news.js
+++ b/lib/v2/nature/news.js
@@ -1,11 +1,11 @@
const cheerio = require('cheerio');
const got = require('@/utils/got');
const { parseDate } = require('@/utils/parse-date');
-const { baseUrl, getArticle } = require('./utils');
+const { baseUrl, cookieJar, getArticle } = require('./utils');
module.exports = async (ctx) => {
const url = `${baseUrl}/latest-news`;
- const res = await got(url);
+ const res = await got(url, { cookieJar });
const $ = cheerio.load(res.data);
let items = $('.c-article-item__content')
diff --git a/lib/v2/nature/research.js b/lib/v2/nature/research.js
index 3d683bb31a16f4..c28a0b10891a7a 100644
--- a/lib/v2/nature/research.js
+++ b/lib/v2/nature/research.js
@@ -15,13 +15,13 @@
const cheerio = require('cheerio');
const got = require('@/utils/got');
-const { baseUrl, getArticleList, getDataLayer, getArticle } = require('./utils');
+const { baseUrl, cookieJar, getArticleList, getDataLayer, getArticle } = require('./utils');
module.exports = async (ctx) => {
const journal = ctx.params.journal ?? 'nature';
const pageURL = `${baseUrl}/${journal}/research-articles`;
- const pageResponse = await got(pageURL);
+ const pageResponse = await got(pageURL, { cookieJar });
const pageCapture = cheerio.load(pageResponse.data);
const pageTitle = getDataLayer(pageCapture).content.journal.title;
diff --git a/lib/v2/nature/siteindex.js b/lib/v2/nature/siteindex.js
index 055e67f0d1e52d..302affc88edd17 100644
--- a/lib/v2/nature/siteindex.js
+++ b/lib/v2/nature/siteindex.js
@@ -1,9 +1,9 @@
const got = require('@/utils/got');
const cheerio = require('cheerio');
-const { baseUrl } = require('./utils');
+const { baseUrl, cookieJar } = require('./utils');
module.exports = async (ctx) => {
- const response = await got(`${baseUrl}/siteindex`);
+ const response = await got(`${baseUrl}/siteindex`, { cookieJar });
const $ = cheerio.load(response.data);
let items = $('li[class^="grid mq640-grid-12"]')
@@ -11,7 +11,7 @@ module.exports = async (ctx) => {
.map((item) => {
item = $(item);
return {
- title: item.find('a').attr('href').replace('/', ''),
+ title: item.find('a').attr('href').replaceAll('/', ''),
name: item.find('a').text(),
link: baseUrl + item.find('a').attr('href'),
};
@@ -20,7 +20,7 @@ module.exports = async (ctx) => {
items = await Promise.all(
items.map((item) =>
ctx.cache.tryGet(`nature:siteindex:${item.title}`, async () => {
- const response = await got(item.link);
+ const response = await got(item.link, { cookieJar });
const $ = cheerio.load(response.data);
delete item.link;
@@ -39,7 +39,7 @@ module.exports = async (ctx) => {
ctx.state.data = {
title: 'Nature siteindex',
- link: baseUrl + '/siteindex',
+ link: response.url,
item: items,
};
ctx.state.json = {
diff --git a/lib/v2/nature/utils.js b/lib/v2/nature/utils.js
index ce7dfe6f83047b..c3507ef48532b4 100644
--- a/lib/v2/nature/utils.js
+++ b/lib/v2/nature/utils.js
@@ -1,7 +1,7 @@
const got = require('@/utils/got');
const cheerio = require('cheerio');
const { parseDate } = require('@/utils/parse-date');
-
+const { CookieJar } = require('tough-cookie');
const baseUrl = 'https://www.nature.com';
const fixFigure = (html) => {
@@ -51,7 +51,9 @@ const getArticleList = (html) =>
const getArticle = (item, ctx) =>
ctx.cache.tryGet(item.link, async () => {
- const response = await got(item.link);
+ const response = await got(item.link, {
+ cookieJar,
+ });
const $ = cheerio.load(response.data);
const responseUrl = new URL(response.url);
@@ -59,7 +61,7 @@ const getArticle = (item, ctx) =>
const meta = getDataLayer($);
item.doi = meta.content.article?.doi;
item.author = meta.content.contentInfo.authors.join(', ');
- item.pubDate = parseDate(meta.content.contentInfo.publishedAt * 1000) || item.pubDate;
+ item.pubDate = parseDate(meta.content.contentInfo.publishedAt, 'X') || item.pubDate;
} else {
const meta = JSON.parse($('script[type="application/ld+json"]').html());
const freeAccess = meta.mainEntity.isAccessibleForFree;
@@ -69,7 +71,7 @@ const getArticle = (item, ctx) =>
item.doi = meta.mainEntity.sameAs.replace('https://doi.org/', '');
}
item.author = meta.mainEntity.author.map((author) => author.name.replace(', ', ' ')).join(', ');
- item.category = meta.mainEntity.keywords.split(',');
+ item.category = meta.mainEntity.keywords;
item.pubDate = parseDate(meta.mainEntity.datePublished) || item.pubDate;
fixFigure($);
@@ -101,10 +103,12 @@ const getArticle = (item, ctx) =>
const getDataLayer = (html) =>
JSON.parse(
html('script[data-test=dataLayer]')
- .html()
+ .text()
.match(/window\.dataLayer = \[(.*)\];/s)[1]
);
+const cookieJar = new CookieJar();
+
/**
* This is generated by /nature/siteindex.debug.json
*/
@@ -144,6 +148,10 @@ const journalMap = {
id: '43747',
description: '43747',
},
+ {
+ title: 'bjcreports',
+ name: 'BJC Reports',
+ },
{
title: 'bcj',
name: 'Blood Cancer Journal',
@@ -234,6 +242,10 @@ const journalMap = {
title: 'commsphys',
name: 'Communications Physics',
},
+ {
+ title: 'commspsychol',
+ name: 'Communications Psychology',
+ },
{
title: 'ejcn',
name: 'European Journal of Clinical Nutrition',
@@ -470,12 +482,20 @@ const journalMap = {
id: '41589',
description: '41589',
},
+ {
+ title: 'natchemeng',
+ name: 'Nature Chemical Engineering',
+ },
{
title: 'nchem',
name: 'Nature Chemistry',
id: '41557',
description: '41557',
},
+ {
+ title: 'natcities',
+ name: 'Nature Cities',
+ },
{
title: 'nclimate',
name: 'Nature Climate Change',
@@ -573,6 +593,8 @@ const journalMap = {
{
title: 'natmentalhealth',
name: 'Nature Mental Health',
+ id: '44220',
+ description: '44220',
},
{
title: 'natmetab',
@@ -631,6 +653,8 @@ const journalMap = {
{
title: 'natrevbioeng',
name: 'Nature Reviews Bioengineering',
+ id: '44222',
+ description: '44222',
},
{
title: 'nrc',
@@ -672,6 +696,10 @@ const journalMap = {
id: '43017',
description: '43017',
},
+ {
+ title: 'natrevelectreng',
+ name: 'Nature Reviews Electrical Engineering',
+ },
{
title: 'nrendo',
name: 'Nature Reviews Endocrinology',
@@ -781,6 +809,8 @@ const journalMap = {
{
title: 'natwater',
name: 'Nature Water',
+ id: '44221',
+ description: '44221',
},
{
title: 'npp',
@@ -796,10 +826,18 @@ const journalMap = {
title: 'npj2dmaterials',
name: 'npj 2D Materials and Applications',
},
+ {
+ title: 'npjadvmanuf',
+ name: 'npj Advanced Manufacturing',
+ },
{
title: 'npjamd',
name: 'npj Aging',
},
+ {
+ title: 'npjamar',
+ name: 'npj Antimicrobials and Resistance',
+ },
{
title: 'npjbiodivers',
name: 'npj Biodiversity',
@@ -808,18 +846,42 @@ const journalMap = {
title: 'npjbiofilms',
name: 'npj Biofilms and Microbiomes',
},
+ {
+ title: 'npjbiolphysmech',
+ name: 'npj Biological Physics and Mechanics',
+ },
+ {
+ title: 'npjbts',
+ name: 'npj Biological Timing and Sleep',
+ },
+ {
+ title: 'npjbiosensing',
+ name: 'npj Biosensing',
+ },
{
title: 'npjbcancer',
name: 'npj Breast Cancer',
},
+ {
+ title: 'npjcardiohealth',
+ name: 'npj Cardiovascular Health',
+ },
{
title: 'npjcleanwater',
name: 'npj Clean Water',
},
+ {
+ title: 'npjclimataction',
+ name: 'npj Climate Action',
+ },
{
title: 'npjclimatsci',
name: 'npj Climate and Atmospheric Science',
},
+ {
+ title: 'npjcomplex',
+ name: 'npj Complexity',
+ },
{
title: 'npjcompumats',
name: 'npj Computational Materials',
@@ -836,18 +898,42 @@ const journalMap = {
title: 'npjgenmed',
name: 'npj Genomic Medicine',
},
+ {
+ title: 'npjimaging',
+ name: 'npj Imaging',
+ },
{
title: 'npjmatdeg',
name: 'npj Materials Degradation',
},
+ {
+ title: 'npjmatsustain',
+ name: 'npj Materials Sustainability',
+ },
{
title: 'npjmentalhealth',
name: 'npj Mental Health Research',
},
+ {
+ title: 'npjmetabhealth',
+ name: 'npj Metabolic Health and Disease',
+ },
{
title: 'npjmgrav',
name: 'npj Microgravity',
},
+ {
+ title: 'npjnanophoton',
+ name: 'npj Nanophotonics',
+ },
+ {
+ title: 'npjnathazards',
+ name: 'npj Natural Hazards',
+ },
+ {
+ title: 'npjoceansustain',
+ name: 'npj Ocean Sustainability',
+ },
{
title: 'npjparkd',
name: "npj Parkinson's Disease",
@@ -872,6 +958,10 @@ const journalMap = {
title: 'npjregenmed',
name: 'npj Regenerative Medicine',
},
+ {
+ title: 'npjrobot',
+ name: 'npj Robotics',
+ },
{
title: 'npjscifood',
name: 'npj Science of Food',
@@ -880,10 +970,26 @@ const journalMap = {
title: 'npjscilearn',
name: 'npj Science of Learning',
},
+ {
+ title: 'npjspintronics',
+ name: 'npj Spintronics',
+ },
+ {
+ title: 'npjsustainagric',
+ name: 'npj Sustainable Agriculture',
+ },
+ {
+ title: 'npjsustainmobil',
+ name: 'npj Sustainable Mobility and Transport',
+ },
{
title: 'npjsba',
name: 'npj Systems Biology and Applications',
},
+ {
+ title: 'npjunconvcomput',
+ name: 'npj Unconventional Computing',
+ },
{
title: 'npjurbansustain',
name: 'npj Urban Sustainability',
@@ -892,6 +998,18 @@ const journalMap = {
title: 'npjvaccines',
name: 'npj Vaccines',
},
+ {
+ title: 'npjviruses',
+ name: 'npj Viruses',
+ },
+ {
+ title: 'npjwomenshealth',
+ name: "npj Women's Health",
+ },
+ {
+ title: 'dpn',
+ name: 'NPP—Digital Psychiatry and Neuroscience',
+ },
{
title: 'nutd',
name: 'Nutrition & Diabetes',
@@ -973,6 +1091,7 @@ const journalMap = {
module.exports = {
baseUrl,
+ cookieJar,
getArticle,
getArticleList,
getDataLayer,
From a3cbd5f389675030fa9d1dae2452a13d663255c6 Mon Sep 17 00:00:00 2001
From: Ethan Shen <42264778+nczitzk@users.noreply.github.com>
Date: Tue, 21 Nov 2023 02:50:06 +0800
Subject: [PATCH 03/10] =?UTF-8?q?feat(route):=20add=20=E4=B8=AD=E5=9B=BD?=
=?UTF-8?q?=E6=94=BF=E5=BA=9C=E7=BD=91=E6=94=BF=E7=AD=96=20(#13836)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* feat(route): add 中国政府网政策
* fix: url redirect
* fix: target function in radar.js
---------
---
lib/v2/gov/maintainer.js | 3 +-
lib/v2/gov/moa/zdscxx.js | 2 +-
lib/v2/gov/radar.js | 12 +++-
lib/v2/gov/router.js | 3 +-
lib/v2/gov/zhengce/index.js | 99 ++++++++++++++++++++++++++++++
lib/v2/gov/zhengce/zuixin.js | 39 ------------
lib/v2/nature/cover.js | 4 +-
website/docs/routes/government.mdx | 12 +++-
8 files changed, 128 insertions(+), 46 deletions(-)
create mode 100644 lib/v2/gov/zhengce/index.js
delete mode 100644 lib/v2/gov/zhengce/zuixin.js
diff --git a/lib/v2/gov/maintainer.js b/lib/v2/gov/maintainer.js
index b2c1bc1b922be8..ed325940455a1f 100644
--- a/lib/v2/gov/maintainer.js
+++ b/lib/v2/gov/maintainer.js
@@ -53,7 +53,8 @@ module.exports = {
'/zhengce/govall/:advance?': ['ciaranchen'],
'/zhengce/wenjian/:pcodeJiguan?': ['ciaranchen'],
'/zhengce/zhengceku/:department': ['zxx-457'],
- '/zhengce/zuixin': ['SettingDust'],
+ '/zhengce/zuixin': ['SettingDust', 'nczitzk'],
+ '/zhengce/:category?': ['nczitzk'],
// province
'/anhui/kjt/:path?': ['nczitzk'],
'/beijing/bphc/:channel': ['bigfei'],
diff --git a/lib/v2/gov/moa/zdscxx.js b/lib/v2/gov/moa/zdscxx.js
index d37cd20bcd2dfb..df327047d8b9d6 100644
--- a/lib/v2/gov/moa/zdscxx.js
+++ b/lib/v2/gov/moa/zdscxx.js
@@ -12,7 +12,7 @@ module.exports = async (ctx) => {
const apiUrl = new URL('nyb/getMessages', rootUrl).href;
const apiDetailUrl = new URL('nyb/getMessagesById', rootUrl).href;
const currentUrl = new URL('nyb/pc/messageList.jsp', rootUrl).href;
- const frameUrl = new URL('iframe/top_sj', rootFrameUrl).href;
+ const frameUrl = new URL('iframe/top_sj/', rootFrameUrl).href;
let filterForm = {};
diff --git a/lib/v2/gov/radar.js b/lib/v2/gov/radar.js
index 13bd7aef27fbe1..d41bede055fa76 100644
--- a/lib/v2/gov/radar.js
+++ b/lib/v2/gov/radar.js
@@ -831,7 +831,7 @@ module.exports = {
title: '数据',
docs: 'https://docs.rsshub.app/routes/government#zhong-hua-ren-min-gong-he-guo-jiao-yu-bu',
source: ['/nyb/pc/messageView.jsp'],
- target: (document) => {
+ target: (_params, _url, document) => {
if (!document) {
return '/gov/moa/zdscxx';
}
@@ -1223,6 +1223,16 @@ module.exports = {
source: ['/pushinfo/v150203', '/'],
target: '/gov/news/gwy',
},
+ {
+ title: '政策',
+ docs: 'https://docs.rsshub.app/routes/government#zhong-guo-zheng-fu-wang-zheng-ce',
+ source: ['/zhengce/:category*'],
+ target: (params) => {
+ const category = params.category;
+
+ return `/gov/zhengce${category ? `/${category}` : ''}`;
+ },
+ },
{
title: '最新政策',
docs: 'https://docs.rsshub.app/routes/government#zhong-guo-zheng-fu-wang',
diff --git a/lib/v2/gov/router.js b/lib/v2/gov/router.js
index 98d2cc4bd7a402..af1d1c9f2da649 100644
--- a/lib/v2/gov/router.js
+++ b/lib/v2/gov/router.js
@@ -46,7 +46,8 @@ module.exports = function (router) {
router.get('/zhengce/govall/:advance?', require('./zhengce/govall'));
router.get('/zhengce/wenjian/:pcodeJiguan?', require('./zhengce/wenjian'));
router.get('/zhengce/zhengceku/:department', require('./zhengce/zhengceku'));
- router.get('/zhengce/zuixin', require('./zhengce/zuixin'));
+ router.get('/zhengce/zuixin', require('./zhengce'));
+ router.get('/zhengce/:category*', require('./zhengce'));
// province
router.get(/anhui\/kjt\/([\w\d/-]+)?/, require('./anhui/kjt'));
router.get(/beijing\/bphc(\/[\w/-]+)?/, require('./beijing/bphc'));
diff --git a/lib/v2/gov/zhengce/index.js b/lib/v2/gov/zhengce/index.js
new file mode 100644
index 00000000000000..4e71df7c263bfa
--- /dev/null
+++ b/lib/v2/gov/zhengce/index.js
@@ -0,0 +1,99 @@
+const got = require('@/utils/got');
+const cheerio = require('cheerio');
+const timezone = require('@/utils/timezone');
+const { parseDate } = require('@/utils/parse-date');
+
+module.exports = async (ctx) => {
+ const { category = 'zuixin' } = ctx.params;
+ const limit = ctx.query.limit ? parseInt(ctx.query.limit, 10) : 20;
+
+ const rootUrl = 'https://www.gov.cn';
+ const currentUrl = new URL(`zhengce/${category.replace(/\/$/, '')}/`, rootUrl).href;
+
+ const { data: response } = await got(currentUrl);
+
+ const $ = cheerio.load(response);
+
+ let items = $('h4 a, div.subtitle a[title]')
+ .toArray()
+ .map((item) => {
+ item = $(item);
+
+ const link = item.prop('href');
+
+ return {
+ title: item.text(),
+ link: link.startsWith('http') ? link : new URL(link, currentUrl).href,
+ };
+ });
+
+ items = await Promise.all(
+ items
+ .filter((item) => /https?:\/\/www\.gov\.cn\/zhengce.*content_\d+\.htm/.test(item.link))
+ .slice(0, limit)
+ .map((item) =>
+ ctx.cache.tryGet(item.link, async () => {
+ const { data: detailResponse } = await got(item.link);
+
+ const content = cheerio.load(detailResponse);
+
+ const processElementText = (el) => content(el).text().split(/:/).pop().trim() || content(el).next().text().trim();
+
+ const author = content('meta[name="author"]').prop('content');
+
+ const agencyEl = content('table.bd1')
+ .find('td')
+ .toArray()
+ .filter((a) => content(a).text().startsWith('发文机关'))
+ .pop();
+
+ const sourceEl = content('span.font-zyygwj')
+ .toArray()
+ .filter((a) => content(a).text().startsWith('来源'))
+ .pop();
+
+ const subjectEl = content('table.bd1')
+ .find('td')
+ .toArray()
+ .filter((a) => content(a).text().startsWith('主题分类'))
+ .pop();
+
+ const agency = agencyEl ? processElementText(agencyEl) : undefined;
+ const source = sourceEl ? processElementText(sourceEl) : undefined;
+ const subject = subjectEl ? processElementText(subjectEl) : content('td.zcwj_ztfl').text();
+
+ const column = content('meta[name="lanmu"]').prop('content');
+ const keywords = content('meta[name="keywords"]').prop('content')?.split(/;|,/) ?? [];
+ const manuscriptId = content('meta[name="manuscriptId"]').prop('content');
+
+ item.title = content('div.share-title').text() || item.title;
+ item.description = content('div.TRS_UEDITOR').first().html() || content('div#UCAP-CONTENT, td#UCAP-CONTENT').first().html();
+ item.author = [agency, source, author].filter((a) => a).join('/');
+ item.category = [...new Set([subject, column, ...keywords].filter((c) => c))];
+ item.guid = `gov-zhengce-${manuscriptId}`;
+ item.pubDate = timezone(parseDate(content('meta[name="firstpublishedtime"]').prop('content'), 'YYYY-MM-DD-HH:mm:ss'), +8);
+ item.updated = timezone(parseDate(content('meta[name="lastmodifiedtime"]').prop('content'), 'YYYY-MM-DD-HH:mm:ss'), +8);
+
+ return item;
+ })
+ )
+ );
+
+ const image = new URL($('img.wordlogo').prop('src'), rootUrl).href;
+ const icon = new URL($('link[rel="icon"]').prop('href'), rootUrl).href;
+ const subtitle = $('meta[name="lanmu"]').prop('content');
+ const author = $('div.header_logo a[aria-label]').prop('aria-label');
+
+ ctx.state.data = {
+ item: items,
+ title: author && subtitle ? `${author} - ${subtitle}` : $('title').text(),
+ link: currentUrl,
+ description: $('meta[name="description"]').prop('content'),
+ language: 'zh-CN',
+ image,
+ icon,
+ logo: icon,
+ subtitle,
+ author,
+ };
+};
diff --git a/lib/v2/gov/zhengce/zuixin.js b/lib/v2/gov/zhengce/zuixin.js
deleted file mode 100644
index 9f329561ab1f3e..00000000000000
--- a/lib/v2/gov/zhengce/zuixin.js
+++ /dev/null
@@ -1,39 +0,0 @@
-const got = require('@/utils/got');
-const cheerio = require('cheerio');
-const { parseDate } = require('@/utils/parse-date');
-const timezone = require('@/utils/timezone');
-const baseUrl = 'http://www.gov.cn';
-
-module.exports = async (ctx) => {
- const link = `${baseUrl}/zhengce/zuixin/`;
- const listData = await got(link);
- const $ = cheerio.load(listData.data);
-
- const list = $('.news_box .list li:not(.line)')
- .toArray()
- .map((elem) => {
- elem = $(elem);
- return {
- title: elem.find('h4 a').text(),
- link: new URL(elem.find('h4 a').attr('href'), baseUrl).href,
- pubDate: timezone(parseDate(elem.find('h4 .date').text()), 8),
- };
- });
-
- const items = await Promise.all(
- list.map((item) =>
- ctx.cache.tryGet(item.link, async () => {
- const contentData = await got(item.link);
- const $ = cheerio.load(contentData.data);
- item.description = $('#UCAP-CONTENT').html();
- return item;
- })
- )
- );
-
- ctx.state.data = {
- title: '最新政策 - 中国政府网',
- link,
- item: items,
- };
-};
diff --git a/lib/v2/nature/cover.js b/lib/v2/nature/cover.js
index cecc930ea11ae9..dd733c95e0cf36 100644
--- a/lib/v2/nature/cover.js
+++ b/lib/v2/nature/cover.js
@@ -35,7 +35,7 @@ module.exports = async (ctx) => {
const out = await Promise.all(
journals.map((journal) =>
ctx.cache.tryGet(journal.link, async () => {
- const { id } = journal;
+ const { id, name } = journal;
const response = await got(journal.link, { cookieJar });
@@ -49,7 +49,7 @@ module.exports = async (ctx) => {
const issueDescription = $('div[data-test=issue-description]').html() ?? '';
return {
- title: `${journal.name} | Volume ${volume} Issue ${issue}`,
+ title: `${name} | Volume ${volume} Issue ${issue}`,
description: contents + issueDescription,
link: response.url,
pubDate: parseDate(date, 'MMMM YYYY'),
diff --git a/website/docs/routes/government.mdx b/website/docs/routes/government.mdx
index 2ff76eb152923d..e6c84c209f83e1 100644
--- a/website/docs/routes/government.mdx
+++ b/website/docs/routes/government.mdx
@@ -1577,9 +1577,19 @@ Language
+### 政策 {#zhong-guo-zheng-fu-wang-zheng-ce}
+
+
+
+| 最新政策 | 政策解读 | 图解政策 |
+| -------- | -------- | ----------- |
+| zuixin | jiedu | jiedu/tujie |
+
+
+
### 最新政策 {#zhong-guo-zheng-fu-wang-zui-xin-zheng-ce}
-
+
### 最新文件 {#zhong-guo-zheng-fu-wang-zui-xin-wen-jian}
From 29d90b4836e840abe42548308c4c0d59bbda9cef Mon Sep 17 00:00:00 2001
From: o5rhaxzc <149476903+o5rhaxzc@users.noreply.github.com>
Date: Tue, 21 Nov 2023 04:21:29 +0800
Subject: [PATCH 04/10] docs: update /bdys `caty` table (#13834)
---
website/docs/routes/multimedia.mdx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/website/docs/routes/multimedia.mdx b/website/docs/routes/multimedia.mdx
index bf0aa206e0939e..148286329bc769 100644
--- a/website/docs/routes/multimedia.mdx
+++ b/website/docs/routes/multimedia.mdx
@@ -1455,7 +1455,7 @@ When `mediaType` is `movie`, `sheet` should be:
| 俄剧 | 巴剧 | 加剧 | 西剧 | 意大利剧 | 泰剧 |
| ---- | ---- | ----- | ---- | -------- | ----- |
-| eju | baju | jiaju | xiju | yidaliju | taiju |
+| eju | baju | jiaju | spanish | yidaliju | taiju |
| 港台剧 | 法剧 | 澳剧 |
| --------- | ---- | ---- |
From a592a0c6349e712e4d499099352694a67db39142 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 20 Nov 2023 22:02:40 +0000
Subject: [PATCH 05/10] chore(deps-dev): bump eslint from 8.53.0 to 8.54.0
(#13840)
* chore(deps-dev): bump eslint from 8.53.0 to 8.54.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.53.0 to 8.54.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.53.0...v8.54.0)
---
updated-dependencies:
- dependency-name: eslint
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
* chore: fix pnpm install
---------
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package.json | 2 +-
pnpm-lock.yaml | 64 +++++++++++++++++++++++++-------------------------
2 files changed, 33 insertions(+), 33 deletions(-)
diff --git a/package.json b/package.json
index 51b71a6410212a..f66473426fd822 100644
--- a/package.json
+++ b/package.json
@@ -182,7 +182,7 @@
"@types/tough-cookie": "4.0.5",
"@vercel/nft": "0.24.3",
"cross-env": "7.0.3",
- "eslint": "8.53.0",
+ "eslint": "8.54.0",
"eslint-config-prettier": "9.0.0",
"eslint-plugin-n": "16.3.1",
"eslint-plugin-prettier": "5.0.1",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 62ff3ddf1506bf..dc8b6db5a2a910 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -299,20 +299,20 @@ devDependencies:
specifier: 7.0.3
version: 7.0.3
eslint:
- specifier: 8.53.0
- version: 8.53.0
+ specifier: 8.54.0
+ version: 8.54.0
eslint-config-prettier:
specifier: 9.0.0
- version: 9.0.0(eslint@8.53.0)
+ version: 9.0.0(eslint@8.54.0)
eslint-plugin-n:
specifier: 16.3.1
- version: 16.3.1(eslint@8.53.0)
+ version: 16.3.1(eslint@8.54.0)
eslint-plugin-prettier:
specifier: 5.0.1
- version: 5.0.1(@types/eslint@8.44.7)(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@3.1.0)
+ version: 5.0.1(@types/eslint@8.44.7)(eslint-config-prettier@9.0.0)(eslint@8.54.0)(prettier@3.1.0)
eslint-plugin-yml:
specifier: 1.10.0
- version: 1.10.0(eslint@8.53.0)
+ version: 1.10.0(eslint@8.54.0)
fs-extra:
specifier: 11.1.1
version: 11.1.1
@@ -747,13 +747,13 @@ packages:
kuler: 2.0.0
dev: false
- /@eslint-community/eslint-utils@4.4.0(eslint@8.53.0):
+ /@eslint-community/eslint-utils@4.4.0(eslint@8.54.0):
resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
dependencies:
- eslint: 8.53.0
+ eslint: 8.54.0
eslint-visitor-keys: 3.4.3
dev: true
@@ -779,8 +779,8 @@ packages:
- supports-color
dev: true
- /@eslint/js@8.53.0:
- resolution: {integrity: sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==}
+ /@eslint/js@8.54.0:
+ resolution: {integrity: sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
@@ -1107,7 +1107,7 @@ packages:
resolution: {integrity: sha512-KIKkT44hEqCzqxODYwFMUvYEK0CrdHx/Ll9xiOWgFbBSRuzbxmVy4d/tzfgoucGz72HJZNOMjuyzFTBKntRK5Q==}
engines: {node: '>= 14'}
dependencies:
- eslint: 8.53.0
+ eslint: 8.54.0
jschardet: 3.0.0
lodash: 4.17.21
utf8: 3.0.0
@@ -3182,45 +3182,45 @@ packages:
source-map: 0.6.1
dev: false
- /eslint-compat-utils@0.1.2(eslint@8.53.0):
+ /eslint-compat-utils@0.1.2(eslint@8.54.0):
resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==}
engines: {node: '>=12'}
peerDependencies:
eslint: '>=6.0.0'
dependencies:
- eslint: 8.53.0
+ eslint: 8.54.0
dev: true
- /eslint-config-prettier@9.0.0(eslint@8.53.0):
+ /eslint-config-prettier@9.0.0(eslint@8.54.0):
resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==}
hasBin: true
peerDependencies:
eslint: '>=7.0.0'
dependencies:
- eslint: 8.53.0
+ eslint: 8.54.0
dev: true
- /eslint-plugin-es-x@7.2.0(eslint@8.53.0):
+ /eslint-plugin-es-x@7.2.0(eslint@8.54.0):
resolution: {integrity: sha512-9dvv5CcvNjSJPqnS5uZkqb3xmbeqRLnvXKK7iI5+oK/yTusyc46zbBZKENGsOfojm/mKfszyZb+wNqNPAPeGXA==}
engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies:
eslint: '>=8'
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0)
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0)
'@eslint-community/regexpp': 4.8.0
- eslint: 8.53.0
+ eslint: 8.54.0
dev: true
- /eslint-plugin-n@16.3.1(eslint@8.53.0):
+ /eslint-plugin-n@16.3.1(eslint@8.54.0):
resolution: {integrity: sha512-w46eDIkxQ2FaTHcey7G40eD+FhTXOdKudDXPUO2n9WNcslze/i/HT2qJ3GXjHngYSGDISIgPNhwGtgoix4zeOw==}
engines: {node: '>=16.0.0'}
peerDependencies:
eslint: '>=7.0.0'
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0)
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0)
builtins: 5.0.1
- eslint: 8.53.0
- eslint-plugin-es-x: 7.2.0(eslint@8.53.0)
+ eslint: 8.54.0
+ eslint-plugin-es-x: 7.2.0(eslint@8.54.0)
get-tsconfig: 4.7.0
ignore: 5.2.4
is-builtin-module: 3.2.1
@@ -3230,7 +3230,7 @@ packages:
semver: 7.5.4
dev: true
- /eslint-plugin-prettier@5.0.1(@types/eslint@8.44.7)(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@3.1.0):
+ /eslint-plugin-prettier@5.0.1(@types/eslint@8.44.7)(eslint-config-prettier@9.0.0)(eslint@8.54.0)(prettier@3.1.0):
resolution: {integrity: sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==}
engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies:
@@ -3245,22 +3245,22 @@ packages:
optional: true
dependencies:
'@types/eslint': 8.44.7
- eslint: 8.53.0
- eslint-config-prettier: 9.0.0(eslint@8.53.0)
+ eslint: 8.54.0
+ eslint-config-prettier: 9.0.0(eslint@8.54.0)
prettier: 3.1.0
prettier-linter-helpers: 1.0.0
synckit: 0.8.5
dev: true
- /eslint-plugin-yml@1.10.0(eslint@8.53.0):
+ /eslint-plugin-yml@1.10.0(eslint@8.54.0):
resolution: {integrity: sha512-53SUwuNDna97lVk38hL/5++WXDuugPM9SUQ1T645R0EHMRCdBIIxGye/oOX2qO3FQ7aImxaUZJU/ju+NMUBrLQ==}
engines: {node: ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: '>=6.0.0'
dependencies:
debug: 4.3.4
- eslint: 8.53.0
- eslint-compat-utils: 0.1.2(eslint@8.53.0)
+ eslint: 8.54.0
+ eslint-compat-utils: 0.1.2(eslint@8.54.0)
lodash: 4.17.21
natural-compare: 1.4.0
yaml-eslint-parser: 1.2.2
@@ -3281,15 +3281,15 @@ packages:
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
- /eslint@8.53.0:
- resolution: {integrity: sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==}
+ /eslint@8.54.0:
+ resolution: {integrity: sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
hasBin: true
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0)
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0)
'@eslint-community/regexpp': 4.8.0
'@eslint/eslintrc': 2.1.3
- '@eslint/js': 8.53.0
+ '@eslint/js': 8.54.0
'@humanwhocodes/config-array': 0.11.13
'@humanwhocodes/module-importer': 1.0.1
'@nodelib/fs.walk': 1.2.8
From f72898e9f041992ff5ff31c002886a8bae063020 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 20 Nov 2023 22:03:37 +0000
Subject: [PATCH 06/10] chore(deps): bump @sentry/node from 7.80.1 to 7.81.0
(#13842)
* chore(deps): bump @sentry/node from 7.80.1 to 7.81.0
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 7.80.1 to 7.81.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/7.80.1...7.81.0)
---
updated-dependencies:
- dependency-name: "@sentry/node"
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
* chore: fix pnpm install
---------
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 f66473426fd822..9e5d9dfcd0a83e 100644
--- a/package.json
+++ b/package.json
@@ -86,7 +86,7 @@
"@koa/router": "12.0.1",
"@notionhq/client": "2.2.13",
"@postlight/parser": "2.2.3",
- "@sentry/node": "7.80.1",
+ "@sentry/node": "7.81.0",
"@tonyrl/rand-user-agent": "2.0.39",
"aes-js": "3.1.2",
"art-template": "4.13.2",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index dc8b6db5a2a910..487f1f977c5860 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -15,8 +15,8 @@ dependencies:
specifier: 2.2.3
version: 2.2.3
'@sentry/node':
- specifier: 7.80.1
- version: 7.80.1
+ specifier: 7.81.0
+ version: 7.81.0
'@tonyrl/rand-user-agent':
specifier: 2.0.39
version: 2.0.39
@@ -1251,46 +1251,46 @@ packages:
selderee: 0.11.0
dev: false
- /@sentry-internal/tracing@7.80.1:
- resolution: {integrity: sha512-5gZ4LPIj2vpQl2/dHBM4uXMi9OI5E0VlOhJQt0foiuN6JJeiOjdpJFcfVqJk69wrc0deVENTtgKKktxqMwVeWQ==}
+ /@sentry-internal/tracing@7.81.0:
+ resolution: {integrity: sha512-mc3tdOEvAE6kaCvT3BpMwCgfTT2yfXjWpC7g+3N8U/yuQEmQSCDZA/ut7EkzU0DyhG3t8HzT0c+CAG3HtilEAQ==}
engines: {node: '>=8'}
dependencies:
- '@sentry/core': 7.80.1
- '@sentry/types': 7.80.1
- '@sentry/utils': 7.80.1
+ '@sentry/core': 7.81.0
+ '@sentry/types': 7.81.0
+ '@sentry/utils': 7.81.0
dev: false
- /@sentry/core@7.80.1:
- resolution: {integrity: sha512-3Yh+O9Q86MxwIuJFYtuSSoUCpdx99P1xDAqL0FIPTJ+ekaVMiUJq9NmyaNh9uN2myPSmxvEXW6q3z37zta9ZHg==}
+ /@sentry/core@7.81.0:
+ resolution: {integrity: sha512-FCAKlqo9Z6fku69bkahw1AN+eBfAgRgOL1RpBLZgyG7YBW12vtSkHb5SDvZZTkm541Fo3hhepUTLtX0qmpA4yw==}
engines: {node: '>=8'}
dependencies:
- '@sentry/types': 7.80.1
- '@sentry/utils': 7.80.1
+ '@sentry/types': 7.81.0
+ '@sentry/utils': 7.81.0
dev: false
- /@sentry/node@7.80.1:
- resolution: {integrity: sha512-0NWfcZMlyQphKWsvyzfhGm2dCBk5DUPqOGW/vGx18G4tCCYtFcAIj/mCp/4XOEcZRPQgb9vkm+sidGD6DnwWlA==}
+ /@sentry/node@7.81.0:
+ resolution: {integrity: sha512-hFfDxKGB+JhkhpZtM1ntyZDZoMlS8rMsynCSQcqJS39iYcCgdvgy9zOb34mXrX9kXOJNhWWmoloBZGA+KKFTdg==}
engines: {node: '>=8'}
dependencies:
- '@sentry-internal/tracing': 7.80.1
- '@sentry/core': 7.80.1
- '@sentry/types': 7.80.1
- '@sentry/utils': 7.80.1
+ '@sentry-internal/tracing': 7.81.0
+ '@sentry/core': 7.81.0
+ '@sentry/types': 7.81.0
+ '@sentry/utils': 7.81.0
https-proxy-agent: 5.0.1
transitivePeerDependencies:
- supports-color
dev: false
- /@sentry/types@7.80.1:
- resolution: {integrity: sha512-CVu4uPVTOI3U9kYiOdA085R7jX5H1oVODbs9y+A8opJ0dtJTMueCXgZyE8oXQ0NjGVs6HEeaLkOuiV0mj8X3yw==}
+ /@sentry/types@7.81.0:
+ resolution: {integrity: sha512-rbYNYSSrrnwNndC7S+eVT84GRLEyCZNh9oXUQqzgSD6ngXCZ0xFJW6si75uv/XQBWIw4rkj9xfRcy8DU0Tj4fg==}
engines: {node: '>=8'}
dev: false
- /@sentry/utils@7.80.1:
- resolution: {integrity: sha512-bfFm2e/nEn+b9++QwjNEYCbS7EqmteT8uf0XUs7PljusSimIqqxDtK1pfD9zjynPgC8kW/fVBKv0pe2LufomeA==}
+ /@sentry/utils@7.81.0:
+ resolution: {integrity: sha512-yC9IvfeVbG4dygi4b+iUUMHp9xeHJfCn6XLbqjJVfq3xjAzBGHgfrpw6fYPNyTljXKb6CTiSXSqaNaQJE4CkPA==}
engines: {node: '>=8'}
dependencies:
- '@sentry/types': 7.80.1
+ '@sentry/types': 7.81.0
dev: false
/@sinclair/typebox@0.27.8:
From 82bd46f056e3fabde496c7ef1abb219dbef620ad Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 20 Nov 2023 22:04:11 +0000
Subject: [PATCH 07/10] chore(deps): bump chrono-node from 2.7.0 to 2.7.3
(#13841)
* chore(deps): bump chrono-node from 2.7.0 to 2.7.3
Bumps [chrono-node](https://github.com/wanasit/chrono) from 2.7.0 to 2.7.3.
- [Release notes](https://github.com/wanasit/chrono/releases)
- [Commits](https://github.com/wanasit/chrono/compare/v2.7.0...v2.7.3)
---
updated-dependencies:
- dependency-name: chrono-node
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
* chore: fix pnpm install
---------
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package.json | 2 +-
pnpm-lock.yaml | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package.json b/package.json
index 9e5d9dfcd0a83e..bbdabd1e439870 100644
--- a/package.json
+++ b/package.json
@@ -92,7 +92,7 @@
"art-template": "4.13.2",
"bbcodejs": "0.0.4",
"cheerio": "1.0.0-rc.12",
- "chrono-node": "2.7.0",
+ "chrono-node": "2.7.3",
"city-timezones": "1.2.1",
"crypto-js": "4.2.0",
"currency-symbol-map": "5.1.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 487f1f977c5860..ce23d49831fe19 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -33,8 +33,8 @@ dependencies:
specifier: 1.0.0-rc.12
version: 1.0.0-rc.12
chrono-node:
- specifier: 2.7.0
- version: 2.7.0
+ specifier: 2.7.3
+ version: 2.7.3
city-timezones:
specifier: 1.2.1
version: 1.2.1
@@ -2473,8 +2473,8 @@ packages:
urlpattern-polyfill: 9.0.0
dev: false
- /chrono-node@2.7.0:
- resolution: {integrity: sha512-0s2vv89LmsbgoibV0AIVgNnGqlU8N5yCCVZXvc3mRCjnmlG/gJw1hCYOmNwjB+AIuwZQdKTXfwvsHDRTs6pwcg==}
+ /chrono-node@2.7.3:
+ resolution: {integrity: sha512-M/CusGocGJaubS8OFPEzmSa6IT/MJo2LaVqFyUVaLMo+UWwqyahKHsDe9FQBzwaytVGwR/bwZ5JhnAcu894Owg==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
dependencies:
dayjs: 1.11.8
From f6d18925aba69fd6283e66da4423738086d85301 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 20 Nov 2023 22:05:14 +0000
Subject: [PATCH 08/10] chore(deps): bump lru-cache from 10.0.2 to 10.0.3
(#13844)
* chore(deps): bump lru-cache from 10.0.2 to 10.0.3
Bumps [lru-cache](https://github.com/isaacs/node-lru-cache) from 10.0.2 to 10.0.3.
- [Changelog](https://github.com/isaacs/node-lru-cache/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/node-lru-cache/compare/v10.0.2...v10.0.3)
---
updated-dependencies:
- dependency-name: lru-cache
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
* chore: fix pnpm install
---------
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, 6 insertions(+), 7 deletions(-)
diff --git a/package.json b/package.json
index bbdabd1e439870..3d55bb3e0a7120 100644
--- a/package.json
+++ b/package.json
@@ -121,7 +121,7 @@
"koa-favicon": "2.1.0",
"koa-mount": "4.0.0",
"koa-static": "5.0.0",
- "lru-cache": "10.0.2",
+ "lru-cache": "10.0.3",
"lz-string": "1.5.0",
"mailparser": "3.6.5",
"markdown-it": "13.0.2",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index ce23d49831fe19..e9e2bb4647996e 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -120,8 +120,8 @@ dependencies:
specifier: 5.0.0
version: 5.0.0
lru-cache:
- specifier: 10.0.2
- version: 10.0.2
+ specifier: 10.0.3
+ version: 10.0.3
lz-string:
specifier: 1.5.0
version: 1.5.0
@@ -5518,11 +5518,9 @@ packages:
engines: {node: '>=8'}
dev: false
- /lru-cache@10.0.2:
- resolution: {integrity: sha512-Yj9mA8fPiVgOUpByoTZO5pNrcl5Yk37FcSHsUINpAsaBIEZIuqcCclDZJCVxqQShDsmYX8QG63svJiTbOATZwg==}
+ /lru-cache@10.0.3:
+ resolution: {integrity: sha512-B7gr+F6MkqB3uzINHXNctGieGsRTMwIBgxkp0yq/5BwcuDzD4A8wQpHQW6vDAm1uKSLQghmRdD9sKqf2vJ1cEg==}
engines: {node: 14 || >=16.14}
- dependencies:
- semver: 7.5.4
dev: false
/lru-cache@5.1.1:
@@ -7108,6 +7106,7 @@ packages:
hasBin: true
dependencies:
lru-cache: 6.0.0
+ dev: true
/set-blocking@2.0.0:
resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
From 10a394e1abfc22a55eb9679f636dff14974d832a Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 20 Nov 2023 22:10:54 +0000
Subject: [PATCH 09/10] chore(deps-dev): bump @stylistic/eslint-plugin-js from
1.3.2 to 1.4.0 (#13845)
* chore(deps-dev): bump @stylistic/eslint-plugin-js from 1.3.2 to 1.4.0
Bumps [@stylistic/eslint-plugin-js](https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin-js) from 1.3.2 to 1.4.0.
- [Release notes](https://github.com/eslint-stylistic/eslint-stylistic/releases)
- [Commits](https://github.com/eslint-stylistic/eslint-stylistic/commits/v1.4.0/packages/eslint-plugin-js)
---
updated-dependencies:
- dependency-name: "@stylistic/eslint-plugin-js"
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
* chore: fix pnpm install
---------
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package.json | 2 +-
pnpm-lock.yaml | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package.json b/package.json
index 3d55bb3e0a7120..90d3a884711e0b 100644
--- a/package.json
+++ b/package.json
@@ -150,7 +150,7 @@
},
"devDependencies": {
"@microsoft/eslint-formatter-sarif": "3.0.0",
- "@stylistic/eslint-plugin-js": "1.3.2",
+ "@stylistic/eslint-plugin-js": "1.4.0",
"@types/aes-js": "3.1.4",
"@types/crypto-js": "4.2.1",
"@types/eslint": "8.44.7",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index e9e2bb4647996e..e85a43b7e6722a 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -203,8 +203,8 @@ devDependencies:
specifier: 3.0.0
version: 3.0.0
'@stylistic/eslint-plugin-js':
- specifier: 1.3.2
- version: 1.3.2
+ specifier: 1.4.0
+ version: 1.4.0
'@types/aes-js':
specifier: 3.1.4
version: 3.1.4
@@ -1319,8 +1319,8 @@ packages:
'@sinonjs/commons': 3.0.0
dev: true
- /@stylistic/eslint-plugin-js@1.3.2:
- resolution: {integrity: sha512-GI9ntPKrTYhQguUjY/B/g+15XwTTXi9tZ3nuaZeeujzee2HP+H/pK+0weqtpZGGU8JRzgwiQcx4svFphtairTA==}
+ /@stylistic/eslint-plugin-js@1.4.0:
+ resolution: {integrity: sha512-cANyn4ECWu8kxPmBM4K/Q4WocD3JbA0POmGbA2lJ4tynPE8jGyKpfP8SZj6BIidXV0pkyqvxEfaKppB4D16UsA==}
dependencies:
acorn: 8.11.2
escape-string-regexp: 4.0.0
From 1765c55af250b0e84ddb5395b6ae2d473da19263 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 20 Nov 2023 23:35:16 +0000
Subject: [PATCH 10/10] chore(deps): bump @tonyrl/rand-user-agent from 2.0.39
to 2.0.40 (#13843)
* chore(deps): bump @tonyrl/rand-user-agent from 2.0.39 to 2.0.40
Bumps [@tonyrl/rand-user-agent](https://github.com/TonyRL/rand-user-agent) from 2.0.39 to 2.0.40.
- [Release notes](https://github.com/TonyRL/rand-user-agent/releases)
- [Commits](https://github.com/TonyRL/rand-user-agent/compare/v2.0.39...v2.0.40)
---
updated-dependencies:
- dependency-name: "@tonyrl/rand-user-agent"
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
* chore: fix pnpm install
---------
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package.json | 2 +-
pnpm-lock.yaml | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package.json b/package.json
index 90d3a884711e0b..774574c357d381 100644
--- a/package.json
+++ b/package.json
@@ -87,7 +87,7 @@
"@notionhq/client": "2.2.13",
"@postlight/parser": "2.2.3",
"@sentry/node": "7.81.0",
- "@tonyrl/rand-user-agent": "2.0.39",
+ "@tonyrl/rand-user-agent": "2.0.40",
"aes-js": "3.1.2",
"art-template": "4.13.2",
"bbcodejs": "0.0.4",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index e85a43b7e6722a..aa32951739107d 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -18,8 +18,8 @@ dependencies:
specifier: 7.81.0
version: 7.81.0
'@tonyrl/rand-user-agent':
- specifier: 2.0.39
- version: 2.0.39
+ specifier: 2.0.40
+ version: 2.0.40
aes-js:
specifier: 3.1.2
version: 3.1.2
@@ -1336,8 +1336,8 @@ packages:
defer-to-connect: 2.0.1
dev: false
- /@tonyrl/rand-user-agent@2.0.39:
- resolution: {integrity: sha512-1HBCBR3h6279OqvIHI1XxCbB5AIIHufUaslS+n4vvvDHacDYjsf7Y+TBGYSUFOJUKAOx6d11Rw+NkchWtAaLnQ==}
+ /@tonyrl/rand-user-agent@2.0.40:
+ resolution: {integrity: sha512-5H5QMwtiWv8m9v7CqZovrutLCAphqtOga58PiisnrRrFTh7ajNymCoWcuNwTjYh6jxpSXchhrKxdhk+QITyWcQ==}
engines: {node: '>=14.16'}
dev: false