diff --git a/.eslintrc.json b/.eslintrc.json index 007cb5c55..e6370f2d5 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,5 +1,5 @@ { - "extends": ["eslint:recommended", "plugin:prettier/recommended", "plugin:yml/recommended"], + "extends": ["eslint:recommended", "plugin:n/recommended", "plugin:prettier/recommended", "plugin:yml/recommended"], "plugins": ["prettier"], "parserOptions": { "ecmaVersion": "latest", @@ -11,16 +11,25 @@ "browser": true }, "rules": { - "no-console": 2, + // possible problems + "array-callback-return": 2, + "no-await-in-loop": 2, + "no-control-regex": 0, + "no-duplicate-imports": 2, + "no-prototype-builtins": 0, + "no-unsafe-negation": 2, + "require-atomic-updates": 0, + // suggestions + "arrow-body-style": 2, "block-scoped-var": 2, "curly": 2, + "dot-notation": 2, "eqeqeq": 2, + "no-console": 2, + "no-eval": 2, + "no-extend-native": 2, + "no-extra-label": 2, "no-global-assign": 2, - "no-implicit-globals": 2, - "no-labels": 2, - "no-multi-str": 2, - "comma-spacing": 2, - "comma-style": 2, "no-implicit-coercion": [ "error", { @@ -30,44 +39,57 @@ "disallowTemplateShorthand": true } ], + "no-implicit-globals": 2, + "no-labels": 2, + "no-multi-str": 2, + "no-new-func": 2, + "no-restricted-imports": 2, + "no-return-await": 2, + "no-unneeded-ternary": 2, + "no-useless-computed-key": 2, + "no-useless-concat": 1, + "no-useless-rename": 2, + "no-var": 2, + "object-shorthand": 2, + "prefer-arrow-callback": 2, + "prefer-const": 2, + "prefer-regex-literals": 1, + "require-await": 2, + "spaced-comment": 2, + // layout & formatting + "arrow-parens": 2, + "arrow-spacing": 2, + "comma-spacing": 2, + "comma-style": 2, "func-call-spacing": 2, "keyword-spacing": 2, "linebreak-style": 2, "lines-around-comment": 2, "no-multiple-empty-lines": 2, - "space-infix-ops": 2, - "arrow-spacing": 2, - "no-var": 2, - "prefer-const": 2, - "no-unsafe-negation": 2, - "array-callback-return": 2, - "dot-notation": 2, - "no-eval": 2, - "no-extend-native": 2, - "no-extra-label": 2, + "no-trailing-spaces": 2, + "rest-spread-spacing": 2, "semi": 2, "space-before-blocks": 2, "space-in-parens": 2, + "space-infix-ops": 2, "space-unary-ops": 2, - "spaced-comment": 2, - "arrow-body-style": 2, - "arrow-parens": 2, - "no-restricted-imports": 2, - "no-duplicate-imports": 2, - "no-useless-computed-key": 2, - "no-useless-rename": 2, - "rest-spread-spacing": 2, - "no-trailing-spaces": 2, - "no-control-regex": 0, + // plugin specific + "n/no-extraneous-require": [ + "error", + { + "allowModules": ["puppeteer-extra-plugin-user-preferences", "puppeteer-extra-plugin-user-data-dir"] + } + ], + "n/no-deprecated-api": 1, + "n/no-missing-require": 0, + "n/no-process-exit": 0, + "n/no-unpublished-require": [ + "error", + { + "allowModules": ["tosource"] + } + ], "prettier/prettier": 0, - "no-await-in-loop": 2, - "require-atomic-updates": 0, - "no-prototype-builtins": 0, - "no-new-func": 2, - "require-await": 2, - "no-return-await": 2, - "prefer-arrow-callback": 2, - "object-shorthand": 2, "yml/quotes": [ "error", { diff --git a/docs/en/journal.md b/docs/en/journal.md index 240cf8fae..995a00072 100644 --- a/docs/en/journal.md +++ b/docs/en/journal.md @@ -437,6 +437,46 @@ Including 'Science', 'Science Advances', 'Science Immunology', 'Science Robotics +## Telecompaper + +### News + + + +Category + +| WIRELESS | BROADBAND | VIDEO | GENERAL | IT | INDUSTRY RESOURCES | +| -------- | --------- | --------- | ------- | -- | ------------------ | +| mobile | internet | boardcast | general | it | industry-resources | + +::: tip Tips + +If `country` or `type` includes empty space, use `-` instead. For example, `United States` needs to be replaced with `United-States`, `White paper` needs to be replaced with `White-paper` + +Filters in [INDUSTRY RESOURCES](https://www.telecompaper.com/industry-resources) only provides `Content Type` which corresponds to `type`. `year` and `country` are not supported. + +::: + + + +### Search + + + +Sorting + +| Date Ascending | Date Descending | +| -------------- | --------------- | +| 1 | 2 | + +Date selection + +| 1 month | 3 months | 6 months | 12 months | 24 months | +| ------- | -------- | -------- | --------- | --------- | +| 1 | 3 | 6 | 12 | 24 | + + + ## The University of Chicago Press: Journals ### Current Issue diff --git a/docs/journal.md b/docs/journal.md index 148e12b5e..6e162cd4c 100644 --- a/docs/journal.md +++ b/docs/journal.md @@ -418,6 +418,46 @@ You can get all short name of a journal from +## Telecompaper + +### News + + + +可选分类如下 + +| WIRELESS | BROADBAND | VIDEO | GENERAL | IT | INDUSTRY RESOURCES | +| -------- | --------- | --------- | ------- | -- | ------------------ | +| mobile | internet | boardcast | general | it | industry-resources | + +::: tip 提示 + +若 `country` 或 `type` 参数包含空格,则用 `-` 替代。如 `United States` 更换为 `United-States`,`White paper` 更换为 `White-paper` + +[INDUSTRY RESOURCES](https://www.telecompaper.com/industry-resources) 分类页的 Filter 仅提供了 `Content Type` 选择器,对应路由中 `type` 参数。`year` 和 `country` 参数则对该分类无效。 + +::: + + + +### Search + + + +排序 + +| Date Ascending | Date Descending | +| -------------- | --------------- | +| 1 | 2 | + +发表在时间段内 + +| 1 month | 3 months | 6 months | 12 months | 24 months | +| ------- | -------- | -------- | --------- | --------- | +| 1 | 3 | 6 | 12 | 24 | + + + ## USENIX ### Security Symposia diff --git a/docs/traditional-media.md b/docs/traditional-media.md index f805d38fc..0539455ad 100644 --- a/docs/traditional-media.md +++ b/docs/traditional-media.md @@ -427,46 +427,6 @@ Solidot 提供的 feed: -## Telecompaper - -### News - - - -可选分类如下 - -| WIRELESS | BROADBAND | VIDEO | GENERAL | IT | INDUSTRY RESOURCES | -| -------- | --------- | --------- | ------- | -- | ------------------ | -| mobile | internet | boardcast | general | it | industry-resources | - -::: tip 提示 - -若 `country` 或 `type` 参数包含空格,则用 `-` 替代。如 `United States` 更换为 `United-States`,`White paper` 更换为 `White-paper` - -[INDUSTRY RESOURCES](https://www.telecompaper.com/industry-resources) 分类页的 Filter 仅提供了 `Content Type` 选择器,对应路由中 `type` 参数。`year` 和 `country` 参数则对该分类无效。 - -::: - - - -### Search - - - -排序 - -| Date Ascending | Date Descending | -| -------------- | --------------- | -| 1 | 2 | - -发表在时间段内 - -| 1 month | 3 months | 6 months | 12 months | 24 months | -| ------- | -------- | -------- | --------- | --------- | -| 1 | 3 | 6 | 12 | 24 | - - - ## The Atlantic ### News diff --git a/docs/university.md b/docs/university.md index 1fe5d696f..a0e8ed8ed 100644 --- a/docs/university.md +++ b/docs/university.md @@ -238,9 +238,9 @@ pageClass: routes -### 北京科技大学天津学院 +### 天津学院 - + | 全部 | 学院新闻 | 学术活动 | 城市建设学院 | 信息工程学院 | 经济学院 | 管理学院 | 材料系 | 机械工程系 | 护理系 | 法律系 | 外语系 | 艺术系 | | ---- | -------- | -------- | ------------ | ------------ | -------- | -------- | ------ | ---------- | ------ | ------ | ------ | ------ | diff --git a/lib/router.js b/lib/router.js index 6a287632e..a24d6de8b 100644 --- a/lib/router.js +++ b/lib/router.js @@ -748,7 +748,7 @@ router.get('/shu/:type?', lazyloadRouteHandler('./routes/universities/shu/index' router.get('/shu/jwc/:type?', lazyloadRouteHandler('./routes/universities/shu/jwc')); // 北京科技大学天津学院 -router.get('/ustb/tj/news/:type?', lazyloadRouteHandler('./routes/universities/ustb/tj/news')); +// router.get('/ustb/tj/news/:type?', lazyloadRouteHandler('./routes/universities/ustb/tj/news')); // 深圳大学 // router.get('/szu/yz/:type?', lazyloadRouteHandler('./routes/universities/szu/yz')); @@ -3046,8 +3046,8 @@ router.get('/141ppv/:type/:key?', lazyloadRouteHandler('./routes/141ppv/141ppv') router.get('/curiouscat/user/:id', lazyloadRouteHandler('./routes/curiouscat/user')); // Telecompaper -router.get('/telecompaper/news/:caty/:year?/:country?/:type?', lazyloadRouteHandler('./routes/telecompaper/news')); -router.get('/telecompaper/search/:keyword?/:company?/:sort?/:period?', lazyloadRouteHandler('./routes/telecompaper/search')); +// router.get('/telecompaper/news/:caty/:year?/:country?/:type?', lazyloadRouteHandler('./routes/telecompaper/news')); +// router.get('/telecompaper/search/:keyword?/:company?/:sort?/:period?', lazyloadRouteHandler('./routes/telecompaper/search')); // 水木社区 router.get('/newsmth/account/:id', lazyloadRouteHandler('./routes/newsmth/account')); diff --git a/lib/routes/gov/hunan/notice.js b/lib/routes/gov/hunan/notice.js index 915bf842a..387fc1c5a 100644 --- a/lib/routes/gov/hunan/notice.js +++ b/lib/routes/gov/hunan/notice.js @@ -3,7 +3,7 @@ const got = require('@/utils/got'); module.exports = async (ctx) => { const type = ctx.params.type || 'all'; const rssData = { - isType: ctx.params.type ? true : false, + isType: !!ctx.params.type, Title: `湖南省政府采购网`, Desc: `湖南省政府采购网`, Link: `http://www.ccgp-hunan.gov.cn/page/notice/more.jsp`, diff --git a/lib/v2/gq/tw/index.js b/lib/v2/gq/tw/index.js index 26bbb0f52..002765a95 100644 --- a/lib/v2/gq/tw/index.js +++ b/lib/v2/gq/tw/index.js @@ -58,7 +58,7 @@ module.exports = async (ctx) => { const $ = cheerio.load(response); const data = JSON.parse($('script[type="application/ld+json"]').first().text()); const { transformed } = parsePreloadedStateJSON($); - const VideoObject = data['@type'] === 'VideoObject' ? true : false; + const VideoObject = data['@type'] === 'VideoObject'; const lede = !VideoObject ? transformed.article.headerProps.lede : null; let articleBody = ''; diff --git a/lib/v2/readhub/index.js b/lib/v2/readhub/index.js index 853032dc6..20f5281fe 100644 --- a/lib/v2/readhub/index.js +++ b/lib/v2/readhub/index.js @@ -15,7 +15,7 @@ module.exports = async (ctx) => { let overview = false; if (titles[ctx.params.category]) { category = ctx.params.category; - overview = ctx.params.overview ? true : false; + overview = !!ctx.params.overview; category = category === 'tech' ? 'technews' : category; } else if (ctx.params.category) { overview = true; diff --git a/lib/v2/telecompaper/maintainer.js b/lib/v2/telecompaper/maintainer.js new file mode 100644 index 000000000..85eab3ba2 --- /dev/null +++ b/lib/v2/telecompaper/maintainer.js @@ -0,0 +1,4 @@ +module.exports = { + '/news/:caty/:year?/:country?/:type?': ['nczitzk'], + '/search/:keyword?/:company?/:sort?/:period?': ['nczitzk'], +}; diff --git a/lib/routes/telecompaper/news.js b/lib/v2/telecompaper/news.js similarity index 98% rename from lib/routes/telecompaper/news.js rename to lib/v2/telecompaper/news.js index ebfaeea32..f35654d92 100644 --- a/lib/routes/telecompaper/news.js +++ b/lib/v2/telecompaper/news.js @@ -1,6 +1,7 @@ const got = require('@/utils/got'); const cheerio = require('cheerio'); const tough = require('tough-cookie'); +// eslint-disable-next-line n/no-extraneous-require const FormData = require('form-data'); module.exports = async (ctx) => { diff --git a/lib/v2/telecompaper/radar.js b/lib/v2/telecompaper/radar.js new file mode 100644 index 000000000..bb5e79caa --- /dev/null +++ b/lib/v2/telecompaper/radar.js @@ -0,0 +1,15 @@ +module.exports = { + 'telecompaper.com': { + _name: 'Telecompaper', + '.': [ + { + title: 'News', + docs: 'https://docs.rsshub.app/journal.html#telecompaper', + }, + { + title: 'Search', + docs: 'https://docs.rsshub.app/journal.html#telecompaper', + }, + ], + }, +}; diff --git a/lib/v2/telecompaper/router.js b/lib/v2/telecompaper/router.js new file mode 100644 index 000000000..20d76d658 --- /dev/null +++ b/lib/v2/telecompaper/router.js @@ -0,0 +1,4 @@ +module.exports = (router) => { + router.get('/news/:caty/:year?/:country?/:type?', require('./news')); + router.get('/search/:keyword?/:company?/:sort?/:period?', require('./search')); +}; diff --git a/lib/routes/telecompaper/search.js b/lib/v2/telecompaper/search.js similarity index 100% rename from lib/routes/telecompaper/search.js rename to lib/v2/telecompaper/search.js diff --git a/lib/v2/ustb/maintainer.js b/lib/v2/ustb/maintainer.js index b6f2c6c82..8cad160e2 100644 --- a/lib/v2/ustb/maintainer.js +++ b/lib/v2/ustb/maintainer.js @@ -1,25 +1,5 @@ module.exports = { - '/yjsy/news/adma': ['DA1Y1'], - '/yjsy/news/all': ['DA1Y1'], - '/yjsy/news/cicst': ['DA1Y1'], - '/yjsy/news/cres': ['DA1Y1'], - '/yjsy/news/huasheng': ['DA1Y1'], - '/yjsy/news/iet': ['DA1Y1'], - '/yjsy/news/ihmm': ['DA1Y1'], - '/yjsy/news/marx': ['DA1Y1'], - '/yjsy/news/me': ['DA1Y1'], - '/yjsy/news/metall': ['DA1Y1'], - '/yjsy/news/mse': ['DA1Y1'], - '/yjsy/news/ncms': ['DA1Y1'], - '/yjsy/news/saee': ['DA1Y1'], - '/yjsy/news/scce': ['DA1Y1'], - '/yjsy/news/sd': ['DA1Y1'], - '/yjsy/news/seee': ['DA1Y1'], - '/yjsy/news/sem': ['DA1Y1'], - '/yjsy/news/sfs': ['DA1Y1'], - '/yjsy/news/shuli': ['DA1Y1'], - '/yjsy/news/skl': ['DA1Y1'], - '/yjsy/news/slam': ['DA1Y1'], - '/yjsy/news/wenfa': ['DA1Y1'], + '/tj/news/:type?': ['henbf'], + '/yjsy/news/:type': ['DA1Y1'], '/yzxc/tzgg': ['yanbot-team'], }; diff --git a/lib/v2/ustb/radar.js b/lib/v2/ustb/radar.js index 720ad6a03..8bf165420 100644 --- a/lib/v2/ustb/radar.js +++ b/lib/v2/ustb/radar.js @@ -9,6 +9,14 @@ module.exports = { target: '/ustb/yjsy/news/:type', }, ], + tj: [ + { + title: '天津学院', + docs: 'https://docs.rsshub.app/university.html#bei-jing-ke-ji-da-xue', + source: ['/*'], + target: '/ustb/tj/news/all', + }, + ], yzxc: [ { title: '研究生招生信息网', diff --git a/lib/v2/ustb/router.js b/lib/v2/ustb/router.js index add101ef3..da3402cfc 100644 --- a/lib/v2/ustb/router.js +++ b/lib/v2/ustb/router.js @@ -1,4 +1,5 @@ module.exports = function (router) { + router.get('/tj/news/:type?', require('./tj/news')); router.get('/yjsy/news/:type', require('./yjsy/news')); router.get('/yzxc/tzgg', require('./yzxc/tzgg')); }; diff --git a/lib/routes/universities/ustb/tj/news.js b/lib/v2/ustb/tj/news.js similarity index 71% rename from lib/routes/universities/ustb/tj/news.js rename to lib/v2/ustb/tj/news.js index c2a9c2d9a..2853f1d5f 100644 --- a/lib/routes/universities/ustb/tj/news.js +++ b/lib/v2/ustb/tj/news.js @@ -1,7 +1,7 @@ const got = require('@/utils/got'); const cheerio = require('cheerio'); -const dayjs = require('dayjs'); -const _ = require('lodash'); +const { parseDate } = require('@/utils/parse-date'); +const timezone = require('@/utils/timezone'); const baseUrl = 'http://tj.ustb.edu.cn'; const maps = { @@ -22,18 +22,17 @@ const maps = { function getNews(data) { const $ = cheerio.load(data); return $('div[class="classnews"] ul li a') - .slice(0, 5) - .map((_, elem) => ({ + .toArray() + .map((elem) => ({ link: baseUrl + elem.attribs.href, title: elem.children[0].data, - pubDate: dayjs(elem.attribs.href.split('/')[3].split('.')[0]).toString(), - })) - .get(); + pubDate: timezone(parseDate(elem.attribs.href.split('/')[3].split('.')[0].substring(0, 14), 'YYYYMMDDHHmmss'), 8), + })); } module.exports = async (ctx) => { let type = ctx.params.type || 'all'; - if (!_.includes(_.keys(maps), type)) { + if (!Object.keys(maps).includes(type)) { type = 'all'; } @@ -46,14 +45,14 @@ module.exports = async (ctx) => { if (type === 'all') { const all = await Promise.all( Object.values(maps).map(async (link) => { - const response = await got.get(baseUrl + link); + const response = await got(baseUrl + link); const news = getNews(response.data); - return Promise.resolve(news); + return news; }) ); - responseData.item = _.orderBy(_.flatMapDepth(all), (res) => new Date(res.pubDate), ['desc']); + responseData.item = all.flatMap((res) => res); } else { - const response = await got.get(baseUrl + maps[type]); + const response = await got(baseUrl + maps[type]); const news = getNews(response.data); responseData.item = news; } diff --git a/package.json b/package.json index 5546fd56a..a98fcf264 100644 --- a/package.json +++ b/package.json @@ -141,6 +141,7 @@ "cross-env": "7.0.3", "eslint": "8.39.0", "eslint-config-prettier": "8.8.0", + "eslint-plugin-n": "15.7.0", "eslint-plugin-prettier": "4.2.1", "eslint-plugin-yml": "1.5.0", "fs-extra": "11.1.1", diff --git a/test/utils/rand-user-agent.js b/test/utils/rand-user-agent.js index eefab0b62..f065e94db 100644 --- a/test/utils/rand-user-agent.js +++ b/test/utils/rand-user-agent.js @@ -9,7 +9,7 @@ describe('rand-user-agent', () => { const uaArr = Array(100) .fill() .map(() => randUserAgent({ browser: 'chrome', os: 'windows' })); - const match = uaArr.find((e) => (e.includes('Chrome-Lighthouse') || e.includes('HeadlessChrome') ? true : false)); + const match = uaArr.find((e) => !!(e.includes('Chrome-Lighthouse') || e.includes('HeadlessChrome'))); expect(match).toBeFalsy(); }); diff --git a/yarn.lock b/yarn.lock index 37096a5bc..804967273 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1608,7 +1608,6 @@ brotli@^1.3.3: "browser-request@github:postlight/browser-request#feat-add-headers-to-response": version "0.3.2" - uid "38faa5b85741aabfca61aa37d1ef044d68969ddf" resolved "https://codeload.github.com/postlight/browser-request/tar.gz/38faa5b85741aabfca61aa37d1ef044d68969ddf" dependencies: http-headers "^3.0.1" @@ -1653,6 +1652,13 @@ buffer@^5.2.1, buffer@^5.5.0: base64-js "^1.3.1" ieee754 "^1.1.13" +builtins@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9" + integrity sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ== + dependencies: + semver "^7.0.0" + cacache@^16.1.0: version "16.1.3" resolved "https://registry.yarnpkg.com/cacache/-/cacache-16.1.3.tgz#a02b9f34ecfaf9a78c9f4bc16fceb94d5d67a38e" @@ -2678,6 +2684,28 @@ eslint-config-prettier@8.8.0: resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz#bfda738d412adc917fd7b038857110efe98c9348" integrity sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA== +eslint-plugin-es@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz#f0822f0c18a535a97c3e714e89f88586a7641ec9" + integrity sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ== + dependencies: + eslint-utils "^2.0.0" + regexpp "^3.0.0" + +eslint-plugin-n@15.7.0: + version "15.7.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz#e29221d8f5174f84d18f2eb94765f2eeea033b90" + integrity sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q== + dependencies: + builtins "^5.0.1" + eslint-plugin-es "^4.1.0" + eslint-utils "^3.0.0" + ignore "^5.1.1" + is-core-module "^2.11.0" + minimatch "^3.1.2" + resolve "^1.22.1" + semver "^7.3.8" + eslint-plugin-prettier@4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b" @@ -2703,6 +2731,30 @@ eslint-scope@^7.2.0: esrecurse "^4.3.0" estraverse "^5.2.0" +eslint-utils@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" + integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== + dependencies: + eslint-visitor-keys "^2.0.0" + +eslint-visitor-keys@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint-visitor-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== + eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz#c7f0f956124ce677047ddbc192a68f999454dedc" @@ -3669,7 +3721,7 @@ ignore-by-default@^1.0.1: resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" integrity sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA== -ignore@^5.1.4, ignore@^5.2.0: +ignore@^5.1.1, ignore@^5.1.4, ignore@^5.2.0: version "5.2.4" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== @@ -6200,6 +6252,11 @@ regenerator-runtime@^0.13.11: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== +regexpp@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== + relateurl@0.2.x: version "0.2.7" resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" @@ -6357,7 +6414,7 @@ resolve.exports@^2.0.0: resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== -resolve@^1.1.6, resolve@^1.20.0: +resolve@^1.1.6, resolve@^1.20.0, resolve@^1.22.1: version "1.22.2" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== @@ -6466,7 +6523,7 @@ semver@^6.0.0, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.3.5, semver@^7.3.8: +semver@^7.0.0, semver@^7.3.5, semver@^7.3.8: version "7.5.0" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.0.tgz#ed8c5dc8efb6c629c88b23d41dc9bf40c1d96cd0" integrity sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==